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烧录。麻烦知道的经验大神告诉一下。看似简单东西花了不少时间。