内核实时化目标是在Linux内核中嵌入Xenomai实时核,构建双核系统。
利用管道补丁搭建Linux内核与Xenomai内核的通信,在Linux内核配置中,根据内核提示Xenomai相关冲突项,开启或者关闭冲突项编译使能,编译生成镜像、内核模块。
编译设备树,设备树包含各种硬件设备的外设,驱动加载时从设备树获取硬件信息进行匹配,移植上述三者即获得一个实时系统。
最后编译Xenomai并移植,在实时系统中加入实时函数库,供系统使用。
实时化具体实施步骤如下:
(1)获取Linux内核和Xenomai实时内核源码(Linux内核版本:3.8.13, Xenomai实时核版本:2.6.3)。
(2)利用Xenomai源码对应Linux版本的补丁:
ipipe-core-3.8.13-beaglebone-pre.patch,ipipe-core-3.8.13-arm-3.patch,ipipe-core-3.8.13-beaglebone-post.patch,patch Linux内核。
(3)为Xenomai实时内核准备Linux内核,实际是将Xenomai内核与Linux内核联系在一起,为后面的编译工作做准备,运行prepare-kernel脚本。
(4)配置Linux内核。配置内核主要是两步,第一步是针对BBB开发板对内核进行默认配置,第二步是对内核相关项配置以提高Xenomai性能。关闭CPU frequency scaling。
(5)编译内核,生成Linux系统中最重要的两个模块,两个模块分别是z Image镜像和内核模块。
(6)编译设备树。设备树是内核与驱动分离的产物,设备树上存储所有外设驱动节点信息,内核启动时,从设备树上寻找需要加载的驱动模块。
(7)移植内核镜像、内核模块以及设备树。
(8)交叉编译移植Xenomai源代码。首先是编译,编译之前要先配置Xenomai,CFLAGS=”-march=armv7-a” LDFLAGS=”-march=armv7-a” –host=arm-linux-gnueabihf,然后编译,安装,将编译出来的Xenomai库以及模块打包移植到开发板上即可。
(9)安装测试,查看Xenomai以及I-pipe安装信息,确保Xenomai移植成功。
暂无评论内容