什么是Flash烧写算法

Flash编程算法是一种用于擦除应用程序或将应用程序下载到微控制器Flash的程序代码。MDK本身支持的器件都自带下载算法,存放在MDK各种器件的软件包里面,以STM32U5为例,算法存放在\Keil Packs\Keil\STM32U5xx_DFP\2.1.0\CMSIS\Flash(软件包版本不同,数值 2.1.0 不同),开发板上通过MCU外设扩展的存储器件,编程算法需要我们自己生成。
MDK中编程算法的核心是通过MDK创建一批与地址信息无关的函数,函数实现的功能主要有初始化、擦除、编程、读取、校验等(注意:烧写算法源码中,禁止所有中断使用),在 MDK 调试下载阶段,会将算法文件加载到芯片的内部 RAM 里面(加载地址可以通过 MDK 设置), MDK通过与这个算法文件的交互, 实现程序下载以及 调试阶段数据读取等操作。

Flash下载步骤

在进入下一个Flash下载步骤之前,必须完成所有这些步骤。例如,在编写第一个Flash页面之前,首先要擦除所有相关扇区。多个步骤中需要的Flash算法在接下来的每一步中都要再次下载。

  1. 连接调试器:建立调试器连接。
  2. 加载AXF文件:在调试驱动程序中加载和缓存AXF文件中的代码(在主机PC端)。如果需要,可以在Flash
  3. 下载之前加载和合并多个AXF文件。
  4. 擦除:擦除整个芯片或即将被新编程的扇区。
  5. 程序:由加载的AXF文件和Flash下载设置对话框覆盖的程序页面。
  6. 验证:验证所编程的区域是否包含预期的代码。
  7. 关闭Flash下载:完成Flash下载,关闭核心调试。
  8. 重置和运行应用程序:执行HW复位,即通过设备的外部复位引脚复位。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐