Live Firmware Update Reference Design with C2000™ Real-Time MCUs,LFU

news/2025/1/12 17:47:02/

1、系统描述在类似于服务器供电、计量等的应用程序中,系统需要连续运行以减少停机时间。但通常,在固件升级期间,由于错误修复、新功能和/或性能改进,系统将从服务中删除,从而导致相关实体停机。这可以用冗余模块来处理,但会增加系统的总成本。另一种方法,称为实时固件更新(LFU),允许在系统仍在运行时更新固件。切换到新的固件可以通过或不重置设备来完成,后者更复杂。
本参考指南介绍了在TMS320F28003x或TMS320F28004x设备上使用两个闪存库而没有设备重置的LFU的详细信息,详细介绍了所涉及的具体挑战以及如何解决这些挑战的建议。LFU是在C2000M数字功率降压转换器BoosterPack参考设计上实现的。该文档演示了在C28x CPU或CLA上运行主控制回路的LFU功能。1.1关键系统规格
2、框图基于LFU的系统框图如图2-1所示。
在这里插入图片描述
3、设计注意事项
3.1、构建模块LFU设计由许多构建块组成:一个发出LFU命令的桌面主机应用程序,目标设备Flash上的自定义引导程序,与主机通信并启用LFU,连接主机和目标的通信外设(例如SCI/UART, CAN, I2C等),下载和执行的LFU兼容的应用程序,支持LFU的编译器,具有LFU相关硬件支持的MCU,以及带有多个物理上独立的闪存库的闪存。双或多个闪存库允许驻留在一个闪存库上的应用程序固件执行,而另一个闪存库被更新。
3.2、Flash分区双板Flash分区示意图如图2-2所示。每个库中的两个扇区被分配给自定义引导加载程序,它由Flash库选择逻辑、SCl内核和Flash api组成。这些在固件升级期间不会改变。库1不包含库选择逻辑。库中其余的Flash扇区分配给应用程序。库选择逻辑允许引导加载程序确定哪个(如果有的话)闪存库被编程,以及哪个库包含最新的应用程序固件版本。通过暗示,该函数是软件系统的入口点。Scl内核是一个函数,它实现从主机传输映像,并通过Flash编程api(在Flash或ROM中)对Flash进行编程。在第2区保留了几个位置来存储以下信息:
start -表示Flash擦除完成,程序/验证即将开始。
固件修订号(REV)——由库选择逻辑用于确定库0和库1之间较新的固件版本。
KEY -如果此位置包含特定模式,则认为库中的固件有效。
在这里插入图片描述

3.3、应用LFU流程LFU软件流程如图2-3所示。设备复位后,执行总是在bank选择逻辑中开始,该逻辑根据固件修订字段REV确定从哪个Flash bank执行,并将控制权传递给相应的应用程序。在必要的系统初始化和中断启用后,一个实时控制回路在一个ISR内执行,对应于一个特定的中断向量。在isr之间的空闲时间,执行一个由低优先级函数组成的后台循环。如果主机发出LFU命令,它会触发MCU中的SCI接收中断,并执行相应的ISR(优先级低于控制环路ISR)并识别主机命令请求。在后台循环中,命令被解析,LFU请求被识别,控制权传递给自定义引导加载程序BOOT,即SCI Flash内核,它从主机下载新的应用程序映像并对适当的Flash库进行编程。如果Flash bank 1上的应用程序正在运行,则控制权将传递给bank 1上的SCI Flash Kernel,从而编程bank 0。一旦新的应用程序更新在Flash中,切换的过程切换到新的固件可以开始了。
在这里插入图片描述

叙述来源
在这里插入图片描述


http://www.ppmy.cn/news/1003782.html

相关文章

RHEL8部署ssh蜜罐

RHEL8部署ssh蜜罐 蜜罐cowrie简介安装运行cowrie安装依赖包创建cowrie用户下载cowrie源码创建Python3虚拟环境pip安装依赖包 配置防火墙firewalld防火墙配置iptables防火墙配置 mysql配置--非必须导入到数据库 修改配置文件创建模拟SSH账号密码泄露文件配置文件 启动蜜罐查看日…

6-14 数字金字塔 (15 分)

6-14 数字金字塔 (15 分) 本题要求实现函数输出n行数字金字塔。 函数接口定义: void pyramid( int n ); 其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注 意每个数字后面跟一个空格。 输入样…

服务器安装系统教程

虽然装好了显卡,但是机器运行一会,CPU就飙升到100%。找售后解决,也没有完全解决。所以这次试试换个别的系统是否能修复。 本来计划是后面组raid、重装系统的,得,又提前了。 这里说一下,这个流程未必是最好…

谷歌语音助手战略调整:开发 AI 新版,调整裁员计划

北京时间8月2日晚间,谷歌通过对 “谷歌助手” 团队进行调整和裁员,意图改变其开发方向。经过此次变动,谷歌计划借助最新的生成式人工智能技术和大型语言模型来提升 谷歌助手 的能力。此次调整表明语音助手市场未达到先前的预期。 亚马逊旗下的…

HTTP隧道识别与防御:机器学习的解决方案

随着互联网的快速发展,HTTP代理爬虫已成为数据采集的重要工具。然而,随之而来的是恶意爬虫对网络安全和数据隐私的威胁。为了更好地保护网络环境和用户数据,我们进行了基于机器学习的HTTP代理爬虫识别与防御的研究。以增强对HTTP代理爬虫的识…

static和volatile关键字的作用

1.static 修饰局部变量时: static用于修饰局部变量时,他的生命周期由随着其所在函数的开始而开始,函数调用结束而结束变成了由整个程序也就是整个进程开始时而开始,进程结束时其生命周期也随之结束。 修饰全局变量时&#xff1…

pycharm中 cv2. 无函数提示跳出解决方法

1、找到当前解释器安装目录 例如: 2、进入D:\Python37\Lib\site-packages\cv2文件,进入cv2文件夹: 找到cv2.pyd, 把cv2.pyd复制一份,放到上层文件夹下,即site-packages下 3、重启pycharm,就会有函数提示

MySQL的索引使用的数据结构,事务知识

一、索引的数据结构🌸 索引的数据结构(非常重要) mysql的索引的数据结构,并非定式!!!取决于MySQL使用哪个存储引擎 数据库这块组织数据使用的数据结构是在硬盘上的。我们平时写的代码是存在内存…