一种MCU固件升级方法技术

技术编号:21199453 阅读:19 留言:0更新日期:2019-05-25 01:08
本发明专利技术公开了一种MCU固件升级方法,包括以下步骤:A.编写MCU初始化和嵌入式Flash驱动程序;B.安装JLink下载器驱动程序包;C.拷贝JLink.exe可执行文件和JLinkARM.dll库文件到同一目录下;D.编写flash.txt命令脚本文件和flash.bat批处理文件;E.导入固件升级程序;F.运行flash.bat批处理文件,MCU通过JLink自动烧写固件程序到Flash。本发明专利技术的方法可显著降低烧写工具初期设计复杂度和操作难度,且用户在操作过程中无需手动设定Flash烧写地址及长度,极大地简化了烧写过程,提升了烧写准确度和操作效率。

A firmware upgrade method for MCU

The invention discloses a firmware upgrade method for MCU, which includes the following steps: A. writing MCU initialization and embedded Flash driver; B. installing JLink downloader driver package; C. copying JLink.exe executable file and JLinkARM.dll library file into the same directory; D. writing flash.txt command script file and flash.bat batch file; E. importing firmware upgrade program; F. running flash.bat Batch files, MCU through JLink automatically burn firmware program to Flash. The method of the invention can significantly reduce the initial design complexity and operation difficulty of the burning tool, and the user does not need to manually set the burning address and length of Flash in the operation process, thus greatly simplifying the burning process and improving the burning accuracy and operation efficiency.

【技术实现步骤摘要】
一种MCU固件升级方法
本专利技术涉及电子信息
,特别涉及一种MCU固件升级方法。
技术介绍
目前针对标准的通用型外部Flash模块,市面上有很多第三方下载工具如JLink配套工具J-Flash,都提供了Flash烧写功能,对于不同品牌和不同型号的Flash芯片,由于下载工具内部都集成了相应的驱动,因此可以完全支持各类外部Flash芯片的烧写功能。对于大多数芯片内部集成的Flash模块,即嵌入式eFlash,上述下载工具也根据不同品牌和不同型号的芯片,集成了相应的Flash驱动程序,因此这类下载工具也可以比较好地支持嵌入式Flash的程序烧写。然而,针对少数非通用型嵌入式Flash芯片,尤其是某些芯片厂商自行开发,并且用在特定产品和领域中的嵌入式Flash芯片,因为与多数标准通用型Flash芯片并不兼容,所以上述下载工具并不能很好地支持这类芯片。为了解决少数非通用型嵌入式Flash芯片的程序烧写问题,大多数设计厂商或开发者会自己编写Flash驱动程序,通过集成开发环境配合调试下载工具,将固件升级程序烧写到Flash中。参见申请号CN201810844547.8的专利申请,其公开了一种MCU固件程序的下载方法,该方法通过设计者自行开发Flash驱动程序,并利用ARM集成开发工具,配合JLink下载工具和VS集成开发环境,设计了基于WINDOWS可视化界面的嵌入式Flash烧写工具,解决了少数非通用型嵌入式Flash芯片的固件升级问题。然而,该方法也存在一些不足,例如设计者在设计烧写工具初期,设计复杂度高、设计周期长;需要完成ARM集成开发工具和VS集成开发环境的配合,配合难度较大,各版本兼容性差;用户在使用烧写工具过程中需要手动设置固件路径、烧写地址、固件长度等参数,增加了操作复杂性,降低了效率和可靠性。因此,如何降低烧写工具的设计复杂度和操作难度,提高烧写速度,提升效率,成为一个急需解决的问题。
技术实现思路
本专利技术的目的是克服上述
技术介绍
中不足,提供一种MCU固件升级方法,可以有效地解决
技术介绍
中提到的技术问题,显著降低烧写工具初期设计复杂度和操作难度,且用户在操作过程中无需手动设定Flash烧写地址及长度,极大地简化了烧写过程,提升了烧写准确度和操作效率。为了达到上述的技术效果,本专利技术采取以下技术方案:一种MCU固件升级方法,包括以下步骤:A.编写MCU初始化和嵌入式Flash驱动程序;B.安装JLink下载器驱动程序包;C.拷贝JLink.exe可执行文件和JLinkARM.dll库文件到同一目录下;D.编写flash.txt命令脚本文件和flash.bat批处理文件;其中,flash.bat批处理文件用于调用flash.txt命令脚本文件,flash.txt命令脚本文件包含各行命令,这些命令可以通过调用JLink.exe文件执行,从而实现JLink仿真器对MCU的控制;E.导入固件升级程序;F.运行flash.bat批处理文件,MCU通过JLink自动烧写固件程序到Flash。进一步地,所述步骤A具体包括以下步骤:A1.复位MCU计数器和主时钟,解锁时钟配置功能,选择外部MCU时钟源,设置时钟分频系数,锁定时钟配置功能,复位串口;A2.复位Flash控制器,解锁Flash写保护,设置Flash控制器时钟为80MHz;A3.全片擦除Flash;A4.设置SRAM起始地址,Flash起始地址和块写入长度,等待接收写入命令;A5.接收到写入命令后,将SRAM起始地址处的数据分多次写入到Flash起始地址处,每次写入单块数据长度,并将写入Flash中的数据读出,与写入前的数据比较,完成校验,其中,每次写入数据长度由步骤A4中规定的块写入长度决定,写入次数由固件程序的总长度决定。进一步地,所述步骤A4具体为:设置SRAM起始地址为0x20000000,设置Flash起始地址为0x1000000,块写入长度设置为4K字节,即每次写入数据的长度为4K字节;写入命令通过内存的一个标志位写入,当标志位未写入时,CPU一直处于查询等待状态,标志位一旦写入,CPU就开始执行Flash写入过程。进一步地,所述步骤D中编写flash.txt命令脚本文件具体包括:D1.设置目标芯片型号为CORTEX-M3,设置下载接口方式为SWD,设置JLink工作频率为4MHz;D2.将MCU初始化和嵌入式Flash驱动程序boot.bin载入到SRAM起始地址处,规定CPU起始运行的程序内容和程序地址;D3.设置CPU主堆栈指针和程序计数器值,使CPU运行驱动程序;D4.将固件程序片段1载入到内存指定地址;D5.对写入标志位置位,使CPU开始运行,将内存指定地址中的固件程序片段1烧入Flash中;D6.延时600ms,等待烧写完成;D7.将固件程序片段2直到固件程序片段n载入到内存指定地址,并置位标志位,完成剩下所有固件程序片段的写入;其中固件程序片段个数n由固件程序长度决定。进一步地,所述步骤E具体为将固件升级程序以bin文件的方式,与驱动程序boot.bin、JLink.exe可执行文件、JLinkARM.dll库文件、flash.txt命令脚本文件、flash.bat批处理文件一起放在同一个目录下。本专利技术与现有技术相比,具有以下的有益效果:通过本专利技术提出的MCU固件升级方法,针对特定的非通用型内嵌式Flash芯片,将Flash驱动、JLink驱动和Flash读写功能,都集成到一个烧写工具中,并且通过批处理文件和命令行脚本文件,实现了Flash一键式烧写功能,简化了固件升级步骤,提高了操作效率。同时,针对不同的固件程序,只需将对应的bin文件放在与其它相关驱动文件同一目录下,系统就可以自动载入固件并烧写到Flash中。该方法操作流程简单,无需专业知识,具有较大的推广和实用价值。附图说明图1是本专利技术的MCU固件升级方法流程示意图。具体实施方式下面结合本专利技术的实施例对本专利技术作进一步的阐述和说明。实施例:实施例一:如图1所示,一种MCU固件升级方法,具体包括以下步骤:步骤101:编写MCU初始化和嵌入式Flash驱动程序:其中,编写MCU初始化和嵌入式Flash驱动程序boot.bin,包括:首先,复位MCU计数器和主时钟,解锁时钟配置功能,选择外部MCU时钟源,设置时钟分频系数,锁定时钟配置功能,复位串口,复位Flash控制器,解锁Flash写保护,设置Flash控制器时钟为80MHz,全片擦除Flash,保证MCU和Flash基本功能能够正常工作;其次,设置SRAM起始地址,Flash起始地址和块写入长度,等待接收写入命令;最后,接收到写入命令后,将SRAM起始地址处的数据分多次写入到Flash起始地址处,每次写入单块数据长度,并将写入Flash中的数据读出,与写入前的数据比较,完成校验。这样,就可以完成整个Flash写入和校验流程。具体的,在本实施例中,编写MCU初始化和嵌入式Flash驱动程序具体为:首先,根据芯片手册编写MCU初始化程序,完成MCU时钟源选择、系统时钟设置、分频系数设置等功能。本实例以所使用的MCU型号HCM32为例进行说明,MCU时钟源选择,可以通过设置系统控制单元SCU的RC_CTRL寄存器,本文档来自技高网
...

【技术保护点】
1.一种MCU固件升级方法,其特征在于,包括以下步骤:A.编写MCU初始化和嵌入式Flash驱动程序;B.安装JLink下载器驱动程序包;C.拷贝JLink.exe可执行文件和JLinkARM.dll库文件到同一目录下;D.编写flash.txt命令脚本文件和flash.bat批处理文件;E.导入固件升级程序;F.运行flash.bat批处理文件,MCU通过JLink自动烧写固件程序到Flash。

【技术特征摘要】
1.一种MCU固件升级方法,其特征在于,包括以下步骤:A.编写MCU初始化和嵌入式Flash驱动程序;B.安装JLink下载器驱动程序包;C.拷贝JLink.exe可执行文件和JLinkARM.dll库文件到同一目录下;D.编写flash.txt命令脚本文件和flash.bat批处理文件;E.导入固件升级程序;F.运行flash.bat批处理文件,MCU通过JLink自动烧写固件程序到Flash。2.根据权利要求1所述的一种MCU固件升级方法,其特征在于,所述步骤A具体包括以下步骤:A1.复位MCU计数器和主时钟,解锁时钟配置功能,选择外部MCU时钟源,设置时钟分频系数,锁定时钟配置功能,复位串口;A2.复位Flash控制器,解锁Flash写保护,设置Flash控制器时钟为80MHz;A3.全片擦除Flash;A4.设置SRAM起始地址,Flash起始地址和块写入长度,等待接收写入命令;A5.接收到写入命令后,将SRAM起始地址处的数据分多次写入到Flash起始地址处,每次写入单块数据长度,并将写入Flash中的数据读出,与写入前的数据比较,完成校验。3.根据权利要求1所述的一种MCU固件升级方法,其特征在于,所述步骤A4具体为:设置SRAM起始地址为0x20000000,设置Flash起始地址为0x1000000,块写入长度设置为4...

【专利技术属性】
技术研发人员:姚杰韩大强
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1