在前面的文章“使用IAR Embedded Workbench和MCU的CRC模塊來檢查代碼的完整性”中介紹了如何在IAR Embedded Workbench中配置生成對應代碼區(qū)域的CRC校驗碼。但是在IDE里面的Linker > Checksum選項里面只能配置一個地址區(qū)間并且只能生成一個Checksum。如果有多個地址空間,那么IDE里面的Linker > Checksum選項沒有辦法滿足需求,需要使用命令行的方式。
本文主要介紹如何在IAR Embedded Workbench中計算多個地址區(qū)間的Checksum。
兩個地址區(qū)間生成兩個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相關的信息:
兩個地址區(qū)間生成一個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的信息:
總結(jié)
本文通過兩個例子介紹了如何在IAR Embedded Workbench中計算多個地址區(qū)間的Checksum,包括多個地址區(qū)間生成多個Checksum和多個地址區(qū)間生成一個Checksum。
審核編輯:湯梓紅
-
IAR
+關注
關注
5文章
368瀏覽量
37156 -
文件
+關注
關注
1文章
577瀏覽量
25147 -
代碼
+關注
關注
30文章
4882瀏覽量
70090 -
命令行
+關注
關注
0文章
80瀏覽量
10517
原文標題:在IAR Embedded Workbench中計算多個地址區(qū)間的Checksum
文章出處:【微信號:IAR愛亞系統(tǒng),微信公眾號:IAR愛亞系統(tǒng)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
如何在IAR Embedded Workbench中配置生成對應代碼區(qū)域的CRC校驗碼

在IAR版本為Embedded Workbench 6.5 Kickstart 1.4 編繹報錯怎么解決?
在 IAR Embedded Workbench中進行ARM+RISC-V多核調(diào)試
IAR Systems發(fā)布 IAR Embedded Wor
IAR_embedded_Workbench用戶指南介紹
IAR Embedded Workbench?集成開發(fā)環(huán)境已全面支持航順芯片HK32MCU系列
IAR Embedded Workbench創(chuàng)新工具促進智能醫(yī)療設備小型化
如何在IAR Embedded Workbench中填充提高系統(tǒng)的健壯性
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入門指南

評論