本PDF文档详细介绍了使用MDK(微控制器开发工具包)进行项目编译后的FLM文件下载过程,涵盖步骤说明与常见问题解答。
使用MDK下载程序的用户可能知道,在下载之前需要在Debug设置中的Flash Download子选项卡选择编程算法。大多数情况下,只要安装了芯片包之后就可以直接获得对应的编程算法,并不需要自己去修改它。然而,如果你是芯片包开发者或者有特殊的下载需求(例如在你的程序里加入一些校验信息),你就需要了解这个过程。
编程算法实际上就是一段用于擦除相应内存块并将我们的程序写入到指定内存区域的代码。当你点击下载按钮时,这段代码会被先加载到RAM上,然后通过它将你的程序写入目标地址。
如何实现一个自己的编程算法?首先找到MDK安装路径下的ARM\Flash文件夹(例如:D:\Keil_v5\ARM\Flash)。这里有一个编程算法的工程模板,复制这个工程到你项目的文件夹下,并重命名为你想要的名字。打开项目后可以看到两个主要文件:
1. FlashDev.c 文件实现了与设备相关的结构体。
2. FlashPrg.c 文件包含了几个闪存编程相关的函数。
根据你的需求和特定的Flash情况来实现这些功能,例如STM32L051芯片的情况如下:
```c
/*
* Copyright (c) 2014 ARM Ltd.
*
* This software is provided as-is, without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to certain restrictions.
*
* $Date: 18 November 2014
* $Revision: V1.00
*
* Project: Flash Programming Functions for ST STM32L0xx Flash
*/
#include FlashOS.H // FlashOS Structures
typedef volatile struct {
/* 设备相关的结构体定义*/
} DEVICE;
int main() {
// 实现与设备的交互,如擦除和写入操作
}
```
通过这种方式你可以创建符合自己需求的编程算法。