<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用腳本完成CRC和填充值的自動完成

嵌入式程序員 ? 來源:嵌入式程序員 ? 2023-10-21 09:50 ? 次閱讀

摘要

恩智浦的MPC架構的微控制器使用的開發環境IDE是S32DS ,該IDE使用的GNU GCC工具鏈沒有提供對編譯結果的CRC校驗和自動生成工具,所以需要我們制作一個腳本自動生成和填充,腳本調用Srecord工具執行。

Srecord簡介

為了實現對S32DS IDE應用工程編譯結果生成的S19文件進行數據填充和CRC校驗和自動生成,滿足bootloader開發需求,我們借助功能強大的嵌入式MCU Flash編程文件編輯處理工具--Srecord, 制作一個bat的批處理腳本,腳本中調用的命令請參照srecord的文檔說明,這里不在贅述。

腳本制作

登錄官網下載最新版本1.65的srecord工具,解壓到電腦的任意目錄

所有要調用的工具都在bin文件夾下。根據說明文檔制作腳本 EPS_Fill_And_CRC_Gen_Command.bat ,腳本中調用的解壓目錄如果不相同,請更改為相應目錄,本文以我電腦的目錄為準,腳本全文如下:

@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

如果只想填充不想計算CRC,則刪除掉腳本中的計算CRC行即可。

將制作完成的腳本放入工程的編譯目錄下,如debug目錄下,雙擊腳本即可完成填充,

如果想自動讓IDE調用腳本生成填充值,需要做一些配置,這部分功能還在測試中,目前只支持手動雙擊調用腳本。如果有的電腦因為權限問題不能正確執行腳本,請將制作的腳本放入srecord的解壓bin目錄下,將編譯的.srec或者s19文件也放入bin目錄下,雙擊腳本即可完成生成填充好的文件。

可以試用hexview或者支持hex文件查閱的軟件查看生成填充的文件,可以看到未用的已經全部填充為0xAA,填充值可以自己在腳本中設置。

009c3612-6d8b-11ee-939d-92fbcf53809c.png

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    6843

    瀏覽量

    147992
  • 恩智浦
    +關注

    關注

    14

    文章

    5722

    瀏覽量

    100867
  • crc
    crc
    +關注

    關注

    0

    文章

    194

    瀏覽量

    29224
  • 腳本
    +關注

    關注

    1

    文章

    372

    瀏覽量

    14671

原文標題:如何使用腳本完成CRC和填充值的自動完成

文章出處:【微信號:InterruptISR,微信公眾號:嵌入式程序員】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Linux中執行shell腳本的兩種方式

    一條的執行很是不大方便,這種太多命令的才能完成的,一般都是編寫一個shell腳本來進行操作,而不用一步一步的進行。有些時候在Linux中的很多對應的應用程序目錄下有很多.sh結尾的腳本,這些
    發表于 11-18 16:49 ?1441次閱讀
    Linux中執行shell<b class='flag-5'>腳本</b>的兩種方式

    怎么使用hal accumulate函數完成crc分塊校驗與整體校驗crc值相等?

    怎么使用hal accumulate函數完成crc分塊校驗與整體校驗crc值相等
    發表于 03-27 07:46

    自動填充功能

    在AD9.0中有沒有自動填充功能?小面積的填充,而且要屬性是當下的網絡屬性,如果用FILL只能是矩形,而我要多邊形的,怎么做?
    發表于 10-14 22:29

    在網頁充值后自助設備如何給卡寫入值

    特有網頁上進行充值支付的操作,支付成功后服務器給自助設備發送充值金額的命令,同時自助設備將收到的值寫入電卡中,完成電卡充值。求大神指導下,這個程序邏輯是否可行?如可行,都需要什么東西,
    發表于 06-11 11:48

    CAN通信控制的CRC校驗

    序列。為完成此運算,可以使用一個 15 位的移位寄存器 CRC-RG(14:0)。被除多項式位數據流由幀起始到數據字段結束的無填充序列給定,如果以 NXTBIT 標記該位數據流的下一位,則
    發表于 12-24 10:28

    dsPIC33EP256MU806 CRC模塊的累加何時完成?

    ——“當計算完成時,模塊將清除GO位并設置CRC中斷標志(如果CRCISEL=0)?!钡侥壳盀橹?,我還沒有使用中斷,所以我只是在GO位上旋轉,這與模塊沒有清除文檔相反。有沒有使用CRC模塊的經驗?如果能奏效的話,那就太好了。謝謝
    發表于 03-23 08:37

    如何停止評論的自動完成連字號?

    大家好,我不確定這是編譯器還是IDE設置。對不起,如果這是一個錯誤的論壇。每次我鍵入/ *,我得到一個自動*/它旁邊。我不想這樣,事實上,我不想發生任何事情。我查看了工具、選項、編輯器、代碼完成(對于C/C++)。但我不知道是什么使它起作用。我如何阻止它?謝謝
    發表于 04-10 09:50

    rex防止腳本還沒執行完成就立刻發起怎么回事

    rex 防止腳本還沒執行完成,就立刻發起
    發表于 04-28 11:38

    如何通過SR5500的RPI接口完成自動化測試?

    本文介紹了一種通過SR5500的RPI接口,非常方便的用腳本語言編寫程序完成自動化測試的方法。
    發表于 05-10 06:01

    HarmonyOS自動簽名完成出不來是為什么?

    自動簽名完成,點擊確認我沒有出現
    發表于 04-29 10:29

    CRC校驗代碼自動生成工具

    CRC校驗代碼自動生成工具根據輸入條件自動產生各種CRC的VHDL或verilog源程序
    發表于 05-20 11:16 ?293次下載
    <b class='flag-5'>CRC</b>校驗代碼<b class='flag-5'>自動</b>生成工具

    CNCnetIP電話遠程自動充值系統

    為改進工作效率低的人工處理IP 電話遠程充值和IP 帳號低余額續費撥號通知的問題,應提供IP 電話運營服務的代理商的需求,設計和開發了一個IP 電話遠程自動充值管理系統,有效
    發表于 08-06 11:18 ?11次下載

    什么是腳本?腳本程序學習

    腳本中編寫VB腳本代碼??梢韵笫褂孟到y函數一樣使用項目中完成腳本。創建腳本時,確定其型號并定義傳送參數?!癋unction”類型的
    的頭像 發表于 05-11 10:39 ?6143次閱讀
    什么是<b class='flag-5'>腳本</b>?<b class='flag-5'>腳本</b>程序學習

    什么是腳本?---腳本程序學習

    腳本中編寫VB腳本代碼??梢韵笫褂孟到y函數一樣使用項目中完成腳本。創建腳本時,確定其型號并定義傳送參數?!癋unction”類型的
    的頭像 發表于 06-12 15:39 ?3774次閱讀
    什么是<b class='flag-5'>腳本</b>?---<b class='flag-5'>腳本</b>程序學習

    如何創建自動腳本

    在前面的 bash 初學者系列文章中,我們介紹了關于 bash 的一些基礎知識,在了解了這些基礎知識之后,可以嘗試創建一些自動腳本,來完成一些相對枯燥重復的管理任務。
    的頭像 發表于 01-04 16:50 ?2841次閱讀
    如何創建<b class='flag-5'>自動</b>化<b class='flag-5'>腳本</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>