99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

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

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

掃碼添加小助手

加入工程師交流群

作者:Huster-ty

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

準(zhǔn)備內(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補(bǔ)丁:
ipipe-core-4.9.24版本,下載地址:https://xenomai.org/downloads/ipipe/v4.x/arm/older/

打補(bǔ)丁是系統(tǒng)移植的關(guān)鍵點(diǎn),所以Ipipe補(bǔ)丁最好與Linux版本號(hào)對(duì)應(yīng),我們?cè)跇?gòu)建的過程中遇到的問題就會(huì)少很多。

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

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

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

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

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

同時(shí)我們?cè)谶@個(gè)文件夾下建立一個(gè)patch文件夾來存放補(bǔ)丁,并把補(bǔ)丁拷貝進(jìn)去

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

第二步開始打補(bǔ)丁

先進(jìn)入xenomai源碼目錄,再打補(bǔ)丁
./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腳本,可以將相應(yīng)版本的xenomai的補(bǔ)丁打到相應(yīng)版本的內(nèi)核源碼包中,不過此處用的補(bǔ)丁是單獨(dú)下載的,不是xenomai-3.0.5中自帶的,可能有人會(huì)問,既然是單獨(dú)補(bǔ)丁為什么不用 patch -p1

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

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

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

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

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

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

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

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

我們可以看到xenomai的一些額外配置選項(xiàng),還會(huì)看到一些警告

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

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

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

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

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

這個(gè)過程會(huì)很漫長(zhǎng),需要我們耐心等待,或者你可以打一局王者或吃把雞。

設(shè)備樹編譯

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

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

U-BOOT編譯

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

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

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

接下來進(jìn)入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

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

注意上一條命令中,install前面有一個(gè)空格,而且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運(yùn)行測(cè)試
至此,我們已經(jīng)得到linux鏡像zImage文件、U-BOOT.BIN啟動(dòng)引導(dǎo)文件、rootfs根文件系統(tǒng)、devicetree.dtb設(shè)備樹文件、FPGA的Z-7020.bit文件、以及l(fā)ib庫(kù)和工具。將上述文件拷到SD卡相應(yīng)的存儲(chǔ)區(qū),按照燒寫教程進(jìn)行燒寫,這里不在詳述。

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

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

會(huì)打印出有關(guān)系統(tǒng)延遲的一些統(tǒng)計(jì)信息

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

編輯:hfy


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

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213879
  • Xilinx
    +關(guān)注

    關(guān)注

    73

    文章

    2185

    瀏覽量

    125401
  • 實(shí)時(shí)操作系統(tǒng)

    關(guān)注

    1

    文章

    202

    瀏覽量

    31346
  • Zynq
    +關(guān)注

    關(guān)注

    10

    文章

    615

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    一文讀懂:嵌入式Linux實(shí)時(shí)性進(jìn)階

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

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

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

    鴻道Intewell操作系統(tǒng)Linux實(shí)時(shí)拓展方案

    鴻道Intewell操作系統(tǒng)是科東軟件自主研發(fā)的新型工業(yè)實(shí)時(shí)操作系統(tǒng),歷經(jīng)30多年研發(fā)積累,采用業(yè)界領(lǐng)先的微內(nèi)核架構(gòu),具備高實(shí)時(shí)、高安全及強(qiáng)擴(kuò)展的特性,是目前國(guó)內(nèi)唯一通過汽車、工業(yè)控制
    的頭像 發(fā)表于 02-27 10:08 ?391次閱讀
    鴻道Intewell<b class='flag-5'>操作系統(tǒng)</b>的<b class='flag-5'>Linux</b><b class='flag-5'>實(shí)時(shí)</b>拓展<b class='flag-5'>方案</b>

    鴻道Intewell操作系統(tǒng)為半導(dǎo)體行業(yè)打造高可靠實(shí)時(shí)控制系統(tǒng)

    方案使用鴻道Intewell操作系統(tǒng)實(shí)時(shí)擴(kuò)展架構(gòu),該架構(gòu)利用多核處理器,實(shí)現(xiàn)Windows/Linux應(yīng)用和實(shí)時(shí)應(yīng)用的并行運(yùn)行,且Windo
    的頭像 發(fā)表于 02-08 16:13 ?477次閱讀
    鴻道Intewell<b class='flag-5'>操作系統(tǒng)</b>為半導(dǎo)體行業(yè)打造高可靠<b class='flag-5'>實(shí)時(shí)</b>控制<b class='flag-5'>系統(tǒng)</b>

    迅為RK3588開發(fā)板實(shí)時(shí)系統(tǒng)編譯-Preemption系統(tǒng)/ Xenomai系統(tǒng)編譯-獲取Linux源碼包

    3.1 Preemption 系統(tǒng)/ Xenomai 系統(tǒng)編譯 3.1.1 獲取 Linux 源碼包 編譯環(huán)境說明: 本手冊(cè)使用的是迅為提供的編譯環(huán)境 ubuntu20.04,在網(wǎng)盤資
    發(fā)表于 01-09 11:03

    鴻道Intewell操作系統(tǒng)的Windows實(shí)時(shí)拓展方案

    鴻道Intewell操作系統(tǒng)的Windows實(shí)時(shí)拓展方案,即鴻道Intewell-Win構(gòu)型,是一款專為工業(yè)控制領(lǐng)域設(shè)計(jì)的國(guó)產(chǎn)操作系統(tǒng),支持Windows
    的頭像 發(fā)表于 12-24 17:40 ?568次閱讀
    鴻道Intewell<b class='flag-5'>操作系統(tǒng)</b>的Windows<b class='flag-5'>實(shí)時(shí)</b>拓展<b class='flag-5'>方案</b>

    deepin操作系統(tǒng)介紹

    希望從自己的能力和對(duì)桌面操作系統(tǒng)的理解,能給 Linux 的用戶與開發(fā)者更多的選擇。我們也相信 deepin 能夠得到更多用戶的認(rèn)可與喜愛,成為開源世界的最佳選擇。? 一、 deepin 操作系統(tǒng) 先說
    的頭像 發(fā)表于 12-23 09:08 ?2370次閱讀
    deepin<b class='flag-5'>操作系統(tǒng)</b>介紹

    基于國(guó)產(chǎn)化鴻道Intewell操作系統(tǒng)的高性能實(shí)時(shí)運(yùn)動(dòng)控制解決方案

    目前國(guó)產(chǎn)化高實(shí)時(shí)運(yùn)動(dòng)控制達(dá)到了什么樣的控制水平呢?軟件+操作系統(tǒng)實(shí)時(shí)控制如何實(shí)現(xiàn)呢?下面,讓我們一起看看基于國(guó)產(chǎn)化鴻道Intewell操作系統(tǒng)的高性能
    的頭像 發(fā)表于 12-05 16:03 ?484次閱讀

    國(guó)產(chǎn)實(shí)時(shí)操作系統(tǒng):和RT-Linux,Zephyr的實(shí)時(shí)性對(duì)比

    基于RT-Thread內(nèi)核,并具備POSIX用戶態(tài)運(yùn)行環(huán)境的高性能實(shí)時(shí)操作系統(tǒng)。它類似Linux、Windows的架構(gòu),具備用戶態(tài)和內(nèi)核態(tài)(并相分離),用戶態(tài)具備全地址空
    的頭像 發(fā)表于 11-12 01:07 ?2605次閱讀
    國(guó)產(chǎn)<b class='flag-5'>實(shí)時(shí)</b><b class='flag-5'>操作系統(tǒng)</b>:和RT-<b class='flag-5'>Linux</b>,Zephyr的<b class='flag-5'>實(shí)時(shí)</b>性對(duì)比

    linux實(shí)時(shí)系統(tǒng)還是分時(shí)操作系統(tǒng)

    大家平時(shí)玩單片機(jī)基本上對(duì)于μC/OS、FreeRTOS、ThreadX這些操作系統(tǒng)非常熟悉了,他們都屬于實(shí)時(shí)操作系統(tǒng)(RTOS),在工業(yè)領(lǐng)域比較廣泛;然而對(duì)于linux這樣的基于時(shí)間片
    的頭像 發(fā)表于 11-11 11:43 ?1193次閱讀

    航電實(shí)時(shí)測(cè)試系統(tǒng)解決方案

    航電實(shí)時(shí)測(cè)試系統(tǒng)主要應(yīng)用于航空座艙的實(shí)時(shí)測(cè)試。座艙測(cè)試過程中,輸入和輸出信號(hào)的實(shí)時(shí)性至關(guān)重要,尤其是在多任務(wù)操作時(shí),必須保證
    的頭像 發(fā)表于 10-23 15:34 ?726次閱讀
    航電<b class='flag-5'>實(shí)時(shí)</b>測(cè)試<b class='flag-5'>系統(tǒng)</b>解決<b class='flag-5'>方案</b>

    linux操作系統(tǒng)安裝步驟 linux操作系統(tǒng)的特點(diǎn)及組成

    Linux操作系統(tǒng)安裝步驟 Linux操作系統(tǒng)是一種開源的操作系統(tǒng),它以其穩(wěn)定性、安全性和靈活性而聞名。以下是安裝
    的頭像 發(fā)表于 10-21 11:24 ?1228次閱讀

    面向功能安全應(yīng)用的汽車開源操作系統(tǒng)解決方案

    在SAE 2024國(guó)際汽車安全大會(huì)上,Elektrobit的Linux專家王紅燕在操作系統(tǒng)與芯片技術(shù)的分論壇上為大家?guī)砹恕懊嫦蚬δ馨踩珣?yīng)用的汽車開源操作系統(tǒng)解決方案”主題演講。
    的頭像 發(fā)表于 09-27 09:21 ?913次閱讀
    面向功能安全應(yīng)用的汽車開源<b class='flag-5'>操作系統(tǒng)</b>解決<b class='flag-5'>方案</b>

    簡(jiǎn)單認(rèn)識(shí)RTOS實(shí)時(shí)操作系統(tǒng)

    RTOS(Real Time Operating System,實(shí)時(shí)操作系統(tǒng))是一種專門設(shè)計(jì)用于在嚴(yán)格時(shí)間限制內(nèi)處理任務(wù)的操作系統(tǒng)。它以其高實(shí)時(shí)性、多任務(wù)處理能力和資源管理能力在工業(yè)自
    的頭像 發(fā)表于 08-20 11:20 ?5284次閱讀

    3568F-翼輝SylixOS國(guó)產(chǎn)操作系統(tǒng)演示案例

    與vxWorks一樣的實(shí)時(shí)性,與Unux一樣的兼容性。并且SylixO S應(yīng)用編程接口符合IEEE、IS0、IEC相關(guān)操作系統(tǒng)編程接口規(guī)范,兼容POSX 1003.1b實(shí) 時(shí)編程標(biāo)準(zhǔn),因此基于Linux
    發(fā)表于 07-25 15:52