嵌入式開發(fā)通常使用主機(jī)-開發(fā)板的開發(fā)模式,在裸板開發(fā)中,我們通常使用串口調(diào)試工具傳遞文件,比如windows平臺的超級終端,SecuCRT以及Linux平臺的ckermit(題外話:ckermit比windows的那兩個快多了)。但在OS的開發(fā)環(huán)境中,由于程序復(fù)雜,規(guī)模巨大,串口的低速和易錯就不再適合我們開發(fā)了,而在這種環(huán)境下,基于網(wǎng)絡(luò)的開發(fā)環(huán)境由于高速和準(zhǔn)確受到了大家的青睞。

結(jié)構(gòu)說明

在有OS的嵌入式系統(tǒng)中,SoC的啟動過程有3個加載。

  1. 上電的第一個程序就是片上固化的啟動代碼,它負(fù)責(zé)把bootloader從Flash中加載到內(nèi)存中并執(zhí)行

  2. bootloader會從Flash中加載Linux內(nèi)核以及設(shè)備樹文件到內(nèi)存,并對兩者進(jìn)行相關(guān)的配置。完成所有工作后跳轉(zhuǎn)到內(nèi)核的首地址

  3. 內(nèi)核接管bootloader配置好的硬件資源,內(nèi)核啟動過程中非常重要的一件事就是掛載文件系統(tǒng)。

在開發(fā)過程中,由于bootloader通常都具有網(wǎng)絡(luò)功能,而linux內(nèi)核,設(shè)備樹dts和文件系統(tǒng)fs都是不斷迭代的,所以我們自然希望通過配置bootloader的網(wǎng)絡(luò)功能使其直接通過服務(wù)器(開發(fā)主機(jī))下載內(nèi)核并進(jìn)一步下載設(shè)備樹文件(tftp),甚至直接掛接網(wǎng)絡(luò)上的文件系統(tǒng)(nfs)。整個開發(fā)環(huán)境的結(jié)構(gòu)框圖如下:
平面設(shè)計培訓(xùn),網(wǎng)頁設(shè)計培訓(xùn),美工培訓(xùn),游戲開發(fā),動畫培訓(xùn)

tftp的安裝和配置

tftp即tiny ftp,是一種輕型的ftp協(xié)議,ubuntu下可以使用下面這個小腳本安裝并配置。

#!/bin/bashecho "Please input tftpdir"read tftpdir
sudo mkdir $tftpdir        #創(chuàng)建用于傳輸文件的目錄sudo chmod 0777 $tftpdirsudo apt-get install tftp-hpa tftpd-hpa xinetd -y#sudo vi /etc/default/tftp-hpasudo touch /etc/default/tftpd-hpa
sudo chmod 0777 /etc/default/tftpd-hpa
sudo echo "TFTP_USERNAME=\"tftp\"" > /etc/default/tftpd-hpa
sudo echo "TFTP_DIRECTORY=\"$tftpdir\"" >> /etc/default/tftpd-hpa   #tftpd-hpa的服務(wù)目錄,這個想建立在哪里都行sudo echo "TFTP_ADDRESS=\"0.0.0.0:69\""     >> /etc/default/tftpd-hpa   #指定開發(fā)板地址,需要和主機(jī)的ip在同一個網(wǎng)段     sudo echo "TFTP_OPTIONS=\"-l -c -s\""       >> /etc/default/tftpd-hpa   #-c是可以上傳文件的參數(shù),-s是指定tftpd-hpa服務(wù)目錄,上面已指定sudo service&
        
		

網(wǎng)友評論