开贴记录SWD 脱机烧录器开发过程,请各路大神指教

2019-12-09 19:23发布

参考 CMISI_DAP,BlackMagic代码。
预备下周末结案,目前方案:
1:Host用STM32F427,跑RTEMS系统, IO口模拟SWD时序。
2:flash的操作函数,由Host通过SWD下载入target ram执行。(CMISI_DAP采用这种方式)
     不知道jlink的flash操作是不是一样的原理。他要适用这么多芯片,那得有准备多少这样的小程序啊。。。
3:USB用的虚拟串口,用ST官方提供的驱动,上位机编程简单。tafget本身程序.bin文件由上位机通过虚拟串口传入。
     此虚拟串口的波特率,奇偶,起停位设置均形同虚设。

目前状态:
SWD时序基本调试通过,读写target ID/reg已经正常,暂时未经过高强度测试。。
正在弄flash操作。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
94条回答
chestert
1楼-- · 2019-12-17 15:00
 精彩回答 2  元偷偷看……
PaulDE
2楼-- · 2019-12-17 17:12
看得出来 shangdawei 收集研究了不少资料
tgwfcc
3楼-- · 2019-12-17 20:31
楼主,你好,我也在研究SWD的协议,现在读DP-ID和AP-ID已经可以了,读写目标板的普通寄存器时,只有几个寄存器可以读,其他的读取时的ack不正确,能不能请教下,QQ853678594,谢谢~
happyliu
4楼-- · 2019-12-18 01:42
看来通过swd个性定制的下载升级器还是有需求的,可以做成加密下载升级后自宫,还有就是生产上的bootload批量下载。也在研究中,想做个专用的bootload脱机下载器,
happyliu
5楼-- · 2019-12-18 04:15
基本成功,用的JLink ARM-OB硬件通过swd直接控制FALSH寄存器操作,目标板也是stm32f103c8,没有做速度上的优化,用IO口模拟操作,全部写完后再校验的话,速度比用J-FLASH慢一半左右,只烧写不校验的话速度与J-FLASH基本一样,还没法擦除写保护后下载,还在研究中。想做个下载个小时程序到RAM中运行烧写的,有时间再研究下。这个帖子中shangdawei给的资料帮助不小,参考后做的。里边代码不少可以直接修改过来用。
xyz543
6楼-- · 2019-12-18 05:09
 精彩回答 2  元偷偷看……

一周热门 更多>