打印
[STM8]

程序编译时数据超出,怎么办

[复制链接]
1237|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 rong212121 于 2015-1-2 21:19 编辑

论坛的兄弟们,我最近在编译程序时,遇到了错误,大家帮忙分析一下对策
#error clnk Debug\dblj3s.lkf:1 segments .const (0x8080-0x8287) and .const (0x8000-0x8084) overlap
截图如下:


1:产生编译错误的过程
我添加了2个变量,并在函数中使用,结果就编译不过了
unsigned long s_Time2_OverFlowCntForVehicleSpeed ;
unsigned long s_Time2_OverFlowCntForEngineSpeed ;


2:我目前采取的措施
我将一些定义的一些变量初始化=0 去掉,
如原先是 unsigned short spd_eng_frq = 0;
现在是 unsigned short spd_eng_frq;

同时将一些不用的全局变量去掉,但是编译结果还是一样,望论坛的兄弟们帮忙一下,谢谢

3:单片机 STM8S105C6
     编译环境 ST visual Develop


沙发
苏山人家| | 2015-1-2 21:37 | 只看该作者
查了一下105,flash起始地址0x0080000x00ffff   寄存器起始地址0x005000--0x007f9f
不知道你这中间的代码是怎么重叠的!

使用特权

评论回复
板凳
rong212121|  楼主 | 2015-1-2 21:43 | 只看该作者
苏山人家 发表于 2015-1-2 21:37
查了一下105,flash起始地址0x0080000x00ffff   寄存器起始地址0x005000--0x007f9f
不知道你这中间的代码是 ...

我也很郁闷呀,这是多定义了2个变量,在中断函数中用到,就出错了

使用特权

评论回复
地板
le062| | 2015-1-2 22:31 | 只看该作者
去看看map文件把

使用特权

评论回复
5
rong212121|  楼主 | 2015-1-3 09:44 | 只看该作者
我目前将中断中的程序写成i一个函数,中断调用,目前能编译过。终端中直接写程序和调用函数,怎么会有不同的编译效果

使用特权

评论回复
6
mmuuss586| | 2015-1-3 11:07 | 只看该作者
那用IAR试下吧;

使用特权

评论回复
7
rong212121|  楼主 | 2015-1-3 13:30 | 只看该作者
mmuuss586 发表于 2015-1-3 11:07
那用IAR试下吧;

目前条件不允许啊,公司都是用 ST visual Develop 的:)

使用特权

评论回复
8
小浣熊| | 2015-1-3 19:46 | 只看该作者
看的不是很明白呢,希望有人能帮到楼主

使用特权

评论回复
9
rong212121|  楼主 | 2015-1-3 22:22 | 只看该作者
小浣熊 发表于 2015-1-3 19:46
看的不是很明白呢,希望有人能帮到楼主

谢谢兄弟们的指导。问题已经解决。定义的的2个变量比较大,我在中断中直接运算,估计导致重入,编译报错。因此中断直接调用函数,这个问题就不在出现

使用特权

评论回复
10
搞IT的| | 2015-1-4 19:14 | 只看该作者
楼主威武啊

使用特权

评论回复
11
小浣熊| | 2015-1-6 22:29 | 只看该作者
rong212121 发表于 2015-1-3 22:22
谢谢兄弟们的指导。问题已经解决。定义的的2个变量比较大,我在中断中直接运算,估计导致重入,编译报错 ...

解决就好啊:)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我戒色的,所以别让我碰见女的,碰到了我就盯着你屁股

50

主题

221

帖子

0

粉丝