第15课Xenomai的实现xenomai移植如何使用XenomaiLinux内核源码包:linux2.6.25Xenomai源码包:Xenomai2.4.4通过打补丁的形式,将ADEOS补丁打入内核具体参见Xenomai源码包的README文档打好补丁之后配置内核,编译内核。然后编译Xenomai包,测试。Xenomai编程实例xenomai移植准备内容:linux内核源码包(linux2.6.25.8_20090807.tar.bz2)Xenomai源码包(xenomai-2.4.4.tar.bz2)Linux开发环境(Ubuntu,RedHat等)及EABI交叉编译工具链(arm-linux-gcc)TQ2440开发板及相关套件xenomai移植1.解压内核源码包和Xenomai源码包tar-jvxflinux-2.6.25.8_20090807.tar.bz2-C/opt/EmbedSkytar-jvxfxenomai-2.4.4.tar.bz2-C/opt/EmbedSkyxenomai移植2.给内核源码打补丁,打上ADOES(AdaptiveDomainEnvironmentforOperatingSystem)补丁,使linux内核源码包具有ADOES管理功能和实时为内核功能。具体步骤如下:(1).到解压好的xenomai-2.4.4的目录下,可以看到scripts脚本目录,在此目录下有一shell脚本prepare-kernel.sh使用此脚本,可实现相应版本的xenomai的补丁打到相应版本的内核源码包中$#cdxenomai-2.4.4prepare-kernel.sh的使用方法如下prepare-kernel.sh–linux=linux-srctree--adeos=adeos-patch--arch=target-archlinux-srctree为内核源码包的路径,假定linux源码包解压在/opt/EmbedSky/linux-2.6.25.8/adeos-patch为adeoes补丁的名称,包括路径,这里为linux-2.6.25版本的adeos补丁,其路径和名称为:/opt/EmbedSky/xenomai-2.4.4/ksrc/arch/arm/patches/adeos-ipipe-2.6.25-arm-1.9-02.patch--arch为打补丁对象平台的体系结构:可支持ARM平台和X86平台,其中ARM平台支持以下几款芯片–at91rm9200-at91sam926x-imx-imx21-integrator-ixp4xx-pxa-s3c2410-sa1100因此,我们可以使用如下命令实现给源码打补丁:$#script/prepare-kernel.sh--linux=/opt/EmbedSky/linux-2.6.25.8/--adeos=/opt/EmbedSky/xenomai-2.4.4/ksrc/arch/arm/patches/adeos-ipipe-2.6.25-arm-1.9-02.patch--arch=arm(2)打完补丁后,到内核源码目录下运行makemenuconfig命令,进入到内核配置界面,可发现多了一项Real-timesub-system---选项在此选项下有多个选项打上补丁后的内核选项实时微内核的选项编译内核(3)通过选择相应项,之后保存并编译内核镜像(makezImage)。则此内核镜像具有xenomai的为内核补丁了。(4)将xenomai的镜像下载到开发板中,看看是否内被引导成功,并运行Linux程序。(5)编译xenomai源码包,用于xenomai域的程序开发及运行,即编译出xenomai的动态链接库,在开发xenomai程序需要链接的库及头文件应当被交叉编译,方可在arm平台上运行。同时,应该将编译后的动态库拷贝到arm平台上文件系统的/lib目录下。具体做法,在xenomai-2.4.4目录下,运行configure–help来进行配置,以下是移植时的配置$#./configure--build=i686-pc-linux-gnu--host=arm-linux--enable-arm-mach=s3c2410--prefix=/opt/EmbedSky/xenomai-2.4.4/Install--with-adeos-patch=/opt/EmbedSky/xenomai-2.4.4/ksrc/arch/arm/patches/adeos-ipipe-2.6.25-arm-1.9-02.patch--enable-posix-auto-mlockall--enable-smp–enable-debug该配置是将交叉编译好的文件安装到--prefix的目录下,也就使在xenomai-2.4.4目录下创建一个Install的目录,并将结果放在此目录下。$#make$#makeinstallmakeinstall后交叉编译后动态库交叉编译后测试工具将这些动态库拷贝到开发板的/lib目录下将测试工具拷贝到开发板的/bin目录下即可对xenomai进行测试内核模式延迟测试xenomai编程NAtiveAPI简单用户层实时多任务编程实时驱动编写参照xenomai-2.4.4的example的rtdm