找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8337|回復(fù): 0
收起左側(cè)

Keil 編譯 "DATA" segment too large STC 51 MCU 單片機(jī)

[復(fù)制鏈接]
ID:77367 發(fā)表于 2015-4-19 01:36 | 顯示全部樓層 |閱讀模式
數(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)題順利解決!



相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表