91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

Linux + Xenomai實時操作系統(tǒng)創(chuàng)建方案

454398 ? 來源:csdn ? 作者:Huster-ty ? 2020-12-26 10:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者:Huster-ty

Xenomai是一種采用雙內(nèi)核機制的Linux 內(nèi)核的強實時擴展。由于Linux 內(nèi)核本身的實現(xiàn)方式和復雜度,使得Linux 本身不能使用于強實時應用。在雙內(nèi)核技術下,存在一個支持強實時的微內(nèi)核,它與Linux 內(nèi)核共同運行于硬件平臺上,實時內(nèi)核的優(yōu)先級高于Linux 內(nèi)核,它負責處理系統(tǒng)的實時任務,而Linux 則負責處理非實時任務,只有當實時內(nèi)核不再有實時任務需要處理的時候,Linux內(nèi)核才能得到運行的機會。所以Xenomai與傳統(tǒng)Linux組成雙內(nèi)核以彌補Linux實時性差的缺陷。

準備內(nèi)容
Linux源碼:
Linux-4.9.24版本,下載地址:https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapsho...

Xenomai源碼:
xenomai-3.0.5版本,下載地址:https://gitlab.denx.de/Xenomai/xenomai/-/archive/master/xenomai-master.zip

3.0.5不是最新版本,讀者可以嘗試最新版本的xenomai。Xenomail官網(wǎng):http://www.cs.ru.nl/lab/xenomai/

Ipipe補?。?br /> ipipe-core-4.9.24版本,下載地址:https://xenomai.org/downloads/ipipe/v4.x/arm/older/

打補丁是系統(tǒng)移植的關鍵點,所以Ipipe補丁最好與Linux版本號對應,我們在構建的過程中遇到的問題就會少很多。

開發(fā)板:
本次移植是基于創(chuàng)龍zynq7020開發(fā)板(ARM A9雙核+FPGA),但是本教程也適用zynq7000系列的板子,可能某些操作不太一樣,這就需要大家來驗證了。

除了以上所必須的所需條件外,我們還需要安裝Petalinux,(Petalinux是Xilinx公司推出的嵌入式Linux開發(fā)工具),這里不在詳述Petalinux的安裝,請讀者自行解決。

以上內(nèi)容都準好之后,我們就可以進行系統(tǒng)移植了。

在移植之前還要說一點,最好用開發(fā)板提供的liunx版本上構建xenomai,這樣你就可以省去很多麻煩,比如U-BOOT.BIN文件、devicetree.dtb文件、根文件系統(tǒng)都不需要更新,只需要更新zImage文件就可以,但是前提你能找到和linux源碼相對應的補丁。

給Linux源碼打補丁
第一步Linux和xenomai源碼解壓
將他們解壓到同一個文件夾中
tar -xzvf linux-xlnx-4.9.24.tar.gz
unzip xenomai-3.0.5.zip

同時我們在這個文件夾下建立一個patch文件夾來存放補丁,并把補丁拷貝進去

至此這個文件夾中有l(wèi)inux-xlnx-4.9.24、xenomai-3.0.5、patch三個文件夾

第二步開始打補丁

先進入xenomai源碼目錄,再打補丁
./scripts/prepare-kernel.sh --arch=arm --ipipe=../patch/ipipe-core-4.9.24-arm-2.patch --linux=/home/huster/Zynq/linux-4.9.24

其中prepare-kernel.sh為shell腳本,可以將相應版本的xenomai的補丁打到相應版本的內(nèi)核源碼包中,不過此處用的補丁是單獨下載的,不是xenomai-3.0.5中自帶的,可能有人會問,既然是單獨補丁為什么不用 patch -p1

如果沒有出現(xiàn)錯誤說明打補丁成功。

第三步內(nèi)核配置

內(nèi)核配置之前我們需要使能環(huán)境變量

在Petalinux目錄下執(zhí)行
./source settings.sh

(Petalinux為petalinux安裝目錄) ,才能使交叉編譯工具鏈生效。使能之后,輸入arm-后按兩下Tab會出現(xiàn)很多編譯工具,如下圖

我們進入到linux-4.9.24內(nèi)核目錄,執(zhí)行以下命令
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xilinx_zynq_defconfig

可能這一步你會失敗,因為linux源碼中沒有xilinx_zynq_defconfig這個配置文件,正常來說買開發(fā)板送的linux源碼都會有這個文件,直接拷貝過來就可以,有一點需要注意,必須要拷到arch/arm/configs目錄中,如果實在沒有,我單獨拷貝出來供大家下載了,鏈接: https://pan.baidu.com/s/1aefuY1kFx1AHM7EG5eGiIw

除此之外,我們還需要再menuconfig中進行一些自定義配置,這是個界面配置,在linux源碼目錄中執(zhí)行以下命令
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

我們可以看到xenomai的一些額外配置選項,還會看到一些警告

接下來我們要選中CPU Power Management—>CPU Frequence scaling,按下enter進入,按下N鍵靜止這個選項;返回到主界面,選中Kernel Features—>Contiguous Memory Allocator,然后按下N鍵禁止,最后別忘了選中save進行保存。

Linux補丁內(nèi)核編譯
Linux內(nèi)核編譯

執(zhí)行以下命令對補丁過的Linux內(nèi)核進行編譯
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage

(zImage中第二個單詞字母為大寫形式的i)

編譯完成后,在Linux內(nèi)核源碼安裝目錄的”arch/arm/boot”路徑下,會生成內(nèi)核鏡像文件zImage。

這個過程會很漫長,需要我們耐心等待,或者你可以打一局王者或吃把雞。

設備樹編譯

如果你用的linux源碼、xenomai源碼、補丁以及開發(fā)板都和我的一樣,那么這一步你可以不做,直接用開發(fā)板提供的devicetree.dtb就可以,否則你需要執(zhí)行以下操作。
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs

編譯完成后,在linux內(nèi)核安裝目錄的“arch/arm/boot/dts/”路徑下,會生成很多的設備樹文件,找到和你開發(fā)板相對應的即可。

U-BOOT編譯

一般U-BOOT.BIN文件各個開發(fā)板公司已經(jīng)提供好了,不需要我們自己去制作,這里只說下基本思路。首先要將U-BOOT源碼解壓,其次清理U-Boot,然后使能環(huán)境變量,然后配置U-Boot,然后編譯U-Boot,最后基于Petalinux將編譯生成的u-boot.elf和一級引導Bootloader程序zynq_fsbl.elf合并生成BOOT.BIN。

Xenomai安裝
我們現(xiàn)在需要創(chuàng)建我們的Linux系統(tǒng)需要運行的Xenomai庫和工具,先回到Xenomai源代碼樹,我們需要執(zhí)行以下命令
./scripts/bootstrap

這將使Xenomai源準備好構建我們的工具和庫,如果以上過程中提示要安裝一些軟件和庫,我們只需要按照提示要求安裝即可。

接下來進入xenomai源碼目錄,執(zhí)行以下命令
./configure CFLAGS="-march=armv7-a -mfpu=vfp3 -mfloat-abi=hard" LDFLAGS="-march=armv7-a" --build=i686-pc-linux-gnu --host=arm-none-linux-gnueabi --with-core=cobalt --enable-smp --enable-tls CC=arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-ld

繼續(xù)執(zhí)行命令
make DESTDIR=/home/huster/Zynq/xenomai-3.0.5/ install

編譯完成后,會在xenomai源目錄usr/xenomai中找到我們需要的bin工具文件夾和lib庫文件。

注意上一條命令中,install前面有一個空格,而且install是命令不是文件夾,我之前在這里卡了好久,一直沒有生成bin和lib文件夾。

然后直接將bin和lib目錄中的文件直接拷貝到Linux根文件系統(tǒng)中的bin和lib目錄下。如果你想直接將xenomai文件夾直接拷貝到linux根文件系統(tǒng)中的usr中也可以,只不過需要將
export LD_LIBRARY_PATH=/usr/xenomai/lib:$LD_LIBRARY_PATH

添加到~/.bashrc文件中
source ~/.bashrc

然后執(zhí)行生效
echo $LD_LIBRARY_PATH

查看是否成功

xenomai運行測試
至此,我們已經(jīng)得到linux鏡像zImage文件、U-BOOT.BIN啟動引導文件、rootfs根文件系統(tǒng)、devicetree.dtb設備樹文件、FPGA的Z-7020.bit文件、以及l(fā)ib庫和工具。將上述文件拷到SD卡相應的存儲區(qū),按照燒寫教程進行燒寫,這里不在詳述。

啟動開發(fā)板,會發(fā)現(xiàn)與普通linux系統(tǒng)啟動稍有不同。

系統(tǒng)啟動之后,執(zhí)行以下工具,運行延遲測試
./usr/xenomai/bin/latency

會打印出有關系統(tǒng)延遲的一些統(tǒng)計信息

說明xenomai系統(tǒng)移植成功,但是由于某種原因,我們的延遲是負的,這是令人困惑的,而且這是不正確的。后續(xù)將繼續(xù)解決這個問題。

編輯:hfy


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    88

    文章

    11761

    瀏覽量

    219071
  • Xilinx
    +關注

    關注

    73

    文章

    2200

    瀏覽量

    131177
  • 實時操作系統(tǒng)

    關注

    1

    文章

    206

    瀏覽量

    31958
  • Zynq
    +關注

    關注

    10

    文章

    630

    瀏覽量

    49460
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【技術分享】RK3588如何搭建xenomai3+ethercat

    說明使用的RK3588的分支版本是linux-6.1-stan-rkr6內(nèi)核版本是6.1.99把瑞芯微的SDK更新到linux-6.1-stan-rkr6這個版本即可。編譯xenomai3的內(nèi)核請參考上一篇技術分享:技術分享|R
    的頭像 發(fā)表于 12-11 17:26 ?1058次閱讀
    【技術分享】RK3588如何搭建<b class='flag-5'>xenomai</b>3+ethercat

    什么是嵌入式操作系統(tǒng)?

    要理解嵌入式操作系統(tǒng)(Embedded Operating System,簡稱 RTOS/EOS),我們可以從本質定義→核心區(qū)別→實際作用→典型特征→嵌入式開發(fā)場景適配,五個維度來拆解, 一
    發(fā)表于 12-09 10:33

    技術分享 | RK3588增加Xenomai3實時補丁

    Xenomai是一套為嵌入式系統(tǒng)設計的實時開發(fā)框架,通過“雙內(nèi)核”架構,讓Linux既能處理復雜的通用任務,又能可靠地完成那些對響應時間有極端要求的任務,廣泛用于工業(yè)自動化、機器人、航
    的頭像 發(fā)表于 11-27 17:29 ?1611次閱讀
    技術分享 | RK3588增加<b class='flag-5'>Xenomai</b>3<b class='flag-5'>實時</b>補丁

    CW32L011支持哪些實時操作系統(tǒng)?

    CW32L011支持哪些實時操作系統(tǒng)?
    發(fā)表于 11-17 06:51

    單片機的操作系統(tǒng)

    Linux網(wǎng)絡協(xié)議棧和文件系統(tǒng)(如JFFS2),但實時性較弱,需外擴存儲器。 ? ? VxWorks ?:高效實時操作系統(tǒng),廣泛應用于通信
    發(fā)表于 11-14 06:18

    嵌入式實時操作系統(tǒng)的特點

    實時嵌入式操作系統(tǒng)(Real-Time Embedded Operating System)是專門設計用于嵌入式系統(tǒng)實時操作系統(tǒng)。嵌入式
    發(fā)表于 11-13 06:30

    Jtti Linux操作系統(tǒng)最常見的10大優(yōu)勢

    Linux操作系統(tǒng)的十大優(yōu)勢 Linux操作系統(tǒng)作為一種開源、自由的系統(tǒng),已經(jīng)廣泛應用于個人計算機、服務器、嵌入式設備等多個領域。它的多樣化
    的頭像 發(fā)表于 11-06 15:32 ?313次閱讀

    瑞芯微RK35XX系列Linux實時性詳細測試對比( PREEMPT_RT和Xenomai

    工業(yè)控制、工業(yè)網(wǎng)關、軌道交通、能源電力等場景,都需要一個運行穩(wěn)定、可靠的“實時操作系統(tǒng)”。RT-Linux作為一款開源實時操作系統(tǒng),擁有
    的頭像 發(fā)表于 09-30 16:37 ?1955次閱讀
    瑞芯微RK35XX系列<b class='flag-5'>Linux</b><b class='flag-5'>實時</b>性詳細測試對比( PREEMPT_RT和<b class='flag-5'>Xenomai</b> )

    RK3506開發(fā)板Xenomai內(nèi)核RT-Linux實時系統(tǒng)適配教程與性能實測,實測僅7μs穩(wěn)定延時

    本文基于觸覺智能RK3506核心板/開發(fā)板,介紹Xenomai內(nèi)核RT-Linux實時系統(tǒng)適配,并附性能實測。簡介與實測數(shù)據(jù)Xenomai
    的頭像 發(fā)表于 09-18 14:21 ?1418次閱讀
    RK3506開發(fā)板<b class='flag-5'>Xenomai</b>內(nèi)核RT-<b class='flag-5'>Linux</b><b class='flag-5'>實時</b>性<b class='flag-5'>系統(tǒng)</b>適配教程與性能實測,實測僅7μs穩(wěn)定延時

    如何選擇合適的實時操作系統(tǒng)

    選擇合適的實時操作系統(tǒng)(RTOS,Real-Time Operating System)可能會影響你在不同行業(yè)的職業(yè)發(fā)展路徑。
    的頭像 發(fā)表于 09-09 14:47 ?1076次閱讀

    一文讀懂:嵌入式Linux實時性進階

    在工業(yè)控制、機器人、汽車電子等關鍵領域,嵌入式系統(tǒng)實時性要求極高。 Linux作為強大的通用操作系統(tǒng),其原生實時性能難以滿足最嚴苛的硬
    發(fā)表于 07-10 15:26

    鴻道Intewell實時操作系統(tǒng)有哪些應用場景

    鴻道Intewell工業(yè)操作系統(tǒng)作為一款國產(chǎn)實時操作系統(tǒng)(RTOS),在工業(yè)領域因其高實時性、高可靠性和強定制化能力,被廣泛應用于對系統(tǒng)響應
    的頭像 發(fā)表于 06-26 10:15 ?727次閱讀

    什么樣的才叫實時工業(yè)操作系統(tǒng)

    實時工業(yè)操作系統(tǒng)的核心是在嚴格時間約束下保證任務執(zhí)行的確定性、可靠性和安全性,通常需通過專用架構、實時調度算法和工業(yè)級認證來滿足嚴苛的工業(yè)環(huán)境需求。選擇時需根據(jù)具體場景的實時性等級(硬
    的頭像 發(fā)表于 04-17 10:09 ?744次閱讀
    什么樣的才叫<b class='flag-5'>實時</b>工業(yè)<b class='flag-5'>操作系統(tǒng)</b>

    迅為RK3568支持國產(chǎn)實時操作系統(tǒng)(翼輝),Preemption、Xenomai實時系統(tǒng)AMP雙系統(tǒng),流暢運行Android12和11版本

    與郵票孔兩種版本,雙路千兆以太網(wǎng)、SATA3.0、PCIE3.0、MIPI、HDMI、MIPI、CAMERA、4G、5G等接口一應俱全。 支持國產(chǎn)實時操作系統(tǒng)(翼輝),Preemption
    發(fā)表于 04-07 11:02

    SEGGER發(fā)布下一代安全實時操作系統(tǒng)embOS-Ultra-MPU

    2025年3月,SEGGER發(fā)布滿足周期定時分辨率要求的下一代安全實時操作系統(tǒng)embOS-Ultra-MPU,該系統(tǒng)基于成熟的embOS-Classic-MPU和embOS-Ultra操作系統(tǒng)
    的頭像 發(fā)表于 03-31 14:56 ?1360次閱讀