在前面的文章“使用IAR Embedded Workbench和MCU的CRC模块来检查代码的完整性”中介绍了如何在IAR Embedded Workbench中配置生成对应代码区域的CRC校验码。但是在IDE里面的Linker > Checksum选项里面只能配置一个地址区间并且只能生成一个Checksum。如果有多个地址空间,那么IDE里面的Linker > Checksum选项没有办法满足需求,需要使用命令行的方式。
本文主要介绍如何在IAR Embedded Workbench中计算多个地址区间的Checksum。
两个地址区间生成两个Checksum
假设对应的两个地址空间分别为0x08000000-0x0801FFFB(对应Checksum放到0x0801FFFC)和0x08030000-0x0803FFFB(对应Checksum放到0x0803FFFC)。
不使能Linker > Checksum选项中的配置:
在Linker > Extra Options中添加对应的命令:
--place_holder __checksum1,4,.checksum1,4 --place_holder __checksum2,4,.checksum2,4
在ICF文件中添加对应的命令:
define exported symbol __checksum_begin1 =0x08000000; define exported symbol __checksum_end1 =0x0801FFFB; define exported symbol __checksum_begin2 =0x08030000; define exported symbol __checksum_end2 =0x0803FFFB; place at address mem: 0x0801FFFC { section .checksum1 }; place at address mem: 0x0803FFFC { section .checksum2 };
在Build Actions里面添加对应生成Checksum的命令:
ielftool --fill 0xFF;0x08000000-0x0801FFFB --fill 0xFF;0x08030000-0x0803FFFB --checksum __checksum1:4,crc32:Li,0xffffffff;0x08000000-0x0801FFFB --checksum __checksum2:4,crc32:Li,0xffffffff;0x08030000-0x0803FFFB --verbose "$TARGET_PATH$" "$TARGET_PATH$"
Build并查看对应的Build Log和MAP文件检查Checksum相关的信息:
两个地址区间生成一个Checksum
假设对应的两个地址空间分别为0x08000000-0x0801FFFF和0x08030000-0x0803FFFB(对应Checksum放到0x0803FFFC)。
不使能Linker > Checksum选项中的配置:
在Linker > Extra options中添加对应的命令:
--place_holder __checksum,4,.checksum,4
在ICF文件中添加对应的命令:
define exported symbol __checksum_begin1 =0x08000000; define exported symbol __checksum_end1 =0x0801FFFF; define exported symbol __checksum_begin2 =0x08030000; define exported symbol __checksum_end2 =0x0803FFFB; place at address mem: 0x0803FFFC { section .checksum };在Build Actions里面添加对应生成Checksum的命令:
ielftool--fill0xFF;0x08000000-0x0801FFFF--fill0xFF;0x08030000-0x0803FFFB--checksum __checksum:4,crc32:Li,0xffffffff;0x08000000-0x0801FFFF;0x08030000-0x0803FFFB --verbose "$TARGET_PATH$" "$TARGET_PATH$"
Build并查看对应的Build Log和MAP文件检查相关Checksum的信息:
总结
本文通过两个例子介绍了如何在IAR Embedded Workbench中计算多个地址区间的Checksum,包括多个地址区间生成多个Checksum和多个地址区间生成一个Checksum。
审核编辑:汤梓红
-
IAR
+关注
关注
5文章
350浏览量
36663 -
文件
+关注
关注
1文章
565浏览量
24725 -
代码
+关注
关注
30文章
4779浏览量
68516 -
命令行
+关注
关注
0文章
77浏览量
10385
原文标题:在IAR Embedded Workbench中计算多个地址区间的Checksum
文章出处:【微信号:IAR爱亚系统,微信公众号:IAR爱亚系统】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论