System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种STM32在线升级功能解决方法技术_技高网

一种STM32在线升级功能解决方法技术

技术编号:40335014 阅读:6 留言:0更新日期:2024-02-09 14:25
本发明专利技术涉及微控制器控制技术领域,具体是一种STM32在线升级功能解决方法,内存地址开启三个内存区域,一个存放IAP程序,一个存储APP正常的Flash地址变量,一个是存放APP程序;设置在线升级的通信协议;移植官方的Ymodem协议(组包和解包);设置APP程序的起始地址和存储空间大小,设置中断向量表偏移量;设置编译后运行fromelf.exe,生成在线升级.bin文件;先下载IAP程序到flash内存,保存.bin文件到U盘;本发明专利技术本方案解决下载更新单片机程序的机械性操作,实现便捷操作在线IAP升级,兼容所有的呼吸机项目下位机主控芯片U盘在线升级。

【技术实现步骤摘要】

本专利技术涉及微控制器控制,具体是一种stm32在线升级功能解决方法。


技术介绍

1、目前,stm32单片机(32位单片机)进行程序烧写有两种技术,分别是icp和isp技术,icp技术即通过在线仿真器对单片机进行程序烧写,而isp技术则是通过单片机内置的bootloader程序(引导加载程序)的烧写技术。

2、无论是icp技术还是isp技术都需要有机械性的操作如连接下载线,设置跳线帽等。若产品的电路板已经层层密封在外壳中,要对其进行程序更新无疑困难重重,若产品安装于狭窄空间等难以触及的地方,更是一场灾难。

3、为了更好对下位机软件进行烧写,急需引入iap在线升级解决方案,实现远距离或无线的数据传输,但是现有的方法机器装机之后升级程序,需要拆机才可以下载程序,操作复杂,不能实现远距离升级程序;

4、同时焊接看门狗之后不能进行升级,每次升级程序都需要拆看门狗,效率低,不能及时有效更新程序,app程序异常情况下,机器需要返厂才可以解决问题。


技术实现思路

1、有鉴于此,本专利技术实施例希望提供一种stm32在线升级功能解决方法,以解决或缓解现有技术中机器装机之后升级程序,需要拆机才可以下载程序,操作复杂,不能实现远距离升级程序;焊接看门狗之后不能进行升级,每次升级程序都需要拆看门狗,效率低,不能及时有效更新程序,app程序异常情况下,机器需要返厂才可以解决问题,为上述技术问题至少提供一种有益的选择。

2、为实现上述目的,本专利技术提供如下技术方案:

3、一种stm32在线升级功能解决方法,包括以下解决步骤:

4、步骤一、内存地址开启三个内存区域,一个存放iap程序,一个存储app正常的flash地址变量,一个是存放app程序;

5、步骤二、设置在线升级的通信协议;

6、步骤三、移植官方的ymodem协议(组包和解包);

7、步骤四、设置app程序的起始地址和存储空间大小,设置中断向量表偏移量;

8、步骤五、设置编译后运行fromelf.exe,生成在线升级.bin文件;

9、步骤六、先下载iap程序到flash内存,保存.bin文件到u盘;

10、步骤七、上位机读取u盘文件,上位机先发送在线升级命令给下位机,下位机响应之后跳转成功返回给上位机;

11、步骤八、接下来上位机按照ymodem协议发送.bin文件里面的在线升级数据给下位机进行在线升级;

12、还包括以下方法步骤:

13、步骤一、分配flash地址;

14、步骤二、将用户程序输入至已分配flash地址空间内;

15、步骤三、生成待升级的程序文件;

16、步骤四、通过bootloader程序将生成待升级的程序文件更新至用户程序。

17、所述步骤一的具体实现方法为:将用户程序按照空间最大限度分配flash地址,并且将bootloader程序、用户程序和在线升级标志按照互不影响的规则分配flash地址;

18、根据步骤一分配的flash地址,对flash中的起始地址和存储空间以及中断向量表的偏移量进行设置;

19、所述步骤二中用户程序为.axf文件,步骤三中生成的待升级的程序文件为*.hex文件;

20、所述步骤三的具体步骤为:通过设置用户程序的工程属性将.axf文件转换成.hex待升级的程序文件;

21、所述步骤四中的具体实现方法为:bootloader程序预先通过icp或者isp烧写在stm32内部的,同时bootloader程序与外部的上位机软件或者超级终端进行通讯,将来自于串口的程序数据接收后写入stm32内部分配的flash地址,然后再跳转执行新写入的程序。

22、作为本专利技术进一步的方案,所述步骤一包括iap模块,所述iap模块包括以下方法:

23、方法一、与上位机通信进行应答和解包操作;

24、方法二、接收.bin文件并解析ymodem协议完成升级数据写入flash存储。

25、作为本专利技术再进一步的方案,所述步骤一包括预留flash存储模块,所述预留flash存储模块包括以下方法:

26、方法一、存储app正常的flah地址变量;

27、方法二、任何情况下都不允许擦除flash存储的app地址区间。

28、作为本专利技术再进一步的方案,所述步骤一包括app模块,所述app模块包括以下方法:

29、方法一、设置起始地址和存储空间的大小;

30、方法二、设置中断向量表偏移量;

31、方法三、设置keil工程编译生成.bin文件。

32、作为本专利技术再进一步的方案,还包括以下解决方法:

33、方法一、关于握手超时处理,设置跟上位机匹配的握手应答机制,避免跟其他的协议冲突;

34、方法二、关于焊接看门狗导致失败,设置内部定时器定时给看门狗进行喂狗操作,该操作在iap模块进行处理;

35、方法三、关于升级过程中异常掉电导致app异常,在预留flash模块提前写入app正常的标志,保证机器重启之后读取该标志可以在iap模块跟上位机这边进行重新握手升级。

36、作为本专利技术再进一步的方案,还包括以下解决方法:通过呼吸机上电,插入u盘读取文件夹.bin文件,上位机点击界面升级,app程序判断是否接收到上位机在线握手升级命令,app程序未接收上位机在线握手升级命令,则ram地址清零,继续执行app程序。

37、作为本专利技术再进一步的方案,还包括以下解决方法:app程序接收上位机在线握手升级命令,发送握手成功给上位机,同时接收在线升级程序命令,app程序判断是否接收到上位机在线握手升级命令,app程序未接收上位机在线握手升级命令,继续等待上位机命令。

38、作为本专利技术再进一步的方案,还包括以下解决方法:app程序接收上位机在线握手升级命令,在ram地址区域写入一个数据,设置下位机升级标志,下位机系统复位跳转到iap程序,iap程序判断ram地址是否在线升级,iap程序判断ram地址不会在线升级,关闭总中断,跳转至app程序。

39、作为本专利技术再进一步的方案,还包括以下解决方法:iap程序判断ram地址会在线升级,与上位机进行ymodem协议通信并进行文件传输,判断接收.bin文件是否完成,接收.bin文件如未完成,则继续接收.bin文件数据。

40、作为本专利技术再进一步的方案,还包括以下解决方法:

41、接收.bin文件如完成,iap程序判断写入flash的数据是否成功,如iap程序判断写入flash的数据未成功,发送在线升级失败命令给上位机,ram地址清零,跳转至app程序;

42、如iap程序判断写入flash的数据成功,下载成功,ram地址清零系统复位跳转到升级之后的a本文档来自技高网...

【技术保护点】

1.一种STM32在线升级功能解决方法,其特征在于,包括以下解决步骤:

2.根据权利要求1所述的一种STM32在线升级功能解决方法,其特征在于,所述步骤一包括IAP模块,所述IAP模块包括以下方法:

3.根据权利要求2所述的一种STM32在线升级功能解决方法,其特征在于,所述步骤一包括预留Flash存储模块,所述预留Flash存储模块包括以下方法:

4.根据权利要求3所述的一种STM32在线升级功能解决方法,其特征在于,所述步骤一包括APP模块,所述APP模块包括以下方法:

5.根据权利要求4所述的一种STM32在线升级功能解决方法,其特征在于,还包括以下解决方法:

6.根据权利要求5所述的一种STM32在线升级功能解决方法,其特征在于,还包括以下解决方法:

7.根据权利要求6所述的一种STM32在线升级功能解决方法,其特征在于,还包括以下解决方法:

8.根据权利要求7所述的一种STM32在线升级功能解决方法,其特征在于,还包括以下解决方法:

9.根据权利要求8所述的一种STM32在线升级功能解决方法,其特征在于,还包括以下解决方法:IAP程序判断RAM地址会在线升级,与上位机进行Ymodem协议通信并进行文件传输,判断接收.bin文件是否完成,接收.bin文件如未完成,则继续接收.bin文件数据。

10.根据权利要求9所述的一种STM32在线升级功能解决方法,其特征在于,还包括以下解决方法:

...

【技术特征摘要】

1.一种stm32在线升级功能解决方法,其特征在于,包括以下解决步骤:

2.根据权利要求1所述的一种stm32在线升级功能解决方法,其特征在于,所述步骤一包括iap模块,所述iap模块包括以下方法:

3.根据权利要求2所述的一种stm32在线升级功能解决方法,其特征在于,所述步骤一包括预留flash存储模块,所述预留flash存储模块包括以下方法:

4.根据权利要求3所述的一种stm32在线升级功能解决方法,其特征在于,所述步骤一包括app模块,所述app模块包括以下方法:

5.根据权利要求4所述的一种stm32在线升级功能解决方法,其特征在于,还包括以下解决方法:

6.根据权利要求5所述的一...

【专利技术属性】
技术研发人员:李炜毅
申请(专利权)人:深圳市科曼医疗设备有限公司
类型:发明
国别省市:

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

1