嵌入式软件开发:Srecord工具实现S19文件数据填充与CRC校验和自动计算存储方法详解

2024-12-17 0 854

软件开发阶段,不同的工具链各有其特点。但S32DS集成开发环境所用的GNUGCC工具链在CRC校验、自动生成数据以及数据填充等方面存在缺陷。我们正致力于研究如何运用其他工具来解决这个问题。

嵌入式软件开发:Srecord工具实现S19文件数据填充与CRC校验和自动计算存储方法详解

S32DSIDE的GNUGCC工具链局限

嵌入式软件开发:Srecord工具实现S19文件数据填充与CRC校验和自动计算存储方法详解

S32DSIDE中的GNUGCC工具链在编译完成后对结果的CRC校验及自动填充数据方面不够方便。与其它工具相比,它的操作流程也不太简便。在那些要求严格检查数据完整性的开发环境中,这成了一个显著的问题。众多开发者在使用此工具链时,因缺乏这些功能,不得不寻找其他解决方案,这无疑加大了开发的工作负担。

srec_info S32K144_App_TestPrj.srec

各类工具链各具特色,但在实际项目开发时,我们更希望它们功能更全面。这大概暗示了工具链在某些领域可能还需进一步改进?

嵌入式软件开发:Srecord工具实现S19文件数据填充与CRC校验和自动计算存储方法详解

相关工具的获取与基础情况

为解决此问题,请下载“1.64-win32.zip”最新版压缩包。解压后,您会得到操作指南、三个执行工具及PDF版用户手册。这些资料是进行下一步操作的关键。您可以在命令行输入“setpath=”指令,将解压文件夹设为系统临时变量,便于使用。此方法让用户更方便地获取和使用工具。

srec_cmp app1.srec app2.srec

srec_cmp: files "app1.srec" and "app2.srec" differ

下载并展开文件后,配置环境变量是至关重要的。这些步骤的完成情况,将直接决定工具是否能够顺畅运行。在大家执行这些操作时,是否遇到了什么困难?

工具的功能特性

−fill value address-range

此工具能够对两个编程文件的内存数据进行比对,其功能类似于Linux的diff命令。使用时,必须使用fill命令以及两个过滤器功能,以实现S19文件数据的填充以及CRC校验和的自动计算和存储。fill命令能够按照指定数据填充特定地址区域,并需遵循一定的命令格式。另外,该工具还能支持多种格式生成并存储CRC校验和,用户可以自定义存储位置、CRC长度和宽度等参数。

要正确运用工具,首先需充分理解其各种功能。在实际操作阶段,快速掌握这些功能显得尤为重要。

−<checksum_filer> address [ nbytes [ width ]]

批处理脚本调用的具体实现方法步骤

嵌入式软件开发:Srecord工具实现S19文件数据填充与CRC校验和自动计算存储方法详解

依照命令行批处理脚本进行操作,执行S19文件的资料填充及CRC校验计算,流程是既定的。首先,要进入当前目录,这通常是S19文件存放的位置,例如在S32DSIDE里,S19文件一般放在以编译目标命名的根目录文件夹内。接着,要把事先下载并解压的工具软件目录加入系统环境变量,便于后续调用。最后,配置临时变量,用于指定输入输出文件的名称、填充的地址范围、填充的数据内容以及CRC校验结果的保存位置。

操作过程中,若环境变量没设置好或者临时变量出了问题,都可能会让操作不成功,这种情况您是否有过经历?

批处理文件运行方式

REM enter current pathcd /d %~dp0

完成“mand.bat”批处理文件的编写后,应将其拷贝至S32DS项目的“debug”编译目标文件夹。运行时,只需双击该文件即可。此外,还有其他操作途径,例如输入命令。比如,在.txt文本文件中输入特定内容,即可自动生成KL25编译输出的CRC校验码。这为不同需求的用户提供了多样的操作选项。

各种运行模式操作简便程度各异,你更偏好哪一种操作方式?

REM add the srecord utility tools folder to pathset path=F:StudySrecordsrecord-1.64-win32

集成功能到IDE

此功能能够将CRC校验和的生成过程整合到各种集成开发环境,比如S32DSIDE中,并在构建环节之后进行操作。这样的做法对于加快开发进度以及保障数据安全具有显著优势。它使得开发流程更加流畅,同时降低了数据验证中可能出现疏漏的风险。

REM set input fileSET SRC=*.srecREM set the output file 
SET APP=S32K144_App_Flash_Fill_Add_CRC.srec
REM set the output file SET FILL_VAL=0xAA
REM set the MCU app flash start addressSET START_ADDR=0x00000
REM set the MCU app flash end addressSET END_ADDR=0x7FFFC
REM set the MCU flash address to store the checksum/CRC resultREM it's usually the end of MCU app Flash end address/the end of APP Flash SET CRC_ADDR=0x7FFFC
REM set expected checksum/CRC methodSET CRC_method=CRC32_Big_Endian

将功能整合进开发工具,这确实是提高工作效率的好策略。但在实际操作中,我们可能会遭遇一些关于兼容性的难题。对此,您有什么看法?期待大家能对这篇文章给予点赞和分享。同时,也热切希望您能在评论区分享您在使用过程中遇到的经历或遇到的问题。

REM delete the last copy result if it exitif exist %APP% del %APP%

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 行业资讯 嵌入式软件开发:Srecord工具实现S19文件数据填充与CRC校验和自动计算存储方法详解 https://www.7claw.com/2803335.html

七爪网源码交易平台

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务