一种优化STM32芯片DFU升级的方法与流程

文档序号:16879685发布日期:2019-02-15 22:00阅读:1412来源:国知局
一种优化STM32芯片DFU升级的方法与流程

本发明涉及stm32芯片技术,特别涉及一种优化stm32芯片dfu升级的方法。



背景技术:

stm32芯片基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的arm-m0,m0+,m3,m4和m7内核。按内核架构分为不同产品:主流产品(stm32f0、stm32f1、stm32f3)、超低功耗产品(stm32l0、stm32l1、stm32l4、stm32l4+)、高性能产品(stm32f2、stm32f4、stm32f7、stm32h7)。

stm32芯片在有内外部flash的情况下,dfu(devicefirmwareupgrade)升级一般是将内部flash生成一个媒介,外部flash生成另一个媒介。这种方式造成在用dfu工具升级时,需要分两次升级两个媒介,这样会给用户造成操作的复杂度和难度。



技术实现要素:

针对现有技术存在的问题,本发明提供一种优化stm32芯片dfu升级的方法。

为实现上述目的,本发明的具体技术方案如下:

一种优化stm32芯片dfu升级的方法,该方法为:将内部和外部flash当成一个整体的flash,只生成一个媒介,在dfu升级时只需一次媒介操作。

作为本发明一优选技术方案,该方法为:将内部和外部flash在逻辑分区表上当成一个整体的flash,内部和外部flash分别是顺序的不同地址范围,在升级操作时通过地址区分内部和外部flash操作。

作为本发明一优选技术方案,该方法具体包括如下步骤:

s1:将内部flash和外部flash按照寻址大小,整合到一张逻辑分区表;

s2:在升级操作时,根据升级包数据地址,找到相应的flash,对其进行存取操作。

作为本发明一优选技术方案,步骤s1中:内部flash和外部flash寻址范围不连续,整合在一起将会多出一部分空间,我们将多出来的这部分空间设置为无效区,设置为不可写入属性,并且读操作后的数据都是0xff数值,即格式化数据。

作为本发明一优选技术方案,步骤s2中:所述数据存取操作包括擦写、写入和读出。

采用本发明的技术方案,具有以下有益效果:

本发明可以方便用户在固件升级时的操作,可以实现一次升级,避免复杂的操作要求。

附图说明

图1为本发明方法的流程图;

图2为本发明中内外flash整合到一张逻辑表后的效果图;

图3为本发明中flash的操作流程图。

具体实施方式

以下结合附图和具体实施例,对本发明进一步说明。

本发明提供一种优化stm32芯片dfu升级的方法,该方法为:将内部和外部flash当成一个整体的flash,只生成一个媒介,在dfu升级时只需一次媒介操作。

其中,以逻辑分区表将内部和外部flash当成一个整体的flash,内部和外部flash分别是顺序的不同地址范围,在升级操作时通过地址区分内部和外部flash操作。

图1与图2为以寻址大小为具体实施例,具体方法包括步骤:

s1:将内部flash和外部flash按照寻址大小,整合到一张逻辑分区表;

其中,内部flash和外部flash寻址范围不连续,整合在一起将会多出一部分空间,我们将多出来的这部分空间设置为无效区,设置为不可写入属性,并且读操作后的数据都是0xff数值,即格式化数据。

具体的区域划分含义如下:

101--bootloader是存储引导程序去,属于内部flash的一部分;

102--属于内部flash的一部分,用于存储firmware;

103--无效区,属于虚拟的空间;

104--属于外部flash,用于存储firmware。

s2:在升级操作时,根据升级包数据地址,找到相应的flash,对其进行存取操作。其中,所述数据存取操作包括擦写、写入和读出。

图3为采用本发明方法的具体flash操作流程图。也是上述步骤s2的更具体化步骤。

步骤s201:读写flash数据,从flash读数据或者将数据写入flash;

步骤202:操作地址范围,对要操作的地址进行判断,确认是属于内部、外部还是无效区;

步骤203:拒绝操作,无效区的写属性已设置为不可写,如果读操作的地址是在无效区,则将所有的数据都返回0xff;

步骤204:对内部flash操作,如果读写操作的地址是在内部flash,则对内部flash进行相应操作;

步骤205:对外部flash操作,如果读写操作的地址是在外部flash,则对外部flash进行相应操作。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。



技术特征:

技术总结
本发明公开一种优化STM32芯片DFU升级的方法,其特征在于,该方法为:将内部和外部FLASH当成一个整体的FLASH,只生成一个媒介,在DFU升级时只需一次媒介操作。相比现有STM32芯片在有内外部FLASH的情况下,DFU升级分别将内部FLASH生成一个媒介、外部FLASH生成另一个媒介,本发明可以方便用户在固件升级时的操作,可以实现一次升级,避免复杂的操作要求。

技术研发人员:吴松坤;刘尚俊
受保护的技术使用者:深圳市零点智联科技有限公司
技术研发日:2018.09.20
技术公布日:2019.02.15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1