基于自编程功能的MCUBootloader设计-亚博手机版

基于自编程功能的MCUBootloader设计-亚博手机版

本文摘要:OFweek电子工程网络Bootloader是在单片机通电时继续执行的部分段程序。

亚博手机版怎么下载

OFweek电子工程网络Bootloader是在单片机通电时继续执行的部分段程序。也称为固件,通过该程序初始化硬件设备,创建内存空间的相同构图,使系统的硬件和软件环境恢复到适当的状态,最后准备用于调用应用程序的正确环境的引导子这里的loader是指在MCU的Flash中加载新应用程序。

因此,Bootloader依赖于特定的硬件构建,因此许多嵌入式产品无法构建标准化的Bootloader。Bootloader的优点仅次于改版升级嵌入式产品的应用程序代码,而不需要外部手持编程器。由此,可以利用局域网或Intemet远程改版程序。

例如,如果基于5000个MCU的电能表应用程序必须改版,电能表制造商的技术人员可以防止每个电能表专门用于新编程的巨大工作量。可见Bootloader功能对嵌入式系统的广泛应用具有非常重要的意义。

178K0/Fx2系列单片机概述78K0/Fx2系列是带CAN控制器的8位单片机,该系列单片机是汽车电子、智能仪表等POC (专业内置LVI (可编程低电压指示灯),以单电压自编程存储器引领相互交换功能(存储器安全维护),具备低功耗、长电压范围、超高抗干扰等性能。78K0系列单片机反对自行编程。所谓自编程,是用闪存中待机的软件和程序展开Flash存储器的读出/编程的方法。以利用单片机的自编程功能设计Bootloader程序,通过串行端口等通信接口构建产品新编程、在线升级功能的PD78F0881为例PD78F0881是78KO/Fx2系列的44针单片机,内置32KBFlashROM、2KBRAM,有两个串行通信接口。

其内部的Flash结构如图1右图所示。为了便于读取和编程,将整个Flash人为地分为几个block,每个block尺寸为1KB。

亚博手机版怎么下载

block是自编程库函数中空白检测读出验证的较大单位。blockO从地址0000H开始,程序全部从0000H开始继续执行。block0~block3共计4KB的内存空间是Bootloader程序内存区域。block4~block31是应用程序存储器区域。

旨在领导互换功能,以避免Bootloader本身的升级结束。此功能定义了两个群集:引导群集0和引导群集1。

Bootclustee0是block0~block3的4KB内存空间,Bootcluster1是block4~block7的4KB内存空间。因此,在实际的运用中,一般将应用程序的开始定义为2000H,即block8的开始。Flash地址从0000 h到ffffh。

7FFFFH~FFFFH内存空间是保有区域和类似功能寄存器区域等,用户不能展开编程。2自身编程2.1自身编程环境2.1.1硬件环境FLMDO插槽由78KO/Fx2系列单片机设定为Flash编程模式用,用于控制MCU向编程模式的转移要进入自编程模式,FLMDO插槽必须处于高级别。因此,用普通的I/O模块控制FLMD0插槽的级别。

如图2的右图所示。2.1.2软件环境1 )用于通用寄存器组3,自编程库函数必须调用通用寄存器组3。因此,自编程时无法支持通用寄存器组3的操作员。

一个工作区,使用100BRAM (入口RAM )作为隐藏ROM中的函数,该区域是闪存用于从示例库编程的RAM区域。用户程序必须保持块区域,调用库时,必须登录该区域的连接对象。入口RAM地址可以在FB00h~FE20h之间注册。

3)4~256BRAM需要FE20H~FE83H以外的内部高速RAM区域作为数据缓冲区。4 )作为隐藏ROM函数的堆栈仅次于39BRAM。

亚博手机版怎么下载

5 )隐藏ROM中的函数由0000H~7FFFH中的应用程序调用。2.2自编程流编程功能利用自编程软件库,在用户程序对Flash内容进行新的编程自编程的中途再次发生中断时,自编程停止并中止中断完成,编程模式完全恢复后,编程进程结束后展开。

表1如右图所示,用汇编语言创建78K0/Fx2自编程软件库。本编程操作员的流程如图3右图所示,单片机接收本编程继续执行信号后,开始转移到本编程模式。将FLMDO插槽设置为高级别,初始化入口RAM,为自编程库函数创建空间。

确认FLMD0处于自编程状态后,开始检查需要编程的区域是否为空闲区域。如果编程区域不是空白区域,则再次读取行,在该区域展开编程。编程完成后,展开检查。如果检查正确,则使FLMDO插槽为低电平,解除自编程模式。

3引导交换产品的领先程序升级还包括应用程序升级和引导加载程序本身的升级. 为了避免领导程序在升级过程中再次发生错误,MCU无法启动,设计了领导交换功能。4我想说明领导相互交换的构建过程。1 )现有的引导程序首先将新的引导程序编程到相互交换读取集群1(Bootcluster1),然后设定开始相互交换的标志位,使看门狗强制退位。

2 )退位开始后,MCU看到互换标志位,然后从互换读取集群1开始。互相交换读取群集1的新Boot程序检查互相交换标志位。当互换标志位变更为1时,新的Boot程序读出互换读取集群0(Bootcluster0)区域,读出自身,读出互换读取集群o,然后将互换标志位设为0,将看门狗。

本文关键词:亚博手机版怎么下载,亚博手机版

本文来源:亚博手机版怎么下载-www.workroome01107.com

相关文章

评论已关闭。

网站地图xml地图