程序通过分散装载文件,放到两个不同的地址段上. LZ的问题其实和STM32/IAR都没有关系,任何一款带外部nor运行的ARM都会有这种问题,包括lpc22**系列. 下载程序到flash方法有几种,一种是自己做bootloader,另一种就是用开发环境提供的工具.比方说IAR提供了接口,当时我用lpc2292+sst39vf160的时候,就是自己根据IAR的接口,自己写的flashloader,每次IAR在DEBUG的时候,会调用一个flashloader的*.d79文件,这个文件主要完成flash的擦除和数据写入,具体函数可以参见IAR安装程序下的例程.这样,每次点debug的时候,自动完成下载. 还有一种笨办法,就是利用外部的工具,象hjtag,J flash等软件,将生成的hex分别下到内部和外部nor里面. 调试的时候,和flash下载是没有关系的.调试的时候保证flash已经正确下载即可,不然程序调试的结果会异常.
总之,用iar的话,本人认为最好的办法,就是自己修改例程中的flashloader.每次debug下载调试一步到位,而且也可以支持任何一种的nor.keil应该也有类似的接口供使用. |