找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7437|回复: 0
打印 上一主题 下一主题
收起左侧

Keil 编译 "DATA" segment too large STC 51 MCU 单片机

[复制链接]
跳转到指定楼层
楼主
ID:77367 发表于 2015-4-19 01:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
数据段太大,超过了内部存储器允许的最大值。
程序工作在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]

重新编译,问题顺利解决!



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表