Cortex-M SWD接口的Multi-drop功能是指在单个SWD接口上连接多个设备的能力。
这是通过SWD协议的第二版本(SWD v2)实现的(规格书 ADIv5.1里面有介绍),它允许主机通过仅两条线(SWDIO和SWCLK)与多个设备同时通信。这种多点连接架构不限制有效连接数,只受电气特性的限制,并且在最大程度上支持向后兼容。
树莓派单片机就是这样的,我们TOOL的LUA小程序还没有办法直接访问,所以就花了些时间,让LUA小程序对Multi Drop做了个支持。
比如向RAM地址x20000000写入5个字节数据,然后读取出来:
重新封装了下pg_init. 就这么个功能搞了两天。
[Lua] 纯文本查看 复制代码 ProgChipIdType = 1
pg_init()
datawrite = "\x11\x22\x63\x44\x54"
re = pg_write_mem(0x20000000, datawrite)
if(re == 1) then
print("写入成功")
else
print("写入失败")
end
re,dataread = pg_read_mem(0x20000000, 5)
if(re == 1) then
print("读取成功")
print_hex(dataread)
else
print("读取失败")
end
关于Muti-Drop
https://developer.arm.com/documentation/ddi0314/h/Debug-Access-Port/SW-DP/SW-DP-multi-drop-support
|