简单问题,高手指点,谢谢!

发布: 2009-12-21 11:13 | 作者: 06082314 | 来源: StmFans思蜕盟 OPELC 自由电子联盟

我是按照豆皮历程做的实验,
实验指导说:
“在 defined symbols 里面写上 VECT_TAB_RAM ”
但IAR编译的时候报错:
Fatal Error[Pe992]: invalid macro definition: VECT_TAB_RAM
为什么?
binglin (2009-12-21 19:38:03)
1、在用2.0.X固件库时
在需要在RAM中进行调试时,才需要在 defined symbols 里面写上“VECT_TAB_RAM”,同时连接文件也要选择相应的联接文件,IAR5用的是:stm32f10x_ram.icf,IAR4用的是:lnkarm_ram.xcl

2、当用3.x.x标准库时
在需要在RAM中进行调试时,需要在defined symbols 里面写上“NVIC_VectTab_RAM”并同时要用到联接文件:stm32f10x_ram.icf(3.x.x标准库只支持在IAR5xx)。

另外请注意2.0.x固件库与3.x.x标准库的RAM向量表配置标识符的不同:2.0.x固件库用的是“VECT_TAB_RAM”,3.x.x标准库用的是“NVIC_VectTab_RAM”。
06082314 (2009-12-22 14:27:31)
先谢谢,斑竹
我是一名学生,不问明白不死心的那种,还请斑竹谅解
我现在明白了:“VECT_TAB_RAM”的作用。
可是我还是不明白:
连接文件也要选择相应的联接文件这个我确实连接了
IAR编译时候的错误:
Fatal Error[Pe992]: invalid macro definition: VECT_TAB_RAM
怎么解决?
我用的是V4,固件库是2.0.2
binglin (2009-12-22 14:39:41)
检查"VECT_TAB_RAM"有没有写正确,确认这个字符串中间、前、后有没有空格,如有请去掉。
06082314 (2009-12-22 17:16:52)
检查没有错
情况如下:
Building configuration: 尝试1 - Debug
Updating build tree...
cortexm3_macro.s
main.c
Fatal Error[Pe992]: invalid macro definition: VECT_TAB_RAM  
stm32f10x_flash.c
Fatal Error[Pe992]: invalid macro definition: VECT_TAB_RAM  
stm32f10x_gpio.c
Fatal Error[Pe992]: invalid macro definition: VECT_TAB_RAM  
stm32f10x_it.c
Fatal Error[Pe992]: invalid macro definition: VECT_TAB_RAM  
stm32f10x_lib.c
Fatal Error[Pe992]: invalid macro definition: VECT_TAB_RAM  
stm32f10x_nvic.c
Fatal Error[Pe992]: invalid macro definition: VECT_TAB_RAM  
stm32f10x_rcc.c
Fatal Error[Pe992]: invalid macro definition: VECT_TAB_RAM  
stm32f10x_vector.c
Fatal Error[Pe992]: invalid macro definition: VECT_TAB_RAM  

Total number of errors: 8
Total number of warnings: 0
这就是豆皮的第一个流水灯历程
但我直接用豆皮的完整workspace就行,真是郁闷~~~
06082314 (2009-12-22 22:08:48)
我终于弄明白了,原因是我拷贝的it.c里的一个函数调用了其它函数,真是我的疏忽大意,刚入门,有点大意
还请斑竹原谅,主要是身边没有师兄指点,靠自己摸索,比较着急,以后不会再问这样比较低级的问题了
人都是有成长的过程,谢谢斑竹的热心指点
我会努力的
binglin (2009-12-22 23:05:29)
没关系的,对于这类问题原因也有可能很复杂或很简单,说出来大家研究一下也好呢。