原文出处:http://blog.sina.com.cn/s/blog_8806edc50102vbvc.html
在使用IAR7.1及以上版本时出现诸多警告形如:Warning[25]: Label'Reset_Handler' is defined pubweak in a section implicitly declared root,则将SECTION.text:CODE:REORDER(1)改为SECTION .text:CODE:REORDER:NOROOT(1)即可。详情如下:
7.1版本之前,section默认是noroot,但现在是root。所以可以将SECTION .text:CODE:REORDER(1)改成SECTION .text:CODE:REORDER:NOROOT(1)或SECTION .text:CODE:REORDER:ROOT(1)。注意 NOROOT和 ROOT 的区别,NOROOT表示如果符号没有被关联的时候是被优化掉的,如果想不被优化则使用ROOT。
以下为IAR手册的说明:
Problem
After upgrading to EWARM 7.10.1 the Warning[25] is issued during assembly of afile that assembled without warning on earlier version of EWARM.
Background
The assembler (iasmarm) is (from EWARM 7.10.1) issuing Warning[25] for adeprecated assembler construction.
The deprecated assembler source construction looks like this:
Solution
To avoid the warning, add ":NOROOT" to the "SECTION"statement: