SWD 协议

L-在路上 2018-04-18 10:09:43
最近做swd 烧录协议 用imx芯片烧录stm32。根据协议:
发送50 时钟 并且 拉高数据线,再发送16 位数据0xE79E(LSB)。再发送50个时钟并且数据线为高。
再发8个时钟并且数据线为低。
看样子完全没有错。读取DP_IDCODE为0x1BA01477。但是读取DP控制/状态寄存器时。读取失败。返回值全部为高,即111。为7。
本人怀疑是复位不成功。
但读取DP_IDCODE为0x1BA01477。即使不发送16 位数据0xE79E(LSB),也能读取该值(顿时想说什么鬼)。读取DP控制/状态寄存器时,无法成功。可以写入,返回OK,包括SELECT寄存器/DP_ABORT都可以写。现在我硬件只有两根线。数据线和时钟线。直连STM32 SWD 接口。
特别的是,用工具烧录器设置SWD烧录。DP_IDCODE为0x3BA01477。所以是不是复位失败的原因?还是说GPIO口有限制,要上拉电阻,时钟速率什么的?才可以用SWD烧录。麻烦知道的经验大神告诉一下。看似简单东西花了不少时间。
...全文
1534 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
L-在路上 2018-04-19
  • 打赏
  • 举报
回复
flash 在swd协议怎样操作AP寄存器进行解锁的,操作流程是怎样的,有没有相关文档。还有通过swd协议写数据到RAM后怎样可以自动启动RAM程序。麻烦大神给点建议

27,509

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧