一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于多核MCU的嵌入式软件同步升级方法及装置与流程

2022-02-25 21:36:48 来源:中国专利 TAG:

用于多核mcu的嵌入式软件同步升级方法及装置
技术领域
1.本技术属于软件技术领域,具体涉及一种用于多核mcu的嵌入式软件同步升级方法及装置。


背景技术:

2.随着协作机器人行业的不断发展,人们对机械臂中驱动器的性能要求越来越高,单一的mcu芯片已经无法满足驱动器的性能要求,因此,驱动器中会集成多个mcu芯片。
3.当发现驱动器中的mcu软件存在问题时,现有的方法通常都是利用常规的下载器对多个mcu软件同时进行版本升级,以实现多个mcu软件匹配。这种方法在进行mcu软件升级时,很容易漏掉某一个mcu软件,或是造成多个不匹配的mcu软件被升级,而且往往需要拆卸、安装机械臂,这样大大增加了mcu软件升级的难度,增加了人工成本。同时由于软件不匹配也会导致驱动器的异常,降低驱动器的性能,且有可能导致机械臂飞车的现象,造成不必要的损失。


技术实现要素:

4.为至少在一定程度上克服相关技术中存在的问题,本技术提供了一种用于多核mcu的嵌入式软件同步升级方法及装置。
5.根据本技术实施例的第一方面,本技术提供了一种用于多核mcu的嵌入式软件同步升级方法,其包括以下步骤:
6.将多个mcu芯片的嵌入式软件合并为一个总嵌入式软件;
7.对总嵌入式软件进行烧录,并在烧录过程中对各mcu芯片的嵌入式软件同时进行升级;
8.将升级后的mcu嵌入式软件更新至对应的mcu芯片中。
9.上述用于多核mcu的嵌入式软件同步升级方法中,所述将多个mcu芯片的嵌入式软件合并为一个总嵌入式软件的具体过程为:
10.为每一个mcu芯片的嵌入式软件对应生成一份分文件;
11.为每一份分文件添加一组信息头并进行字节对齐;
12.将添加信息头后的各分文件整合为一份总文件,得到总嵌入式软件。
13.进一步地,所述信息头采用crc码。
14.进一步地,所述多个mcu芯片为单芯片双核mcu的第一内核和第二内核以及单核芯片时,所述将多个mcu芯片的嵌入式软件合并为一个总嵌入式软件的具体过程为:
15.将第一内核的mcu1.hex文件、第二内核的mcu2.hex文件、单核芯片的mcu3.hex文件以及驱动器的software.hex文件设置在预设的路径下;
16.利用mcu1.python工具对mcu1.hex文件进行加密、对齐处理,生成file1.hex文件;
17.将第一内核的软件版本号、单核芯片的软件版本号及驱动器正式软件版本号均写入software.hex文件中;
18.利用mcu2.python工具读取software.hex文件中的信息,修改mcu2.hex文件中第一内核的软件版本号、单核芯片的软件版本号及驱动器正式软件版本号,并对修改后的mcu2.hex文件进行加密、对齐处理,生成file2.hex文件;
19.利用mcu3.python工具对mcu3.hex文件进行加密、对齐处理,生成file3.hex文件;
20.利用sum.python工具分别在file1.hex文件、file2.hex文件及file3.hex文件中添加预设的信息头,并将添加了预设信息头的file1.hex文件、file2.hex文件及file3.hex文件合并为一份总文件file.hex。
21.进一步地,所述对总嵌入式软件进行烧录,并在烧录过程中对各mcu芯片的嵌入式软件同时进行升级的具体过程为:
22.根据信息头确定是哪个mcu芯片的嵌入式软件;
23.将mcu的嵌入式软件先复制至其备用的flash中,再从备用flsah复制至正式flash中。
24.更进一步地,所述多个mcu芯片为单芯片双核mcu的第一内核和第二内核以及单核芯片时,所述对总嵌入式软件进行烧录,并在烧录过程中对各mcu芯片的嵌入式软件同时进行升级的具体过程为:
25.如果是第一内核的嵌入式软件,则将该嵌入式软件先复制至第一内核备用的flash中,再从备用flsah复制至正式flash中;
26.如果是第二内核的嵌入式软件,则将该嵌入式软件先复制至第二内核备用的flash中,再从备用flsah复制至正式flash中;
27.如果是单核芯片的嵌入式软件,则将该嵌入式软件先复制至第二内核备用的flash中,然后发送给单核芯片,单核芯片将内容复制到单核芯片备用的flash中,再从备用flash拷贝至正式flash中。
28.更进一步地,所述用于多核mcu的嵌入式软件同步升级方法还包括对嵌入式软件更新后的各mcu芯片的软件版本号进行校验的步骤。
29.更进一步地,所述多个mcu芯片为单芯片双核mcu的第一内核和第二内核以及单核芯片时,所述对嵌入式软件更新后的各mcu芯片的软件版本号进行校验的步骤包括:
30.嵌入式软件更新完成后,对mcu芯片进行断电重启;
31.将第一内核的软件版本号和单核芯片的软件本号都发送给第二内核;
32.在第二内核中将各软件版本分别与其对应的预设版本进行比较,如果二者相同,则校验通过;否则,校验失败。
33.根据本技术实施例的第二方面,本技术还提供了一种用于多核mcu的嵌入式软件同步升级置,其包括存储器以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行上述任一项所述的用于多核mcu的嵌入式软件同步升级方法。
34.根据本技术实施例的第三方面,本技术还提供了一种计算机存储介质,其包括计算机程序的存储器,所述计算机程序由处理器执行,以完成上述任一项所述的用于多核mcu的嵌入式软件同步升级方法。
35.根据本技术的上述具体实施方式可知,至少具有以下有益效果:本技术提供的用于多核mcu的嵌入式软件同步升级方法通过对将多个mcu嵌入式软件合并为一个总的嵌入
式软件,再对各mcu嵌入式软件进行同时升级,能够确保各mcu的嵌入式软件一次性升级成功和匹配,从而提高嵌入式软件升级的效率,同时能够避免采用现有技术对多个mcu的嵌入式软件升级后可能存在的版本不匹配的问题。
36.本技术提供的用于多核mcu的嵌入式软件同步升级方法中通过为每个mcu的分文件添加相应的信息头,在烧录文件前根据信息头判断文件的属性和完整性,能够有效地减少文件的无效传输,提高工作效率。
37.应了解的是,上述一般描述及以下具体实施方式仅为示例性及阐释性的,其并不能限制本技术所欲主张的范围。
附图说明
38.下面的所附附图是本技术的说明书的一部分,其示出了本技术的实施例,所附附图与说明书的描述一起用来说明本技术的原理。
39.图1为本技术具体实施方式提供的一种用于多核mcu的嵌入式软件同步升级方法的流程图。
40.图2为本技术具体实施方式提供的用于多核mcu的嵌入式软件同步升级方法用于对单芯片双核mcu的第一内核mcu1和mcu2以及单核芯片mcu3进行嵌入式软件升级的流程图。
41.图3为本技术具体实施方式提供的用于多核mcu的嵌入式软件同步升级方法用于对单芯片双核mcu的第一内核mcu1和mcu2以及单核芯片mcu3进行软件版本校验的流程图。
42.图4为本技术具体实施方式提供的基于ethercat的嵌入式软件更新流程图。
43.图5为本技术具体实施方式提供的机械臂中驱动器嵌入式软件更新流程图。
具体实施方式
44.为使本技术实施例的目的、技术方案和优点更加清楚明白,下面将以附图及详细叙述清楚说明本技术所揭示内容的精神,任何所属技术领域技术人员在了解本技术内容的实施例后,当可由本技术内容所教示的技术,加以改变及修饰,其并不脱离本技术内容的精神与范围。
45.本技术的示意性实施例及其说明用于解释本技术,但并不作为对本技术的限定。另外,在附图及实施方式中所使用相同或类似标号的元件/构件是用来代表相同或类似部分。
46.关于本文中所使用的“第一”、“第二”、

等,并非特别指称次序或顺位的意思,也非用以限定本技术,其仅为了区别以相同技术用语描述的元件或操作。
47.关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。
48.关于本文中所使用的“及/或”,包括所述事物的任一或全部组合。
49.关于本文中的“多个”包括“两个”及“两个以上”;关于本文中的“多组”包括“两组”及“两组以上”。
50.关于本文中所使用的用语“大致”、“约”等,用以修饰任何可以细微变化的数量或误差,但这些微变化或误差并不会改变其本质。一般而言,此类用语所修饰的细微变化或误
差的范围在部分实施例中可为20%,在部分实施例中可为10%,在部分实施例中可为5%或是其他数值。本领域技术人员应当了解,前述提及的数值可依实际需求而调整,并不以此为限。
51.某些用以描述本技术的用词将于下或在此说明书的别处讨论,以提供本领域技术人员在有关本技术的描述上额外的引导。
52.如图1所示,本技术实施例提供的用于多核mcu的嵌入式软件同步升级方法包括以下步骤:
53.s1、将多个mcu芯片的嵌入式软件合并为一个总嵌入式软件,其具体过程为:
54.s11、为每一个mcu芯片的嵌入式软件对应生成一份分文件。其中,分文件可以为.hex文件。
55.s12、为每一份分文件添加一组信息头并进行字节对齐。具体地,信息头采用crc(cyclic redundancy check,循环冗余校验)码。
56.s13、将添加信息头后的各分文件整合为一份总文件,得到总嵌入式软件。其中,总文件可以为.hex文件。
57.如图2所示,下面以单芯片双核mcu的第一内核mcu1和mcu2以及单核芯片mcu3为例,具体说明将第一内核mcu1和mcu2的嵌入式软件以及单核芯片mcu3的嵌入式软件合并为一个总嵌入式软件的过程。其中,第二内核mcu2与单核芯片mcu3进行串口通讯。
58.将第一内核mcu1的mcu1.hex文件、第二内核mcu2的mcu2.hex文件、单核芯片mcu3的mcu3.hex文件以及驱动器的software.hex文件设置在预设的路径下。
59.利用mcu1.python工具对mcu1.hex文件进行加密、对齐处理,生成file1.hex文件。
60.例如,mcu1.hex文件的内容为:
61.:020000040a08e8
62.:04000000004839402d
63.......
64.在mcu1.hex文件中添加一组根据需要预设的头信息020000020100fb,其中,fb为crc码,并对mcu1.hex文件中的数据补零进行字节对齐,生成file1.hex文件,file1.hex文件的内容为:
65.:020000020100fb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
66.:020000040a08e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
67.:04000000004839402d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
68.......
69.将第一内核mcu1的软件版本号、单核芯片mcu3的软件版本号及驱动器正式软件版本号均写入software.hex文件中。
70.利用mcu2.python工具读取software.hex文件中的信息,修改mcu2.hex文件中第一内核mcu1的软件版本号、单核芯片mcu3的软件版本号及驱动器正式软件版本号,并对修改后的mcu2.hex文件进行加密、对齐处理,生成file2.hex文件。
71.利用mcu3.python工具对mcu3.hex文件进行加密、对齐处理,生成file3.hex文件。
72.利用sum.python工具分别在file1.hex文件、file2.hex文件及file3.hex文件中添加预设的信息头,并将添加了预设信息头的file1.hex文件、file2.hex文件及file3.hex文件合并为一份总文件file.hex。
73.s2、对总嵌入式软件进行烧录,并在烧录过程中对各mcu芯片的嵌入式软件同时进行升级,其具体过程为:
74.s21、根据信息头确定是哪个mcu芯片的嵌入式软件。
75.s22、将mcu的嵌入式软件先复制至其备用的flash中,再从备用flsah复制至正式flash中。
76.如图2所示,对于上述实施例所述的单芯片双核mcu的第一内核mcu1和mcu2以及单核芯片mcu3可以采用不同的升级方式进行升级,其具体过程为:
77.如果是第一内核mcu1的嵌入式软件,则将该嵌入式软件先复制至第一内核mcu1备用的flash中,再从备用flsah复制至正式flash中;
78.如果是第二内核mcu2的嵌入式软件,则将该嵌入式软件先复制至第二内核mcu2备用的flash中,再从备用flsah复制至正式flash中;
79.如果是内核mcu3的嵌入式软件,则将该嵌入式软件先复制至第二内核mcu2备用的flash中,然后发送给单核芯片mcu3,单核芯片mcu3将内容复制到单核芯片mcu3备用的flash中,再从备用flash拷贝至正式flash中。
80.s3、将升级后的mcu嵌入式软件更新至对应的mcu芯片中。
81.本技术实施例提供的用于多核mcu的嵌入式软件同步升级方法还包括以下步骤:
82.s4、对嵌入式软件更新后的各mcu芯片的软件版本号进行校验。
83.如图3所示,对于上述实施例所述的单芯片双核mcu的第一内核mcu1和mcu2以及单核芯片mcu3进行软件版本号校验的具体过程为:
84.s41、嵌入式软件更新完成后,对mcu芯片进行断电重启。
85.s42、将第一内核mcu1的软件版本号和单核芯片mcu3的软件本号都发送给第二内核mcu2。
86.s43、在第二内核mcu2中将各软件版本分别与其对应的预设版本进行比较,如果二者相同,则校验通过,并将驱动器的正式软件版本号发送给上位机;如果二者不同,则校验失败,将驱动器的软件版本号置为-1,并将-1发送给上位机。其中,-1表示故障。
87.现有技术中,当对多个mcu进行嵌入式软件升级时,需要打开编程软件后在代码中直接修改每个mcu芯片的软件版本号,修改后还需分别进行编译和烧录,耗费很长的时间。通常第一内核mcu1、mcu2和单核芯片mcu3的嵌入式软件由不同的工程师负责。例如,将第一内核mcu1的软件版本号1升级为2,不仅需要在第一内核mcu1的软件中将软件版本号更改为2,还需在第二内核mcu2的软件中将第一内核mcu1的软件版本号更改为2才可以校验通过。
88.而采用本技术用于多核mcu的嵌入式软件同步升级方法,通过将各mcu的嵌入式软件合并为一个总的嵌入式软件,能够直接在合成的总文件中进行不同软件版本号的修改,减少编译过程,一人一次性烧录即可完成软件的同步升级,无需其他人辅助操作。
89.本技术实施例提供的用于多核mcu的嵌入式软件同步升级方法中通过为每一个mcu芯片的嵌入式软件对应的分文件添加用于校验的信息头,在烧录文件前可以通过信息
头判断文件的属性和完整性,能够有效地减少文件的无效传输,提高机器的工作效率。
90.由于对总嵌入式软件进行烧录时只有一个文件,能够避免多个mcu文件错乱导致烧录不一致的问题;能够避免多个软件升级后因软件异常导致的驱动器工作异常问题;为分文件头添加信息头、加密处理、修改每个分文件中的mcu软件版本号、合成总文件均可以由脚本工具一键自动化生成,从而能够减少人工修改软件版本号时的误操作,节约开发人员的开发时间,提升驱动器软件升级的效率。
91.在一个具体的实施例中,如图4所示,由pc操作端下达命令,基于ethercat的foe协议对机械臂中驱动器的嵌入式软件进行更新,其中,ethercat主站为pc操作端,ethercat从站为驱动器端,其具体过程为:
92.ethercat主站读取.hex文件的内容,按照foe协议格式将数据发送至ethercat从站。
93.ethercat从站的协议栈负责接收和解析ethercat主站发送的foe帧,得到.hex文件。
94.ethercat从站将接收到的.hex文件的内容烧录到驱动器端mcu芯片的flash中。
95.其中,如图5所示,驱动器端mcu芯片包括单芯片双核mcu的第一内核mcu1和mcu2以及单核芯片mcu3,各mcu芯片的嵌入式软件升级的具体过程为:
96.确定每个需要进行软件升级的mcu的嵌入式软件。
97.将第一内核mcu1和mcu2以及单核芯片mcu3的嵌入式软件合并为一个总嵌入式软件,其具体过程为:
98.修改mcu1的软件版本号、修改mcu2的嵌入式软件中的mcu1的软件版本号;修改mcu3的软件版本号、修改mcu2的嵌入式软件中的mcu3的软件版本号;修改mcu2的软件版本号。
99.为第一内核mcu1的嵌入式软件mcu1.hex对应生成分文件file1.hex,为第二内核mcu2的嵌入式软件mcu2.hex对应生成分文件file2.hex,为内核mcu3的嵌入式软件mcu3.hex对应生成分文件file3.hex。
100.分别在file1.hex文件、file2.hex文件及file3.hex文件中添加预设的信息头,并将添加了预设信息头的file1.hex文件、file2.hex文件及file3.hex文件合并为一份总文件file.hex。
101.根据信息头确定是哪个mcu芯片的嵌入式软件,如果是第一内核mcu1的嵌入式软件,则将该嵌入式软件先复制至第一内核mcu1备用的flash中,再从备用flsah复制至正式flash中;
102.如果是第二内核mcu2的嵌入式软件,则将该嵌入式软件先复制至第二内核mcu2备用的flash中,再从备用flsah复制至正式flash中;
103.如果是内核mcu3的嵌入式软件,则将该嵌入式软件先复制至第二内核mcu2备用的flash中,然后发送给单核芯片mcu3,单核芯片mcu3将内容复制到单核芯片mcu3备用的flash中,再从备用flash拷贝至正式flash中。
104.将升级后的mcu嵌入式软件更新至对应的mcu芯片中。
105.更新完成后,断电重启,第一内核mcu1和单核芯片mcu3将各自的软件版本号发送给第二内核mcu2,在第二内核mcu2中分别对软件版本号进行校验,如果校验通过,则将驱动
器的正式软件版本号发送给pc操作端;如果检验失败,则将驱动器的软件版本号置为故障-1,同时将-1发送给pc操作端。
106.需要说明是的,当ethercat从站为多个独立的mcu芯片时,可以将其中一个mcu芯片作为ethercat从站,其用于从ethercat主站接收.hex文件,并根据.hex文件进行烧录,对各mcu芯片的嵌入式软件进行同步升级。
107.在示例性实施例中,本技术实施例还提供了一种用于多核mcu的嵌入式软件同步升级装置,其包括存储器以及耦接至该存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行本技术中任一个实施例中的用于多核mcu的嵌入式软件同步升级方法。
108.其中,存储器可以为系统存储器或固定非易失性存储介质等,系统存储器可以存储有操作系统、应用程序、引导装载程序、数据库以及其他程序等。
109.在示例性实施例中,本技术实施例还提供了一种计算机存储介质,是计算机可读存储介质,例如,包括计算机程序的存储器,上述计算机程序可由处理器执行,以完成本技术中任一个实施例中的用于多核mcu的嵌入式软件同步升级方法。
110.以上所述仅为本技术示意性的具体实施方式,在不脱离本技术的构思和原则的前提下,任何本领域的技术人员所做出的等同变化与修改,均应属于本技术保护的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献