请教KEIL CODE区覆盖的问题

[复制链接]
3585|4
 楼主| tides 发表于 2011-2-28 23:09 | 显示全部楼层 |阅读模式
定义了如下两个数组在CODE区里,编译的时候显示覆盖警告错误,请高人指点如何解决,后一个数据需要放在CODE区(程序表格),前面这个是仿真器必须设置的代码。

char code SST516[3] _at_ 0x003b;
unsigned int code ATab[45] =
{17,......,707};
ayb_ice 发表于 2011-3-1 08:30 | 显示全部楼层
错开即可
 楼主| tides 发表于 2011-3-1 19:29 | 显示全部楼层
2# ayb_ice
错不开啊!我就是觉得奇怪
ayb_ice 发表于 2011-3-1 20:09 | 显示全部楼层
仔细看编译提示信息
很可能是和中断向量重叠了
另外后面那个数据没有绝对定位是没有问题的
xjycug 发表于 2011-3-1 21:11 | 显示全部楼层
呵呵,一个数组另外定义一个文件,比如文件名为ABCD.c。建立工程。
使用Option中的BL51 Locate选项中的Code设置项设置即可。
设置为:?CO?ABCD(0x0100),定义的代码起始地址为0x0100。
编译工程,生成 .hex文件,
然后单独下载该代码到单片机。可以保证代码段内的数据。
方法有点笨,不过好使,呵呵。
如果楼主没有特别的地址要指定,可以把_at_ 0x003b去掉就没有问题。
好像_at_ 不能用于数组的情况。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

16

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部