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

基于实时操作系统模块化管理的运行方法、装置及设备与流程

2021-11-22 14:02:00 来源:中国专利 TAG:

1.本发明涉及操作系统
技术领域
,特别涉及一种基于实时操作系统模块化管理的运行方法、一种基于实时操作系统模块化管理的运行装置以及一种基于实时操作系统模块化管理的运行设备。
背景技术
:2.目前很多常用的rtos如freertos、ucos等并未提供动态模块加载功能,这限制了他们的灵活性,也使得如果运行在系统之上的某个app模块更新,需要整个工程编译重新烧写,下载到板子上。如果通过云平台升级则需要下载完整的镜像,对于空间及资源有限的嵌入式设备来说很不方便,而如果实现一个虚拟机动态加载某个发生更新的模块,类似linux动态加载ko文件,则可以很方便快捷。此外,通过云平台升级时也只需要先卸载模块,将升级包下载到flash之后由于虚拟机进行解析并对模块进行升级,不需要通过bootloader。而且,现有技术中在选择编译工具时存在诸多限制,并不利于用户的灵活选择。技术实现要素:3.有鉴于此,本发明旨在提出基于实时操作系统模块化管理的运行方法、装置及设备,通过采用模块化管理,系统与模块可以实现使用不同编译工具链编译而正常运行的效果,这样的好处在于当系统sdk使用的工具链涉及版权问题,用户可以选择使用其他开源工具链单独编译模块,最后在虚拟机的管理下正常运行,灵活而不臃肿。4.为达到上述目的,本发明的第一方面提供了一种基于实时操作系统模块化管理的运行方法,所述运行方法包括:在所述基于实时操作系统中运行elf格式的虚拟机;响应于应用程序的运行开始指令,将所述应用程序转换为elf格式的文件;采用所述虚拟机对所述elf格式的文件进行加载和解析,得到解析后的代码;在所述基于实时操作系统中运行所述解析后的代码。5.优选的,采用所述虚拟机对所述elf格式的文件进行加载和解析,得到解析后的代码,包括:加载并解析所述elf格式的文件的文件头和节,对所述节中需要重定位的符号进行符号重定位;确定符号重定位之后的代码的入口地址。6.优选的,加载并解析所述elf格式的文件的文件头和节,包括:加载所述elf格式的文件的文件头;加载所述elf格式的文件的节;确定所述elf格式的文件中的节均被加载完成,确定加载的节包括若干特定的节。7.优选的,对所述节中需要重定位的符号进行符号重定位,包括:确定不存在于所述节中的符号为需要重定位的符号;在系统中获取所述需要重定位的符号的位置,根据位置对所述需要重定位的符号进行重定位。8.优选的,所述运行方法还包括:在在所述基于实时操作系统中运行所述解析后的代码之后,从所述基于实时操作系统中卸载所述elf格式的虚拟机。9.优选的,所述elf格式的虚拟机和所述elf格式的文件采用不同的交叉编译工具链编译而成。10.优选的,所述运行方法还包括,对所述应用程序进行升级或更新的步骤:采用升级或更新后的应用程序替换原有的应用程序;将所述升级或更新后的应用程序转换为elf格式的文件;采用所述虚拟机对所述elf格式的文件进行加载和解析,得到解析后的代码;在所述基于实时操作系统中运行所述解析后的代码。11.在本发明的第二方面,还提供了一种基于实时操作系统模块化管理的运行装置,所述装置包括:虚拟机模块,用于在所述基于实时操作系统中运行elf格式的虚拟机;文件转换模块,用于响应于应用程序的运行开始指令,将所述应用程序转换为elf格式的文件;文件解析模块,用于采用所述虚拟机模块对所述elf格式的文件进行加载和解析,得到解析后的代码;以及代码执行模块,用于在所述基于实时操作系统中运行所述解析后的代码。12.在本发明的第三方面,还提供了一种电子设备,该电子设备包括:至少一个处理器;存储器,与所述至少一个处理器连接;其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现前述的基于实时操作系统模块化管理的运行方法。13.优选的,所述电子设备为物联网设备或机顶盒。14.本发明实施方式提供的技术方案,具有以下有益效果:15.(1)分离系统与app模块,实现模块动态加载;16.(2)系统sdk与app模块可使用不同交叉编译工具链编译而正常运行,方便用户编译app时对工具链的选择,同时更新app时不需要对整个包重新进行编译链接,只需要编译更新的app;17.(3)实现app模块动态升级,当系统对app升级时,不需要重启系统,只需要卸载原先的app,将升级后的app加载进系统即可;18.(4)实现对系统和硬件设备的保护访问,防止上层app模块对系统或硬件设备的非法访问和操作。19.本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。附图说明20.构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施方式及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:21.图1为本发明一实施方式中的基于实时操作系统模块化管理的运行方法的步骤示意图;22.图2为本发明一实施方式中的基于实时操作系统的整体框架示意图;23.图3为本发明一实施方式中的基于实时操作系统模块化管理的运行方法中的具体解析过程示意图;24.图4为本发明一实施方式中的基于实时操作系统模块化管理的运行方法中升级或更新的步骤示意图;25.图5为本发明一实施方式中的基于实时操作系统模块化管理的运行装置的模块结构图。具体实施方式26.以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。27.图1为本发明一实施方式中的基于实时操作系统模块化管理的运行方法的步骤示意图,如图1所示,一种基于实时操作系统模块化管理的运行方法,所述运行方法包括:28.s01、在所述基于实时操作系统中运行elf格式的虚拟机;29.整个虚拟机运行在基于实时操作系统(rtos)之上,将基于实时操作系统提供的接口映射出去,供应用程序模块(app模块)调用。由该虚拟机将app模块加载到基于实时操作系统中运行。图2为本发明一实施方式中的基于实时操作系统的整体框架示意图。设备、系统(实时操作系统)、虚拟机和app的层级结构和交互关系如图2所示。30.s02、响应于应用程序的运行开始指令,将所述应用程序转换为elf格式的文件;31.因为基于实时操作系统和app模块都是elf格式的文件,因此其便于解析。同时elf格式作为基于实时操作系统上的主要可执行文件格式,具有可扩展性和灵活性的优点。app模块通过特定的链接脚本和编译时传递的特定编译器参数,被链接成可重定位的elf可执行文件,该elf可执行文件与原文件地址无关,虚拟机可以在其运行前根据需要重定位的信息修改各个需要重定位的函数和变量的物理地址,使该app模块所对应的应用程序可以正常运行。32.s03、采用所述虚拟机对所述elf格式的文件进行加载和解析,得到解析后的代码;33.当将app模块加载进来的时候,虚拟机对该app模块的各个段进行遍历,对于app模块中使用到的符号进行查找,如果在app模块中不存在对应符号,则在基于实时操作系统中查找,找到后对符号进行重定位,这样当app模块运行起来之后就可以正常调用基于实时操作系统提供的接口操作该设备。34.s04、在所述基于实时操作系统中运行所述解析后的代码。35.基于实时操作系统中运行所述解析后的代码,以实现app模块的功能实现。36.通过以上实施方式,通过对基于实时操作系统与app模块进行分离,实现app模块的动态加载。在这种模式下运行,app模块对于系统来说只是一个独立的部分,实现系统与模块分离开,对于设备来说更加安全,app只能通过特定的接口操作硬件,防止对设备进行非法访问,并以此实现对基于实时操作系统和硬件设备的保护访问,防止上层app模块对基于实时操作系统或硬件设备的非法访问和操作。同时还提升了编译效率和编译上的灵活性。37.在本发明提供的一些实施方式中,采用所述虚拟机对所述elf格式的文件进行加载和解析,得到解析后的代码,包括:加载并解析所述elf格式的文件的文件头和节,对所述节中需要重定位的符号进行符号重定位;确定符号重定位之后的代码的入口地址。elf文件由4部分组成,分别是elf头(elfheader)、程序头表(programheadertable)、节(section)和节头表(sectionheadertable)。实际上,一个文件中不一定包含全部内容,而且它们的位置也未必如同所示这样安排,只有elf头的位置是固定的,其余各部分的位置、大小等信息由elf头中的各项值来决定。本实施方式加载前述的elf格式的文件是通过以上4个部分进行分别加载的。其中在加载节的过程中,需要对其中的需要重定位的符号进行符号重定位,以及通过init段执行初始化,得到入口地址。38.在本发明提供的一些实施方式中,加载并解析所述elf格式的文件的文件头和节,包括:加载所述elf格式的文件的文件头;加载所述elf格式的文件的文件头的节;确定所述elf格式的文件中的节均被加载完成,确定加载的节包括若干特定的节。本实施方式中提供了具体加载elf格式的文件的顺序,以及确认步骤。其中需要确认所有的节均为加载,以及包括若干特定的节,此处的特定的节是指程序运行所必要的节。39.在本发明提供的一些实施方式中,对所述节中需要重定位的符号进行符号重定位,包括:确定不存在于所述节中的符号为需要重定位的符号;在系统中获取所述需要重定位的符号的位置,根据位置对所述需要重定位的符号进行重定位。具体方式包括:当将app模块加载进来的时候,虚拟机对该app模块的各个段进行遍历,对于app模块中使用到的符号进行查找,如果在app模块中不存在对应符号,则在基于实时操作系统中查找,找到后对符号进行重定位,这样当app模块运行起来之后就可以正常调用基于实时操作系统提供的接口操作该设备。40.在本发明提供的一些实施方式中,所述运行方法还包括:在在所述基于实时操作系统中运行所述解析后的代码之后,从所述基于实时操作系统中卸载所述elf格式的虚拟机。在解析后的代码在基于实时操作系统中运行后,卸载elf格式的虚拟机,以释放系统资源,提升系统资源的使用效率。41.图3为本发明一实施方式中的基于实时操作系统模块化管理的运行方法中的具体解析过程示意图,如图3所示。该实施方式中的基于实时操作系统模块化管理的运行方法包括:42.(1)加载elf文件头并解析;(2)确认文件头部正确;(3)加载section(节)头部和名字;(4)对section进行处理;(5)确认加载完所有section;(6)确认已包含必要的section;(7)确认符号需要重定位;(8)符号重定位;(9)确认存在init段;(10)执行初始化;(11)获取app入口地址;(12)确认得到入口;(13)运行app;(14)卸载虚拟机。43.在本发明提供的一些实施方式中,所述elf格式的虚拟机和所述elf格式的文件采用不同的交叉编译工具链编译而成。本实施方式中,系统sdk与app模块可使用不同交叉编译工具链编译而正常运行,避免了对编译工具链的限制,方便用户编译app时对编译工具链的选择。44.图4为本发明一实施方式中的基于实时操作系统模块化管理的运行方法中升级或更新的步骤示意图。如图4所示。在本实施方式中,所述运行方法还包括,对所述应用程序进行升级或更新的步骤:采用升级或更新后的应用程序替换原有的应用程序;将所述升级或更新后的应用程序转换为elf格式的文件;采用所述虚拟机对所述elf格式的文件进行加载和解析,得到解析后的代码;在所述基于实时操作系统中运行所述解析后的代码。本实施方式包括以下步骤:(1)fota升级任务开始;(2)接收升级包,写入fota分区;(3)确认接收完成;(4)crc32校验升级包;(5)确认校验成功;(6)擦除老的app,写入新的app;(7)运行app。通过以上实施方式,更新app时不需要对整个包重新进行编译链接,只需要编译更新的app,实现app模块动态升级,当系统对app升级时,不需要重启系统,只需要卸载原先的app,将升级后的app加载进系统即可。45.图5为本发明一实施方式中的基于实时操作系统模块化管理的运行装置的模块结构图。如图5所示。在本发明实施方式中,还提供一种基于实时操作系统模块化管理的运行装置,所述装置包括:虚拟机模块,用于在所述基于实时操作系统中运行elf格式的虚拟机;文件转换模块,用于响应于应用程序的运行开始指令,将所述应用程序转换为elf格式的文件;文件解析模块,用于采用所述虚拟机模块对所述elf格式的文件进行加载和解析,得到解析后的代码;以及代码执行模块,用于在所述基于实时操作系统中运行所述解析后的代码。46.上述的基于实时操作系统模块化管理的运行装置中的各个功能模块的具体限定可以参见上文中对于基于实时操作系统模块化管理的运行方法的限定,在此不再赘述。上述装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。47.在本发明提供了一种电子设备,所述电子设备包括:至少一个处理器;存储器,与所述至少一个处理器连接;其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现前述的基于实时操作系统模块化管理的运行方法。此处的控制模块或处理器具有数值计算和逻辑运算的功能,其至少具有数据处理能力的中央处理器cpu、随机存储器ram、只读存储器rom、多种i/o口和中断系统等。处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现前述的方法。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。48.在本发明提供的一种实施方式中,还提供了所述电子设备为物联网设备或机顶盒。所述物联网设备或机顶盒采用基于实时操作系统,并运行有app。通过在物联网设备或机顶盒里预置前述的基于实时操作系统模块化管理的运行方法,成为该物联网设备或机顶盒的一个子功能,从而在使用过程中,执行前述的基于实时操作系统模块化管理的运行,以此实现更好的安全性和升级便捷性。49.本发明的实施方式提供的基于实时操作系统模块化管理的运行方法、装置及设备,通过模块化管理app,实现基于实时操作系统与app的分离,为app的编译提供便利;由于app是通过虚拟机访问系统操作设备的,这样的模式与传统的运行框架相比更安全,app只能间接操作设备,防止对设备进行误操作;另外这对于app升级也会更加方便。50.以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。51.另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。52.本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read‑onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。53.此外,本发明实施例的不同实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。当前第1页12
再多了解一些

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

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

相关文献