随着技术的不断发展,IAP不在陌生,很多产品上都实现了IAP的应用。特别是ARM芯片上,由于其足够的Flash和内存空间,以及简单方便的IAP开发,使得用其开发的产品上使用IAP成为必然。
IAP的方式有很多,比较流行的有UART、USB、SD以及无线的IAP应用。一般比较常见的结构都是:
0x000000 IAP代码
.
.
.
0x00m000 应用代码
在以上结构下,很多人认为是不可以进行硬件仿真,其实是错误的认识。这种结构可以进行两种仿真:
1. 应用程序完成,而且编程到相应的地址后,可以通过MDK仿真IAP代码,当然就是没有把应用程序编程,也可以仿真,只是需要使用IAP编程。
2.在IAP已经编程完成而且正确的编程到起始地址后,同样可以使用MDK对应用程序仿真。这里说的仿真,不是说应用程序地址在0x000000(此地址下仿真,地球人都知道),而是在应用程序的地址。也就是说,必须由IAP应用程序才可以在高地址下仿真。
为了验证以上仿真操作,你可以使用两种方法编程:
1.使用JLINK,需要编程的代码编程到芯片中。同样可以把两个代码同时编程,对于十六进制数据,很简单,打开两个文件编程两次就可以。对于二进制数据,可以把两文件合并后编程,也可以分两次编程,不过需要注意地址,绝对不能弄错。
十六进制文件和二进制文件的区别是?
十六进制文件已经包含和编程信息,包括什么地址写入哪些数据等,而二进制文件没有编程信息,只有程序代码。
2.可以使用MDK编程相应的代码到相应地址,需要注意下载设置,不能擦出整个芯片。
[
本帖最后由 zhaojun_xf 于 2012-4-6 07:48 编辑 ]