开贴记录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条回答
shangdawei
1楼-- · 2019-12-16 02:28
https://www.xiaopingtou.cn/data/attach/1912/o4f4828t8o57dvzzg906xitl8i1tvqeu.jpg
abbott.yang 发表于 2015-9-2 19:37
读各种ID,寄存器,读写RAM,读Flash都没问题了。
写Flash还是写不进去。。。虽然SWD给出的ACK是正确的, ...

HyperSnap1613.png (73.1 KB, 下载次数: 0)

下载附件

2015-9-2 20:09 上传


论坛元老也加不了好友的。。。
xingjianpeng
2楼-- · 2019-12-16 07:53
观望制作记录。
shangdawei
3楼-- · 2019-12-16 10:45
 精彩回答 2  元偷偷看……
czdavid
4楼-- · 2019-12-16 16:16
abbott.yang 发表于 2015-9-2 19:37
读各种ID,寄存器,读写RAM,读Flash都没问题了。
写Flash还是写不进去。。。虽然SWD给出的ACK是正确的, ...

先擦除,然后读出来是不是已经擦除了。
写FLASH的时候要注意FLASH延迟。
我当时测STM32F030的时候FLASH的传输方式未用Packet模式,STM32F103是用的Packet模式。
迫于生计,以前做的离线下载器搞好了就给生产用了,并没花太多时间再继续深入研究,也只是搞了点皮毛,希望对你能有帮助。
abbott.yang
5楼-- · 2019-12-16 18:31
czdavid 发表于 2015-9-5 13:31
先擦除,然后读出来是不是已经擦除了。
写FLASH的时候要注意FLASH延迟。
我当时测STM32F030的时候FLASH的 ...

这个是我自己疏忽,没有unclok flash所致。写几个pc。xpr等写不进去也是犯低级错误。往里写了奇数。。。
然后。。。flash操作函数是直接拷贝的stm32库函数。
只是把寄存器读写全换成swd读写。这样效率很低。当然擦除flash可以直接用swd操作,没啥影响。但是大数据编程的时候,时间都浪费在swd 波形传输上了,还是直接download程序到ram执行最快。
大家可以看看Keil,它也是download程序到ram去弄的,在keil程序目录下,有个flash文件夹,里面就是每个芯片都有一段flash操作程序。

huangqi412
6楼-- · 2019-12-16 21:24
abbott.yang 发表于 2015-9-5 17:04
这个是我自己疏忽,没有unclok flash所致。写几个pc。xpr等写不进去也是犯低级错误。往里写了奇数。。。
...

如果不是非要脱机不可 不如用jlink做个上位机通用简单

一周热门 更多>