|
数据段太大,超过了内部存储器允许的最大值。
程序工作在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]
重新编译,问题顺利解决!
|
|