嵌入式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驅動開發難度確實比較大,推薦一套 你可以在...
什麼叫嵌入式系統
嵌入式系統的意思是一種完全嵌入受控器件內部,為特定應用而設計的專用計算機系統,為控制 監視或輔助裝置 機器或用於工廠運作的裝置。嵌入式系統用於控制或監控大型裝置,如機器 裝置 工廠等。以應用為中心,以計算機技術為基礎,可定製軟硬體,以滿足應用系統對功能 可靠性 成本 體積 功耗等特殊計算機系統的嚴格...