找回密码
 立即注册

QQ登录

只需一步,快速开始

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

ERROR L107: ADDRESS SPACE OVERFLOW keil编译单片机程序错误

[复制链接]
跳转到指定楼层
楼主
keil编译提示错误:ERROR L107: ADDRESS SPACE OVERFLOW
我用的是STC89c52的芯片 但我感觉程序也没多大啊  我实验了一下,我原本定义了四个char 型数组 去掉一个再编译就没问题 不去掉就显示如图那样 ,这个芯片我查了官方的手册,显示是8k flash 523字节的ram 感觉应该不会超出? 就多了一个char 型数组就超出了吗?而且无论这个数组是全局变量还是局部变量都编译不通过,我按网上说的是512字节的ram空间不够了然后 memory model里选择large variables in xdata  可以编译 但下载后没反应
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:183159 发表于 2017-4-22 13:20 | 只看该作者
我知道怎么解决了
回复

使用道具 举报

板凳
ID:1 发表于 2017-4-22 15:36 | 只看该作者
xujing 发表于 2017-4-22 13:20
我知道怎么解决了

楼主能分享下怎么解决的吗?
回复

使用道具 举报

地板
ID:183159 发表于 2017-4-22 16:52 | 只看该作者
admin 发表于 2017-4-22 15:36
楼主能分享下怎么解决的吗?

这是编译成功的 Program Size: data=107.1 xdata=0 code=2156
这是编译不成功的 Program Size: data=125.1 xdata=0 code=2176
我这个芯片手册说是512字节的ram,我的keil 4 中默认设置small:variables in DATA的
默认定义的变量都存储在直接寻址区也就是前128字节,我按网上说的设置成large:variables in XDATA,程序可以编译,但下载后没反应,所以只能删掉一个数组了。我之前找到可以在定义的变量的前面加idata指定放在间接寻址区,我下课回去再试试 。
回复

使用道具 举报

5#
ID:157057 发表于 2017-4-22 17:03 | 只看该作者
增加idata 即可。
回复

使用道具 举报

6#
ID:157057 发表于 2017-4-22 17:05 | 只看该作者
其实哈有一个办法,增加官方的元件库,也可以解决。
回复

使用道具 举报

7#
ID:183159 发表于 2017-4-22 17:13 | 只看该作者
fefen0 发表于 2017-4-22 17:05
其实哈有一个办法,增加官方的元件库,也可以解决。

我加了stc的芯片 编译结果还是这样 我现在有点怀疑官方手册上的512字节ram是怎么分配的
回复

使用道具 举报

8#
ID:157057 发表于 2017-4-22 17:53 | 只看该作者
xujing 发表于 2017-4-22 17:13
我加了stc的芯片 编译结果还是这样 我现在有点怀疑官方手册上的512字节ram是怎么分配的

还要看你的KEIL版本。
回复

使用道具 举报

9#
ID:99130 发表于 2017-7-3 21:02 | 只看该作者
编译时选的型号问题,换一个容量大的单片机就可以解决。
回复

使用道具 举报

10#
ID:217098 发表于 2017-7-4 20:38 | 只看该作者
看你的KEIL版本
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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