单片机如何实现IAP升级啊?升级程序应该在制定的位置吧,要不它也就被...
发布网友
发布时间:2024-05-08 07:01
我来回答
共2个回答
热心网友
时间:2024-12-12 03:11
我用C8051F020上实现的一个IAP来举例吧。升级程序的确放在指定位置,因为C8051F020有64K的ROM,所以升级程序就占用ROM最后的4K的空间,前面64K就用来存放用户程序。
在每次单片机启动时,放在0000H位置的LJMP指令不是跳转到用户程序,而是直接跳转到了升级程序(60K开始的位置),这里升级程序初始化串口,等待串口发来的数据流,如果数据流的不正确或者没有收到数据流,就跳转回用户程序的入口执行用户上次下载进去的程序。
所以在这里用户的程序不能超过60K,当然升级程序也不会“自宫”,就没什么影响了。
热心网友
时间:2024-12-12 03:12
单片机做IAP好像不太容易,有IAP功能的单片机很少吧,做个ISP就很不错了,有此功能的单片机现在很多了,入STC51单片机,AVR等都有。
不过做IAP一般还是将程序做到本身里面的,IAP先是将程序读入缓冲区,这个过程是靠你自己的程序来完成的,下一步就是将缓冲区的程序覆盖原来的程序,这是靠CPU的BOOT程序来实现的。