http://blog.csdn.net/u014616515/article/details/48650125
在使用IAR7.7及以上编译工程的时候,出现一大堆Warning[25]: Label 'xxx' is defined pubweak in a section implicitly declared root 的警告,点进去是指到启动文件startup_stm32f10x_xd.s里面的,这个问题有网友说是IAR在早期的版本里面使用了core_cm3文件,而在6以后高版本IAR中就不需要了。解决的办法IAR官方也给出了方案了(文章末尾):具体做法就是在启动文件里面startup_stm32f10x_xd.s(双击警告可以直接打开),在SECTION .text:CODE:REORDER(1)后面添加一个NOROOT,改成下面这个样子,注意那个数字是在NOROOT后面的。每一个SECTION都添加后保存,再次编译就不会出错了。
1 Reset_Handler 2 LDR R0, =SystemInit 3 BLX R0 4 LDR R0, =__iar_program_start 5 BX R0 6 7 PUBWEAK NMI_Handler 8 SECTION .text:CODE:REORDER:NOROOT(1)