在“使用IAR Embedded Workbench和MCU的CRC模塊來檢查代碼的完整性”一文中,介紹了如何在IAR Embedded Workbench中配置生成對應代碼區(qū)域的CRC校驗碼,然后在運行過程中使用MCU內嵌的CRC硬件模塊計算對應代碼區(qū)域的CRC校驗碼,并和之前存儲的CRC校驗碼進行比較來檢查對應代碼區(qū)域的完整性。
CRC算法有很多種,一般MCU內嵌的CRC硬件模塊支持的CRC算法種類是固定的,所以需要在IAR Embedded Workbench中選擇對應的Checksum的CRC算法來匹配MCU的CRC模塊。
本文主要以CRC32算法為例,介紹如何在IAR Embedded Workbench中選擇對應Checksum的CRC算法來匹配MCU的CRC模塊。
CRC32算法簡介
CRC32算法有很多種,下面是對應CRC32算法的一個簡單總結:

對應CRC32算法主要跟對應的5個參數(shù)相關:Poly(多項式),Init(初始值),RefIn(輸入值反轉),RefOut(輸出值反轉)和XorOut(結果異或值)。理論上這5個參數(shù)組合最多可以有非常多種算法,不過實際使用中一般以上面幾種為主。
在IAR Embedded Workbench中選擇對應Checksum的CRC算法
IAR Embedded Workbench中Checksum選項中CRC算法的配置與對應CRC算法的參數(shù)對應關系如下: 
下面通過兩個例子來介紹如何在IAR Embedded Workbench中選擇對應Checksum的CRC算法(Project > Options > Linker > Checksum > Generate checksum)。
CRC-32
Algorithm:選擇“CRC32”(對應的Poly自動選擇為0x04C11DB7)
Complement:選擇“1’s complement”(對應的XorOut為0xFFFFFFFF)
Initial value:輸入“0xFFFFFFFF”(對應的Init為0xFFFFFFFF)
Bit order:選擇“LSB first”(對應RefIn = TRUE, RefOut = TRUE)

CRC-32/MPEG-2
Algorithm:選擇“CRC32”(對應的Poly自動選擇為0x04C11DB7)
Complement:選擇“As is”(對應的XorOut為0x00000000)
Initial value:輸入“0xFFFFFFFF”(對應的Init為0xFFFFFFFF)
Bit order:選擇“MSB first”(對應RefIn = FALSE, RefOut = FALSE) 
總結
本文主要以CRC32算法為例,介紹了如何在IAR Embedded Workbench中選擇對應Checksum的CRC算法來匹配MCU的CRC模塊,提高對應Checksum校驗代碼的效率。
審核編輯:湯梓紅
-
mcu
+關注
關注
147文章
18646瀏覽量
388374 -
算法
+關注
關注
23文章
4762瀏覽量
97245 -
crc
+關注
關注
0文章
205瀏覽量
30638 -
IAR
+關注
關注
5文章
402瀏覽量
38362 -
代碼
+關注
關注
30文章
4947瀏覽量
73217
原文標題:在IAR Embedded Workbench中選擇對應Checksum的CRC算法來匹配MCU的CRC模塊
文章出處:【微信號:IAR愛亞系統(tǒng),微信公眾號:IAR愛亞系統(tǒng)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
在IAR Embedded Workbench中計算多個地址區(qū)間的Checksum
crc校驗碼生成工具下載-crc表生成工具
實用資料——CRC校驗碼生成算法
實用資料——CRC校驗碼生成算法
電話網(wǎng)遠程通信中CRC校驗碼的設計及實現(xiàn)
循環(huán)冗余校驗碼---CRC碼
奇偶校驗碼,奇偶校驗碼原理是什么?
CRC校驗碼算法的研究與實現(xiàn)
薦讀:基于FPGA 的CRC校驗碼生成器
CRC校驗碼并行計算的FPGA實現(xiàn)

如何在IAR Embedded Workbench中配置生成對應代碼區(qū)域的CRC校驗碼
評論