开贴记录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条回答
happyliu
2019-12-18 04:15
基本成功,用的JLink ARM-OB硬件通过swd直接控制FALSH寄存器操作,目标板也是stm32f103c8,没有做速度上的优化,用IO口模拟操作,全部写完后再校验的话,速度比用J-FLASH慢一半左右,只烧写不校验的话速度与J-FLASH基本一样,还没法擦除写保护后下载,还在研究中。想做个下载个小时程序到RAM中运行烧写的,有时间再研究下。这个帖子中shangdawei给的资料帮助不小,参考后做的。里边代码不少可以直接修改过来用。

一周热门 更多>