IAR Warming 25 Problem

出现问题

IAR版本之间不兼容是臭名昭著的问题,在IAR7.0版本完全正常的代码,放到IAR7.10版本中编译,会出现下面的警告

Warning[25]: Label 'MemManage_Handler' is defined pubweak in a section implicitly declared root

解决方案

在对应的SECTION声明中,添加NOROOT修饰信息,如下所示

        PUBWEAK MemManage_Handler
        SECTION .text:CODE:REORDER(1)
MemManage_Handler
        B MemManage_Handler

改为

        PUBWEAK MemManage_Handler
        SECTION .text:CODE:REORDER:NOROOT(1)
MemManage_Handler
        B MemManage_Handler