CN102207887B - 一种嵌入式操作系统快速移植方法及其装置 - Google Patents

一种嵌入式操作系统快速移植方法及其装置 Download PDF

Info

Publication number
CN102207887B
CN102207887B CN201110114310.2A CN201110114310A CN102207887B CN 102207887 B CN102207887 B CN 102207887B CN 201110114310 A CN201110114310 A CN 201110114310A CN 102207887 B CN102207887 B CN 102207887B
Authority
CN
China
Prior art keywords
file
operating system
configuration information
configuration
embedded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110114310.2A
Other languages
English (en)
Other versions
CN102207887A (zh
Inventor
霍平
王枚
田培金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Ocean Technology Co., Ltd.
Original Assignee
SHANDONG WISDOM LIFE DATA SYSTEMS Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHANDONG WISDOM LIFE DATA SYSTEMS Co Ltd filed Critical SHANDONG WISDOM LIFE DATA SYSTEMS Co Ltd
Priority to CN201110114310.2A priority Critical patent/CN102207887B/zh
Publication of CN102207887A publication Critical patent/CN102207887A/zh
Application granted granted Critical
Publication of CN102207887B publication Critical patent/CN102207887B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种嵌入式操作系统快速移植方法及其装置。本发明的嵌入式操作系统快速移植方法通过解析配置文件,得到操作系统配置信息和编译配置信息,再根据该操作系统配置信息和预先编辑的库函数,生成嵌入式操作系统待编译文件,并根据编译配置信息编译待编译文件,生成可执行文件,最后将该可执行文件直接导入到被移植嵌入式处理器。由于本发明的方法中预先生成的库函数提供了对应于配置文件的可参照的示例代码,或者直接可复用的代码,避免了必须先进行相应的学习,再进行相应的代码的修改或者编写,从而使得开发人员能够直接根据配置文件和库函数,对与移植相关的文件进行修改或者编写,进而使得能够快速完成移植工作,提高了移植效率。

Description

一种嵌入式操作系统快速移植方法及其装置
技术领域
本发明涉及嵌入式系统软件设计领域,尤其涉及一种嵌入式操作系统快速移植方法及其装置。
背景技术
嵌入式系统中最重要的是嵌入式软件,而嵌入式软件的主要组成部分则为嵌入式操作系统。随着嵌入式设备的发展,操作系统越来越多样化,处理器硬件也多元化。目前广泛使用的各种嵌入式系统包括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 andLinkable Format,目标文件格式)文件组成等信息;
中断实现方式选择选项和时钟中断信息;在嵌入式操作系统中,外部中断所使用的处理器引脚基本都是不同的,从而需要通过对中断实现方式进行描述,以进行相应的配置;另外对于处理器的时钟部分,各个硬件平台的时钟要求也是不一样的,外部参考时钟也不一样,因此,也需要对其进行描述,以便于开发者进行相应的配置;
操作系统相关实现选项;操作系统对硬件类型支持程度不同,有些操作系统会对部分硬件默认支持,而当用户选择该操作系统是,则会列出该操作系统支持硬件的相关特性,因此,需要对其进行描述,以便于用户对其进行相应的配置;并且,操作系统中的功能模块并不一定都会用到,因此,需要对各个功能模块进行描述,以便于开发者进行相应的配置来开启需要使用的功能模块;
链接脚本相关选项;由于硬件设计的差异性,操作系统镜像会运行在不同的物理载体上,从而需要对链接脚本的地址进行修改,因此,需要对该项进行描述,以便于开发者根据具体的硬件的设计进行相应的配置;
软硬件可拓展部分;在嵌入式系统中,除了最小系统外,还有很多设备,总线等,例如USB(Universal Serial BUS,通用串行总线),PCI(PeripheralComponent Interconnect,外设互联标准),LCD(Liquid Crystal Display,液晶显示器)等;
编译器相关选项;由于不同操作系统的不同版本,对于硬件的支持是不一样的,并且操作系统的不同版本间使用的编译器,编译器相关参数等也是不一样的,例如Vxworks系统使用diab编译器,而linux系统使用gcc编译器,因此,需要对操作系统对应的编译器相关选项进行描述,以供用户进行相应的配置。本实施方式中,编译器相关选项包括gcc版本,位宽,堆栈布局,堆栈生长方向等。
S1013,对所描述的信息进行配置。
本实施方式中所描述的各个选项信息均以可视化界面方式向开发者提供选项,从而帮助开发者理解运用,并进行相应的配置。
S1015,按照预定义格式将配置后的所描述的信息进行存储,得到包含所述操作系统配置信息和编译配置信息的配置文件。
本实施方式通过对所描述的信息进行配置后,生成的配置文件主要包括:
1)处理器二进制接口相关内容选项。
2)编译器相关内容选项。
由于不同操作系统的不同版本,对于硬件的支持是不一样的,并且操作系统的不同版本间使用的编译器,编译器相关参数等也是不一样的,因此,需要对所描述的信息中的操作系统对应的编译器相关选项进行相应的配置。
当然不同编译器之间的参数会提供默认数值,也可以让用户手工进行配置。
3)中断实现方式选择,时钟中断。
由于外部中断所使用的处理器引脚基本都是不同的,因此需要通过对中断实现方式进行相应的配置,进而使得可自动修改操作系统的中断处理代码,提供基本的中断处理函数;另外对于处理器的时钟部分,各个硬件平台的时钟要求,外部参考时钟等参数可由开发者进行相应的配置。
4)操作系统相关实现选项,该选项可根据处理器型号提供默认实现方式。
当用户选择的操作系统默认支持部分硬件类型时,则列出该系统支持硬件的相关特性,从而开发者对这些特性进行相应的配置,选择是否使用。
同时,操作系统提供的各种功能模块中,也有大量的选项,例如该模块是否全部功能都打开等,或者是否使用调试功能等。
5)链接脚本相关选项。
由于硬件设计的差异性,操作系统镜像会运行在不同的物理载体上,如直接在NOR FLASH(非易失性的存储器)上运行,或者被搬运到ram(random accessmemory,随机存储器)上运行等,对于链接脚本的链接地址就需要根据硬件的设计进行修改。同时还可以让开发者自行选择是否需要增加数据段来将其他类型文件如图片,音频文件等,一起编译在内核中等等,从而减少了用户自己学习链接脚本,手动完成的麻烦。
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,将生成的嵌入式操作系统的可执行文件导入到被移植嵌入式处理器中。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (13)

1.一种嵌入式操作系统快速移植方法,其特征在于,包括:
解析预先生成的被移植嵌入式处理器所对应的配置文件,得到操作系统配置信息和编译配置信息;
根据所述操作系统配置信息和预先编辑的库函数,生成嵌入式操作系统的待编译文件;
根据所述编译配置信息,对所述待编译文件进行编译,生成可执行在所述被移植嵌入式处理器的嵌入式操作系统可执行文件;
将所述嵌入式操作系统可执行文件导入所述被移植嵌入式处理器;
所述操作系统配置信息包括:处理器二进制接口相关配置信息,中断实现方式配置信息,操作系统相关实现配置信息,链接脚本相关配置信息,软硬件可拓展部分配置信息;
所述编译配置信息包括编译器选择配置信息和编译器相关参数配置信息。
2.如权利要求1所述的方法,其特征在于,生成所述被移植嵌入式处理器所对应的配置文件包括:利用人机交互代码对被移植嵌入式处理器的特性以及操作系统的关键性信息进行描述,并根据所描述的信息生成相应的配置文件。
3.如权利要求2所述的方法,其特征在于,利用人机交互代码对被移植嵌入式处理器的特性以及操作系统的关键性信息进行描述,并根据所描述的信息生成相应的配置文件的步骤,包括:
利用人机交互代码对被移植嵌入式处理器的特性以及操作系统的关键性信息进行描述;
对所描述的信息进行配置;
按照预定义格式将配置后的所描述的信息进行存储,得到包含所述操作系统配置信息和编译配置信息的配置文件。
4.如权利要求1所述的方法,其特征在于,根据所述操作系统配置信息,生成嵌入式操作系统的待编译文件的步骤,包括:
调用预先编辑的库函数;
根据所述库函数和操作系统配置信息,对操作系统中与移植相关的文件进行修改或者重新编写,生成嵌入式操作系统的待编译文件。
5.如权利要求1所述的方法,其特征在于,生成所述嵌入式操作系统的待编译文件之后,还包括:
根据所述链接脚本相关配置信息,对链接脚本进行修改。
6.如权利要求1所述的方法,其特征在于,根据所述编译配置信息,对所述待编译文件进行编译,生成可执行在所述被移植嵌入式处理器的嵌入式操作系统可执行文件的步骤,包括:
根据所述编译器选择配置信息,选择相应版本的编译器;
根据所述编译器相关参数配置信息,对己选择的编译器进行相应的参数配置;
参数配置后的编译器对所述待编译文件进行编译,生成可执行在所述被移植嵌入式处理器的嵌入式操作系统可执行文件。
7.如权利要求1至6中任意一项所述的方法,其特征在于,将所述嵌入式操作系统可执行文件导入所述被移植嵌入式处理器时,还包括:生成相应的编译日志。
8.一种嵌入式系统移植装置,其特征在于,包括:
配置文件处理引擎,用于对预先生成的配置文件进行解析,得到操作系统配置信息和编译配置信息;
操作系统移植处理模块,与所述配置文件处理引擎相连,用于根据所述操作系统配置信息和预先编辑的库函数,生成嵌入式操作系统的待编译文件;
操作系统编译模块,与所述配置文件处理引擎和操作系统编译模块相连,用于根据所述配置文件处理引擎解析得到的编译配置信息,对所述待编译文件进行编译,生成可执行在被移植嵌入式处理器的嵌入式操作系统的可执行文件;
可执行文件导入模块,与所述操作系统编译模块相连,用于将所述嵌入式操作系统可执行文件导入到被移植嵌入式处理器;
所述操作系统配置信息包括:处理器二进制接口相关配置信息,中断实现方式配置信息,操作系统相关实现配置信息,链接脚本相关配置信息,软硬件可拓展部分配置信息;所述编译配置信息包括编译器选择配置信息和编译器相关参数配置信息。
9.如权利要求8所述的装置,其特征在于,还包括:
交互式处理器描述模块,与所述配置文件处理引擎相连,用于利用人机交互代码对被移植嵌入式处理器特性和操作系统的关键性信息进行描述,并根据所描述的信息生成相应的配置文件。
10.如权利要求9所述的装置,其特征在于,所述交互式处理器描述模块包括:描述子模块,用于利用人机交互代码对被移植嵌入式处理器的特性和操作系统的关键性信息进行描述;
配置子模块,与所述描述子模块相连,用于对所述交互式处理器描述模块所描述的信息进行配置;
配置文件生成子模块,与所述配置子模块和配置文件处理引擎相连,用于将进行配置后的所描述的信息,按照预定义格式进行存储,生成相应的配置文件,并输出给所述配置文件处理引擎。
11.如权利要求8所述的装置,其特征在于,所述操作系统移植处理模块包括:
调用子模块,用于调用预先编辑的相应的库函数;
待编译文件生成子模块,与所述调用子模块和配置文件处理引擎相连,用于根据所述库函数和所述操作系统配置信息对嵌入式系统中与移植相关的文件进行修改或者重新编写,生成嵌入式操作系统的待编译文件。
12.如权利要求8所述的装置,其特征在于,所述操作系统编译模块包括:编译器配置子模块,以及与所述编译器配置子模块相连的编译器,所述编译器配置子模块与所述配置文件处理引擎相连,用于根据所述编译器选择配置信息对所述编译器的版本号进行配置,并根据所述编译器相关参数配置信息对所述编译器进行相关参数配置;编译器与操作系统移植处理模块,用于当所述编译器配置子模块对其进行配置后,对所述操作系统移植处理模块生成的待编译文件进行编译,生成可执行在被移植嵌入式处理器的嵌入式操作系统可执行文件。
13.如权利要求8至12中任意一项所述的装置,其特征在于,还包括与所述操作系统编译模块相连的记录模块,用于生成相应的编译日志。
CN201110114310.2A 2011-05-04 2011-05-04 一种嵌入式操作系统快速移植方法及其装置 Active CN102207887B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110114310.2A CN102207887B (zh) 2011-05-04 2011-05-04 一种嵌入式操作系统快速移植方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110114310.2A CN102207887B (zh) 2011-05-04 2011-05-04 一种嵌入式操作系统快速移植方法及其装置

Publications (2)

Publication Number Publication Date
CN102207887A CN102207887A (zh) 2011-10-05
CN102207887B true CN102207887B (zh) 2016-08-10

Family

ID=44696735

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110114310.2A Active CN102207887B (zh) 2011-05-04 2011-05-04 一种嵌入式操作系统快速移植方法及其装置

Country Status (1)

Country Link
CN (1) CN102207887B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819445B (zh) * 2012-07-30 2015-05-20 国电南瑞科技股份有限公司 变电站综自软件在嵌入式系统硬件平台上的快速移植方法
CN105786472B (zh) * 2014-12-26 2019-05-10 远光软件股份有限公司 一种基于ecp平台取数函数设置方法及装置
CN105677418B (zh) * 2016-01-08 2018-10-23 烽火通信科技股份有限公司 在接入设备中实现多个不同语音协议的方法及系统
CN105843623A (zh) * 2016-03-29 2016-08-10 乐视控股(北京)有限公司 目标程序的生成方法和装置
CN105975257B (zh) * 2016-04-27 2019-06-04 北京小鸟看看科技有限公司 将MicroBlaze平台的嵌入式代码向Cortex-A9处理器移植的方法
CN106293864B (zh) * 2016-08-01 2019-05-14 惠州华阳通用电子有限公司 一种车载信息系统开发平台功能模块的移植方法
CN106346481A (zh) * 2016-11-17 2017-01-25 北京光年无限科技有限公司 实现配置信息移植的智能机器人系统及信息移植方法
CN109992320A (zh) * 2017-12-28 2019-07-09 航天信息股份有限公司 嵌入式设备和wifi模块的交互建立方法和装置
CN109375955A (zh) * 2018-11-01 2019-02-22 无锡市同芯恒通科技有限公司 一种同种cpu适配不同操作系统的方法
CN110286910B (zh) * 2019-06-28 2023-08-01 百度在线网络技术(北京)有限公司 文件移植方法、装置、设备和存储介质
CN112068895B (zh) * 2020-08-10 2023-12-19 深圳市鼎盛光电有限公司 代码配置方法、装置、视频播放设备及存储介质
CN114527712A (zh) * 2021-11-22 2022-05-24 广东嘉腾机器人自动化有限公司 Agv任务修改方法及修改系统
CN115238621B (zh) * 2022-09-22 2023-01-20 深圳市国电科技通信有限公司 移植方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1645328A (zh) * 2001-09-20 2005-07-27 松下电器产业株式会社 编译装置及编译方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1645328A (zh) * 2001-09-20 2005-07-27 松下电器产业株式会社 编译装置及编译方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于ARM2440平台的Android操作系统的移植;宋杰等;《计算机技术与发展》;20110131;第21卷(第1期);第66-69页 *
基于SkyEye平台下的嵌入式Linux的移植过程;柴中宏;《甘肃科技》;20081231;第24卷(第24期);第43,50-51页 *

Also Published As

Publication number Publication date
CN102207887A (zh) 2011-10-05

Similar Documents

Publication Publication Date Title
CN102207887B (zh) 一种嵌入式操作系统快速移植方法及其装置
Dasgupta Design theory and computer science
CN103942099B (zh) 基于Hive的并行执行任务方法及装置
CN101604241A (zh) 一种嵌入式系统的代码生成方法
CN103064721A (zh) 多种解释性编程语言间的第一类对象共享
JP2003140920A (ja) デバッグ支援装置、コンパイラ装置、デバッグ支援プログラム、コンパイラプログラム、及びコンピュータ読取可能な記録媒体。
JP6550269B2 (ja) プログラム作成支援装置、制御方法およびプログラム
CN109145055A (zh) 一种基于Flink的数据同步方法和系统
CN107678777A (zh) 一种软件文档的管理方法、装置及终端
CN108694114A (zh) 用于分离测试用例、测试脚本和测试数据的方法及其系统
Minder et al. How to translate a book within an hour: towards general purpose programmable human computers with crowdlang
CN110413318A (zh) 图形化操作系统的移植方法、装置和相关设备
JP6176389B2 (ja) ソースコード生成装置、ソースコード生成方法、及び、記録媒体
CN104238438A (zh) 一种plc通用平台及其设计方法
Maxima Computer Algebra System
US10977099B2 (en) Interchanging real-time data between program modules
CN104615458B (zh) 一种基于json数据格式模块加载的方法及系统
Rachioti et al. Teaching strategies for the development of adaptable (compiler, vendor/processor independent) embedded C code
CN103500100B (zh) 智能汇编开发工具
CN103810013B (zh) 基于拨码开关阵列的编程辅助处理装置及方法
CN112765934A (zh) 一种表格公式的缩进教学演示系统及方法
CN113260976A (zh) 用于在编译源代码中调度指令技术
CN106997182B (zh) 一种用于单片机或pc机的可编程控制方法
CN117852485B (zh) 一种fpga布局布线方法及系统
Moser et al. A novel domain-specific language for the robot welding automation domain

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
CB03 Change of inventor or designer information

Inventor after: Huo Ping

Inventor after: Wang Mei

Inventor after: Tian Peijin

Inventor before: Hu Yadi

COR Change of bibliographic data
TA01 Transfer of patent application right

Effective date of registration: 20160704

Address after: Laishan Mingda road 264000 Shandong city of Yantai province No. 11

Applicant after: SHANDONG WISDOM LIFE DATA SYSTEMS CO., LTD.

Address before: 518057 Nanshan District science and Technology Park, Guangdong, South Road, ZTE building, science and Technology Park

Applicant before: ZTE Corporation

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190226

Address after: 264000 Mingda West Road, Laishan District, Yantai, Shandong Province, No. 11

Patentee after: Shandong Ocean Technology Co., Ltd.

Address before: 264000 Mingda West Road, Laishan District, Yantai, Shandong Province, No. 11

Patentee before: SHANDONG WISDOM LIFE DATA SYSTEMS CO., LTD.