首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

单片机自编程及Bootloader设计(2)

单片机自编程及Bootloader设计(2)

 2 自编程
  2.1 自编程环境
  2.1.1 硬件环境
  FLMDO引脚是78KO/Fx2系列单片机为Flash编程模式设置的,用于控制MCU进入编程模式。在通常操作情况下,FLMDO引脚下拉到地。要进入自编程模式,必须使FLMDO引脚置成高电平。因此,通过一个普通I/O接口控制FLMD0引脚的电平。如图2所示。

  

  2.1.2 软件环境
  1)使用通用寄存器bank3,自编程库函数,需要调用通用寄存器bank3。因此,在自编程时,不能对通用寄存器bank3操作。
  2)使用100 B RAM(入口RAM)作为隐藏ROM中函数的工作区,入口RAM,是Flash存储器自编程样例库所使用的RAM区域。用户程序需要保留着块区域,当调用库时,需要指定这片区域的起始地址。入口RAM地址可以指定在FB00h~FE20h之间。
  3)4~256 B RAM作为数据缓冲区,必须是FE20H~FE83H以外的内部高速RAM区域。
  4)最大39 B RAM作为隐藏ROM函数的堆栈。
  5)隐藏ROM中的函数被0000H~7FFFH中的应用程序调用。
  2.2 自编程流程
  自编程功能利用自编程软件库完成用户程序对Flash内容的重新编程。如果在自编程的过程中有中断发生,那么自编程将暂停来响应中断。中断结束,自编程模式恢复后,自编程过程将继续进行。采用汇编语言编写78K0/Fx2自编程软件库,如表1所示。

  

  自编程操作流程如图3所示,当单片机收到自编程执行信号时,开始进入自编程模式。将FLMDO引脚设置成高电平,初始化入口RAM,为自编程库函数开辟空间。当确认FLMD0为自编程状态时,开始检查需要编程区域是否为空白区域。当被编程区域不是空白区域时,先将其擦除,然后在此区域进行编程。编程结束后进行校验。若校验无误,则将FLMDO引脚设置成低电平,退出自编程模式。

  

继承事业,薪火相传
返回列表