在IAR中建立stm32f10x的模板时,编译中遇到两个警告,在此记录一下解决办法。
------------------------------------------------------------------------------------------------------------------------
第一个警告:Warning[25]: Label 'Reset_Handler' is defined pubweak in a section implicitly declared root Z:\E\Com
经过查网上资料,是由于启动文件startup中startup_stm32f10x_hd.s(我用的这个)造成的,下面记录下我的解决办法。
1、将startup中startup_stm32f10x_hd.s用记事本打开,下滑找到这样几行(红框这种的,下面好多这样类似的)
2、将上图红框中的改为下图篮框这样,修改处就是箭头指的地方。
不仅仅修改红框这三处!!!下面的所有类似的全要改!!!大概60多个吧,全要加这个 :NOROOT
即将 SECTION .text:CODE:REORDER(2) 改为?SECTION .text:CODE:REORDER:NOROOT(2)
即将 SECTION .text:CODE:REORDER(1) 改为 SECTION .text:CODE:REORDER:NOROOT(1)
(PS:把SECTION .text:CODE:REORDER(1) 改成SECTION .text:CODE:REORDER:NOROOT(1) 或SECTION .text:CODE:REORDER:ROOT(1)? ?应该都行,但我没试过改为ROOT的。 注意 NOROOT和 ROOT 的区别,如果NOROOT表示如果符号没有被关联的时候是被优化掉的, 如果想不被优化则使用ROOT.)
?3、然后在IAR中startup重新添加一下,编译一下就好了
?
?------------------------------------------------------------------------------------------------------------------------
?第二个警告:Warning[Pe223]: function "assert_param" declared implicitly Z:\E\Company\001
这个警告,通过网上查资料,发现是缺少?USE_STDPERIPH_DRIVER 造成的,然后我就在IAR中添加了下,然后警告就没了。。。
?大概就这些,若有疑问我会尽量解答。
|