单片机自编程及bootloader设计

单片机自编程及bootloader设计

ID:33648144

大小:189.50 KB

页数:7页

时间:2019-02-28

单片机自编程及bootloader设计_第1页
单片机自编程及bootloader设计_第2页
单片机自编程及bootloader设计_第3页
单片机自编程及bootloader设计_第4页
单片机自编程及bootloader设计_第5页
资源描述:

《单片机自编程及bootloader设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、·导读:Bootloader是在单片机上电启动时执行的一小段程序。也称作固件,通过这段程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用应用程序准备好正确的环境。o关键字o单片机  自编程  Bootloader  μPD78F0881  ·  Bootloader是在单片机上电启动时执行的一小段程序。也称作固件,通过这段程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用应用程序准备好正确的环境。  Boot代码由MCU启动时执行的指令组成。这里的loader指向

2、MCU的Flash中写入新的应用程序。因此,Bootloader是依赖于特定的硬件而实现的,因此,在众多嵌入式产品中目前还不可能实现通用Bootloader。  Bootloader的最大优点是:在不需要外部编程器的情况下,对嵌入式产品的应用代码进行更新升级。它使得通过局域网或者Intemet远程更新程序成为可能。例如,如果有5000个基于MCU的电能表应用程序需要更新,电能表制造商的技术人员就可以避免从事对每一个电能表重新编程的巨大工作量,通过使用Bootloader的功能,由控制中心通过电能表抄表系统网络,远程对5000个电表重新编程。可见,Bootloader功能

3、对于嵌入式系统的广泛应用具有十分重要的意义。  178K0/Fx2系列单片机简介  78K0/Fx2系列是带CAN控制器的8位单片机,该系列单片机广泛应用于汽车电子,智能仪表等领域。其内置POC(可编程上电清零电路)/LVI(可编程低电压指示器),单电压自编程闪存,引导交换功能(闪存安全保护),具有低功耗、宽电压范围、超高抗干扰等性能。  78K0系列单片机支持自编程(Self-programming)。所谓自编程,是指用Flash存储器中的驻留的软件或程序对Flash存储器进行擦除/编程的方法。通过单片机的自编程功能,可以设计Bootloader程序,通过串口等通信接

4、口实现对产品重新编程、在线升级的功能。  以μPD78F0881为例。μPD78F0881为78KO/Fx2系列中的一款44管脚单片机,内置32KBFlashROM,2KBRAM,自带2个串行通信接口。其内部Flash结构如图1所示。为了方便实现擦除和编程,人为地将整个Flash分成若干个block,每个block大小为1KB。block为自编程库函数中空白检测、擦除、校验的最小单位。blockO从地址0000H开始,程序都从0000H开始执行。block0~block3共4KB存储空间为Bootloader程序存储区域。block4~block31为应用程序存储区域。

5、    为了防止Bootloader自身的升级失败,设计了引导交换功能。该功能定义2个簇,即Bootcluster0和Bootcluster1。Bootclustee0为block0~block3的4KB存储空间,Bootcluster1为block4~block7的4KB存储空间。因此,实际运用过程中,一般把应用程序的开始定义在2000H,也就是从block8开始。  Flash地址为0000H~FFFFH。7FFFFH~FFFFH存储空间为保留区域以及特殊功能寄存器区域等,用户无法对其进行编程。  2自编程  2.1自编程环境  2.1.1硬件环境  FLMDO引脚

6、是78KO/Fx2系列单片机为Flash编程模式设置的,用于控制MCU进入编程模式。在通常操作情况下,FLMDO引脚下拉到地。要进入自编程模式,必须使FLMDO引脚置成高电平。因此,通过一个普通I/O接口控制FLMD0引脚的电平。如图2所示。    2.1.2软件环境  1)使用通用寄存器bank3,自编程库函数,需要调用通用寄存器bank3。因此,在自编程时,不能对通用寄存器bank3操作。  2)使用100BRAM(入口RAM)作为隐藏ROM中函数的工作区,入口RAM,是Flash存储器自编程样例库所使用的RAM区域。用户程序需要保留着块区域,当调用库时,需要指定这

7、片区域的起始地址。入口RAM地址可以指定在FB00h~FE20h之间。  3)4~256BRAM作为数据缓冲区,必须是FE20H~FE83H以外的内部高速RAM区域。  4)最大39BRAM作为隐藏ROM函数的堆栈。  5)隐藏ROM中的函数被0000H~7FFFH中的应用程序调用。  2.2自编程流程  自编程功能利用自编程软件库完成用户程序对Flash内容的重新编程。如果在自编程的过程中有中断发生,那么自编程将暂停来响应中断。中断结束,自编程模式恢复后,自编程过程将继续进行。采用汇编语言编写78K0/Fx2自编程软件库,如表1所示。 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。