打印
[STM8]

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

[复制链接]
4234|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头文件。

使用特权

评论回复
5
yybj| | 2010-4-19 21:21 | 只看该作者
main.h函数肯定是要添加的

使用特权

评论回复
6
txcy| | 2010-4-19 21:43 | 只看该作者
两者分开不就可以了,为什么一定要放在一起,给人感觉不是很混乱

使用特权

评论回复
7
Good_ys|  楼主 | 2010-4-20 10:34 | 只看该作者
谢谢yybj 和txcy。
问题昨天下午下班时已经解决。该错误为中断地址与程序代码地址部分重叠,经研究编译器,在编译器中把Code代码起始地址0x8080改为0x8200 问题即解决!
再次谢谢各位的相助!

使用特权

评论回复
8
grant_jx| | 2010-4-20 20:49 | 只看该作者
中断向量表本就是0x8000到0x807F范围,和Code不冲突啊。

使用特权

评论回复
9
pkat| | 2010-4-20 21:18 | 只看该作者
中断向量表地址我一般都会轻易去改它,不太懂,改了怕出问题就不好找了

使用特权

评论回复
10
Good_ys|  楼主 | 2010-4-20 22:07 | 只看该作者
我想问题如下:
  以前用东芝芯片编写程序,有把常量数组定义在.h的头文件里,东芝编译器能顺利编译通过。移植程序时,在中断文件中加入定有常量数组的.h头文件时, ST Visual Develop Version 4.1.2 编译器把这些常量数组定义到了从0x8000开始的中断向量地址。造成了中断地址(0x8000-0x81c2)与代码地址(0x8080-0x8878)部分重叠。
   把常量数组定义移到使用到该数组的.c文件中,即解决问题。不用更改code代码起始地址。
  我想是编译器的不同处理方式造成这个错误!
  再次谢谢各位的关注!

使用特权

评论回复
11
stm_zy| | 2010-4-21 07:56 | 只看该作者
路过。学习...

使用特权

评论回复
12
CrazyST| | 2010-4-21 22:45 | 只看该作者
学习。。。c的没怎么玩过。。

使用特权

评论回复
13
mcu5i51| | 2010-5-8 08:33 | 只看该作者
好像ST的中断文件不是声明,而是定义吧

使用特权

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

本版积分规则

7

主题

24

帖子

0

粉丝