iar烧录程序步骤_Python笔记–IAR使用Python脚本实现自动对烧录文件进行处理

本文介绍了如何使用Python脚本自动化处理IAR编译后的hex和bin文件,包括文件合并、计算CRC32和文件大小,以及在IAR中设置外部工具自动调用这些脚本,实现STM32项目的自动远程升级准备。
摘要由CSDN通过智能技术生成

这篇文章将要记录如何配置IAR调用外部工具实现对编译完成后自动对生成的hex文件进行合并、对bin文件进行额外操作。

问题背景:

我们目前的项目在STM32平台上开发,具备远程无线升级功能,即通过GPRS网络实现远程IAP,IAP过程中使用的是bin文件(因为bin文件不包含地址,处理比较简单)。因此,在项目编译后我们就需要两个文件,一个是设备出厂时的烧录文件,该文件为hex格式,一个是设备部署后远程升级时用的bin文件。而出厂hex文件又由两个文件合并而成,分别是BOOT.hex: 用户启动代码,用于引导和远程升级,由BOOT工程编译得到;APP.hex :用户应用代码,由APP工程编译得到。同时,APP.bin: 用户应用代码二进制格式,通过APP工程编译得到。

所以每次重新编译app工程或者boot工程后都要进行一次复制粘贴,而且IAR链接时只能生成一种文件,hex或者bin,选择生成hex时就会删除bin,选择bin又会删除hex。因此要得到这两个文件需要编译连接两次。

另外,升级时我们需要知道bin文件的大小,CRC32校验码,烧录的起始地址,为了操作方便一个比较好的办法是将这三个信息都放到bin文件内部,所以编译生成bin文件后也要对该文件进行处理。

为了简化人工操作,减少出错几率,我就动手编写了一个脚本,每次编译连接完成后自动将APP.hex转为APP.bin,并且将APP.hex和BOOT.hex进行合并。

需要解决的问题:

1.写一个Python脚本,实现BOOT.hex和APP.hex的合并,主要涉及到文件的拷贝

2.写一个Python脚本,计算APP.bin文件的CRC32校验,计算文件内容长度,将这些数据以二进制形式写入到新的bin文件中,且要求高字节在前。

3.将py脚本转换为windows可执行的exe,使用py2exe,具体方法请参考这里。

4.IAR的设置

容易出错的问题:

实现的功能很简单,没有什么容易出错的地方,但是路径的问题还是比较麻烦,发现运行路径和脚本所在路径不一致。

实现步骤(本文主要讲IAR的设置):

1.convertAPP.py 如下:

importConfigParser</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值