Python开发环境搭建(for Bootloader)

“在MCU的升级过程中,需要将Hex文件传递给Bootloader,该工作可由Python Script完成,本文介绍其环境搭建及使用情况。”


1. Python软件下载安装

1.1 在Python官网下载最新安装包“Python3.10.0”

图1 - 软件下载界面

1.2 打开exe文件,先勾选添加路径,然后点击install

图2 - 软件安装界面

1.3 安装中

图3 - 软件安装中

1.4 点击close安装完成

4 - 完成安装

1.5 安装完成后打开cmd窗口,输入python弹出如下信息代表安装成功

图5 - 安装验证

2. 其他组件安装

2.1 pip安装

按ctrl+z先退出python模式,接着输入python -m pip install --upgrade pip

图6 - pip安装

2.2 pySerial安装 输入python -m pip install --upgrade pyserial

7 - pySerial安装

2.3 IntelHex安装输入python -m pip install --upgrade numpy

8 - IntelHex安装

2.4 组件安装版本确定输入python -m pip freeze

图9 - 版本确定

3. Python Scipt使用

这里以PIC16F15223的Bootloader开发工程为例,工程文件夹下面有一个readme.hml,内有详细的工程建立及验证说明,本文不做特殊介绍。

图10 - 例程下载界面

3.1 Hex文件合并

Hex文件合并依赖于例程工程scripts文件夹下的hex_merge.py和hex_merge_app_boot.bat。其中hex_merge.py为实现Hex文件合并的Python脚本,hex_merge_app_boot.bat为批处理文件,用户仅需编辑该批处理文件即可。如图11,前两行分别为应用程序和Bootloader程序的Hex文件,第三行为合并后的hex文件名。第四行代表Bootloader程序占用0x0~0x3FF空间,而0x800是整个器件Flash空间大小。

图11 - Hex文件合并设置

运行批处理文件后比对三个hex文件的结果如图12所示,可以看到合并后Bin文件的0x0~0x7ff区间为Bootloader程序,0x800~0x1000区间为应用程序。(注意:这里合并Bin的地址乘以2是因为PIC16为按字对齐,而图12中的Bin是按字节对齐。)

图12 - Hex文件合并结果

3.2 串口升级

串口升级依赖于例程工程scripts文件夹下的pic16_uploader.py和serial_upload.bat。其中pic16_uploader.py为实现串口升级的Python脚本,serial_upload.bat为批处理文件,用户仅需编辑该批处理文件即可。主要参数为待升级的应用程序Hex文件,应用程序起始地址,Flash空间大小和串口波特率。

图13 - 串口升级设置

最后运行批处理文件后可见升级过程如图14,升级过程信息被打印,如获取版本,擦除Flash,写Flash,校验和复位MCU等。

图14 - 串口升级过程

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 4
收藏 4
关注 40
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧