標(biāo)題: 請(qǐng)問(wèn)如何在keil中設(shè)置RAM的大��? [打印本頁(yè)]

作者: 戡拤    時(shí)間: 2023-8-2 16:58
標(biāo)題: 請(qǐng)問(wèn)如何在keil中設(shè)置RAM的大小?
我用的是STC15w型號(hào)的單片機(jī),通常在keil選擇“AT89C51”就行,但是“AT89C51”只有128Byte ram,請(qǐng)問(wèn)大家超出范圍了咋辦?怎么設(shè)置keil,以至于達(dá)到2k ram?

keil1.png (25.73 KB, 下載次數(shù): 48)

keil1.png

作者: hange_v    時(shí)間: 2023-8-2 20:09
裝STC的包,不要用這個(gè)包
作者: lkc8210    時(shí)間: 2023-8-2 21:12
長(zhǎng)數(shù)組用idata或xdata
作者: Hephaestus    時(shí)間: 2023-8-2 22:55
如果你沒(méi)有專用的仿真器,只是憑借燒錄后的運(yùn)行結(jié)果來(lái)判斷程序?qū)懙膶?duì)不對(duì),那么這里是可以瞎填的,不需要正確設(shè)置,能不能合理的利用全部RAM,完全是憑借你的軟件寫的是否正確,這里的設(shè)置完全沒(méi)有意義。
作者: 戡拤    時(shí)間: 2023-8-3 08:16
RAM只能這樣設(shè)置嗎?能不能像匯編一樣在程序中設(shè)置好?
作者: 戡拤    時(shí)間: 2023-8-3 08:19
Hephaestus 發(fā)表于 2023-8-2 22:55
如果你沒(méi)有專用的仿真器,只是憑借燒錄后的運(yùn)行結(jié)果來(lái)判斷程序?qū)懙膶?duì)不對(duì),那么這里是可以瞎填的,不需要正 ...

我之前設(shè)置了了一個(gè)數(shù)組查表,結(jié)果編譯沒(méi)有錯(cuò)誤,燒錄進(jìn)芯片中就出問(wèn)題了,發(fā)現(xiàn)是數(shù)組占用了所有ram空間
作者: a825563619    時(shí)間: 2023-8-3 09:36
戡拤 發(fā)表于 2023-8-3 08:19
我之前設(shè)置了了一個(gè)數(shù)組查表,結(jié)果編譯沒(méi)有錯(cuò)誤,燒錄進(jìn)芯片中就出問(wèn)題了,發(fā)現(xiàn)是數(shù)組占用了所有ram空間

可以用code把數(shù)組放入flash空間,就不占ram空間了
作者: 戡拤    時(shí)間: 2023-8-3 09:57
a825563619 發(fā)表于 2023-8-3 09:36
可以用code把數(shù)組放入flash空間,就不占ram空間了

是的,我就是這樣做的,但我不知道編譯是以“AT89C51”128Byte判斷,還是實(shí)際燒錄的芯片
作者: Hephaestus    時(shí)間: 2023-8-3 10:00
戡拤 發(fā)表于 2023-8-3 08:19
我之前設(shè)置了了一個(gè)數(shù)組查表,結(jié)果編譯沒(méi)有錯(cuò)誤,燒錄進(jìn)芯片中就出問(wèn)題了,發(fā)現(xiàn)是數(shù)組占用了所有ram空間

這是你選錯(cuò)了芯片造成的嗎?
作者: 戡拤    時(shí)間: 2023-8-3 11:58
我知道了,我之前試過(guò),在keil中我選擇AT89C51,然后我設(shè)置了一個(gè)查表數(shù)組是這樣的u8 xdata Arry[256]{},編譯的時(shí)候沒(méi)有報(bào)錯(cuò),但是燒錄進(jìn)芯片后就出了問(wèn)題。所以結(jié)論是,keil中,它只管編譯有沒(méi)有報(bào)錯(cuò),不管實(shí)際中芯片RAM的大小
作者: wufa1986    時(shí)間: 2023-8-3 16:27
不需要設(shè)置。程序默認(rèn)都有最大ram但是你用就不能超芯片范圍
作者: Hephaestus    時(shí)間: 2023-8-3 18:00
戡拤 發(fā)表于 2023-8-3 11:58
我知道了,我之前試過(guò),在keil中我選馎T89C51,然后我設(shè)置了一個(gè)查表數(shù)組是這樣的u8 xdata Arry[256]{},編 ...

這跟你設(shè)置成什么芯片有一毛錢的關(guān)系嗎?
作者: hi等你    時(shí)間: 2023-8-4 09:45
樓主可能還沒(méi)搞懂ram和程序rom之間的關(guān)系,還是多學(xué)習(xí)吧
作者: hi等你    時(shí)間: 2023-8-4 13:16
對(duì)不起樓主,是我孤陋寡聞,剛剛查資料才知道stc15w的片內(nèi)ram居然多達(dá)2k,可以用movx

指令來(lái)讀寫這2k片內(nèi)ram
作者: rayin    時(shí)間: 2023-8-5 07:45
可以用STC12C5A60S2來(lái)替代AT89C51, 40PIN管腳一對(duì)一兼容, 指令兼容, 片內(nèi)帶1K XRAM. 不需要Keil設(shè)置xram, 注意軟件設(shè)置XRAM開關(guān), 就能用xram了.




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1