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

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

    关注

    453

    文章

    50360

    浏览量

    421623
  • FlaSh
    +关注

    关注

    10

    文章

    1621

    浏览量

    147734
  • PLM
    PLM
    +关注

    关注

    2

    文章

    110

    浏览量

    20839

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    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

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

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

    CMS-WRITER V8器用户手册

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

    DshanMCU-R128s2 固件

    编译系统源码后,打包后生成的系统文件称之为固件。固件一般为.img格式。把固件下载到开发板或者产品上的过程称之为 固件 。
    的头像 发表于 12-22 15:08 1092次阅读
    DshanMCU-R128s2 <b class='flag-5'>烧</b><b class='flag-5'>写</b>固件

    恩智浦LPC2378芯片的三种程序方法

    芯片解密我们得到烧录码之后又将面临下一个难关,那么就是芯片的;很多人表示为何程序明明是正确的,但为何自己烧录的芯片就不能正常使用呢?致芯解密专家表示可能是参数设置有误,下面我们将介绍恩智浦LPC2378芯片的三种
    的头像 发表于 12-20 13:32 1832次阅读
    恩智浦LPC2378芯片的三种<b class='flag-5'>烧</b><b class='flag-5'>写</b>程序方法

    单片机的次数是不是无限的呢?单片机能烧录多少次?

    单片机的次数是不是无限的呢?单片机能烧录多少次? 单片机的次数是有限的,每款单片机都有一个特定的擦写次数限制。当
    的头像 发表于 12-07 13:46 3852次阅读

    基于RASC的keil电子时钟制作(瑞萨RA)(4)----使用串口进行程序

    本篇文章主要介绍如何使用UART串口程序到瑞萨芯片,并以实际项目进行演示。
    的头像 发表于 12-01 14:51 632次阅读
    基于RASC的keil电子时钟制作(瑞萨RA)(4)----使用串口进行程序<b class='flag-5'>烧</b><b class='flag-5'>写</b>

    电子时钟制作(瑞萨RA)(2)----使用串口进行程序

    本篇文章主要介绍如何使用UART串口程序到瑞萨芯片,并以实际项目进行演示。
    的头像 发表于 12-01 13:58 715次阅读
    电子时钟制作(瑞萨RA)(2)----使用串口进行程序<b class='flag-5'>烧</b><b class='flag-5'>写</b>

    用BurnTool给星闪芯片BS25程序

    本文介绍用BurnTool给星闪芯片BS25程序。
    的头像 发表于 11-22 09:49 2496次阅读
    用BurnTool给星闪芯片BS25<b class='flag-5'>烧</b><b class='flag-5'>写</b>程序