嵌入式
系統的定義應當是以應用為中心、以
技術為基礎、軟體硬體可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。
比如現在atm取款機就是乙個典型rtos,embedded os主要包括兩部分,一部分是處理器,比如arm,powerpc,mipc,一部分是os,比如linux,wince,vxworks,us/os,etc.我現在主要學習的路線是arm+linux,選擇arm主要是因為arm技術已經比較成熟,選擇linux是因為linux是開源的,免費的,另外如果學好了linux就算將來不搞
嵌入式系統開發這塊,也可以專供linux伺服器這一方面。
開發板上時可能就有所差別了,下邊就以深圳優龍公司的fs2410為目標板具體的上述一下開發的流程,以及在開發中應注意的問題。想交流了解3306607541
第一步:交叉編譯環境的建立
a: 基於linux
作業系統
的應用開發環境一般是由目標系統硬體(開發板)和宿主pc機所構成。目標硬體開發板用於執行作業系統和系統應用軟體。而目標板所用到的作業系統的核心編譯、應用程式的開發和除錯則需要通過宿主pc機來完成(所以稱為交叉編譯)。雙方之間一般通過串列埠,
或建立連線關係。安裝linux os,比如redhao linux 9.0,可以採用預設安裝(但要包含ftp服務),將該linux伺服器接入區域網,其他的pc機可以用windows,需要的軟體工具包括。
(1)ftp客戶端程式
(2)telnet工具
(3)移植到某一特定arm平台的linux作業系統核心原始碼
b:(1) 建立編譯環境,在這個過程中,將設定一些環境變數,建立安裝目錄,安裝核心源**和標頭檔案等。
(2) 建立binu
tils.在這個過程結束後,會建立類似arm-linux-ld等工具。
(3) 建立乙個交叉編譯版本的gcc,注意:在這個過程中,只能編譯c程式,而不能編譯c++程式。
(4) 建立乙個交叉編譯版本的glibc,這裡最容易出問題。
(5) 建立乙個交叉編譯版本的gdb。這個過程結束後,會建立arm-linux_gdb
(6) 重新建立gcc。前面建立gcc的過程沒有編譯c++
編譯器,現在glibc已經準備好了,所以這個步驟將完善gcc的交叉編譯。
(7) 重新建立glibc.
如果在交叉編譯過程**現錯誤,那麼請檢查:
版本選擇是否正確,以及是否安裝了相應的補丁;
庫檔案路徑設定是否正確;
系統環境變數是否設定正確。
第二步:編寫bootloader並移植到開發板上
a:bootloader(引導引導程式)是系統加電後執行的第一段**。嵌入式系統中的bootloader相當於pc機中的bios。大多數bootloader都包含兩種不同的操作模式,一種是啟動載入(bootloading)模式,在這種模式下,bootloader從目標機上的某個固態
通訊根檔案系統
映像等到ram中。然後可以再被bootloader寫到目標機上的固態
介質上。
b:bootloader啟動大多數都分為兩個階段
(1):基本的硬體初始化(遮蔽所有的中斷,關閉處理器內部
指令/資料cache等)。
為第二階段準備ram空間,如果是從某個固態儲存媒質中,則複製bootlodaer的第二階段**到ram。
設定堆疊。
跳轉到第二階段的c程式入口點。
(2):初始化本階段要使用的硬體裝置。
檢查系統記憶體對映。
將核心映像和根檔案系統映像從flash讀到ram。
為核心設定啟動引數呼叫核心。
免費學習資料v:xyd118118
Arm處理器與Linux的完美結合
嵌入式系統的定義應當是以應用為中心 以計算機技術為基礎 軟體硬體可裁剪 適應應用系統對功能 可靠性 成本 體積 功耗嚴格要求的專用計算機系統。比如現在atm取款機就是乙個典型rtos,embedded os主要包括兩部分,一部分是處理器,比如arm,powerpc,mipc,一部分是os,比如lin...
Arm處理器與Linux的完美結合
arm處理器與linux的完美結合 嵌入式系統的定義應當是以應用為中心 以計算機技術為基礎 軟體硬體可裁剪 適應應用系統對功能 可靠性 成本 體積 功耗嚴格要求的專用計算機系統。比如現在atm取款機就是乙個典型rtos,embedded os主要包括兩部分,一部分是處理器,比如arm,powerpc...
arm處理器模式和arm處理器狀態的區別
arm處理器狀態 arm微處理器的工作狀態一般有兩種,並可在兩種狀態之間切換 第一種為arm狀態,此時處理器執行32位的字對齊的arm指令 第二種為thumb狀態,此時處理器執行16位的 半字對齊的thumb指令。在程式的執行過程中,微處理器可以隨時在兩種工作狀態之間切換,並且,處理器工作狀態的轉變...