《基于linux的DTU開發(fā)環(huán)境的搭建》由會員分享,可在線閱讀,更多相關《基于linux的DTU開發(fā)環(huán)境的搭建(41頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,基于linux的DTU開發(fā)環(huán)境的搭建,姓名:孟剛,學號:093107,導師:時龍興,日期:20101122,目錄,SEP4020 典型存儲空間分配結(jié)構,搭建Linux主機開發(fā)環(huán)境,利用NandFlash燒寫軟件燒寫U-Boot和kernal,搭建網(wǎng)絡文件系統(tǒng),內(nèi)核的編譯以及cramfs和yaffs的制作,利用U-Boot燒寫Linux操作系統(tǒng)和Cramfs文件系統(tǒng),利用NandFlash燒寫軟件燒寫kernal和yaffs文件系統(tǒng),各種文件系統(tǒng)下的應用開發(fā)簡介,第一部分,SEP4020 典型存儲空間分配結(jié)
2、構,SEP4020 典型存儲空間分配結(jié)構,U-Boot,內(nèi)核啟動參數(shù),Linux內(nèi)核,根文件系統(tǒng),SDRAM,NAND Flash,NOR Flash,說明:上圖是SEP4020大開發(fā)板的典型存儲結(jié)構。所給DTU的DEMO板中U-Boot是放在NandFlash中的,上電后從NandFlash啟動U-Boot,通過U-Boot,我們可以初始化硬件設備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準備好正確的環(huán)境。,第二部分,搭建Linux主機開發(fā)環(huán)境,在虛擬機上安裝Ubuntu,具體步驟可以借鑒網(wǎng)上相關說明,在此不做具體介紹,安裝交叉編譯工具,首先
3、下載一個源碼包:,解壓到目錄/usr/local/arm下,解壓后確認目錄的順序是否為/usr/local/arm/3.4.1/,添加環(huán)境變量到系統(tǒng)中:打開/etc/bash.bashrc,并在bashrc文件的最后一行添加:export PATH=/usr/local/arm/3.4.1/bin:$PATH,保存,此時環(huán)境變量已經(jīng)添入系統(tǒng)。,此時只要在終端中輸入arm-linux-gcc v,會出現(xiàn)一下信息的話代表交叉編譯工具已經(jīng)安裝成功,如果沒有下圖信息,再檢查前面幾步有沒有出錯,Windows下安裝串口調(diào)試工具secureCRT,自己從網(wǎng)上下載一個secureCRT軟件包后安裝即可,另外
4、也可以使用Windows自帶的超級終端,看個人習慣,第三部分,利用NandFlash燒寫軟件燒寫Uboot和kernal,利用NandFlash燒寫軟件燒寫Uboot,連接好J-Link調(diào)試器后打開NandFlash燒寫軟件,連接成功后,如下圖進行選擇選擇:(其中u-boot.bin文件是給定的),點擊“下載”按鈕后,會顯示燒寫進度條,成功燒寫后,會如下顯示,(如果下載時提示無法與服務程序通信,可以重啟一下板子再進行燒寫),Kernal的燒寫過程相同:,注:U-Boot可以分別燒寫,也可以同時燒寫,第四部分,搭建網(wǎng)絡文件系統(tǒng),主機端的nfs配置,首先設置虛擬機下Ubuntu的IP地址,比如我的
5、是,由于Ubuntu下默認是沒有提供nfs服務的,所以你要自己下載并安裝nfs服務程序,方法是執(zhí)行命令,apt-get install nfs-kernal-server,編輯文件/etc/exports添加nfs目錄的支持:,/home/nfs/nfs 10.6.15.94(rw,sync,no_root_squash),其中是開發(fā)板的ip。,其中:,/nfs表示 nfs 共享目錄,它可以作為開發(fā)板的根文件系統(tǒng)通過 nfs 掛接;,rw 表示掛接此目錄的客戶機對該目錄有讀寫的權力,no_root_squash 表示允許掛接此目錄的客戶機享有該主機的 root 身份,編輯/etc/hosts.
6、deny文件,該文件用于設置拒絕相關IP的nfs的服務請求,編輯/etc/hosts.allow文件,該文件用于設置允許的IP對nfs服務de請求,開發(fā)板端的nfs配置,開發(fā)板端的配置比較簡單,主要是修改U-Boot的bootargs參數(shù),修改后的參數(shù)應為:,set bootargs root=/dev/nfs rw nfsroot=10.6.15.99:/home/nfs/nfs ip=10.6.15.94:10.6.15.99:10.6.15.1:255.255.255.0 console=ttyS0,115200 mem=32mb,修改后敲入save命令,將開發(fā)板和主機用直連網(wǎng)線相連接,
7、開啟板子會看到已經(jīng)把nfs文件系統(tǒng)掛載上去了,說明:其中為開發(fā)板的IP,為Ubuntu的IP,有的kernal可能不支持nfs,這是需要對內(nèi)核重新編譯,可以用make menuconfig 命令選中相關選項后重新編譯。,由于debo板給的內(nèi)核支持nfs,所以在此不做詳細介紹,感興趣的話請查閱相關資料,說明:在掛載所給的nfs時,出現(xiàn)Warning:unable to open an initial console.,解決方法:在虛擬機終端輸入mknod/nfs/dev/console c 5 1,其中/nfs是你nfs所在的目錄,第五部分,內(nèi)核的編譯以及cramfs和yaffs的制作,內(nèi)核的配
8、置與編譯,首先進入linux內(nèi)核目錄,注:如果無法正常輸入make相關命令,需要按照提示安裝相關軟件,執(zhí)行make menuconfig命令,利用空格選中或不選中相關選項,選中的選項前面會有“*”,表示編譯進內(nèi)核,有的選項會顯示“M”表示將該選項編譯為模塊;之前提到的要讓kernal支持nfs,需要選中如下幾項:,配置完后保存退出,執(zhí)行make命令進行編譯,編譯好的內(nèi)核位于,/linux/arch/arm/boot/zImage,剛剛生成的內(nèi)核還是不能直接給我們的板子使用,為了讓U-Boot能準確認出我們的內(nèi)核,必須給我們的內(nèi)核再進行一條命令,在執(zhí)行這條命令前首先要將mkimage這個程序拷貝
9、到/bin目錄下,這個程序在上也能下到。,可能直接拷進去會出現(xiàn)權限不夠的提示,在終端下輸入命令chmod 777/bin/mkimage,在終端中輸入命令:,mkimage-n Kernel 2.6.16-A arm-O linux-T kernel-C none-a 30007fc0-e 30008000-d./arch/arm/boot/zImage vmlinux.img,這時在當前目錄下就生成了我們想要的,vmlinux.img文件,該文件可直接燒錄進flash中運行。,如果想恢復之前的默認配置只需執(zhí)行,make sep4020_defconfig,Cramfs文件系統(tǒng)的制作,掛載nf
10、s完成應用程序的開發(fā)后,需要將nfs轉(zhuǎn)換為可以在開發(fā)板上運行的文件系統(tǒng),其中轉(zhuǎn)換為cramfs的方法如下:,首先要將mkcramfs這個程序拷貝到/bin目錄下,在nfs當前目錄下執(zhí)行mkcramfs/nfs nfs.cramfs命令,即可生成我們想要的nfs.cramfs文件,Yaffs文件系統(tǒng)的制作,方法同cramfs文件系統(tǒng)的制作,首先要將mkyaffsimage這個程序拷貝到/bin目錄下,在nfs當前目錄下執(zhí)行mkyaffsimage/nfs nfs.yaffs命令,即可生成我們想要的nfs.yaffs文件,第六部分,利用U-Boot燒寫Linux內(nèi)核和Cramfs文件系統(tǒng),內(nèi)核的燒
11、錄,在U-Boot已經(jīng)燒寫好的情況下可以用tftp命令將vmlinux.img傳到sdram中,然后用nand write命令將vmlinux.img文件燒錄到相應的地址空間中。,方法:,啟動板子,進入U-Boot命令行,設置好ipaddr(板子的IP)和serverip(主機的IP),在主機端打開tftpd32軟件,并指定vmlinux.img所在目錄,在U-Boot命令行中順序執(zhí)行命令,tftp 31000000 vmlinux.img,nand erase 0 x00100000 0 x00200000,nand write 0 x31000000 0 x00100000 0 x0020
12、0000,這樣內(nèi)核就燒錄到了相應的地址空間中,Cramfs文件系統(tǒng)的燒錄,方法同上,順序執(zhí)行如下命令:,nand erase 0 x600000 0 x1e00000,tftp 31000000 nfs.cramfs,nand write 0 x31000000 0 x600000 0 xd00000,第七部分,利用NandFlash燒寫軟件燒寫kernal和yaffs文件系統(tǒng),說明:其實也可以用tftp的方式燒錄yaffs但是既然提供了方便的,NandFlash燒寫軟件,完全可以利用好該軟件,方法與之前燒錄U-Boot的方法相同,只是注意如下選項:,第八部分,各種文件系統(tǒng)下的應用開發(fā)簡介,C
13、ramfs下的應用開發(fā),在U-Boot里設置啟動參數(shù)如下,set bootargs root=/dev/mtdblock2 console=ttyS0,115200 rootfstype=cramfs mem=32mb,save后reset,這樣系統(tǒng)就掛載了cramfs,此時可以將交叉編譯后的應用程序tftp傳輸?shù)介_發(fā)板上運行。(主機要打開tftpd32軟件,并將相應的可執(zhí)行程序放入制定目錄中),tftp命令如下:,從主機到開發(fā)板的傳輸:tftp gr filename PC_IP,(例如 tftp gr hello 10.6.15.99),從開發(fā)板到主機的傳輸:tftp p l filename PC_IP,(例如 tftp p l hello 10.6.15.99),說明:因為cramfs為只讀的所以,只能進入tmp目錄進行下載!,Yaffs下應用程序開發(fā),方法同cramfs下應用開發(fā),由于yaffs為可讀可寫文件系統(tǒng),所以開發(fā)時相對cramfs方便的多。,具體方法同上,不同的是可以進入任何目錄下載運行,Nfs下的應用程序開發(fā),用cramfs和yaffs開發(fā)時,每次都要將應用程序下載,不太方面,在開發(fā)時推薦掛載虛擬機下的NFS分區(qū)作為根文件系統(tǒng),掛載nfs的方法之前已經(jīng)介紹了,當掛載nfs成功后,只要將應用程序交叉 編譯,開發(fā)板端就可直接執(zhí)行,相當方便。,Thanks!,