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