摘要
恩智浦的MPC架構(gòu)的微控制器使用的開發(fā)環(huán)境IDE是S32DS ,該IDE使用的GNU GCC工具鏈沒有提供對(duì)編譯結(jié)果的CRC校驗(yàn)和自動(dòng)生成工具,所以需要我們制作一個(gè)腳本自動(dòng)生成和填充,腳本調(diào)用Srecord工具執(zhí)行。
Srecord簡(jiǎn)介
為了實(shí)現(xiàn)對(duì)S32DS IDE應(yīng)用工程編譯結(jié)果生成的S19文件進(jìn)行數(shù)據(jù)填充和CRC校驗(yàn)和自動(dòng)生成,滿足bootloader開發(fā)需求,我們借助功能強(qiáng)大的嵌入式MCU Flash編程文件編輯處理工具--Srecord, 制作一個(gè)bat的批處理腳本,腳本中調(diào)用的命令請(qǐng)參照srecord的文檔說明,這里不在贅述。
腳本制作
登錄官網(wǎng)下載最新版本1.65的srecord工具,解壓到電腦的任意目錄
所有要調(diào)用的工具都在bin文件夾下。根據(jù)說明文檔制作腳本 EPS_Fill_And_CRC_Gen_Command.bat ,腳本中調(diào)用的解壓目錄如果不相同,請(qǐng)更改為相應(yīng)目錄,本文以我電腦的目錄為準(zhǔn),腳本全文如下:
@echo off
REM enter current path
cd /d %~dp0
REM add the srecord utility tools folder to path
set path= D:softwaresrecord-1.65.0-win64srecord-1.65.0-win64
REM set input file
SET SRC=*.srec
REM set the output file
SET APP=EPS_App_Flash_Fill_Add_CRC.srec
REM set the output file
SET FILL_VAL=0xAA
REM set the MCU app flash start address
SET START_ADDR=0x01000000
REM set the MCU app flash end address
SET END_ADDR=0x010FFFFC
REM set the MCU flash address to store the checksum/CRC result
REM it's usually the end of MCU app Flash end address/the end of APP Flash
SET CRC_ADDR=0x010FFFFC
REM set expected checksum/CRC method
SET CRC_method=CRC32_Big_Endian
REM delete the last copy result if it exit
if exist %APP% del %APP%
REM call srec_cat to execute memory fill and checksum auto-generate and store to specified address
srec_cat %SRC% -fill %FILL_VAL% %START_ADDR% %END_ADDR% -%CRC_method% %CRC_ADDR% -o %APP%
echo All commands have been executed successfuly!
pause
如果只想填充不想計(jì)算CRC,則刪除掉腳本中的計(jì)算CRC行即可。
將制作完成的腳本放入工程的編譯目錄下,如debug目錄下,雙擊腳本即可完成填充,
如果想自動(dòng)讓IDE調(diào)用腳本生成填充值,需要做一些配置,這部分功能還在測(cè)試中,目前只支持手動(dòng)雙擊調(diào)用腳本。如果有的電腦因?yàn)闄?quán)限問題不能正確執(zhí)行腳本,請(qǐng)將制作的腳本放入srecord的解壓bin目錄下,將編譯的.srec或者s19文件也放入bin目錄下,雙擊腳本即可完成生成填充好的文件。
可以試用hexview或者支持hex文件查閱的軟件查看生成填充的文件,可以看到未用的已經(jīng)全部填充為0xAA,填充值可以自己在腳本中設(shè)置。

審核編輯:湯梓紅
-
微控制器
+關(guān)注
關(guān)注
48文章
8196瀏覽量
160526 -
恩智浦
+關(guān)注
關(guān)注
14文章
6028瀏覽量
127415 -
crc
+關(guān)注
關(guān)注
0文章
204瀏覽量
30553 -
腳本
+關(guān)注
關(guān)注
1文章
405瀏覽量
28993
原文標(biāo)題:如何使用腳本完成CRC和填充值的自動(dòng)完成
文章出處:【微信號(hào):InterruptISR,微信公眾號(hào):嵌入式程序員】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Linux中執(zhí)行shell腳本的兩種方式
怎么使用hal accumulate函數(shù)完成crc分塊校驗(yàn)與整體校驗(yàn)crc值相等?
自動(dòng)填充功能
在網(wǎng)頁充值后自助設(shè)備如何給卡寫入值
CAN通信控制的CRC校驗(yàn)
dsPIC33EP256MU806 CRC模塊的累加何時(shí)完成?
如何通過SR5500的RPI接口完成自動(dòng)化測(cè)試?
CRC校驗(yàn)代碼自動(dòng)生成工具
CNCnetIP電話遠(yuǎn)程自動(dòng)充值系統(tǒng)
蘋果軟件工程師對(duì)安全碼自動(dòng)填充功能進(jìn)行介紹
什么是腳本?腳本程序?qū)W習(xí)
如何創(chuàng)建自動(dòng)化腳本

如何使用腳本完成CRC和填充值的自動(dòng)完成
評(píng)論