在前面的文章“使用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文章
354瀏覽量
36780 -
文件
+關注
關注
1文章
570瀏覽量
24821 -
代碼
+關注
關注
30文章
4825瀏覽量
69043 -
命令行
+關注
關注
0文章
78瀏覽量
10420
原文標題:在IAR Embedded Workbench中計算多個地址區間的Checksum
文章出處:【微信號:IAR愛亞系統,微信公眾號:IAR愛亞系統】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
如何在IAR Embedded Workbench中配置生成對應代碼區域的CRC校驗碼

在IAR版本為Embedded Workbench 6.5 Kickstart 1.4 編繹報錯怎么解決?
在 IAR Embedded Workbench中進行ARM+RISC-V多核調試
IAR Systems發布 IAR Embedded Wor
IAR_embedded_Workbench用戶指南介紹
IAR Embedded Workbench?集成開發環境已全面支持航順芯片HK32MCU系列
IAR Embedded Workbench創新工具促進智能醫療設備小型化
如何在IAR Embedded Workbench中填充提高系統的健壯性
YRDKRX62N 快速入門指南(IAR Embedded Workbench)

YRDKRL78G13 快速入門指南(IAR Embedded Workbench) Rev.1.01

YRDKRX62N 快速入門指南(IAR Embedded Workbench)

YRDKRL78G13 快速入門指南(IAR Embedded Workbench) Rev.1.01

適用于AVR單片機的IAR embedded Workbench入門指南

評論