乾貨 嵌入式Linux系統移植的四大步驟(上)

2025-04-23 12:10:13 字數 2605 閱讀 8567

嵌入式linux系統開發的具體步驟

1樓:豬八戒網

第一步、建立巖困交叉編譯環境。

沒有交叉開發經驗的讀者,可能一時很難接受這個概念。首先,要明白兩個概念:一般。

我們工作的機器,稱為開發機、主機;我們製作好的系統將要放到某臺機器,如手機或另一。

臺pc機,這臺機我們稱為目標主機。

我們一般開發機上已經有一套開發工具,我們稱之為原生開發套件,我們一般就是用它。

們來寫程式,那麼,那什麼又是交叉編譯環境呢?其實一點也不神秘,也就是在開發機上再。

安裝一套開發工具,這套開發工具編譯出來的程式,如核心、系統工作或者我們自己的程式,是放在目標主機上執行的。

那麼或許有初學者會問,直森姿接用原生開發工具為目標主機編譯程式不就完了?至少我當。

初是這麼想的。一般來說,我們的開發機都是x86 平臺,原生開發套件開發的工具,也針。

對x86 平臺,而我們的目標主機可能是powerpc、ixp、mips所以,我們的交叉編此棗絕譯。

環境是針對某一類具體平臺的。

一般來講,交叉開發環境需要二進位工具程式、編譯器、c鏈結庫,嵌入式開發常用的。

這三類軟體是:

binutils

guclibc

當然,gnu包含的工具套件不僅於此,你還要以根據實際需要,進行選擇。

第二步、編譯核心。

開發工具是針對某一類硬體平臺,核心同樣也是。這一步,我們需要用第一步中建立的。

工具,對核心進行編譯,對於有核心編譯經驗的人來說,這是非常簡單的;

第三步、建立根檔案系統。

也就是建立我們平常看到的bin、dev、proc這一大堆目錄,以及一些必備的檔案;

另外,我們還需要為我們的目標系統安裝一些常用的工具軟體,如ls、ifconfig當然,乙個辦法是找到這些工具的源**,用第一步建立的交叉編譯工具來編譯,但是這些軟體一。

是數量多,二是某些體積較大,不適合嵌入式系統,這一步,我們一般都是用busybox來完。

成的,包括系統引導軟體init;

最後,我們為系統還需要建立初始化的引導檔案,如inittab

linux系統移植

2樓:草原橡樹

linux使用的是虛擬記憶體管理,核心與硬體mmu一起管理實體記憶體4gb是32位系統的定址極限(2的32次方),支援pae實體地址擴充套件的32位cpu使用36位硬體定址所以至多可以使用64g記憶體,32位作業系統加以適當改造支援pae可以最多支援64g記憶體,但是每個32位程序仍然只能定址4gb, 在 windows 下某些程式如mssql可以通過awe位址視窗擴充套件來間接使用更多的記憶體。

32位linux裡最多每個程序都認為自己擁有4g的定址空間,其中高1g是在核心態低3g為使用者態就是程序本身可以使用的空間最多3gb, 但是他只是虛擬記憶體,這個線性連續的記憶體空間被分成好幾個段(segment),每個段儲存不同內容如指令,堆疊,資料等等, 每個段又分成的更小的單位頁(page), 而mmu把實體記憶體也分成很多的頁(page), mmu維護乙個表來對映實體記憶體的分配, 程序中的虛擬頁需要儲存資料時產生缺頁中斷mmu才給分配實體記憶體,當實體記憶體分配完之後系統會使用最近最少使用(lru)演算法選擇不活動的頁放入交換空間(swap), 騰出實體記憶體來分配給新的分配請求,如果所有可用的實體記憶體和交換空間都消耗殆盡,kernel還可以按照預定的規則殺死一些程序來釋放記憶體,這時候應用程式就可能會受到影響。

對於高1g位給系統,低0-3g位是使用者區間,這是系統的定義, 使用者程序只可以操作3gb使用者空間,很多的操作如讀取檔案則需要進行系統呼叫,這時程序就轉入核心態執行使用的是高1g的系統**,為了系統的可靠性這部分**由作業系統提供,執行在cpu的特權級別,可以直接操作硬體,一旦系統呼叫完成程序回到普cpu通級別執行。

3樓:網友

1樓的草原橡樹,32位系統的定址極限是4g的觀點是錯誤的。定址極限由定址匯流排的數量決定,而恰恰好之前的x86cpu以及其指令集裡面剛好是32條定址匯流排以及pc是32位。錯了,記錯了,8086是16位cpu,但位址線是20條,所以定址為1m,而不是2的16次方。

什麼是arm-linux嵌入式作業系統移植

4樓:發酵乳

將軟體植入硬體,使硬體實現智慧型化!好比我們的安卓手機,從最初的到現在的,系統在不斷更新而手機其實還是原來那部!我在西安 西嵌 培訓嵌入式,有技術問題我們一起討論!

5樓:益生菌

將軟體植入硬體實現智慧型化!西 嵌 專做嵌入式!

嵌入式linux系統開發的具體步驟?

6樓:網友

你問的太簡單了,範圍太廣了。。。

這和windows沒啥區別,只是換了個平臺而已。

嵌入式linux系統移植包含哪三部分內容

7樓:網友

主要有以下三部分:核心的bootloader,引導系統啟動)的移植。

kernel - 核心的移植。

system - 根檔案系統的移植。

8樓:網友

uboot(啟動引導)、kernel(核心定製)、rootfs(檔案系統打包)

學習,C 還是嵌入式Linux

如果考慮就業,程式語言是需要考慮的一個基本技能,但不是全部。嵌入式linux 建議基本入門學習一下,面試的時候能說出些東西,不用精通但大致的概念要懂一些,作業系統的知識對於今後的求職和職業發展都會有長遠的影響。程式語言 建議要精通一門,c 你已經有一點基礎了,但是更重要的是,企業做專案用人依靠的不只...

學習嵌入式linux底層驅動開發

linux驅動開發詳解 嵌入式開發完全手冊 深入理解linux核心 linux源 情景分析上下冊 最好買個開發板,沒有開發板沒法實踐學不會的。linux驅動開發難度大。裸機驅動是直接操作硬體,直來直去,系統驅動是有通用框架,按著框架填好移植就行了,linux驅動開發難度確實比較大,推薦一套 你可以在...

什麼叫嵌入式系統

嵌入式系統的意思是一種完全嵌入受控器件內部,為特定應用而設計的專用計算機系統,為控制 監視或輔助裝置 機器或用於工廠運作的裝置。嵌入式系統用於控制或監控大型裝置,如機器 裝置 工廠等。以應用為中心,以計算機技術為基礎,可定製軟硬體,以滿足應用系統對功能 可靠性 成本 體積 功耗等特殊計算機系統的嚴格...