LINUX作業系統嵌入Xenomai實時核

2021-07-23 08:32:15 字數 2626 閱讀 3580

由於linux系統的實時響應達不到更高要求,所以要嵌入xenomai實時核(可以去官網看看適不適合你的硬體處理器)。

我的xenomai解壓在/usr/src資料夾下,開啟資料夾cd /usr/src/xenomai-3.0.2執行指令scripts/prepare-kernel.sh --linux=/usr/src/linux-3.18.12 --arch=arm

--adeos=/usr/src/xenomai3.0.3/kernel/cobalt/arch/arm/patches/ipipe-core-3.18.12-arm-1.patch,進行打補丁設定,解釋一下指令,這個指令的意思是將xenomai構建為linux的一部分,即嵌入進linux,並且打了補丁,而檔案scripts/prepare.sh是/usr/src/xenomai-3.0.2目錄下,是乙個指令碼檔案,作用就是這個。

--linux=/usr/src/linux-3.18.12用來指定目標核路徑,--arch=arm目標平台,--adeos=/usr/src/

xenomai3.0.3/kernel/cobalt/arch/arm/patches/ipipe-core-3.18.12-arm-1.patch指定補丁檔案目錄,執行完此指令,會有各種checking file.....直到結束。到這僅僅是將兩個核心聯絡到一起,還需要編譯linux核心。

編譯核心前,需要進行核心配置,執行make menuconfig指令,出現了下面這個錯誤,

解決辦法:安裝套件sudo apt-get install libncurses5-dev解決問題,還會出現錯誤:can not open file "arch/x86/xenomai/kconfig",這個原因是系統原始碼未新增對arm的支援,修改檔案makefile 裡面 arch ?= arm可以解決問題。

首先我的開發板是am335x系列的,所以把開發板給的原始碼/usr/src/kernel-3.2/arch/arm/configs/ok335xs_evm_linux_defconfig配置檔案加入到我的新核心配置裡面,應該是相關的arm配置,這樣就減少了我的配置(方法是載入這個檔案所在的目錄),然後配置其他的選項。這裡可以看到xenomai相關的配置項,根據衝突提示解決衝突配置,然後自己在網上找了一些配置項,

然後自己根據情況有配置些可能,不記得了,(此處的配置不一定後面沒問題,現在主要是了解這個過程),配置結束後選擇儲存項儲存為.config 檔案然後退出。

然後是編譯,編譯之前要做的事:安裝交叉編譯器  和  新增arm支援和編譯器支援

具體需要修改/etc/profile 在檔案結尾加上export path=/opt/ti-sdk-am335x-evm-08.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin(這是自己的編譯器所在路徑):$path 儲存退出 執行指令source /etc/profile使得修改有效,然後進入linux目錄編輯makefile檔案,arch ?=arm,cross_compile=arm-linux-gnueabi-(注意此處的寫法取決於你的編譯器的bin資料夾裡面的東西的形式,如你的bin資料夾裡面是arm-linux-gnueabi- c++類似的這些檔案的頭都是

arm-linux-gnueabi-這個形式,如果是其他形式就照寫,否則等執行make zimage時候會提示找不到編譯器指令)修改前的樣子如圖

現在就可以編譯了。

然後開啟linux目錄執行make zimage可能會有找不到arm-linux-gnueabi- gcc 的編譯器指令,解決辦法,開啟乙個新終端,執行sudo -s 然後輸入密碼 執行

path=

/opt/ti-sdk-am335x-evm-08.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin(就是上面新增編譯器路徑的部分去掉export)然後在這個終端裡開啟linux目錄再執行make zimage就可以了。編譯過程中遇到以下錯誤

裡面東西很多很好,在終端./xx.bin   就相當於乙個壓縮包,執行完後裡面東西可以用了,其中交叉編譯器就在裡面,需要自己看哪個部分是交叉編譯器,我的交叉編譯器如圖

然後上面的路徑什麼的都需要重新設定修改。 

又有乙個錯誤:

這是因為缺少am335x-pm-firmware.bin韌體檔案,有的核心帶有的不帶,所以我從kernel-3.2裡面複製到我的新核心/firmware資料夾裡面,然後再編譯。編譯成功!!!

以上編譯都是在虛擬機器ubuntu裡面完成的,問題很多,但是一點點解決還是很爽的。

注:菜鳥乙個,學習學習學習,請大神指導!

嵌入式開發 Linux作業系統

學習內容及目標 linux介紹,使用linux操作 命令 linux開發工具 會用,夠用即可 1.安裝linux開發環境 vm虛擬機器 通過軟體的方法模擬pc 為什麼不選擇雙系統?因為嵌入式開發與核心互動,會導致系統崩潰 linux發行版 發行給使用者使用的版本 redhat centos7,企業版...

Linux作業系統

本書以當前最流行的red hat linux的最新發行版本為基礎,論述作業系統的基本原理 基本思想和基本方法,並在此基礎上介紹linux網路作業系統的核心結構 安裝 配置 基本操作 系統管理及網路應用等,從而系統 完整地講述linux作業系統從基本原理到應用實踐的主要內容。本書注意理論內容的選取,注...

Linux 作業系統

linux 作業系統 計算機本身就是一堆硬體,最核心 就是cpu和儲存器裝置,為了能夠計算機獲得資料,有輸入裝置和輸出裝置,輸入輸出裝置通過南橋 北橋接入cache 接入系統的,彼此之間還有匯流排,比如記憶體到cpu的叫系統匯流排,各種鍵盤,滑鼠需要的匯流排也是不一樣的。為了進可能 利用計算機的資源...