《通用Jtag下载器》STM32的Flash下载方式思考

最近通过Jtag给STM32下载代码,还行,就是慢啊,那个慢……

因为是通过给ARM核心指令,然后再单步,操作DBUS,然后写入新的代码,重复。
而写Flash的一个byte需要几次,这么一来,通过Jtag传输的效率极其低下(还得判断是否写完了)。

然后就发现jlink有个功能:ramcode。说起来就是先写一段falsh烧写程序到内部的ram,然后传送64bytes到接着的ram空间,然后让PC跳转到这个程序执行。

于是自己写了一段试试arm7tdmi的,自己对ARM7熟悉一点:)
能用,以下是参考写外部的flash的:

把这个通过jtag写到ram的0x00100,把数据写到0x02000000。然后给把对应的值赋给r0、r1、r2、r3。然后改变PC到0x00100,从Dbg模式弄到运行模式。先记下LOOP的绝对地址,然后等一段时间去检查PC,如果等于LOOP,那么就算写入成功了,这样快很多!但是STM32的那个调试接口(CoreSight)不熟悉:(

This entry was posted in General Jtag and tagged , , , , . Bookmark the permalink.