在应用编程MAXQ微控制器中可分区擦除的程序和数
时间:03-19
来源:互联网
点击:
采用基于RAM的闪存例程实现IAP
当不要求故障恢复时,可采用基于RAM的闪存程来刷新MAXQ微控制器。该方法要求主程序拷贝一个小的、可再定位的闪存编程例程到RAM中,然后再跳转到该例程。表7列出了从RAM中执行代码需要注意的几个限制。
表7. 从RAM中执行代码的限制
SC.UPA must be set to 0 before executing a RAM-based routine. This means that the application must jump to the RAM routine from the code segments P0 P1. |
RAM cannot be accessed as data and program at the same time. This means that only the registers and hardware stack are available for data storage. |
The Interrupt Vector must point to a RAM routine if interrupts are enabled. Typically interrupts are turned off and polling is used due to the simplicity of the RAM reflash routine. |
闪存例程一般通过UART或者CAN接口来进行通信。为实现更可靠的错误恢复机制,最好是接收小的数据包,并发送某种类型的确认信息。图6给出了一个更新例程。记住,在掉电之前,如果没有成功完成重新编程,需要通过JTAG端口对微控制器重新编程。
图6. 简化的RAM更新例程流程图
- 智能铅酸蓄电池充电器的设计(01-02)
- 用微控制器或 DSP 电路控制开机/关机功能(06-22)
- 微控制器的市场前景及发展趋势(06-21)
- 基于AT89S52汉字多方式显示屏的设计(01-06)
- 灵活高效的数字解决方案满足新兴电源管理需求(01-10)
- 基于ARM微处理器的十回路智能配电监控单元的设计(11-17)