[STM8] stm8--遇到问题求助各位!!谢谢!!!

[复制链接]
5280|12
 楼主| Good_ys 发表于 2010-4-19 14:33 | 显示全部楼层 |阅读模式
STM8, sd, BUG, UG, AN
第一次用ST单片机编写程序,使用STM8S105K4B6
开发环境为 ST Visual Develop Version 4.1.2
当项目的stm8_interrupt_vector.c中断文件加入main.h头文件后
出现如下错误,请教各位这些错误该怎么解决?
谢谢!!
Running Linker
clnk -m Debug\sd-516.map -lD:\CXSTM8\Lib
-o Debug\sd-516.sm8 Debug\sd-516.lkf
#error clnk Debug\sd-516.lkf:1 segments .const (0x8080-0x8878) and .const (0x8000-0x81c2) overlap

The command: "clnk -m Debug\sd-516.map -lD:\CXSTM8\Lib
-o Debug\sd-516.sm8 Debug\sd-516.lkf " has failed, the returned value is: 1
exit code=1.
sd-516.elf - 3 error(s), 0 warning(s)
香水城 发表于 2010-4-19 14:47 | 显示全部楼层
请不要把stm8_interrupt_vector.c中断文件加入main.h头文件。
 楼主| Good_ys 发表于 2010-4-19 17:07 | 显示全部楼层
谢谢 香水城。不加main.h头文件,变量和寄存器未定义报错。
继续请教各位呀!!谢谢先^-^
香水城 发表于 2010-4-19 17:19 | 显示全部楼层
请不要把stm8_interrupt_vector.c中断文件加入到main.h头文件里面

没有说不加main.h头文件。
yybj 发表于 2010-4-19 21:21 | 显示全部楼层
main.h函数肯定是要添加的
txcy 发表于 2010-4-19 21:43 | 显示全部楼层
两者分开不就可以了,为什么一定要放在一起,给人感觉不是很混乱
 楼主| Good_ys 发表于 2010-4-20 10:34 | 显示全部楼层
谢谢yybj 和txcy。
问题昨天下午下班时已经解决。该错误为中断地址与程序代码地址部分重叠,经研究编译器,在编译器中把Code代码起始地址0x8080改为0x8200 问题即解决!
再次谢谢各位的相助!
grant_jx 发表于 2010-4-20 20:49 | 显示全部楼层
中断向量表本就是0x8000到0x807F范围,和Code不冲突啊。
pkat 发表于 2010-4-20 21:18 | 显示全部楼层
中断向量表地址我一般都会轻易去改它,不太懂,改了怕出问题就不好找了
 楼主| Good_ys 发表于 2010-4-20 22:07 | 显示全部楼层
我想问题如下:
  以前用东芝芯片编写程序,有把常量数组定义在.h的头文件里,东芝编译器能顺利编译通过。移植程序时,在中断文件中加入定有常量数组的.h头文件时, ST Visual Develop Version 4.1.2 编译器把这些常量数组定义到了从0x8000开始的中断向量地址。造成了中断地址(0x8000-0x81c2)与代码地址(0x8080-0x8878)部分重叠。
   把常量数组定义移到使用到该数组的.c文件中,即解决问题。不用更改code代码起始地址。
  我想是编译器的不同处理方式造成这个错误!
  再次谢谢各位的关注!
stm_zy 发表于 2010-4-21 07:56 | 显示全部楼层
路过。学习...
CrazyST 发表于 2010-4-21 22:45 | 显示全部楼层
学习。。。c的没怎么玩过。。
mcu5i51 发表于 2010-5-8 08:33 | 显示全部楼层
好像ST的中断文件不是声明,而是定义吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

24

帖子

0

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