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

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

    关注

    455

    文章

    50732

    浏览量

    423272
  • FlaSh
    +关注

    关注

    10

    文章

    1633

    浏览量

    147956
  • PLM
    PLM
    +关注

    关注

    2

    文章

    121

    浏览量

    20863

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

    AM6254开发常见问题之「问题排查」——飞凌嵌入式

    在项目的开发过程中,各位工程师小伙伴们可能会遇到各种类型的问题,其中“问题”就是非常典型的一种。本篇文章,将以飞凌嵌入式OK6254-C开发板为例,详细探讨大家在写过程中可能遇到的问题,并提供一系列排查和解决方法,以帮助开
    的头像 发表于 11-08 11:51 1087次阅读
    AM6254开发常见问题之「<b class='flag-5'>烧</b><b class='flag-5'>写</b>问题排查」——飞凌嵌入式

    迅为itop-3568开发板AMP双系统使用手册之AMP镜像

    迅为itop-3568开发板AMP双系统使用手册之AMP镜像
    的头像 发表于 11-04 15:00 430次阅读
    迅为itop-3568开发板AMP双系统使用手册之<b class='flag-5'>烧</b><b class='flag-5'>写</b>AMP镜像

    触摸屏驱动板无法程序的相关原因

    每次听到别人说是什么原因导致触摸屏驱动板无法程序,就很想去讨论一下。今天就跟大家聊聊到底是什么原因导致的。
    的头像 发表于 10-21 11:19 223次阅读

    可重复的语音芯片具备哪些特点?

    可重复语音芯片具有高可靠性、低功耗、灵活性、安全性、成本效益,支持USB下载更换语音,组合播放,PWM和DAC输出,休眠模式和抗干扰,适合工业及需修改语音场合。
    的头像 发表于 07-16 09:36 231次阅读

    FPGA能实现什么算法

    FPGA功能如此强大,请问用FPGA能实现或者比较适合实现什么算法
    发表于 05-26 20:18

    STM8S207怎么限制hex文件次数?

    求问各位大神我们用的STM8S207芯片,开发环境IAR,程序编写基本完成 批量生产打算让合作的厂商自己程序,我们只按板子个数收费,但提供
    发表于 05-11 07:12

    请问ARM Cortex系列器哪个快一点?

    最近一个工程文件有点大,用STLink需要40多秒,CMSIS-CAP需要30秒左右,jlink没试过,我还知道用带USB的Boot
    发表于 05-10 06:15

    STM8S001可以用FLASH Loader DemoHEX文件吗?

    STM8S001可以用FLASH Loader Demo HEX文件
    发表于 04-19 08:02

    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

    使用STLINK或JLINK程序后,使用MCU isp串口烧录更改后的HEX文件,烧录失败怎么解决?

    使用STLINK或JLINK程序后,再使用MCU ISP串口烧录相同的HEX文件可以烧录成功 但是:当更改过程序之后,使用MCU isp串口烧录更改后的HEX文件,烧录失败
    发表于 03-25 07:55

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

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

    CMS-WRITER V8器用户手册

    电子发烧友网站提供《CMS-WRITER V8器用户手册.pdf》资料免费下载
    发表于 01-30 17:54 2次下载