學習嵌入式
linux
的流程
在乙個嵌入式系統中使用
linux
開發,根據應用需求的不同有不同的配置開發方法,但是一般都要經過如下的過程:
準備工作: 1
.建立開發環境
作業系統一般使用
redhat-linux
,版本從7到
9gcc
交叉編譯器進行安裝(例如
arm-linux-gcc
、arm-μclibc-gcc
),或者安裝產品廠家提供的交叉編譯器。 2
.配置開發主機 配置
minicom
,一般的引數為波特率為
115 200
bps,資料位為
8位,停止位為
1,無奇偶校驗,軟體硬體流控設為無。在
windows
下的超級終端的配置也是這樣的。
minicom
軟體的作用是作為除錯嵌入式開發板的資訊輸出的監視器和鍵盤輸入的工具。配置網路,主要是配置
nfs網路檔案系統,需要關閉防火牆,簡化嵌入式網路除錯環境設定過程。
第一步: 3
.建立引導裝載程式
bootloader
bootloader
,如u-boot
、blob
、vivi
、lilo
、arm-boot
、red-boot
等,根據自己具體的晶元進行移植修改。有些晶元沒有內建引導裝載程式,例如三星的
arm7
、arm9
系列晶元,這樣就需要編寫開發板上
flash
windows
下通過jtag
並口簡易**器燒寫
arm外圍
flash
晶元的燒寫程式,也有
linux
下的公開源**的
j-flash
程式。如果不能燒寫自己的開發板,就需要根據自己的具體電路進行源**修改。這是系統正常執行的第一步。如果購買了廠家的**器當然比較容易燒寫
flash
,這對於需要迅速開發自己產品的人來說可以極大地提高開發速度
,但是其中的核心技術是無法了解的。 4
linux
作業系統 如
μclinux
、arm-linux
、ppc-linux
等,如果有專門針對所使用的
cpu移植好的
linux
mmu的
cpu可以使用模組方式除錯驅動,對於
μclinux
這樣的系統則需編譯進核心進行除錯。 5
.建立根檔案系統 從
www.busybox.net
busybox
軟體進行功能裁減,產生乙個最基本的根檔案系統,再根據自己的應用需要新增其他程式。預設的啟動指令碼一般都不會符合應用的需要,所以就要修改根檔案系統中的啟動指令碼,它的存放位置位於
/etc
目錄下,包括:
/etc/init.d/rc.s
、/etc/profile
、/etc/.profile
等,自動掛裝檔案系統的配置檔案
/etc/fstab
,具體情況會隨系統不同而不同。根檔案系統在嵌入式系統中一般設為唯讀,需要使用
mkcramfs
、genromfs
等工具產生燒寫映像檔案。 6
.建立應用程式的
flash
磁碟分割槽
一般使用
jffs2
或yaffs
檔案系統,這需要在核心中提供這些檔案系統的驅動,有的系統使用乙個線性
flash
(nor
型)512kb
~32mb
,有的系統使用非線性
flash
(nand型)8
~512mb
,有的兩個同時使用,需要根據應用規劃
flash
的分割槽方案。
第三步: 7
.開發應用程式
應用程式可以放入根檔案系統中,也可以放入
yaffs
、jffs2
檔案系統中,有的應用不使用根檔案系統,直接將應用程式和核心設計在一起,這有點類似於
μcos-ii
的方式。 8
.燒寫核心、根檔案系統、應用程式 尾聲
9.發布產品
嵌入式linux啟動流程
s3c6410 map io裡面呼叫 mach s3c6410下的cpu.c中 各個成員函式在不同時期被呼叫 1.init machine 在 arch arm kernel setup.c 中被 customize machine 呼叫,放在 arch initcall 段裡面,會自動按順序被呼叫...
嵌入式Linux開發流程
在乙個嵌入式系統中使用linux開發,根據應用需求的不同有不同的配置開發方法,但是一般都要經過如下的過程.1 1 建立開發環境 2 2 配置開發主機 配置minicom,一般的引數為波特率為115 200bps,資料位為8位,停止位為1,無奇偶校驗,軟體硬體流控設為無。在windows下的超級終端的...
嵌入式Linux開發流程
在學習嵌入式開發的過程中,尤其是開始入門時,包括各種各樣的教程,都是在講學習linux,很少講如何利用linux來開發屬於自己的嵌入式專案,也就是沒有乙個全域性的概念,簡單理解,大概流程如下 一 建立開發環境 這一步,就相當於在win系統下,要安裝乙個ide開發環境,如mdk,iar等。二 配置開發...