# Phytium-Xenomai **Repository Path**: caizp2008_panic/phytium-xenomai ## Basic Information - **Project Name**: Phytium-Xenomai - **Description**: xenomai在phytium cpu配套的demo板上的移植. 构建方法详见 doc/xenomai_user_manual.pdf 内核路径详见 https://gitee.com/phytium_embedded/linux-kernel-xenomai - **Primary Language**: C - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2023-04-11 - **Last Updated**: 2023-04-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # phytium-xenomai ## 1 项目简介 Xenomai在phytium CPU配套的开发板上的应用。
目前支持的phytium开发板支持的CPU包括FT2004,D2000和E2000。
其中 FT2004和D2000配套的Linux内核版本是4.19.115,Xenomai版本是3.1.2,在Phytium Xenomai仓库上选择的分支是v3.1.2; E2000目前配套的第一个Linux内核版本是4.19.209,Xenomai版本是3.1.3,在Phytium Xenomai仓库上选择的分支是v3.1.3; E2000目前配套的第二个Linux内核版本是5.10.209,Xenomai版本是3.2.2,在Phytium Xenomai仓库上选择的分支是master 注意 不同分支的用户手册和测试数据不同,需要用户首先确认phytium CPU类型,然后在Phytium Xenomai仓库选择配套分支; FT2000 D2000也可以使用Xenomai版本3.1.3,E2000也可以使用Xenomai版本3.1.2,对于目前Xenomai 3.1.x系列版本来说,CPU类型和Xenomai版本没有强依赖关系; 客户根据自己的需求选择不同的分支,不同的分支的Xenomai构建方法也有差异,客户可以切换到需要的分支后参考配套的README和xenomai_user_manual.pdf进行构建。 ## 2 目录结构 ### 2.1 doc phytium-xenomai的用户手册,包含如下内容:
如何在phytium开发板安装Xenomai; 如何在phytium开发板运行Xenomai; 如何在phytium开发板进行Xenomai编程; 如何在phytium开发板对Xenomai进行测试。 ### 2.2 testsuite Xenomai的内核设备驱动配套的用户态测试程序。
## 3 安装和使用教程 ### 3.1 准备工作 #### 3.1.1 开发环境准备 X86交叉编译机安装Ubuntu 20.04 LTS,并开启tftpserver服务。
#### 3.1.2 飞腾CPU开发板准备 飞腾FT2004,D2000或者E2000开发板其串口与X86交叉编译机对接,其网线对接交换机
#### 3.1.3 交叉编译链准备 在x86编译机上交叉编译arm64内核,推荐使用Linaro gcc编译器,链接如下:
https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
将其解压缩到/opt目录后,然后设置环境变量,操作步骤如下:
$ export PATH=/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin:$PATH $ export ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- $ export CC=aarch64-linux-gnu-gcc #### 3.1.4 源代码准备 内核获取方法如下:
对于FT2004/D2000,目前其内核源代码还没有开源,需要先联系飞腾软件生态部获取
对于E2000开源路径如下: https://gitee.com/phytium_embedded/linux-kernel-xenomai Xenomai获取方法如下:
对于v3.1.2 Xenomai代码下载网址:https://source.denx.de/Xenomai/xenomai/-/tags/v3.1.2 直接下载后解压缩即可; 对于v3.1.3 Xenomai代码下载网址:https://source.denx.de/Xenomai/xenomai/-/tree/v3.1.3 直接下载后解压缩即可; 对于v3.2.2 Xenomai代码下载网址:https://source.denx.de/Xenomai/xenomai/-/tree/v3.2.2 直接下载后解压缩即可 #### 3.1.5 文件系统准备 对于飞腾FT2004,D2000开发板,按照《飞腾嵌入式Linux用户手册》和 https://gitee.com/phytium_embedded/phytium-embedded-ubuntu 提供的方法在Sata卡或者Nvme或者U盘等设备上安装ubuntu文件系统。
对于飞腾E2000开发板,文件系统的制作参考如下链接:
https://gitee.com/phytium_embedded/phytium-linux-buildroot ### 3.2 编译和安装Xenomai双内核 对于E2000,如果选择master分支,构建方法如下。
#### 3.2.1 配置和编译内核 操作步骤如下:
$ make e2000_defconfig $ make cobalt.config $ make 编译完毕后将内核和配套飞腾CPU开发板的设备树拷贝到tftpserver或者Sata盘或者Nvme的安装目录下。
其中内核镜像的路径如下 ./arch/arm64/boot/Image。
设备树的路径如下 arch/arm64/boot/dts/phytium/e2000q-demo-board.dtb。
#### 3.2.2 安装内核模块 对于E2000,如果选择master分支,则按照如下步骤操作 $ mkdir build $ export INSTALL_MOD_PATH=XXX=`pwd`/build // 设置build目录为安装目录 $ make modules_install // 安装模块 $ cd build/lib/modules/ // 查看模块 $ ls 5.10.153-phytium-embeded 最后将 5.10.153-phytium-embeded 整个目录拷贝到根文件系统的lib/modules目录。 ### 3.3 加载Xenomai内核 #### 3.3.2 E2000+UBOOT+Sata硬盘启动 以E2000四核处理器为例,如果固件是UBOOT并且以Sata盘方式启动,那么其uboot命令如下
setenv bootargs console=ttyAMA1,115200 audit=0 earlycon=pl011,0x2800d000 isolcpus=0,3 xenomai.supported_cpus=0x9 nohz_full=0,3 rcu_nocbs=0,3 irqaffinity=1,2 nosoftlockup root=/dev/sda2 rootdelay=10 rw; fatload scsi 0:1 0x90100000 Image; fatload scsi 0:1 0x90000000 e2000q-demo-board.dtb; booti 0x90100000 - 0x90000000; 注意 假设内核和设备树存放在Sata硬盘的sda1分区的根目录下,该分区的文件系统格式为FAT32; 而ubuntu文件系统存放在sda2分区,文件系统格式为EXT4; 因为E2000Q共有四个核,所以 isolcpus=0,3 xenomai.supported_cpus=0x9 nohz_full=0,3 rcu_nocbs=0,3 irqaffinity=1,2 nosoftlockup 表示隔离0 3核用于Xenomai调度,而1 2核仍然用于传统的Linux调度 通过UART1串口进入shell,查看启动信息:
root@bogon:~# dmesg | grep -i xenomai [ 1.156391] [Xenomai] scheduling class idle registered. [ 1.161617] [Xenomai] scheduling class rt registered. [ 1.166681] IRQ pipeline: high-priority Xenomai stage added. [ 1.184079] [Xenomai] Cobalt v3.2.2 验证加载成功。
### 3.4 配置编译和安装Xenomai库 xemomai内核启动成功之后,在X86交叉编译机通过scp命令将Xenomai源代码拷贝到开发板上,然后在开发板进行如下操作。
#### 3.4.1 配置Xenomai库 模式为cobalt $ ./scripts/bootstrap $ ./configure --enable-pshared --enable-smp --with-core=cobalt #### 3.4.2 编译和安装Xenomai库 $ make $ make install 其中,Xenomai默认安装到/usr/xenomai目录下。
### 3.5 使用Xenomai自带的测试程序进行实时性对比测试 查看Xenomai安装后的基本信息:
root@linux:/usr/xenomai# ls bin demo etc include lib sbin root@linux:/usr/xenomai# cd bin root@linux:/usr/xenomai/bin# ls clocktest cmd_read dohell insn_bits insn_write rtcanrecv smokey spitest wf_generate xeno xeno-test xeno-test-run-wrapper cmd_bits cmd_write gpiotest insn_read latency rtcansend smokey_net_server switchtest wrap-link.sh xeno-config xeno-test-run root@linux:/usr/xenomai/sbin# ls analogy_calibrate analogy_config autotune corectl hdb nomaccfg rtcanconfig rtcfg rtifconfig rtiwconfig rtnet rtping rtps rtroute slackspot tdmacfg version 其中,sbin目录和bin目录是Xenomai自带的命令和测试程序。我们以latency为例,简单介绍其使用方法。
以E2000四核处理器为例,如果以3.3.2章节的方式启动, 在系统空闲的情况下,用latency测量系统延时的方法如下:
./latency -p 100 -c 3 -h ## 4 贡献人员 该项目的开发成员列表如下:
zhanglin1040@phytium.com.cn guochunrong@phytium.com.cn 该项目的评审成员列表如下:
weishanshan1084@phytium.com.cn linan1284@phytium.com.cn lizongjun@phytium.com.cn