打印
[开发工具]

使用Python+JLinkARM.dll自制J-Link烧录工具

[复制链接]
4538|44
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
goodluck09876|  楼主 | 2019-7-20 09:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个题目值得为大家推广!原帖内容见:STM32社区。----------------------------------------------------------------------------------
本工具的设计目的是为量产烧录时实现自动化烧录、一拖多烧录、同一芯片烧录多个数据、不同芯片烧录不同数据等负责的功能提供技术基础。说白了就是自己做一个能控制指定J-Link烧录指定数据的工具。工具只实现了选择J-Link序列号、选择芯片信号、选择烧录地址、选择烧录文件的一拖一烧录功能,可以自己扩展实现在一拖多、烧录序列号、烧录出厂配对数据、读取MAC地址等功能。理论上只要J-Link支持的芯片都能烧录,V8、V9和OB都支持,不过实测会有一些无法使用,例如使用外置SPI FLASH的芯片可能无法擦除或烧录。

下面只介绍本工具开发所需要的开发环境、库和原理,至于源码你们自己研究,才150多行!!!


使用特权

评论回复
评论
luckypwp 2020-1-14 11:18 回复TA
Jlink Python Programming GUI Tool https://markding.github.io/pyprogrammer/ 
沙发
goodluck09876|  楼主 | 2019-7-20 09:03 | 只看该作者
一、工具原理
工具通过调用J-Link驱动JLinkARM.dll文件实现对指定J-Link的控制,只需要一个JLinkARM.dll文件就能控制J-Link,无须另装驱动。很多使用ARM内核的芯片厂商自家的命令行烧录工具也是使用JLinkARM.dll来烧录。本工具已经集成了JLinkARM.dll文件,版本号为V6.20d,如果需要使用其他版本的JLinkARM.dll,请确保版本号在V6.0版本以上。

使用特权

评论回复
板凳
goodluck09876|  楼主 | 2019-7-20 09:03 | 只看该作者
二、开发环境
工具使用python语言编写,因为
python是世界上最好用的语言!
python是世界上最好用的语言!
python是世界上最好用的语言!
建议嵌入式软件工程师们也学习python,python除了生孩子,其他事都能搞定。

本工具在windows10家庭版上开发,理论上windows下都一样,linux请自行尝试。
使用python语言需要安装python,工具使用的是python3.6,其他版本请自行尝试。具体安装过程可以自行百度。

使用特权

评论回复
地板
goodluck09876|  楼主 | 2019-7-20 09:03 | 只看该作者
开发环境是pycharm,一款用于python开发的IDE,社区版是免费的,安装了就能用。具体安装过程可以自行百度。

使用特权

评论回复
5
goodluck09876|  楼主 | 2019-7-20 09:04 | 只看该作者
用到的pyhton库除了调用J-Link的pylink-square库和打包exe用的pyinstaller库之外,其他的都是python自带的,无须另外安装。
pylink-square库可通过以下方法安装:
1、在pycharm的Settings中搜索安装pylink-square库,目前最新版本是0.1.0,建议安装最新版。
2、命令行下输入 pip install pylink-square 安装。

使用特权

评论回复
6
goodluck09876|  楼主 | 2019-7-20 09:04 | 只看该作者
pyinstaller库可通过以下方法安装:
1、在pycharm的Settings中搜索安装pylink-square库,目前最新版本是3.3.1,建议安装最新版。
2、命令行下输入 pip install pyinstaller 安装。

使用特权

评论回复
7
goodluck09876|  楼主 | 2019-7-20 09:05 | 只看该作者
三、开发和打包
使用pycharm打开源码目录下的JLinkProgramTool.py文件,源码只有150多行,有界面和注释,懂python语言的相信一看就懂,所以这里就不做介绍,有问题的可以留言,我会解答。烧录时需要指定J-Link的序列号,正版J-Link每个都有不同的序列号,可以通过使用多个J-Link实现一拖多烧录。淘宝同一家店买的J-Link基本上都是同一序列号,在后面的帖子里我会教怎么修改V8和V9的序列号。

开发完成可以使用pyinstaller打包成exe,方便在产线上使用,打包方法是在工程目录下打开命令行使用
pyinstaller JLinkProgramTool.py命令打包,打包成功会在工程目录下生成disk文件夹,进入里面找到exe文件就可以打开使用了,打包后建议将JLinkARM.dll文件复制到exe同目录下。

使用特权

评论回复
8
goodluck09876|  楼主 | 2019-7-20 09:07 | 只看该作者
上传的附件如下:

使用特权

评论回复
9
goodluck09876|  楼主 | 2019-7-20 09:09 | 只看该作者
刚才 附件太大,重新上传

附件1:

JLinkProgramTool.part01.rar

5 MB

使用特权

评论回复
10
goodluck09876|  楼主 | 2019-7-20 09:09 | 只看该作者
附件2:

JLinkProgramTool.part02.rar

5 MB

使用特权

评论回复
11
goodluck09876|  楼主 | 2019-7-20 09:09 | 只看该作者
附件3:

JLinkProgramTool.part03.rar

5 MB

使用特权

评论回复
12
goodluck09876|  楼主 | 2019-7-20 09:09 | 只看该作者
附件4:

JLinkProgramTool.part04.rar

5 MB

使用特权

评论回复
13
goodluck09876|  楼主 | 2019-7-20 09:09 | 只看该作者
附件5:

JLinkProgramTool.part05.rar

5 MB

使用特权

评论回复
14
goodluck09876|  楼主 | 2019-7-20 09:10 | 只看该作者
附件6:

JLinkProgramTool.part06.rar

1.42 MB

使用特权

评论回复
15
renzheshengui| | 2019-8-9 12:10 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
16
wakayi| | 2019-8-9 12:11 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
17
wowu| | 2019-8-9 12:48 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
18
JoeSKJ| | 2020-1-11 16:25 | 只看该作者
goodluck09876 发表于 2019-7-20 09:09
刚才 附件太大,重新上传

附件1:

大佬,调用dll库目标设备一直找不到,该怎么解决呢?

使用特权

评论回复
19
quickman| | 2020-1-12 21:08 | 只看该作者
使用Python?      

使用特权

评论回复
20
jstgotodo| | 2020-1-12 21:08 | 只看该作者
楼主自己写的驱动吗?     

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

220

主题

5843

帖子

20

粉丝