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

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

    关注

    446

    文章

    47685

    浏览量

    408755
  • FlaSh
    +关注

    关注

    10

    文章

    1545

    浏览量

    146626
  • PLM
    PLM
    +关注

    关注

    2

    文章

    82

    浏览量

    20720

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

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

收藏 人收藏

    评论

    相关推荐

    STM32G0x0_OPT.FLM文件怎么在MDK工程里使用?

    STM32G0x0_128.FLM文件可以在工程里直接添加实现代码的烧录调试,但是STM32G0x0_OPT.FLM不知道如何使用?MDK工程要怎么修改?有例程吗?
    发表于 03-29 06:33

    如何使用OPT_FLM文件实现解除读保护功能?

    MDK工程里debug选项选择烧录的FLM文件就可以下载调试代码,那OPT_FLM文件该怎么在工程里使用实现解除读保护功能呢?直接在debu
    发表于 03-28 07:11

    bootloader的CAN,可以把hex文件进行压缩吗?

    bootloader的CAN,可以把hex文件进行压缩吗?
    发表于 02-20 08:28

    iTOP-STM32MP157开发板Ubuntu 镜像的

    \\\\ubuntu18 无桌面镜像”,如下图 所示: 在这里 rootfs.ext4 为我们要文件系统的镜像。而 rootfs.tar.gz 为我们文件系统的源码,之后对
    发表于 10-08 10:49

    iTOP-STM32MP157开发板Ubuntu 镜像的

    \\\\ubuntu18 无桌面镜像”,如下图所示: 在这里 rootfs.ext4 为我们要文件系统的镜像。而 rootfs.tar.gz 为我们文件系统的源码,之后对
    发表于 09-27 11:15

    usb asp的固件怎么

    给AVR与固件,怎么做
    发表于 09-25 06:10

    请问文件到NUC980的SPI NAND中每个文件的地址是如何确定的?

    文件到NUC980的SPI NAND中每个文件的地址是如何确定的?
    发表于 09-04 08:29

    使用n79e85jdemo程序时,flash不了是为什么?

    使用n79e85jdemo程序时,flash不了,还有是谁能告诉我demo里的那几个有关flash的程序是干嘛的?
    发表于 09-01 06:00

    【芒果派MangoPi MQ Quad】系统与配置

    一、系统 开发板上并不Rom,系统是要通过TF卡启动的,固件也是么TF卡上的。 这里使用balenaEtcher进行TF卡系统的
    发表于 07-28 14:56

    使用Nu-Link无法对MS51FB9AE自动怎么解决?

    设定了自动功能,可以用Nu-Link插拨自动,换成芯片MS51FB9AE设定了自动
    发表于 06-28 06:32

    求助,文件到NUC980的SPI NAND中每个文件的地址是如何确定的?

    文件到NUC980的SPI NAND中每个文件的地址是如何确定的?
    发表于 06-26 06:09

    请问W78E052D用什么烧录器hex文件

    W78E052D用什么烧录器hex文件? 之前使用润飞RF910烧录程序,现在在板卡上怎么烧录?STC-ISP编程器是否可以
    发表于 06-21 07:41

    请问文件到NUC980的SPI NAND中每个文件的地址是如何确定的?

    文件到NUC980的SPI NAND中每个文件的地址是如何确定的?
    发表于 06-13 07:09

    LPC540XX FLM有没有办法获取该二进制文件的源代码来调试它?

    你好呀。我在 LPC54S018 开发套件上使用 W25Q128JVFM FLM 文件时遇到问题 。有没有办法获取该二进制文件的源代码来调试它?它是 CMSIS 包中包含的 FLM
    发表于 05-09 10:22

    FPGA文件的问题

    好像FPGAsof文件可以调试。那用什么调试呢?JTAG吗?我原来以为FPGA,CPLD只能,不能调试呢。我以为只可以仿真。请问高手
    发表于 05-04 14:48