单片机运行时程序能修改自身代码吗?
有一款单片机内置RF模块,是否可以通过RF的命令随时更新内部程序FLASH的代码数据?就是所谓的“airprogramming"空中编程?换句话说单片机的程序能否实现自身...
有一款单片机内置RF模块,是否可以通过RF的命令随时更新内部程序FLASH的代码数据?就是所谓的“air programming" 空中编程? 换句话说单片机的程序能否实现自身代码的修改?是否需要一个引导(linker)?
请高手帮忙解答! 展开
请高手帮忙解答! 展开
3个回答
展开全部
首先看你的单片机是在root中跑还是在ram中跑,如果是在ram中,纠结有写的代码就ok了。如果是在rom中,则要跳转加一段引导程序,引导的时候只写rom,不干其他的。不过最好是有2份程序,每次只改一个,如果失败就运行正常的并把异常的再改回成正常的。
追问
程序一般都是固定在ROM中,只读区间运行吧? 怎么说程序区间也可以放到RAM中运行?
追答
由于我们的单片机教学书籍比较早,所以都是用的好几年以前的。8位单片机还横行的时候,基本都是在ROM中运行的。在ROM和RAM中运行区别是指令寄存器从哪个地方取指令的区别,两个都是可行的。目前来说,简单电子设备,冰箱,洗衣机,收音机什么的,控制为主,不需要UI的,基本用的都是老片子,都是在ROM中跑的。像现在的手机,ipad什么的都是在RAM中跑的。对了,想想你的电脑,程序都咋C盘的,启动后会被加载到RAM运行。这也就是在RAM中和ROM中的一个区别,RAM是要先加载进去再跑的,ROM是直接跑的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询