VxWork5.5内核源码安装、编译过程介绍
注:本文以Tornado2.2 For Pentium源码为例子
第一步:
安装vxWork源代码,根据WindRiver源码安装盘安装指导,将源码安装到Tornado相应目录下。安装后,源码文件在../target/src目录下。注意,有些Tornado安装时就已经带的头文件,源码安装盘中没有包含,所以安装后的源码要和Tornado安装的头文件配合在一起,才构成完整的代码。
源码安装盘一般主要有下面几个目录:
arch:与CPU结构相关的部分代码,Tornado2.2包括PPC、I86、ARM、68K、MIPS、SH各种CPU相关部分代码。这部分代码主要是完成CPU初始化、MMU管理、中断处理和底层一些函数部分的代码。
Cplus:vxWork操作系统C++运行支持库的代码
Drv:驱动部分代码
fs:文件系统部分代码,包括CBIO,DOSFS等。
第一步:
安装vxWork源代码,根据WindRiver源码安装盘安装指导,将源码安装到Tornado相应目录下。安装后,源码文件在../target/src目录下。注意,有些Tornado安装时就已经带的头文件,源码安装盘中没有包含,所以安装后的源码要和Tornado安装的头文件配合在一起,才构成完整的代码。
源码安装盘一般主要有下面几个目录:
arch:与CPU结构相关的部分代码,Tornado2.2包括PPC、I86、ARM、68K、MIPS、SH各种CPU相关部分代码。这部分代码主要是完成CPU初始化、MMU管理、中断处理和底层一些函数部分的代码。
Cplus:vxWork操作系统C++运行支持库的代码
Drv:驱动部分代码
fs:文件系统部分代码,包括CBIO,DOSFS等。
Libc:标准库函数代码
Math:数学库代码
Netinet:网络协议栈部分代码
Netwrs:windRiver网络协议部分代码
Os:操作系统库部分代码
Ostool:操作系统工具部分代码,包括模块加载、调试工具(SPY、Shell)的代码
Posix:posix标准库代码
tffs:TFFS文件系统代码
usb:USB部分代码
util:工具代码,包括压缩、解压部分代码等
wdb:wdb部分代码
wind:wind内核代码
这里只列出了一些主要目录,具体目录内容,根据安装key不同,应该有差异。
第二步:
Math:数学库代码
Netinet:网络协议栈部分代码
Netwrs:windRiver网络协议部分代码
Os:操作系统库部分代码
Ostool:操作系统工具部分代码,包括模块加载、调试工具(SPY、Shell)的代码
Posix:posix标准库代码
tffs:TFFS文件系统代码
usb:USB部分代码
util:工具代码,包括压缩、解压部分代码等
wdb:wdb部分代码
wind:wind内核代码
这里只列出了一些主要目录,具体目录内容,根据安装key不同,应该有差异。
第二步:
修改编译规则,源码安装后,在../target/src目录下,有一个makefile文件,这个文件,是源代码编译的make文件,使用这个文件,可以实现对源码的编译工作。
编译前,可以根据自己的需要,更改一下编译的缺省选项,源码编译的缺省规则在../target/h/make/defs.default中定义,在这个文件里面,主要有两个地方需要修改:
1 修改缺省CPU类型,将CPU类型修改如下:
CPU=PENTIUM
2 修改缺省使用编译器:
TOOL=gnu
shell代码修改完这里后,还要根据安装的模块,修改../target/src/Makefile文件,将没有的、不需要编译的模块部分去掉,在这个Makefile文件里,主要修改COMMON_SUBDIRS、DUAL_SUBDIRS,来决定编译的模块。
第三部:
设置好环境信息,可以通过运行../host/x86-win32/bin/torvars.bat来设置相关环境变量。然后回到../target/src目录下,运行make,编译开始。
编译前,可以根据自己的需要,更改一下编译的缺省选项,源码编译的缺省规则在../target/h/make/defs.default中定义,在这个文件里面,主要有两个地方需要修改:
1 修改缺省CPU类型,将CPU类型修改如下:
CPU=PENTIUM
2 修改缺省使用编译器:
TOOL=gnu
shell代码修改完这里后,还要根据安装的模块,修改../target/src/Makefile文件,将没有的、不需要编译的模块部分去掉,在这个Makefile文件里,主要修改COMMON_SUBDIRS、DUAL_SUBDIRS,来决定编译的模块。
第三部:
设置好环境信息,可以通过运行../host/x86-win32/bin/torvars.bat来设置相关环境变量。然后回到../target/src目录下,运行make,编译开始。
根据选择模块数量不同,编译时间也有区别,在我的电脑上(AMD 2500+ ,512M RAM),编译除vxfusion、vxmp、vxvmi模块部分代码一共用了53分钟。
第四部:
如果设置正确,编译完成后,在target\lib\pentium\pentium下生成编译后的库文件。如果需要对操作系统部分进行源码调试,可以在编译时,增加-g选项,增加调试信息。
根据以上步骤,我们就可以定制、修改vxWork操作系统,实现内核级的修改、调试。
在大多数环境下,我们可能不需要进行这种工作,但通过学习内核代码,对提高编程水平,了解vxWork操作系统,还是有极大的好处的。
第四部:
如果设置正确,编译完成后,在target\lib\pentium\pentium下生成编译后的库文件。如果需要对操作系统部分进行源码调试,可以在编译时,增加-g选项,增加调试信息。
根据以上步骤,我们就可以定制、修改vxWork操作系统,实现内核级的修改、调试。
在大多数环境下,我们可能不需要进行这种工作,但通过学习内核代码,对提高编程水平,了解vxWork操作系统,还是有极大的好处的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论