之前分享过一个JLINK编程器工具:
Python+JLinkARM.dll实现JLINK编程器,原创首发!!
不过它是通过JLINK直接读写Flash控制器寄存器来实现编程的,,速度非常慢,,因此只有技术价值,,不具有实用价值
正常的JLINK编程器一般都是把一段代码下载到单片机的RAM中,然后用JLINK控制这段代码的执行、并传输程序数据给这段儿代码,,让它完成实际的Flash擦除、写入,,Keil MDK、IAR、JFlash给单片机下载程序都是使用的这种方法
实现这种编程器需要克服两个技术问题:
1、通过JLINK控制单片机执行指定函数
2、从Keil MDK的算法文件*.FLM中提取出算法代码和信息(提取现成算法可以节省大量时间,且这些算法都是MCU官方出品、质量可靠)
幸运的是这两个难题都已被国外大神解决,并把相关代码开源到github上,,我的源码中的flash.py和flash_algo.py这两个文件就是github上找到的分别解决上述两个难题的代码
由此,我实现了高速版的JLINK编程器,,下载速度和Keil MDK、IAR、JFlash一样快
,,而且实际的烧写算法代码不需要自己写,直接从Keil MDK的烧写算法文件中提取即可,,因此,只要是Keil支持的芯片,本工具都可以简单扩展、快速支持,,而且稳定可靠
先把此工具分享给坛友,,希望大家喜欢,,
效果图:
截图.jpg (75.31 KB, 下载次数: 0)
下载附件
2019-2-23 21:47 上传
源代码:
https://github.com/XIVN1987/JMCUProgFast (如果喜欢的话可以去给加个星
)
打包生成的exe免安装文件:
JMCUProgFast.part1.rar
(5 MB, 下载次数: 225)
2019-2-23 21:48 上传
点击文件名下载附件
JMCUProgFast.part2.rar
(5 MB, 下载次数: 175)
2019-2-23 21:48 上传
点击文件名下载附件
JMCUProgFast.part3.rar
(1.56 MB, 下载次数: 159)
2019-2-23 21:48 上传
点击文件名下载附件
对你的这句话,持怀疑态度。 从哪里得出的结论? 正常的编程器是这样操作的?
仅仅是支持这种方式而已吧。 没感觉到RAM模式加载写入有多快
1.rw段在哪里初始化的?代码只看到有这句:self.jlink.write_reg('r9', self.flash['static_base'])
2.进入halt 是什么指令,这里有:BLOB_HEADER = '0xE00ABE00, 0x062D780D, 0x24084068, 0xD3000040, 0x1E644058, 0x1C49D1FA, 0x2A001E52, 0x4770D1F2,'
一周热门 更多>