![]() |
發(fā)布時間: 2018-8-25 15:14
正文摘要:單片機(jī)編程軟件keil xdata設(shè)置如下圖設(shè)置 求問,為什么能正常編譯成功 但是程序卻跑不起來呢 |
我把受影響的變量聲明data就可以正常工作了,幾個全局變量,256字節(jié)大數(shù)組在xdata沒有問題 |
art_jianda 發(fā)表于 2018-8-27 08:50 你的B代碼xdata超出芯片空間了,你把空間調(diào)大只是編譯通過了,實際芯片內(nèi)部沒有變化,A代碼變量少,所以前后都能正常工作,而B代碼超出空間,你調(diào)整編譯器空間,使得編譯正常通過,實際工作時,一部分超界的變量不能工作,當(dāng)然不能正常了。keil設(shè)置空間只是告訴編譯器我有那么大的空間,它并不知道你是否欺騙了它。 |
是這樣的 我有兩份代碼 A份是變量少的 xdata空間是2816byte B份是變量多的 編譯的時候提示xdata超出空間大小 所以我把A、B兩份xdata空間調(diào)整成3072byte 最后A代碼燒進(jìn)去系統(tǒng)能正常工作 B代碼燒進(jìn)去不能正常工作 但是減少B代碼中變量的數(shù)量 B代碼也可以正常了 這是為什么呢 難道這個keil設(shè)置空間是沒用的 僅僅是依靠實際代碼情況來工作的? |
為何要修改配置資料,修改地址要修改得正確才行,在代碼中使用就好了。 |
Powered by 單片機(jī)教程網(wǎng)