1. 先回答你的问题
a. swd调试接口传输数据可配,可1byte,可2byte,可4byte,也可连续模式。
b. swd可以通过是arm的一个调试接口,可以控制内部总线,进而访问地址空间上任意一个地址。
c. 关于这个接口时序如何,以怎样的协议去访问地址空间,可以参考arm官方手册,debug archteure v5
d. arm m0内核支持调试功能,一系列的控制寄存器,例如能够让core halt等等,具体可参考arm v6 架构官方文档
2. 关于下载器如何将程序下载到flash等
a. 利用swd host(即烧录器)先将 loader 程序写入sram
b. halt core
c. 强制更改pc指向sram指定地址,同时更改msp
d. unhalt core
e. core 执行sram 的loader程序
f. swd host(烧录器)向sram指定区域写flash image code
g. 步骤e和f按照某种算法交互
h. 烧写完毕