STM32H7系列芯片FLM下载算法文件介绍与应用

需积分: 5 54 下载量 88 浏览量 更新于2024-10-03 2 收藏 850KB ZIP 举报
资源摘要信息:"STM32H7系列芯片FLM下载算法文件" STM32H7系列芯片是由STMicroelectronics(意法半导体)公司生产的一款高性能ARM Cortex-M7核心的微控制器。STM32H7系列单片机具有高集成度、高性能、低功耗的特点,并且在工业控制、消费电子产品以及通信设备等领域有广泛的应用。FLM是Flash Loader Memorization的缩写,它是一种用于将程序下载到芯片上的算法文件,这个文件通常与Keil MDK-ARM开发工具配套使用。 在使用Keil开发环境进行STM32H7系列芯片编程时,FLM文件用于帮助实现芯片的程序下载和调试过程。当用户需要在目标板上下载和调试程序时,FLM文件是必须的,它包含了特定芯片型号的Flash存储器配置信息,包括存储区域的大小、地址范围、访问权限等,这些信息用于指导Keil MDK-ARM正确地将二进制文件烧写到Flash存储器中。 FLM文件放置路径指示了文件应该存放的位置。通常该文件位于Keil安装路径下的`ARM/Flash`目录。将FLM文件放置在正确的位置,可以确保Keil MDK-ARM在编译和下载程序时能够自动识别并使用相应的下载算法。 标签中的"stm32"是指STM32系列微控制器,这是ST公司生产的32位微控制器产品线,基于ARM Cortex-M系列处理器。"算法"指的是用于下载和烧写的算法,"arm"表示该芯片是基于ARM架构的微控制器,"嵌入式硬件"指的是该芯片作为嵌入式系统的核心硬件部件,"单片机"是微控制器的另一种说法。 压缩包子文件的文件名称列表中列出了不同型号的STM32H7系列芯片对应的FLM文件名。这些文件名反映了各自适用的硬件平台及存储器类型,例如: - `STM32H743I-eval_FMC.FLM`适用于STM32H743I-EVAL评估板,带有FMC接口。 - `STM32H7B3I_EVAL_FMC-NOR.FLM`适用于STM32H7B3I-EVAL评估板,带有FMC接口,且存储类型为NOR Flash。 - `STM32H7xx_MT25TL01G_DUAL.FLM`适用于具有MT25TL01G双芯片NOR Flash的STM32H7系列芯片。 - `STM32H7xx_MT25TL01G.FLM`适用于具有MT25TL01G单芯片NOR Flash的STM32H7系列芯片。 - `STM32H7xx_CM4.FLM`、`STM32H7xx_CM7.FLM`是适用于不同Cortex-M核心的STM32H7系列芯片,分别对应Cortex-M4和Cortex-M7核心。 - `STM32H7A-B3_Flash_2M.FLM`、`STM32H7A-B3_Flash_1M.FLM`和`STM32H7B0_Flash.FLM`则分别指出了芯片的Flash大小及型号。 了解以上信息对于开发STM32H7系列芯片的应用程序至关重要,它有助于开发者正确配置开发环境,并确保程序能够正确下载到目标硬件上进行运行和调试。
2022-12-24 上传
MDK程序下载 程序下载----FLM⽂件 ⽂件 MDK编程算法 编程算法   ⽤过MDK下载程序的⼩伙伴可能都知道,在下载程序之前需要都在Debug设置的Flash Download⼦选项卡选择编程算法。⼤多数时 候, 我们只要安装了芯⽚包之后,就可以直接得到对应的编程算法,并不需要我们去修改它。但是,当你是⼀个芯⽚包的开发者,或者你有独特 的下载需求(⽐如在你的程序⾥加⼊⼀些校验信息),这个时候你就需要去了解它了!   编程算法呢,说⽩就其实也就是⼀段程序,主要功能就是擦除相应的内存块,并将我们的程序写⼊到相应的内存区域上去。 在你点击下载按钮的时候,这段程序会被先下载到RAM上(RAM for Algorithm上的设置),然后才会通过它,将你的程序写⼊到 指定的内存区域内。 实现⼀个⾃⼰的编程算法 实现⼀个⾃⼰的编程算法   怎么去实现⼀个⾃⼰的编程算法?⾸先我们找到⾃⼰的MDK的安装路径,进⼊到ARM\Flash⽂件夹下(例如: D:\Keil_v5\ARM\Flash)。 这⾥有个编程算法的⼯程模板,复制这个⼯程到你的⼯程⽂件夹下,重命名你⾃⼰的想要的名字。   打开⼯程,⾥⾯主要有两个⽂件 FlashPrg.c 和 FlashDev.c:   FlashDev.c主要实现了⼀个设备相关的结构体(根据⾃⼰的Flash情况去实现)      ⽐如STM32L051实现如下:   FlashPrg.c实现了⼏个Flash编程相关的函数:   根据⾃⼰的需要去实现,STM32L051实现如下: 1 /* ----------------------------------------------------------------------------- 2 * Copyright (c) 2014 ARM Ltd. 3 * 4 * This software is provided 'as-is', without any express or implied warranty. 5 * In no event will the authors be held liable for any damages arising from 6 * the use of this software. Permission is granted to anyone to use this 7 * software for any purpose, including commercial applications, and to alter 8 * it and redistribute it freely, subject to the following restrictions: 9 * 10 * 1. The origin of this software must not be misrepresented; you must not 11 * claim that you wrote the original software. If you use this software in 12 * a product, an acknowledgment in the product documentation would be 13 * appreciated but is not required. 14 * 15 * 2. Altered source versions must be plainly marked as such, and must not be 16 * misrepresented as being the original software. 17 * 18 * 3. This notice may not be removed or altered from any source distribution. 19 * 20 * 21 * $Date: 18. November 2014 22 * $Revision: V1.00 23 * 24 * Project: Flash Programming Functions for ST STM32L0xx Flash 25 * --------------------------------------------------------------------------- */ 26 27 /* History: 28 * Version 1.00 29 * Initial release 30 */ 31 32 #include "FlashOS.H" // FlashOS Structures 33 34 typedef volat