System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及微控制器控制,具体是一种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在线
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所述的一...
【专利技术属性】
技术研发人员:李炜毅,
申请(专利权)人:深圳市科曼医疗设备有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。