Flash 编程算法(对于 MDK,简称 FLM)是一种将应用程序擦除或下载到 Flash 设备的软件。它通常包含由 DFP 支持的预定义 FLM 文件。CMSIS包中有一个创建算法的模板。在 MDK 中,Flash 编程算法是一个 FLM 文件。
通俗的来说,编程算法其实就是一段程序,类似之前提到的
https://dadeju.github.io/2025/05/08/%E9%AA%8C%E8%AF%81%E4%BA%91%E9%80%94Flash-driver%E6%94%BE%E5%9C%A8RAM%E4%B8%AD%E8%BF%90%E8%A1%8C/。
主要功能就是擦除相应的内存块,并将我们的程序写入到相应的内存块中。使用调试器下载程序时,这段程序会被先下载到RAM中,然后才通过它,将用户写的程序写入到指定的内存区域中。大多数情况下我们不需要考虑这个,但是如果我们需要用到外部Flash,就需要手动制作烧录算法,这里不做展开。
我第一次接触到这个还是一次在下载时keil报错:
这种情况是缺少烧录算法,需要手动添加
我们熟知的Keil的PACK包,其实本质上就是一个压缩包,把.pack后缀直接改成.zip。然后使用解压缩
其中flash文件夹里面就是烧录算法了。
下面的SVD(System View Description) 文件是 CMSIS(Common Microcontroller Software Interface Standard) 中的定义的一个 XML 格式的纯文本文件,其包含了芯片内核、芯片所具有的外设以及内核和外设的寄存器的完整描述(详细到寄存器的每个 BIT 位)。
最后的PDSC也是文本文件可以直接打开,里面有芯片型号的资源的一些描述
国民技术N32的SDK中提供了FLM制作的demo,如果需要用到外部flash,方便用户自己创建FLM文件,这必须给国民点赞了
MDK FLM文件介绍