|
數(shù)據(jù)段太大,超過(guò)了內(nèi)部存儲(chǔ)器允許的最大值。
程序工作在16位保護(hù)下,每一個(gè)段的大小不能超過(guò)64K,她說(shuō)數(shù)據(jù)段過(guò)大。
如果你定義的數(shù)組不用更改就用 uchar code XX[10]=
根據(jù)你數(shù)據(jù)的用處,你可以有以下幾種選擇:
data:直接尋址的片內(nèi)RAM區(qū)低128B(00H~7FH)
bdata:片內(nèi)RAM的可位尋址區(qū)(20H~2FH),允許字節(jié)和位混合訪問(wèn)
idata:?jiǎn)纹瑱C(jī)間接訪問(wèn)的片內(nèi)RAM區(qū),允許訪問(wèn)全部片內(nèi)RAM
pdata:Ri間接訪問(wèn)的片外RAM的低256B(00H~FFH)
xdata:用DPTR間接訪問(wèn)的片外RAM,允許訪問(wèn)全部64KB片外RAM(0000H~FFFFH)
code:?jiǎn)纹瑱C(jī)的64KB程序存儲(chǔ)區(qū)ROM
Keil51編譯出現(xiàn) "data" segment too large 解決今天Keil編譯出現(xiàn)這個(gè)問(wèn)題,數(shù)據(jù)太大,原因是在代碼中定義了多個(gè)個(gè)數(shù)組,每個(gè)數(shù)組又有多個(gè)個(gè)屬性等等。
Project -> Option for Target "xxx" -> Target -> Memory Model 中的值 [Small: variables in DATA] 重新選擇 [Large: variables in XDATA]
重新編譯,問(wèn)題順利解決!
|
|