一句话大家就明白了:支持Semihost的调试器调试时可以用fopen()/fread()函数读取PC机上的文件,那还有什么搞不定的?
支持Semihost有ADS的AXD和RealView的RVdebug。我用的是后者,前者应该也行。
下列情况这种方案比较有优势: 1.有些烧写软件支持的仿真器有限制,你没有或者不是你常用的,换来换去比较麻烦。 2.烧写软件对你的板子支持的不太好,烧写时好时坏。 我就是因为以上两个原因最后找到了这个办法。
有一个小技巧:我在上位机做了个小程序,可以选择要烧写的文件和基地址,生成一个burn.job件。在ARM程序里读这个文件就知道要烧些什么了。对于同时做几个项目,或者要烧好几段内容进flash的情况,如程序/字库/参数表等。可以把常烧的文件都加进去,要烧哪个就打个勾。这个功能跟twentyone提过,但可能还没时间加进去。
现在已经休假了,假期后可以把这个小程序发上来。 |