公开/公告号CN102207887A
专利类型发明专利
公开/公告日2011-10-05
原文格式PDF
申请/专利权人 中兴通讯股份有限公司;
申请/专利号CN201110114310.2
发明设计人 胡亚弟;
申请日2011-05-04
分类号G06F9/48(20060101);
代理机构44281 深圳鼎合诚知识产权代理有限公司;
代理人宋鹰武
地址 518057 广东省深圳市南山区科技园科技南路中兴通讯大厦
入库时间 2023-12-18 03:26:04
法律状态公告日
法律状态信息
法律状态
2019-03-15
专利权的转移 IPC(主分类):G06F9/48 登记生效日:20190226 变更前: 变更后: 申请日:20110504
专利申请权、专利权的转移
2016-08-10
授权
授权
2016-07-27
著录事项变更 IPC(主分类):G06F9/48 变更前: 变更后: 申请日:20110504
著录事项变更
2016-07-27
专利申请权的转移 IPC(主分类):G06F9/48 登记生效日:20160704 变更前: 变更后: 申请日:20110504
专利申请权、专利权的转移
2013-06-05
实质审查的生效 IPC(主分类):G06F9/48 申请日:20110504
实质审查的生效
2011-10-05
公开
公开
查看全部
技术领域
本发明涉及嵌入式系统软件设计领域,尤其涉及一种嵌入式操作系统快速移植方法及其装置。
背景技术
嵌入式系统中最重要的是嵌入式软件,而嵌入式软件的主要组成部分则为嵌入式操作系统。随着嵌入式设备的发展,操作系统越来越多样化,处理器硬件也多元化。目前广泛使用的各种嵌入式系统包括Linux,Wince,Thread,ucos,eCos等。嵌入式操作系统的显著特征是可移植性,可裁剪性与可配置性,这更加突出了嵌入式操作系统的多样化特征。多样的操作系统与多元化的处理器平台相交织,从而形成了更加多样的嵌入式系统组合。
因此,当开发人员希望完成一个操作系统在某处理器上的移植时,需要花费大量的时间学习该操作系统。由于,大多数嵌入式操作系统都是可裁剪的,因此,对于需要使用那些模块,不需要使用那些模块,以及模块实现方式是否与现有硬件冲突,如何修改等都需要牢牢掌握。同时进行操作系统移植时,还要学习处理器相关知识,对于二进制接口等内容必须要相当熟悉,才能够完成操作系统在硬件平台上的移植。另外,即使一个在某平台上运行稳定的嵌入式操作系统及其软件,如果要想移植到另外一个处理器平台上的话,或者移植到一个同系列但是不同型号的处理器上时,开发人员依然需要对新的处理器的各种特性,ABI接口(application binary interface,应用程序二进制接口)等重新学习,从而快速明确新平台与该操作系统能够稳定运行的平台之间差异性与要修改的点,以重新修改或编写操作系统中与硬件相关的代码或文件。这种通过学习嵌入式系统和新平台的学习,来进行相应代码或者文件的修改或者编写,不仅增加了开发人员的压力,并且使得嵌入式操作系统不能够快速移植到新的平台,从而使得嵌入式操作系统的移植效率较低。
发明内容
本发明要解决的主要技术问题是,提供一种嵌入式操作系统快速移植方法及其装置,通过降低操作系统的移植难度与学习成本,从而使得开发人员能够快速完成移植工作,进而提高嵌入式操作系统的移植效率。
为解决上述技术问题,本发明采用的技术方案如下:
一种嵌入式操作系统快速移植方法,包括:
解析预先生成的被移植嵌入式处理器所对应的配置文件,得到操作系统配置信息和编译配置信息;
根据所述操作系统配置信息和预先编辑的库函数,生成嵌入式操作系统的待编译文件;
根据所述编译配置信息,对所述待编译文件进行编译,生成可执行在所述被移植嵌入式处理器的嵌入式操作系统可执行文件;
将所述嵌入式操作系统可执行文件导入所述被移植嵌入式处理器。
进一步地,所述操作系统配置信息包括:
处理器二进制接口相关配置信息,中断实现方式配置信息,操作系统相关实现配置信息,链接脚本相关配置信息,软硬件可拓展部分配置信息;
所述编译配置信息包括编译器选择配置信息和编译器相关参数配置信息。
进一步地,生成所述被移植嵌入式处理器所对应的配置文件包括:利用人机交互代码对被移植嵌入式处理器的特性以及操作系统的关键性信息进行描述,并根据所描述的信息生成相应的配置文件。
更进一步地,利用人机交互代码对被移植嵌入式处理器的特性以及操作系统的关键性信息进行描述,并根据所描述的信息生成相应的配置文件的步骤,包括:
利用人机交互代码对被移植嵌入式处理器的特性以及操作系统的关键性信息进行描述;
对所描述的信息进行配置;
按照预定义格式将配置后的所描述的信息进行存储,得到包含所述操作系统配置信息和编译配置信息的配置文件。
进一步地,根据所述操作系统配置信息,生成嵌入式操作系统的待编译文件的步骤,包括:
调用预先编辑的库函数;
根据所述库函数和操作系统配置信息,对操作系统中与移植相关的文件进行修改或者重新编写,生成嵌入式操作系统的待编译文件。
更进一步地,生成所述嵌入式操作系统的待编译文件之后,还包括:
根据所述链接脚本相关配置信息,对链接脚本进行修改。
更进一步地,根据所述编译配置信息,对所述待编译文件进行编译,生成可执行在所述被移植嵌入式处理器的嵌入式操作系统可执行文件的步骤,包括:
根据所述编译器选择配置信息,选择相应版本的编译器;
根据所述编译器相关参数配置信息,对已选择的编译器进行相应的参数配置;
参数配置后的编译器对所述待编译文件进行编译,生成可执行在所述被移植嵌入式处理器的嵌入式操作系统可执行文件。
更进一步地,将所述嵌入式操作系统可执行文件导入所述被移植嵌入式处理器时,还包括:生成相应的编译日志。
一种嵌入式系统移植装置,包括:
配置文件处理引擎,用于对预先生成的配置文件进行解析,得到操作系统配置信息和编译配置信息;
操作系统移植处理模块,与所述配置文件处理引擎相连,用于根据所述操作系统配置信息和预先编辑的库函数,生成嵌入式操作系统的待编译文件;
操作系统编译模块,与所述配置文件处理引擎和操作系统移植处理模块相连,用于根据所述配置文件处理引擎解析得到的编译配置信息,对所述待编译文件进行编译,生成可执行在被移植嵌入式处理器的嵌入式操作系统可执行文件;
可执行文件导入模块,与所述操作系统编译模块相连,用于将所述嵌入式操作系统可执行文件导入到被移植嵌入式处理器。
进一步地,所述操作系统配置信息包括:处理器二进制接口相关配置信息,中断实现方式配置信息,操作系统相关实现配置信息,链接脚本相关配置信息,软硬件可拓展部分配置信息;所述编译配置信息包括编译器选择配置信息和编译器相关参数配置信息。
进一步地,所述装置还包括:
交互式处理器描述模块,与所述配置文件处理引擎相连,用于利用人机交互代码对被移植嵌入式处理器特性和操作系统的关键性信息进行描述,并根据所描述的信息生成相应的配置文件。
更进一步地,所述交互式处理器描述模块包括:
描述子模块,用于利用人机交互代码对被移植嵌入式处理器的特性和操作系统的关键性信息进行描述;
配置子模块,与所述描述子模块相连,用于对所述交互式处理器描述模块所描述的信息进行配置;
配置文件生成子模块,与所述配置子模块和配置文件处理引擎相连,用于将进行配置后的所描述的信息,按照预定义格式进行存储,生成相应的配置文件,并输出给所述配置文件处理引擎。
进一步地,所述操作系统移植处理模块包括:
调用子模块,用于调用预先编辑的相应的库函数;
待编译文件生成子模块,与所述调用子模块和配置文件处理引擎相连,用于根据所述库函数和所述操作系统配置信息对嵌入式系统中与移植相关的文件进行修改或者重新编写,生成嵌入式操作系统的待编译文件。
更进一步地,所述操作系统编译模块包括:编译器,以及与编译器相连的编译器配置子模块,所述编译器配置子模块与所述配置文件处理引擎相连,用于根据所述编译器选择配置信息对所诉编译器的版本号进行配置,并根据所述编译器相关参数配置信息对所述编译器的相关参数进行配置;所述编译器,与所述操作系统移植处理模块相连,用于当所述编译器配置子模块对其进行配置后,将所述操作系统移植处理模块生成的待编译文件进行编译,生成可执行在被移植嵌入式处理器的嵌入式操作系统可执行文件。
更进一步地,所述装置还包括与所述操作系统编译模块相连的记录模块,用于生成相应的编译日志。
本发明的有益效果是:
本发明的嵌入式操作系统快速移植方法通过对预先生成的配置文件进行解析,并根据解析后得到的操作系统配置信息和预先编辑的库函数,生成嵌入式操作系统的待编译文件,再根据解析后得到的编译配置信息,对该嵌入式操作系统的待编译文件进行编译,生成嵌入式系统可执行文件,并将其导入到被移植嵌入式处理器中。即是说本发明的移植方法,通过根据预先生成相应的配置文件,再根据该配置文件中相应的配置信息和预先编辑的库函数,生成可执行在被移植嵌入式处理器的嵌入式操作系统可执行文件,由于该库函数中有可参照的示例代码或者可直接可复用的代码,在嵌入式系统移植时,开发人员可以根据相应的配置信息,和相应库函数中对应的可复用代码或者参照实例来进行对应的直接复用或者重新编写,避免了必须先对嵌入式系统和处理器进行相应的学习,再进行相应的代码的修改或者编写,从而降低了操作系统的移植难度与学习成本,使得开发人员能够快速完成移植工作,进而提高嵌入式操作系统的移植效率。
附图说明
图1为本发明的嵌入式系统快速移植装置的一实施例的结构示意图;
图2为本发明的交互式处理器描述模块的一实施例的结构示意图;
图3为本发明的操作系统移植处理模块的一实施例的结构示意图;
图4为本发明的操作系统编译模块的一实施例的结构示意图;
图5为本发明的嵌入式系统快速移植方法的一实施例的流程图;
图6为本发明的嵌入式系统快速移植方法的步骤S101的一实施例的流程图;
图7为本发明的嵌入式系统快速移植方法的步骤S105的一实施例的流程图;
图8为本发明的嵌入式系统快速移植方法的步骤S109的一实施例的流程图;
图9为将ucos系统快速移植到PowerPC处理器的方法的一实施例的流程图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
在嵌入式操作系统的移植工作中,开发人员通常会希望尽量快的完成移植工作,即对能够直接复用的代码不做修改并保留,而对需要修改的地方,以及一些学习成本很高的部分,希望能够有示例代码做参照,已便于编写相应的代码,或者能够找到直接可复用的代码,以便于快速完成移植工作。
基于上述的现象,本实施方式提供一种嵌入式操作系统的快速移植装置,及其快速移植方法。
请参考图1,为本实施方式的嵌入式操作系统的快速移植装置的一实施例的结构示意图。本实施方式的嵌入式操作系统快速移植装置包括交互式处理器描述模块101,用于利用嵌入式操作系统软硬件描述性语言,即人机交互代码,对被移植嵌入式处理器的特性,以及操作系统的关键性信息进行描述,并根据所描述的信息生成包含操作系统配置信息和编译配置信息的配置文件;与交互式处理器描述模块101相连的配置文件处理引擎102,用于对由交互式处理器描述模块101预先生成的配置文件进行解析,得到操作系统配置信息和编译配置信息;与配置文件处理引擎102相连的操作系统移植处理模块103,用于根据操作系统配置信息和预先编辑的库函数,生成嵌入式操作系统的待编译文件;与操作系统移植处理模块103和配置文件处理引擎102相连的操作系统编译模块104,用于根据配置文件处理引擎103解析得到的编译配置信息,将操作系统移植处理模块102生成的待编译文件进行编译,生成可执行在被移植嵌入式处理器的嵌入式操作系统可执行文件;可执行文件导入模块105,与操作系统编译模块104生成的嵌入式操作系统可执行文件导入到被移植嵌入式处理器中;与由操作系统编译模块104相连的记录模块106,用于记录编译日期,版本号,编译选项,修改内容等,生成对应的编译日志。
本实施方式中的利用人机交互代码对被移植嵌入式处理器的特性和嵌入式操作系统的关键性信息进行描述指利用嵌入式系统软硬件描述性语言对处理器特性,操作系统等关键性信息进行描述。
本实施方式的嵌入式系统的快速移植装置通过交互式处理器描述模块101对被移植嵌入式处理器特性,以及操作系统的关键性信息进行描述,并根据所描述的信息生成对应的配置文件,再由配置文件处理引擎102对该配置文件进行解析,得到相应的操作系统配置信息和编译配置信息,再由操作系统移植处理模块103根据该操作系统配置信息和库函数,生成嵌入式操作系统的待编译文件,并由操作系统编译模块104对该待编译文件进行编译,生成嵌入式操作系统可执行文件,最后由可执行文件导入模块105将生成的可执行文件导入到被移植嵌入式处理器中,从而完成嵌入式操作系统的移植工作。由于库函数中提供了对应的示例代码,或者直接可复用的代码,从而使得根据配置文件进行嵌入式操作系统的移植时,只需要根据该实例代码来编写对应需要修改的代码,或者直接复用该库函数中的可复用代码,生成嵌入式操作系统的待编译文件,最后将其编译并导入被移植处理中即可,避免了必须先进行相应的学习,再进行相应的代码的修改或者编写,进而使得开发人员能够直接根据配置文件和库函数中对应的代码来进行对应的修改或者编写,降低了操作系统的移植难度与学习成本,使得开发人员能够快速完成移植工作,提高了移植效率。
请参考图2,为本实施方式中的交互式处理器描述模块101的一实施例的结构示意图。本实施方式的交互式处理器描述模块101包括:描述子模块1011,用于利用人机交互代码对被移植嵌入式处理器特性和操作系统的关键性信息进行描述;与该描述子模块1011相连的配置子模块1012,用于对该描述子模块1011所描述的信息进行相应的配置;与配置模块1012相连的配置文件生成模块1013,用于将配置后的所描述的信息按照预定义格式进行存储,生成相应的配置文件,并输出给配置文件处理引擎102。
本实施方式中所描述的信息包括处理器二进制接口相关内容选项,中断实现方式选项和时钟中断信息,操作系统相关实现选项,链接脚本相关选项,软硬件可拓展部分选项;以及编译器相关选项。
当将嵌入式操作系统进行移植时,由于操作系统中的各个模块并不是全部需要使用,或者被移植的新处理器的特性不相同,因此需要对各个模块或者新处理器的特性等进行相应的配置,从而再根据这些配置信息来完成操作系统在硬件平台上的移植。本实施方式中的通过配置子模块1012对所描述的信息进行配置,从而得到相应的嵌入式系统配置信息和编译配置信息,其中,操作系统配置信息包括处理器二进制接口相关配置信息,中断实现方式配置信息,操作系统相关实现配置信息,链接脚本相关配置信息,软硬件可拓展部分配置信息;编译配置信息包括编译器选择配置信息和编译器相关参数配置信息。
本实施方式中配置子模块1012对描述子模块1011所描述的信息进行配置是指根据需要使用的模块,模块实现方式是否与现有硬件冲突,处理器相关特性,二进制接口相关内容等,对所描述的信息中的每个选项部分进行对应的选择,再根据用户的选择通过Y选项或者具体数值来确认用户选择了某项功能。例如由于不同操作系统的不同版本使用的编译器,编译器相关参数不同,如Vxworks系统使用diab编译器,而linux系统使用gcc编译器,则此时需要对编译描述信息进行配置,即配置选择哪一类型的编译器,同时对该编译器的相关参数进行配置。
本实施方式中,描述子模块1011描述的各个选项信息,可以可视化界面方式提供选项,以便于开发者理解运用。
请参考图3,为本实施方式的操作系统移植处理模块103的一实施例的结构示意图。本实施方式的操作系统移植处理模块103包括与配置文件处理引擎102相连的调用子模块1031,用于调用对应的库函数;与调用子模块1031和配置文件处理引擎102相连的待编译文件生成子模块1032,用于根据所调用的库函数中对应的代码和操作系统配置信息,对嵌入式系统中与移植相关的文件进行修改或者编写,生成嵌入式操作系统的待编译文件。
本实施方式中通过调用相应的库函数,并根据该该库函数中对应的代码和操作系统配置信息,对与移植相关的文件进行修改或者编写,生成待编译文件,由于该库函数中提供有相应的可参照实例代码或者可直接复用的代码,从而降低了操作系统的学习难度和移植难度,使得开发人员能够根据该库函数中相应的代码快速完成移植工作。
请参考图4,为本实施方式中的操作系统编译模块104的一实施例的结构示意图。本实施方式的操作系统编译器配置模块104包括相连的编译器配置子模块1041和编译器1042,其中编译器配置子模块1041与配置文件处理引擎102相连,用于根据编译器选择配置信息,对编译器1042的版本号进行配置,并根据编译器相关参数配置信息对编译器1042进行相关参数配置;编译器1042,与操作系统移植处理模块103相连,用于当编译器配置子模块1041对其进行相应的配置后对该操作系统移植处理模块103生产的待编译文件进行编译,生成嵌入式操作系统可执行文件。
由于不用操作系统的不同版本对于硬件的支持是不一样的,同时操作系统的不同版本间使用的编译器,编译器相关参数,如优化等级等,也是不一样的,因此,本实施方式通过配置编译器的版本号、参数等相关信息,从而再根据该配置信息选择对应的版本的编译器来编译待编译文件。
本实施方式中不同编译器之间的参数会提供默认数值,当然也可以让用户手工进行相应的编译器相关信息配置来修改。
基于上述的快速移植装置,本实施方式还提供一种嵌入式系统的快速移植方法,下面结合附图和具体实施例对本实施方式的嵌入式系统的快速移植方法进行详细的说明。
请参考图5,为本实施方式的嵌入式系统的快速移植方法的一实施例的流程图。本实施方式的嵌入式系统的快速移植方法包括:
S101,利用嵌入式系统软硬件描述语言,即人机交互代码对被移植嵌入式处理器的特性与操作系统的关键信息进行描述,并根据所描述的信息生成相应的配置文件,执行步骤S103。
请参考图6,为本实施方式的步骤S101的一实施例的流程图。本实施方式的步骤S101包括:
S1011,利用嵌入式系统软硬件描述语言,即人机交互代码,对被移植嵌入式处理器的特性以及操作系统的关键性信息进行描述。
本实施方式中利用嵌入式系统软硬件描述语言进行描述的被移植嵌入式处理器的特性和嵌入式操作系统关键性信息包括:
处理器二进制接口相关内容选项;二进制接口用来描述处理器支持的数据类型,通用寄存器的使用规则,处理器的栈帧结构,以及ELF(Executable and Linkable Format,目标文件格式)文件组成等信息;
中断实现方式选择选项和时钟中断信息;在嵌入式操作系统中,外部中断所使用的处理器引脚基本都是不同的,从而需要通过对中断实现方式进行描述,以进行相应的配置;另外对于处理器的时钟部分,各个硬件平台的时钟要求也是不一样的,外部参考时钟也不一样,因此,也需要对其进行描述,以便于开发者进行相应的配置;
操作系统相关实现选项;操作系统对硬件类型支持程度不同,有些操作系统会对部分硬件默认支持,而当用户选择该操作系统是,则会列出该操作系统支持硬件的相关特性,因此,需要对其进行描述,以便于用户对其进行相应的配置;并且,操作系统中的功能模块并不一定都会用到,因此,需要对各个功能模块进行描述,以便于开发者进行相应的配置来开启需要使用的功能模块;
链接脚本相关选项;由于硬件设计的差异性,操作系统镜像会运行在不同的物理载体上,从而需要对链接脚本的地址进行修改,因此,需要对该项进行描述,以便于开发者根据具体的硬件的设计进行相应的配置;
软硬件可拓展部分;在嵌入式系统中,除了最小系统外,还有很多设备,总线等,例如USB(Universal Serial BUS,通用串行总线),PCI(Peripheral Component Interconnect,外设互联标准),LCD(Liquid Crystal Display,液晶显示器)等;
编译器相关选项;由于不同操作系统的不同版本,对于硬件的支持是不一样的,并且操作系统的不同版本间使用的编译器,编译器相关参数等也是不一样的,例如Vxworks系统使用diab编译器,而linux系统使用gcc编译器,因此,需要对操作系统对应的编译器相关选项进行描述,以供用户进行相应的配置。本实施方式中,编译器相关选项包括gcc版本,位宽,堆栈布局,堆栈生长方向等。
S1013,对所描述的信息进行配置。
本实施方式中所描述的各个选项信息均以可视化界面方式向开发者提供选项,从而帮助开发者理解运用,并进行相应的配置。
S1015,按照预定义格式将配置后的所描述的信息进行存储,得到包含所述操作系统配置信息和编译配置信息的配置文件。
本实施方式通过对所描述的信息进行配置后,生成的配置文件主要包括:
1)处理器二进制接口相关内容选项。
2)编译器相关内容选项。
由于不同操作系统的不同版本,对于硬件的支持是不一样的,并且操作系统的不同版本间使用的编译器,编译器相关参数等也是不一样的,因此,需要对所描述的信息中的操作系统对应的编译器相关选项进行相应的配置。
当然不同编译器之间的参数会提供默认数值,也可以让用户手工进行配置。
3)中断实现方式选择,时钟中断。
由于外部中断所使用的处理器引脚基本都是不同的,因此需要通过对中断实现方式进行相应的配置,进而使得可自动修改操作系统的中断处理代码,提供基本的中断处理函数;另外对于处理器的时钟部分,各个硬件平台的时钟要求,外部参考时钟等参数可由开发者进行相应的配置。
4)操作系统相关实现选项,该选项可根据处理器型号提供默认实现方式。
当用户选择的操作系统默认支持部分硬件类型时,则列出该系统支持硬件的相关特性,从而开发者对这些特性进行相应的配置,选择是否使用。
同时,操作系统提供的各种功能模块中,也有大量的选项,例如该模块是否全部功能都打开等,或者是否使用调试功能等。
5)链接脚本相关选项。
由于硬件设计的差异性,操作系统镜像会运行在不同的物理载体上,如直接在NOR FLASH(非易失性的存储器)上运行,或者被搬运到ram(random access memory,随机存储器)上运行等,对于链接脚本的链接地址就需要根据硬件的设计进行修改。同时还可以让开发者自行选择是否需要增加数据段来将其他类型文件如图片,音频文件等,一起编译在内核中等等,从而减少了用户自己学习链接脚本,手动完成的麻烦。
6)软硬件可拓展部分选项。
在嵌入式系统中,除了最小系统外,还有很多设备,总线等,例如USB,PCI,LCD等。通过进行相应的配置,使得开发者可以直接选择需要的选项,例如linux中提供了一些常用设备的驱动文件,开发者可以通过相应配置,即可以直接选中自己要用的设备驱动,从而减少了自己需找文件,自己编写的问题。
本实施方式中的预定义格式为嵌入式系统软硬件信息的格式。本实施方式的一实施例中,存储为预定义格式的配置文件中:
处理器二进制接口相关内容选项的格式为:
<Application Binary Interface>
<Application Binary Interface>;
编译器相关内容选项的格式为:
<Assambler Option>
<Assambler Option>;
中断实现方式选择的格式为:
<Interrupt Option>
<Interrupt Option>;
操作系统相关实现选项的格式为:
<Operation System Option>
<Operation System Option>;
链接脚本相关选项的格式为:
<Linker Option>
<Linker Option>;
软硬件可拓展部分选项的格式为:
<Hardware Option>
<Hardware Option>。
本实施方式中根据被移植嵌入式处理器的特性,对上述的每个选项进行相应选择,即根据用户的选择在上述各个选项的对应选项上,通过Y选项或者具体数值来标识具体选择了某项功能,即对该选项进行了相应的配置,从而得到对应的配置文件。
S103,对生成的配置文件进行解析,得到操作系统配置信息和编译配置信息。
本实施方式中的操作系统配置信息包括:处理器二进制接口相关配置信息,中断实现方式配置信息和时钟中断配置信息,操作系统相关实现配置信息,链接脚本相关配置信息,软硬件可拓展部分配置信息;编译描述信息包括编译器版本配置信息和编译器相关参数配置信息。
S105,根据解析得到的操作系统配置信息,和预先编辑的库函数,生成嵌入式操作系统的待编译文件,执行步骤S107。
请参考图7,本实施方式中步骤S105包括:
S1051,调用预先编辑的库函数。
S1053,根据调用的库函数中相应的代码,和操作系统配置信息,对操作系统中与移植相关的文件进行修改或者重新编写,生成嵌入式操作系统的待编译文件。
S107,根据解析得到的操作系统配置信息中的链接脚本相关配置信息,对相应链接脚本进行修改。
S109,根据解析得到的编译配置信息,对待编译文件进行编译,生成可执行被移植嵌入式处理器的嵌入式操作系统可执行文件,执行步骤S201。
请参考图8,本实施方式中,步骤S109包括:
S1091,根据编译配置信息中的编译器选择配置信息,选择相应版本的编译器。
S1093,根据编译配置信息中的编译器相关参数配置信息,对已选择的编译器进行相关参数配置。
S1095,参数配置后的编译器对嵌入式操作系统的待编译文件进行编译,生成可执行在被移植嵌入式处理器的嵌入式操作系统可执行文件,并调试。
本实施方式中还提供了丰富的故障提示信息,当在编译过程中出现错误,则提示相应的故障信息。
本实施方式中编译后的调试是启动一个对应处理器的虚拟机,在虚拟机上运行编译之后的操作系统,在该调试模式下,操作系统会自动调用一些如进程管理,文件读写操作等基本的验证函数,以验证操作系统的基本模块功能。
S201,记录编译日期,版本号,编译选项,修改内容等,生成相应的编译日志。
本实施方式通过记录编译日期,版本号,编译选项,修改内容等,以便于开发人员根据该编译日志进行后续的维护工作。
S203,将生成的嵌入式操作系统可执行文件导入到被移植嵌入式处理器中。
本实施方式的嵌入式操作系统的快速移植方法,通过对被移植嵌入式处理器特性及操作系统关键性信息的描述,再对所描述的信息进行相应的配置,并根据解析后得到的操作系统配置信息,和调用的库函数来对与移植相关的文件进行修改或者重新编写,生成待编译文件,并根据编译器配置信息对待编译文件进行编译,得到嵌入式操作系统可执行文件,最后将其导入到被移植嵌入式处理器中。由于库函数提供了可参照编写的示例代码或者直接刻复用的代码,从而使得开发者可以根据操作系统配置信息对移植相关文件进行修改或者重新编写时,可直接复用可复用代码或者参照示例代码进行重新编写,以生成待编译文件,再进行编译,从而降低了操作系统的移植难度和学习成本,使得能够快速完成移植工作,进而提高了移植效率。
下面结合ucos操作系统与PowerPC处理器的组合为例,对本实施方式的方法进行详细的描述。
请参考图9,为将ucos操作系统快速移植到PowerPC处理器的一实施例的流程图。本实施例的快速移植方法包括:
S501,利用嵌入式操作系统软硬件描述性语言对ucos操作系统与PowerPC处理器进行描述。
S503,对所描述的信息进行配置。
S505,按照预定义的嵌入式系统软硬件信息的格式存储配置后的所描述的信息,并生成后缀名为.cfg的配置文件。
本实施例中生成的配置文件包括:
数据类型位宽;
传递参数使用的寄存,PowerPC默认配置为使用r3-r8传递参数;
堆栈指针寄存器,默认配置为使用R1;
参数返回值使用的寄存器,默认配置为使用R3和R4;
堆栈布局方式,PowerPC提供多种堆栈布局方式,用户可以根据需要进行相应的配置;
进出中断方式,PowerPC提供直接开关中断方式、先将中断状态保持方式;
可扩展的中断堆栈栈处理方式;
ucos系统的可配置部分。
本实施例中,由于各选项会根据用户的选择来确认选择的具体的某一项功能,即由用户对各选项进行配置,并在用户选择的对应项,通过Y选项或者具体数值表示。例如处理器是大端模式,char是1个byte长,堆栈生长向下时,二进制接口部分配置如下:
S507,通过调用库函数中的后缀名为.cfg的文件的解析引擎,根据生成的后缀名为.cfg的配置文件中的标号、标识符等进行相对应的解析操作,得到相应的操作系统配置信息和编译配置信息。
本实施方式中的标识符指标号中的内容,例如:
其中,标识符为标号中的Byte order_MSB,charlength,stack direction_down等,并且,每一项为一个标号。
本实施方式中的解析操作即指通过遍历配置文件中的每一个标识符,针对每个标识符,解析引擎会定位到要修改的操作系统相关内容中对应的内容。本实施方式中对配置文件解析后,得到相应的操作系统配置信息和编译配置信息,其中操作系统配置信息包括:处理器二进制接口相关配置信息,中断实现方式配置信息和时钟中断配置信息,操作系统相关实现配置信息,链接脚本相关配置信息,软硬件可拓展部分配置信息;编译配置信息包括编译器选择配置信息和编译器相关参数配置信息。
本实施方式中,对配置文件解析后,需要对操作系统中与移植相关文件进行修改,而所有步骤都由程序自动完成。在修改过程中,具体的修改流程,参照用户在标号中给出的相应数值进行相应修改,即根据相关配置信息进行相应修改。
S509,由于ucos中与硬件移植相关的文件包括os_cpu.h,os_cpu_a.asm和os_cpu_c.c三个文件,则调用库函数中的相应代码,并根据解析得到的操作系统配置信息中的处理器二进制接口相关配置信息,中断实现方式配置信息和时钟中断配置信息,以及软硬件可拓展部分配置信息,对三个与硬件移植相关的文件进行自动修改或者重新编写,得到待编译文件。
本实施方式,通过调用库函数中相应的参照示例代码或者可直接可复用的代码,来进行对需要修改或者重新编写的硬件移植相关文件进行自动修改或者重新编写,从而避免对于需要修改的地方,必须先进行相应的学习,再进行相应的代码的修改或者编写。
S601,当需要修改功能模块时,根据解析得到的操作系统相关实现选项,打开该模块的控制宏。
由于ucos系统中有大量的功能模块是可选的,当需要修改模块时,则只要根据解析后的配置文件中对应的操作系统相关实现选项,将相应模块的控制宏打开即可,例如内存管理方式,任务调度方式,时钟中断频率等。
首先根据用户的相关选项,修改相应的宏定义,然后,当需要使用那些模块,则只需要将对应模块的宏定义打开即可使用该模块,而不需要使用的模块则关闭相应的宏定义,从而不需要通过开发人员对相应的模块进行学习,再进行移植。
S603,根据解析得到的操作系统配置信息中的链接脚本相关配置信息,对链接脚本进行修改。
S605,根据解析得到的编译配置信息中的编译器选择配置信息,选择对应版本的编译器。
S607,根据编译配置信息中的编译器相关参数配置信息,对由步骤S605选择的编译器进行相关参数配置。
S609,参数配置后的编译器对待编译文件进行编译,得到相应的嵌入式操作系统的可执行文件,并调试。
S701,记录编译日期,版本号,编译选项,修改内容等,生成编译日志。
S703,将生成的嵌入式操作系统的可执行文件导入到被移植嵌入式处理器中。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
机译: 通过使用自动化建筑框架快速开发嵌入式操作系统的方法和装置
机译: 我使用了一种快速简便的方法来通过化妆品筛选人类精子,而血浆却只有一半。一种可移植的方式来组装工具箱。
机译: 一种用于对wassergekuehlten车辆发动机进行快速预热和对车厢进行快速加热的方法以及一种实施该方法的装置