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.
.
.
Flash 只能单个位写0,不能写1。如果要写1,需要如下操作。把这个位所在的区全部擦除,全部置1将这个位的未知写0...
Programming Algorithm
- LINK向CPU发送Halt指令,CPU会暂停运行
- LINK通过AHB/APB总线将(驱动程序 + HEX文件的一段)下载进RAM
- LINK修改PC指针指向驱动程序的首地址
- LINK让CPU开始运行,让CPU通过这个驱动程序将HEX数据刷写入
- FlashCPU写入完成后,LINK再次写入 HEX文件的一段 再次运行CPU 直到HEX全部被写入
...
Algorithm Functions
为了实现这一过程,我们需要完成一些函数供MCU调用。
函数名称 | 描述 | |
---|---|---|
Init() | 必需 | 初始化设备 |
UnInit() | 必需 | 在其中一个闪存编程步骤之后,取消微控制器的初始化 |
EraseSector() | 必需 | 删除特定扇区的闪存内容 |
ProgramPage() | 必需 | 将应用程序写入闪存 |
EraseChip() | 可选 | 删除整个闪存内容 |
Verify() | 可选 | 比较闪存内容与程序代码进行 |
BlankCheck() | 可选 | x |
Init()
...
3
...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。