Arm處理器與Linux的完美結合

2021-07-27 23:51:52 字數 1447 閱讀 7994

arm處理器與linux的完美結合

嵌入式系統的定義應當是以應用為中心、以計算機技術為基礎、軟體硬體可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。

比如現在atm取款機就是乙個典型rtos,embedded os主要包括兩部分,一部分是處理器,比如arm,powerpc,mipc,一部分是os,比如linux,wince,vxworks,us/os,etc.我現在主要學習的路線是arm+linux,選擇arm主要是因為arm技術已經比較成熟,選擇linux是因為linux是開源的,免費的,另外如果學好了linux就算將來不搞嵌入式系統開發這塊,也可以專供linux伺服器這一方面。

第一步:交叉編譯環境的建立

a: 基於linux作業系統的應用開發環境一般是由目標系統硬體(開發板)和宿主pc機所構成。目標硬體開發板用於執行作業系統和系統應用軟體。而目標板所用到的作業系統的核心編譯、應用程式的開發和除錯則需要通過宿主pc機來完成(所以稱為交叉編譯)。雙方之間一般通過串列埠,並口或乙太網介面建立連線關係。安裝linux os,比如redhao linux 9.0,可以採用預設安裝(但要包含ftp服務),將該linux伺服器接入區域網,其他的pc機可以用windows,需要的軟體工具包括。

(1)ftp客戶端程式

(2)telnet工具

(3)移植到某一特定arm平台的linux作業系統核心原始碼

b:(1) 建立編譯環境,在這個過程中,將設定一些環境變數,建立安裝目錄,安裝核心源**和標頭檔案等。

(2) 建立binutils.在這個過程結束後,會建立類似arm-linux-ld等工具。

(3) 建立乙個交叉編譯版本的gcc,注意:在這個過程中,只能編譯c程式,而不能編譯c++程式。

(4) 建立乙個交叉編譯版本的glibc,這裡最容易出問題。

(5) 建立乙個交叉編譯版本的gdb。這個過程結束後,會建立arm-linux_gdb

(6) 重新建立gcc。前面建立gcc的過程沒有編譯c++編譯器,現在glibc已經準備好了,所以這個步驟將完善gcc的交叉編譯。

(7) 重新建立glibc.

如果在交叉編譯過程中出現錯誤,那麼請檢查:

版本選擇是否正確,以及是否安裝了相應的補丁;

庫檔案路徑設定是否正確;

系統環境變數是否設定正確。

第二步:編寫bootloader並移植到開發板上

b:bootloader啟動大多數都分為兩個階段

(1):基本的硬體初始化(遮蔽所有的中斷,關閉處理器內部指令/資料cache等)。

為第二階段準備ram空間,如果是從某個固態儲存媒質中,則複製bootlodaer的第二階段**到ram。

設定堆疊。

跳轉到第二階段的c程式入口點。

(2):初始化本階段要使用的硬體裝置。

檢查系統記憶體對映。

將核心映像和根檔案系統映像從flash讀到ram。

為核心設定啟動引數呼叫核心。姜工q群:478743261

Arm處理器與Linux的完美結合

嵌入式系統的定義應當是以應用為中心 以計算機技術為基礎 軟體硬體可裁剪 適應應用系統對功能 可靠性 成本 體積 功耗嚴格要求的專用計算機系統。比如現在atm取款機就是乙個典型rtos,embedded os主要包括兩部分,一部分是處理器,比如arm,powerpc,mipc,一部分是os,比如lin...

Arm處理器與Linux的完美結合

嵌入式 系統的定義應當是以應用為中心 以 技術為基礎 軟體硬體可裁剪 適應應用系統對功能 可靠性 成本 體積 功耗嚴格要求的專用計算機系統。比如現在atm取款機就是乙個典型rtos,embedded os主要包括兩部分,一部分是處理器,比如arm,powerpc,mipc,一部分是os,比如linu...

arm處理器模式和arm處理器狀態的區別

arm處理器狀態 arm微處理器的工作狀態一般有兩種,並可在兩種狀態之間切換 第一種為arm狀態,此時處理器執行32位的字對齊的arm指令 第二種為thumb狀態,此時處理器執行16位的 半字對齊的thumb指令。在程式的執行過程中,微處理器可以隨時在兩種工作狀態之間切換,並且,處理器工作狀態的轉變...