在“使用IAR Embedded Workbench和MCU的CRC模塊來(lái)檢查代碼的完整性”一文中,介紹了如何在IAR Embedded Workbench中配置生成對(duì)應(yīng)代碼區(qū)域的CRC校驗(yàn)碼,然后在運(yùn)行過(guò)程中使用MCU內(nèi)嵌的CRC硬件模塊計(jì)算對(duì)應(yīng)代碼區(qū)域的CRC校驗(yàn)碼,并和之前存儲(chǔ)的CRC校驗(yàn)碼進(jìn)行比較來(lái)檢查對(duì)應(yīng)代碼區(qū)域的完整性。
CRC算法有很多種,一般MCU內(nèi)嵌的CRC硬件模塊支持的CRC算法種類是固定的,所以需要在IAR Embedded Workbench中選擇對(duì)應(yīng)的Checksum的CRC算法來(lái)匹配MCU的CRC模塊。
本文主要以CRC32算法為例,介紹如何在IAR Embedded Workbench中選擇對(duì)應(yīng)Checksum的CRC算法來(lái)匹配MCU的CRC模塊。
CRC32算法簡(jiǎn)介
CRC32算法有很多種,下面是對(duì)應(yīng)CRC32算法的一個(gè)簡(jiǎn)單總結(jié):
對(duì)應(yīng)CRC32算法主要跟對(duì)應(yīng)的5個(gè)參數(shù)相關(guān):Poly(多項(xiàng)式),Init(初始值),RefIn(輸入值反轉(zhuǎn)),RefOut(輸出值反轉(zhuǎn))和XorOut(結(jié)果異或值)。理論上這5個(gè)參數(shù)組合最多可以有非常多種算法,不過(guò)實(shí)際使用中一般以上面幾種為主。
在IAR Embedded Workbench中選擇對(duì)應(yīng)Checksum的CRC算法
IAR Embedded Workbench中Checksum選項(xiàng)中CRC算法的配置與對(duì)應(yīng)CRC算法的參數(shù)對(duì)應(yīng)關(guān)系如下:
下面通過(guò)兩個(gè)例子來(lái)介紹如何在IAR Embedded Workbench中選擇對(duì)應(yīng)Checksum的CRC算法(Project > Options > Linker > Checksum > Generate checksum)。
CRC-32
Algorithm:選擇“CRC32”(對(duì)應(yīng)的Poly自動(dòng)選擇為0x04C11DB7)
Complement:選擇“1’s complement”(對(duì)應(yīng)的XorOut為0xFFFFFFFF)
Initial value:輸入“0xFFFFFFFF”(對(duì)應(yīng)的Init為0xFFFFFFFF)
Bit order:選擇“LSB first”(對(duì)應(yīng)RefIn = TRUE, RefOut = TRUE)
CRC-32/MPEG-2
Algorithm:選擇“CRC32”(對(duì)應(yīng)的Poly自動(dòng)選擇為0x04C11DB7)
Complement:選擇“As is”(對(duì)應(yīng)的XorOut為0x00000000)
Initial value:輸入“0xFFFFFFFF”(對(duì)應(yīng)的Init為0xFFFFFFFF)
Bit order:選擇“MSB first”(對(duì)應(yīng)RefIn = FALSE, RefOut = FALSE)
總結(jié)
本文主要以CRC32算法為例,介紹了如何在IAR Embedded Workbench中選擇對(duì)應(yīng)Checksum的CRC算法來(lái)匹配MCU的CRC模塊,提高對(duì)應(yīng)Checksum校驗(yàn)代碼的效率。
審核編輯:湯梓紅
-
mcu
+關(guān)注
關(guān)注
146文章
17148瀏覽量
351197 -
算法
+關(guān)注
關(guān)注
23文章
4612瀏覽量
92891 -
crc
+關(guān)注
關(guān)注
0文章
199瀏覽量
29465 -
IAR
+關(guān)注
關(guān)注
5文章
352瀏覽量
36681 -
代碼
+關(guān)注
關(guān)注
30文章
4788瀏覽量
68612
原文標(biāo)題:在IAR Embedded Workbench中選擇對(duì)應(yīng)Checksum的CRC算法來(lái)匹配MCU的CRC模塊
文章出處:【微信號(hào):IAR愛(ài)亞系統(tǒng),微信公眾號(hào):IAR愛(ài)亞系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
在IAR Embedded Workbench中計(jì)算多個(gè)地址區(qū)間的Checksum
![在<b class='flag-5'>IAR</b> <b class='flag-5'>Embedded</b> <b class='flag-5'>Workbench</b>中計(jì)算多個(gè)地址區(qū)間的Checksum](https://file1.elecfans.com/web2/M00/BB/FB/wKgaomWXhwOAVRAjAAA2G_yWXNw981.png)
crc校驗(yàn)碼生成工具下載-crc表生成工具
實(shí)用資料——CRC校驗(yàn)碼生成算法
實(shí)用資料——CRC校驗(yàn)碼生成算法
電話網(wǎng)遠(yuǎn)程通信中CRC校驗(yàn)碼的設(shè)計(jì)及實(shí)現(xiàn)
循環(huán)冗余校驗(yàn)碼---CRC碼
![循環(huán)冗余<b class='flag-5'>校驗(yàn)碼</b>---<b class='flag-5'>CRC</b><b class='flag-5'>碼</b>](https://file1.elecfans.com//web2/M00/A5/4F/wKgZomUMN9mANRdNAAACdNFrOnw261.gif)
奇偶校驗(yàn)碼,奇偶校驗(yàn)碼原理是什么?
CRC校驗(yàn)碼算法的研究與實(shí)現(xiàn)
薦讀:基于FPGA 的CRC校驗(yàn)碼生成器
![薦讀:基于FPGA 的<b class='flag-5'>CRC</b><b class='flag-5'>校驗(yàn)碼</b><b class='flag-5'>生成</b>器](https://file.elecfans.com/web1/M00/53/21/o4YBAFsfZ4qAMddUAABlR9qiYVM486.png)
CRC校驗(yàn)碼的C語(yǔ)言程序免費(fèi)下載
![<b class='flag-5'>CRC</b><b class='flag-5'>校驗(yàn)碼</b>的C語(yǔ)言程序免費(fèi)下載](https://file.elecfans.com/web1/M00/BA/B1/o4YBAF6gC9OALASCAAECBk9giJk861.png)
CRC校驗(yàn)碼并行計(jì)算的FPGA實(shí)現(xiàn)
![<b class='flag-5'>CRC</b><b class='flag-5'>校驗(yàn)碼</b>并行計(jì)算的FPGA實(shí)現(xiàn)](https://file.elecfans.com/web1/M00/E7/26/o4YBAGBf3YOAasnvAABj5JK-a4U654.jpg)
工控常用LRC XOR累加和CRC校驗(yàn)工具校驗(yàn)碼自動(dòng)生成軟件多計(jì)算方式
![工控常用LRC XOR累加和<b class='flag-5'>CRC</b><b class='flag-5'>校驗(yàn)</b>工具<b class='flag-5'>校驗(yàn)碼</b>自動(dòng)<b class='flag-5'>生成</b>軟件多計(jì)算方式](https://file.elecfans.com/web2/M00/7E/2B/pYYBAGOAOZuAF5VdAAAmJP7HrmQ386.png)
評(píng)論