参考 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操作。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
读各种ID,寄存器,读写RAM,读Flash都没问题了。
写Flash还是写不进去。。。虽然SWD给出的ACK是正确的,但是写完再读出来还是写之前的,擦除再写也一样,在查原因,写动作没有任何作用,尝试是否和flash锁定有关系。
寄存器有的写不进去,xpr,pc,lr写不进去。也是swd提示ACK_OK,读出来还是和写进去之前一样,原因待查。
等做完,确认各种动作都正常就开源吧,不过因为职业原因,只会给出SWD的操作函数源代码。这其实没多大意义,参考CMSIS—DAP和ARM以及CortexM3文档,应该难度不大的。
要的发消息给我吧,留下信箱,我还是新手上路,消息,加好友都不行,杯具了!!!
一周热门 更多>