关于单片机程序的自动升级问题
例如以单片机的ROM是有10万次擦写的FLASH,现在该如何能像电脑软件一样能自动升级里面的程序而不用拆下来重新烧
1.假设需要更新的程序是放在一个外接的E2PROM里,
2.怎样让单片机执行RAM里的指令,以便更新ROM区
3.通过执行RAM里的指令读出E2PROM的数据,怎样写入ROM区,一般都是用烧写器从外面烧写,还不知道该怎么从里面写
[解决办法]
这个不是很难,前提是片内Flash/ROM支持自编程,也就是说支持软件指令对Flash/ROM的读、擦除和编程。
[解决办法]
IAP
[解决办法]
自己实现一个BOOTLOADER
以前一些神人说不难
不过我还是没能太好地搞清楚
[解决办法]
可以的啊。只要芯片支持。做一个简单的类型bootloader的程序就可以了。
[解决办法]
51的似乎不支持,需要AVR系列的。
思路可以这样:在bootloader区里是一段单独的程序,专门用来升级用。
升级时,应用程序跳转到bootloader的程序,升级后,再跳转到新的应用程序。
当然,这种方法需要各程序在FLASH中绝对定位。
另外,对于自升级的功能,新程序放在E2PROM里没什么意义,因为往里面写还是需要消耗资源,不如直接借助COM,用USART进行升级。
[解决办法]
有些MCU支持的
自己不支持的就比较麻烦
[解决办法]
看芯片支不支持啊。
[解决办法]
只要你的芯片支持串口,支持Flash多次重写,就可以实现自己的BootLoader
[解决办法]