清晰明了!嵌入式Linux一般開發(fā)流程總結(jié)
在一個嵌入式系統(tǒng)中使用Linux開發(fā),根據(jù)應(yīng)用需求的不同有不同的配置開發(fā)方法,但是一般都要經(jīng)過如下的過程。
工具/原料
電腦 開發(fā)板 網(wǎng)線 串口線
linux系統(tǒng)
方法/步驟
1.建立開發(fā)環(huán)境
操作系統(tǒng)當(dāng)然是Linux,或者在win系統(tǒng)下裝虛擬機也可以,選擇定制安裝或全部安裝,通過網(wǎng)絡(luò)下載相應(yīng)的GCC交叉編譯器進行安裝,或者安裝產(chǎn)品廠家提供的交叉編譯器。
2.配置開發(fā)主機
配置MINICOM,一般的參數(shù)為波特率為115 200bps,數(shù)據(jù)位為8位,停止位為1,無奇偶校驗,軟件硬件流控設(shè)為無。在Windows下的超級終端的配置也是這樣的。MINICOM軟件的作用是作為調(diào)試嵌入式開發(fā)板的信息輸出的監(jiān)視器和鍵盤輸入的工具。配置網(wǎng)絡(luò),主要是配置NFS網(wǎng)絡(luò)文件系統(tǒng),需要關(guān)閉防火墻,簡化嵌入式網(wǎng)絡(luò)調(diào)試環(huán)境設(shè)置過程。
3.建立引導(dǎo)裝載程序BOOTLOADER
從網(wǎng)絡(luò)上下載一些公開源代碼的BOOTLOADER,如U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根據(jù)自己具體的芯片進行移植修改。有些芯片沒有內(nèi)置引導(dǎo)裝載程序,這樣就需要編寫開發(fā)板上Flash的燒寫程序,網(wǎng)絡(luò)上有免費下載的Windows下通過JTAG并口簡易仿真器燒寫ARM外圍Flash芯片的燒寫程序,也有Linux下的公開源代碼的J-Flash程序。如果不能燒寫自己的開發(fā)板,就需要根據(jù)自己的具體電路進行源代碼修改。這是系統(tǒng)正常運行的第一步。如果購買了廠家的仿真器當(dāng)然比較容易燒寫Flash,這對于需要迅速開發(fā)自己產(chǎn)品的人來說可以極大地提高開發(fā)速度,但是其中的核心技術(shù)是無法了解的。
4.下載別人已經(jīng)移植好的Linux操作系統(tǒng)
如μCLinux、ARM-Linux、PPC-Linux等,如果有專門針對所使用的CPU移植好的Linux操作系統(tǒng)那是再好不過的,下載后再添加自己的特定硬件的驅(qū)動程序,進行調(diào)試修改,對于帶MMU的CPU可以使用模塊方式調(diào)試驅(qū)動,對于μCLinux這樣的系統(tǒng)則需編譯進內(nèi)核進行調(diào)試。
5.建立根文件系統(tǒng)
下載使用BUSYBOX軟件進行功能裁減,產(chǎn)生一個最基本的根文件系統(tǒng),再根據(jù)自己的應(yīng)用需要添加其他程序。默認(rèn)的啟動腳本一般都不會符合應(yīng)用的需要,所以就要修改根文件系統(tǒng)中的啟動腳本,它的存放位置位于/etc目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自動掛裝文件系統(tǒng)的配置文件/etc/fstab,具體情況會隨系統(tǒng)不同而不同。根文件系統(tǒng)在嵌入式系統(tǒng)中一般設(shè)為只讀,需要使用mkcramfs、genromfs等工具產(chǎn)生燒寫映像文件。
6.建立應(yīng)用程序的Flash磁盤分區(qū)
一般使用JFFS2或YAFFS文件系統(tǒng),這需要在內(nèi)核中提供這些文件系統(tǒng)的驅(qū)動,有的系統(tǒng)使用一個線性Flash(NOR型)512KB~32MB,有的系統(tǒng)使用非線性Flash(NAND型)8~512MB,有的兩個同時使用,需要根據(jù)應(yīng)用規(guī)劃Flash的分區(qū)方案。
7.開發(fā)應(yīng)用程序
應(yīng)用程序可以放入根文件系統(tǒng)中,也可以放入YAFFS、JFFS2文件系統(tǒng)中,有的應(yīng)用不使用根文件系統(tǒng),直接將應(yīng)用程序和內(nèi)核設(shè)計在一起,這有點類似于μCOS-II的方式。
8.燒寫內(nèi)核、根文件系統(tǒng)、應(yīng)用程序...