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

2026-02-08 0 396

软件开发阶段,不同的工具链各有其特点。但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%

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

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

左子网 开发教程 嵌入式软件开发:Srecord工具实现S19文件数据填充与CRC校验和自动计算存储方法详解 https://www.zuozi.net/75781.html

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

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