新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式Linux開發(fā)環(huán)境的搭建之:嵌入式開發(fā)環(huán)境的搭建

嵌入式Linux開發(fā)環(huán)境的搭建之:嵌入式開發(fā)環(huán)境的搭建

作者: 時(shí)間:2013-09-13 來源:網(wǎng)絡(luò) 收藏


本文引用地址:http://m.butianyuan.cn/article/257141.htm

2.串口下載

使用串口下載需要配合特定的下載軟件,如優(yōu)龍公司提供的DNW軟件等,一般在Windows下進(jìn)行操作。雖然串口下載的速度沒有網(wǎng)絡(luò)下載快,但由于它很方便,不需要額外的連線和設(shè)置IP等操作,因此也廣受用戶的青睞。下面就以DNW軟件為例,介紹串口下載的方式。


與其他串口通信的軟件一樣,在DNW中也要設(shè)置“波特率”、“端口號”等。打開“Configuration”下的“Options”界面,如圖5.17所示。

圖5.17DNW配置界面


在配置完之后,單擊“SerialPort”下的“Connect”,再將開發(fā)板上電,選擇“串口下載”,接著再在“SerialPort”下選擇“Transmit”,這時(shí),就可以進(jìn)行文件傳輸了,如圖5.18和圖5.19所示。這里DNW默認(rèn)串口下載的地址為0x30200000。


圖5.18DNW串口下載圖

圖5.19DNW串口下載情形圖


5.1.4編譯內(nèi)核

在做完了前期的準(zhǔn)備工作之后,在這一步,讀者就可以編譯的內(nèi)核了。在這里,本書主要介紹內(nèi)核的編譯過程,在下一節(jié)會進(jìn)一步介紹嵌入式Linux中體系結(jié)構(gòu)相關(guān)的內(nèi)核代碼,讀者在此之后就可以嘗試嵌入式Linux操作系統(tǒng)的移植。


編譯嵌入式Linux內(nèi)核都是通過make的不同命令來實(shí)現(xiàn)的,它的執(zhí)行配置文件就是在第3章中講述的makefile。Linux內(nèi)核中不同的目錄結(jié)構(gòu)里都有相應(yīng)的makefile,而不同的makefile又通過彼此之間的依賴關(guān)系構(gòu)成統(tǒng)一的整體,共同完成建立依賴關(guān)系、建立內(nèi)核等功能。


內(nèi)核的編譯根據(jù)不同的情況會有不同的步驟,但其中最主要分別為3個(gè)步驟:內(nèi)核配置、建立依賴關(guān)系、創(chuàng)建內(nèi)核映像,除此之外還有一些輔助功能,如清除文件和依賴關(guān)系等。讀者在實(shí)際編譯時(shí)若出現(xiàn)錯(cuò)誤等情況,可以考慮采用其他輔助功能。下面分別講述這3步主要的步驟。


(1)內(nèi)核配置。

第一步內(nèi)核配置中的選項(xiàng)主要是用戶用來為目標(biāo)板選擇處理器架構(gòu)的選項(xiàng),不同的處理器架構(gòu)會有不同的處理器選項(xiàng),比如ARM就有其專用的選項(xiàng)如“Multimediacapabilitiesportdrivers”等。因此,在此之前,必須確保在根目錄中makefile里“ARCH”的值已設(shè)定了目標(biāo)板的類型,如:

ARCH:=arm


接下來就可以進(jìn)行內(nèi)核配置了,內(nèi)核支持4種不同的配置方法,這幾種方法只是與用戶交互的界面不同,其實(shí)現(xiàn)的功能是一樣的。每種方法都會通過讀入一個(gè)默認(rèn)的配置文件—根目錄下“.config”隱藏文件(用戶也可以手動(dòng)修改該文件,但不推薦使用)。當(dāng)然,用戶也可以自己加載其他配置文件,也可以將當(dāng)前的配置保存為其他名字的配置文件。這4種方式如下。

n makeconfig:基于文本的最為傳統(tǒng)的配置界面,不推薦使用。

n makemenuconfig:基于文本選單的配置界面,字符終端下推薦使用。

n makexconfig:基于圖形窗口模式的配置界面,Xwindow下推薦使用。

n makeoldconfig:自動(dòng)讀入“.config”配置文件,并且只要求用戶設(shè)定前次沒有設(shè)定過的選項(xiàng)。

在這4種模式中,makemenuconfig使用最為廣泛,下面就以makemenuconfig為例進(jìn)行講解,如圖5.20所示。

圖5.20makemenuconfig配置界面


從該圖中可以看出,Linux內(nèi)核允許用戶對其各類功能逐項(xiàng)配置,一共有18類配置選項(xiàng),這里就不對這18類配置選項(xiàng)進(jìn)行一一講解了,需要的時(shí)候讀者可以參見相關(guān)選項(xiàng)的help。在menuconfig的配置界面中是純鍵盤的操作,用戶可使用上下鍵和“Tab”鍵移動(dòng)光標(biāo)以進(jìn)入相關(guān)子項(xiàng),圖5.21所示為進(jìn)入了“SystemType”子項(xiàng)的界面,該子項(xiàng)是一個(gè)重要的選項(xiàng),主要用來選擇處理器的類型。

圖5.21SystemType子項(xiàng)


可以看到,每個(gè)選項(xiàng)前都有個(gè)括號,可以通過按空格鍵或“Y”鍵表示包含該選項(xiàng),按“N”表示不包含該選項(xiàng)。


另外,讀者可以注意到,這里的括號有3種,即中括號、尖括號或圓括號。讀者可以用空格鍵選擇相應(yīng)的選項(xiàng)時(shí)可以發(fā)現(xiàn)中括號里要么是空,要么是“*”;尖括號里可以是空,“*”和“M”,分別表示包含選項(xiàng)、不包含選項(xiàng)和編譯成模塊;圓括號的內(nèi)容是要求用戶在所提供的幾個(gè)選項(xiàng)中選擇一項(xiàng)。


此外,要注意2.4和2.6內(nèi)核在串口命名上的一個(gè)重要區(qū)別,在2.4內(nèi)核中“COM1”對應(yīng)的是“ttyS0”,而在2.6內(nèi)核中“COM1”對應(yīng)“ttySAC0”,因此在啟動(dòng)參數(shù)的子項(xiàng)要格外注意,如圖5.22所示,否則串口打印不出信息。

圖5.22啟動(dòng)參數(shù)配置子項(xiàng)


一般情況下,使用廠商提供的默認(rèn)配置文件都能正常運(yùn)行,所以用戶初次使用時(shí)可以不用對其進(jìn)行額外的配置,在以后需要使用其他功能時(shí)再另行添加,這樣可以大大減少出錯(cuò)的幾率,有利于錯(cuò)誤定位。在完成配置之后,就可以保存退出,如圖5.23所示。

圖5.23保存退出


(2)建立依賴關(guān)系。

由于內(nèi)核源碼樹中的大多數(shù)文件都與一些頭文件有依賴關(guān)系,因此要順利建立內(nèi)核,內(nèi)核源碼樹中的每個(gè)Makefile都必須知道這些依賴關(guān)系。建立依賴關(guān)系通常在第一次編譯內(nèi)核的時(shí)候(或者源碼目錄樹的結(jié)構(gòu)發(fā)生變化的時(shí)候)進(jìn)行,它會在內(nèi)核源碼樹中每個(gè)子目錄產(chǎn)生一個(gè)“.depend”文件。運(yùn)行“makedep”即可。在編譯2.6版本的內(nèi)核通常不需要這個(gè)過程,直接輸入“make”即可。


(3)建立內(nèi)核

建立內(nèi)核可以使用“make”、“makezImage”或“makebzImage”,這里建立的為壓縮的內(nèi)核映像。通常在Linux中,內(nèi)核映像分為壓縮的內(nèi)核映像和未壓縮的內(nèi)核映像。其中,壓縮的內(nèi)核映像通常名為zImage,位于“arch/$(ARCH)/boot”目錄中。而未壓縮的內(nèi)核映像通常名為vmlinux,位于源碼樹的根目錄中。

到這一步就完成了內(nèi)核源代碼的編譯,之后,讀者可以使用上一小節(jié)所講述的方法把內(nèi)核壓縮文件下載到開發(fā)板上運(yùn)行。


小知識

在嵌入式Linux的源碼樹中通常有以下幾個(gè)配置文件,“.config”、“autoconf.h”、“config.h”,其中“.config”文件是makemenuconfig默認(rèn)的配置文件,位于源碼樹的根目錄中。“autoconf.h”和“config.h”是以宏的形式表示了內(nèi)核的配置,當(dāng)用戶使用makemenuconfig做了一定的更改之后,系統(tǒng)自動(dòng)會在“autoconf.h”和“config.h”中做出相應(yīng)的更改。它們位于源碼樹的“/include/linux/”下。

linux相關(guān)文章:linux教程




評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉