利用Kinetis微控制器的Flash存储器交换功能实现稳健的在线固件更新.PDFVIP

  • 14
  • 0
  • 约2.34万字
  • 约 19页
  • 2018-03-03 发布于天津
  • 举报

利用Kinetis微控制器的Flash存储器交换功能实现稳健的在线固件更新.PDF

利用Kinetis微控制器的Flash存储器交换功能实现稳健的在线固件更新

Freescale Semiconductor Document Number: AN4533 应用笔记 Rev 0, 06/2012 利用Kinetis 微控制器的Flash 存储 器交换功能实现稳健的在线固件更新 作者: Maclain Lobdell 汽车、工业化与跨市场解决方案小组 内容 1 简介 1 简介 1 2 应用要求 1 Kinetis 微控制器上的程序Flash 交换功能为远程在线系统 软件更新提供了一种稳健途径。本应用笔记将描述如何利 3 程序Flash 交换概述3 用该交换功能。本文将讨论常见问题并提供一个应用程序 4 交换步骤 6 示例。 5 交换详情 8 本应用笔记面向应用Flash 交换功能的应用程序的系统开 发人员。本应用笔记会提及在线通信的方法,但这不是本 6 多任务应用程序概述 11 文讨论的重点。 7 软件示例 11 关于Flash 交换的更多重要信息,请参见本应用笔记中所讨 8 结论 18 论具体器件的参考手册。 9 参考资料 18 2 应用要求 许多应用都需要可靠的在线系统更新方法。这就要求具备 一种机制,以便远程更新系统软件/ 固件来修复漏洞并进行 重要软件升级。重要的应用(如电气计量)在更新时要求 极短的系统停机时间,必须能耐受通信错误,并且不应存 在产生导致系统停止工作的问题的风险。更新过程必须能 够适应各种困难环境。许多应用的电源都不够可靠,系统 更新过程必须能在可能断电的情况下继续工作。 远程更新系统软件需要通过通信接口(例如:Wi-Fi 、 Zigbee® 、UART 、SPI、I2C 、USB 和以太网等)传输新代 码。在系统上执行的软件上传程序必须能将代码接收并编 程到本地存储器中。通常,出厂编程是通过JTAG 或后台 调试模式(BDM )等本地调试连接完成的,但这些连接无 © 2012 Freescale Semiconductor, Inc. 应用要求 法远程实现。从经济角度考虑,派技术人员到系统所在地点进行现场重编程也是不可行的做法。因此,可靠的在线 更新方法必不可少。 2.1 远程固件更新系统 2.1.1 传统的远程更新系统 传统的远程固件更新系统依靠引导加载应用,其在系统复位时执行,然后选择要运行的应用程序或执行应用程序更 新程序。远程服务器将新固件传送到系统,并编程到其本地存储器中。 大多数情况下,当系统更新开始后,主应用会暂停运行。随后,主应用代码将被擦除并重新编程。主应用仅有一个 副本,因此如果在接收并编程新代码时出现未检测到的错误,系统可能无法正常工作,除非下载新应用,否则可能 停止运行。最坏情况是系统无响应,而且无法强制进入用于系统更新的引导加载模式。 优势 • 易于实现 • 无需保存应用的备份副本,因此所需Flash 存储器空间更少 劣势 • 在更新过程中必须停止主应用 • 无法恢复到已知可以正常工作的应用 • 在更新过程中可能无法承受断电 2.1.2 具有代码备份的系统 在系统的存储器中可以设置完整的软件备份。如果检测到严重错误,系统可以恢复到主应用任务的备份副本。可使 用引导加载程序选择要执行的主应用的正确副本。 优势

文档评论(0)

1亿VIP精品文档

相关文档