0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎么样实现烧写算法FLM文件

单片机匠人 来源:张飞实战电子 作者:黄忠老师 2021-11-01 09:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

当我们在开发过程中用到MDK下载程序的时候可能都知道,在下载程序之前需要都在Debug设置的Flash Download子选项卡选择编程算法。大多数时候,我们只要安装了芯片包之后,就可以直接得到对应的编程算法,并不需要我们去修改它。但是,当我们是一个芯片包的开发者,或者我们有独特的下载需求(比如在程序里加入一些校验信息),这个时候我们就需要去了解它了!

编程算法其实就是一段程序,主要功能就是擦除相应的内存块,并将我们的程序写入到相应的内存区域上去。在点击下载按钮的时候,这段程序会被先下载到RAM上(RAM for Algorithm上的设置),然后才会通过它,将用户写的程序写入到指定的内存区域内。

怎么去实现一个自己的编程算法?首先我们找到自己的MDK的安装路径,进入到ARMFlash文件夹下。这里有个编程算法的工程模板,复制这个工程到你的工程文件夹下,重命名你自己的想要的名字。

打开工程,里面主要有两个文件 FlashPrg.c 和 FlashDev.c:

FlashDev.c主要实现了一个设备相关的结构体(根据自己的Flash情况去实现)

5d793bf2-3a19-11ec-82a9-dac502259ad0.png

比如STM32F103实现如下:

5dd88800-3a19-11ec-82a9-dac502259ad0.png

FlashPrg.c实现了几个Flash编程相关的函数:

5e3d6dc4-3a19-11ec-82a9-dac502259ad0.png

根据自己的需要去实现,从上面我们就可以看出,下载程序的时候就是调用了上面的几个函数,跟我们自己写Flash没有太大的区别。那么程序都编程完成之后,怎么生成FLM文件呢?我们先编译工程,完成之后你去看你的工程输出目录,这个时候你就已经可以找到FLM后缀的文件了,这个就是我们自己的编程算法,把它复制到 ‘ MDK安装路径 ’ARMFlash下面就可以了,在选项卡里选择我们自己的编程算法就可以使用了。但是为什么我们自己的工程就生成不了FLM文件呢?工程中的.axf文件跟.FLM文件是一样的,把.axf后缀改为.FLM即可。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    462

    文章

    53539

    浏览量

    459173
  • FlaSh
    +关注

    关注

    10

    文章

    1715

    浏览量

    154710
  • PLM
    PLM
    +关注

    关注

    2

    文章

    148

    浏览量

    21949

原文标题:烧写算法FLM文件如何实现呢?

文章出处:【微信号:gh_e7f294a514ca,微信公众号:单片机匠人】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    迅为RK3588开发板Android系统及注意事项

    迅为RK3588开发板Android系统及注意事项
    的头像 发表于 12-03 15:17 5772次阅读
    迅为RK3588开发板Android系统<b class='flag-5'>烧</b><b class='flag-5'>写</b>及注意事项

    往flash里面的是.elf文件还是.hex文件?裸机应该没办法识别.elf文件

    往flash里面的是.elf文件还是.hex文件?裸机应该没办法识别.elf文件吧?
    发表于 11-05 07:02

    CW32L012实现外部flash下载算法

    外部flash或者内置的片上flash,都是编译器通过调用写好的FLM文件实现下载,单片机内部的安装pack包就会有(官方实现),外部flash的情况比较复杂,例如用的哪种flash
    的头像 发表于 10-09 17:38 1201次阅读
    CW32L012<b class='flag-5'>实现</b>外部flash下载<b class='flag-5'>算法</b>

    FLASH/编程白皮书

    白皮书:如何Flash——不同场景不同需求下的选择认识Flash NAND vs. NOR如何/编程不同方案比较
    发表于 07-28 16:05 0次下载

    【HZ-RK3568开发板免费体验】系统

    镜像合并为一个统一固件。可以说,单个统一固件和多个分区镜像本质是一的。 笔者这里使用合众官方提供的固件。 2 USB OTG固件 使用USB OTG
    发表于 07-25 09:40

    FPGA远程bit文件和调试ILA指南

    在 FPGA 开发过程中,bit文件和使用ILA进行调试是再常见不过的操作。但如果 FPGA 板卡被放在机房,或者通过PCIe插在服务器上,那么每次调试时我们都不得不带着笔记本电脑跑去机房或服务器旁,接上 JTAG 线后才能
    的头像 发表于 06-05 16:41 1992次阅读
    FPGA远程<b class='flag-5'>烧</b><b class='flag-5'>写</b>bit<b class='flag-5'>文件</b>和调试ILA指南

    AGM FPGA/MCU文件类型有哪些及用途

    AGM FPGA/MCU文件类型有哪些及用途 AGM有FPGA和MCU器件,那FPGA/MCU
    发表于 03-14 09:54

    迅为RK3588开发板技术分享 TF卡大于4G容量镜像

    RK3588技术分享 | TF卡大于4G容量镜像
    的头像 发表于 03-10 14:39 993次阅读
    迅为RK3588开发板技术分享 TF卡<b class='flag-5'>烧</b><b class='flag-5'>写</b>大于4G容量镜像

    Linux固件中的陷阱:文件系统异步写入引发的问题

    在工业生产中,固件是确保产品正常运行的关键环节。本文通过一个实际案例,揭示了Linux系统下因文件写入异步性导致的固件不完全问题。客
    的头像 发表于 03-07 11:34 639次阅读
    Linux固件<b class='flag-5'>烧</b><b class='flag-5'>写</b>中的陷阱:<b class='flag-5'>文件</b>系统异步写入引发的问题

    【北京迅为】itop-3568 开发板openharmony鸿蒙及测试-第1章 体验OpenHarmony—镜像

    【北京迅为】itop-3568 开发板openharmony鸿蒙及测试-第1章 体验OpenHarmony—镜像
    的头像 发表于 03-04 16:31 875次阅读
    【北京迅为】itop-3568 开发板openharmony鸿蒙<b class='flag-5'>烧</b><b class='flag-5'>写</b>及测试-第1章 体验OpenHarmony—<b class='flag-5'>烧</b><b class='flag-5'>写</b>镜像

    请问DLPC4422 flash首次需要离线完成吗?

    做了一块dlpc4422单板,flash第一次需要使用片机进行吗,文件是.img
    发表于 02-26 07:07

    DLPC350的时候,总是卡在3%,为什么?

    无法连接DLP350.再次断电,把D18(HOLD_BOOT_LOADER)管脚拉低,再次上电,发现LightCrafter4500,可以识别DLP350.然后尝试DLPR350PROM_v4.1.0.bin文件,依然卡在3
    发表于 02-21 08:05

    迅为RK3588开发板实时系统编译-Preemption系统/ Xenomai系统编译-实时系统-固件

    到RKDevTool_Release_v2.84 文件夹,如下图所示: 2.拷贝镜像 进入 RKDevTool_Release_v2.84 文件夹,将镜像放在器的 image
    发表于 02-18 11:32

    请问DLPC3479如何固件?

    1.已下载了3479firmware,.img文件。请问是直接通过器将.img文件写到spi flash中吗?还是先将.img解压(
    发表于 02-18 06:31

    飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程介绍之所需镜像

    \\files目录下: 我们提供的工具包中已经包含了默认配置的镜像,如果想要自己的镜像内容,替换对应目录下的文件即可,需要注意的点是镜像名称一定要修改和默认镜像名称一的名字,才
    发表于 12-20 09:05