头图

Flash Programming

.

https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/h...

Programming External Flash used with STM32 Devices
https://www.keil.com/appnotes/files/apnt_333.pdf
The Figure below explains the flash programming concept in Keil MDK.
FLM
.

.

Flash 只能单个位写0,不能写1。如果要写1,需要如下操作。把这个位所在的区全部擦除,全部置1将这个位的未知写0...

Programming Algorithm

  1. LINK向CPU发送Halt指令,CPU会暂停运行
  2. LINK通过AHB/APB总线将(驱动程序 + HEX文件的一段)下载进RAM
  3. LINK修改PC指针指向驱动程序的首地址
  4. LINK让CPU开始运行,让CPU通过这个驱动程序将HEX数据刷写入
  5. FlashCPU写入完成后,LINK再次写入 HEX文件的一段 再次运行CPU 直到HEX全部被写入

...

Algorithm Functions

为了实现这一过程,我们需要完成一些函数供MCU调用。

函数名称 描述
Init()必需初始化设备
UnInit()必需在其中一个闪存编程步骤之后,取消微控制器的初始化
EraseSector()必需删除特定扇区的闪存内容
ProgramPage()必需将应用程序写入闪存
EraseChip()可选删除整个闪存内容
Verify()可选比较闪存内容与程序代码进行
BlankCheck()可选x

Init()

...

3

...


step1nto
1 声望1 粉丝