加载flash并执行(LFAE)次级bootloader的示例

加载flash并执行(LFAE)次级bootloader的示例,第1张

 

介绍

这篇应用笔记描述了一个加载flash并执行(LFAE)次级bootloader的示例。这个应用是开发来增强AN2546中给出的加载RAM并执行主bootloader的,其中加入了允许随意写flash存储器的代码。

这篇文档的目的是向读者示范怎么实现一个次级bootloader。次级bootloader可以用来 在系统 或在个巨大的生产线中通过CAN或SCI接口将应用程序代码编程进设备,这样就不需要在生产中使用BDM接口来编程应用程序了。它假设主bootloader已经通过BDM或者第三方程序商编程进设备了。

一个运行在32位Windows *** 作系统PC上的接口小工具会传输所有的数据到MCU上。通信使用的是CAN或SCI。这个接口简单示例了怎么设置和监控传输。

下面是要进行的几个步骤。前提是LRAM主bootloader已经被加载进MCU的flash存储器中了。

接口和主bootloader决定了通信的方法和速度。

接口把LFAM次级bootloader传输给MCU并存储它到RAM中,然后执行它。

LFAM次级bootloader获得控制权并与接口重建链接。

接口传输应用程序代码到MCU,这样就把代码存储到了flash中。

在完成传输后,两个bootloader都会被移除,然后就会执行代码。

这篇文档中描述的bootloader和接口软件只用于示例,由此产生的任何后果概不负责。

概述

这篇应用笔记的目的是使用(AN2546给出的)LRAM bootloader的改进版本来下载一个更大的次级bootloader,这个bootloader可以把应用程序代码写入flash中。

对应的软件是AN3391SW。

缩略词

CAN — 控制器区域网络,Controller area network

LFAE — 加载flash并执行,Load flash and execute

LRAE — 加载RAM并执行,Load RAM and execute

LSB — 最低有效字节,Least significant byte

MCU — 微控制器单元,Microcontroller unit

MSB — 最高有效字节,Most significant byte

RAM — 随机访问存储器,Random access memory

SCI — 串行通信接口,Serial communicaTIon interface

BDM — 背景调试模块,Background Debug Module

S-Record(SREC)

bootloader能接受应用程序以S-resord(SREC)文件形式表示的二进制镜像。SREC文件给出用可印刷ASCII格式表示的二进制对象代码,使它们能很简单地在不同的系统间传输。SREC中的每一行都有一个前缀,如S1(头)或S9(尾)。与bootloader有关的前缀是S1和S2。

S1记录描述的是存储在逻辑地址中的数据,而S2记录描述的是放在全局地址中的数据。S1和S2行有同样的结构,如下:

 

 

Type字段包含前述的前缀。Record Length是一个1字节长(两个ASCII字符)的值,它说明了后面字段的字节数。Address字段给出了数据应该被写入的地址。在一个S1记录中,Address有两字节长(逻辑地址使用16位地址)。在S2记录中,Address有三字节长(标准的16位地址加上一个7bit PPAGE值)。Data字段包含要加载进存储器的数据。最后,通过加和Record Length、Address和Data字段对应的字节值然后取反来计算校验和。

需求

这个部分给出了通过主和次bootloader加载应用程序到MCU中所需的软硬件。

硬件

这篇应用笔记中描述的方法需要一个S12XE MCU,其flash中要预装好主bootloader。为了测试,使用了EVB9S12XEP100 Kit开发套件

还需要一个装着兼容32位Windows的 *** 作系统的PC来运行接口。PC必须有一个SCI端口或者如果使用CAN通信的话要有PC-CAN卡。为了测试,使用了Vector CANalyzer卡。

软件

所有为MCU准备的代码都在CodeWarrior V5.70中测试。

为了保证主次bootloader间快速平滑的转换,LRAE需要一些小改动。

CANFlag结构中需要另外加一个flag来说明bootloader正在使用的是SCI还是CAN接口。

在把控制权交给次级bootloader前,需要清零CAN帧接收标志位(canrflg.rxf)。

功能描述

       

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2585418.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-08
下一篇 2022-08-08

发表评论

登录后才能评论

评论列表(0条)

保存