IAR编译器提供了扩展关键字__root 可用于将未被调用的函数或未使用的变量包含在代码内。
用法举例:__root const uint8_t SW_Version[]@0x8000 = {'S','W','1','.','0','.','0','0'};
定义了一个常量数组用于表示当前项目的软件版本,@0x8000用于指定该数组存放的位置,即从0x8000地址开始存放数组中的数据。
验证方法一:
将代码烧录进单片机中,通过Jflash回读数据如下:
可以看出在地址0x8000处存放的数据与代码中的SW_Version[]中的内容一致。
验证方法二:
在IAR编译器的debug模式下,查看内存:
可以看出在地址0x8000处存放的数据与代码中的SW_Version[]中的内容一致。
总结:__root 类型 变量名@地址;用于指定定义变量的存储地址;即使该变量未被使用,也会被包含在代码内。