本文描述了在開發(fā)嵌入式linux系統(tǒng)時調(diào)試程序的一個方法,本文以深圳遠(yuǎn)峰的YF2410DVK為開發(fā)平臺,描述在嵌入式linux下面如何使用NFS文件系統(tǒng)來開發(fā)調(diào)試應(yīng)用程序,其它的嵌入式平臺類似。
在嵌入式linux系統(tǒng)中,編譯的環(huán)境和運(yùn)行的環(huán)境不一樣,所以我們需要交叉編譯工具,一般是在PC上面運(yùn)行交叉編譯工具編譯好程序,然后再燒寫到目標(biāo)板的flash上,對于應(yīng)用程序,我們需要頻繁的調(diào)試,如果每次都需要燒寫,那一定是一件很煩的事情,本文講述的就是如何避開這個問題,通過NFS文件系統(tǒng)來調(diào)試程序的方法。
準(zhǔn)備工作:
一臺裝有REDHAT9.0的PC機(jī),一套YFDVK2410開發(fā)板,PC機(jī)上裝有YFDVK2410的軟件包,假如我們通過NFS要加載的文件系統(tǒng)為/YF2410/root_dir/root_china,PC機(jī)IP:192.168.1.102,開發(fā)板IP:192.168.1.134
YFDVK2410開發(fā)板設(shè)置:
我們需要重新配置編譯內(nèi)核,開啟開發(fā)板NFS文件系統(tǒng)功能,具體步驟如下:
1、 修改kernel/arch/arm/def-configs/smdk2410配置文件
把CONFIG_CMDLINE="root=/dev/mtdblock2 noinitrd init=/linuxrc console=ttyS0"這一行改為CONFIG_CMDLINE="root=/dev/nfs rw nfsroot=192.168.1.102:/YF2410/root_dir/root_china noinitrd init=linuxrc console=ttys0 ip=192.168.1.134"
2、 運(yùn)行make menuconfig進(jìn)入配置菜單,裝載配置文件SMDK2410
選中networking options-》IP:kernel level auloconfiguralion項
選中file systems-》network file systems-》下的root file system on nfs和nfs file system support
重新編譯內(nèi)核
下載bootloader和kernel到開發(fā)板上,至此,開發(fā)板設(shè)置已經(jīng)完成。
PC機(jī)設(shè)置:
我們必須開啟PC機(jī)的NFS服務(wù),具體設(shè)置如下:
1、 在LINUX命令符下運(yùn)行setup,在system services里面選中nfs服務(wù),然后保存退出。
2、 執(zhí)行vi /etc/exports,在里面添加一行:/YF2410/root_dir/root_china (rw),然后保存退出,/和rw要有空格(/YF2410/root_dir/root_china為共享目錄,rw為讀寫權(quán)限)。
3、 執(zhí)行/etc/rc.d/init.d/nfs restart重啟nfs服務(wù)。
4、 為了不必每次開機(jī)都要啟動nfs服務(wù),我們把/etc/rc.d/init.d/nfs restart 添加到/etc/rc.d/rc.local中,以后PC啟動的時候就會執(zhí)行此文件開啟nfs服務(wù)。
5、 測試NFS服務(wù):設(shè)置完成后可以在本機(jī)上進(jìn)行測試,如果本機(jī)IP為192.168.1.102,則可以用mount 192.168.1.102:/YF2410/root_dir/root_china /mnt,如果mount成功,則在/mnt的目錄就可以看到root_china下面的東西了。
6、 修改root_china/usr/etc/rc.local文件,設(shè)置開發(fā)板IP地址為192.168.1.134
至此,開發(fā)板和PC機(jī)的設(shè)置都已經(jīng)基本完成,假如我們在PC機(jī)上調(diào)試好的應(yīng)用程序已經(jīng)放到/root_china這個嵌入式的文件系統(tǒng)下面,我們則可以用網(wǎng)絡(luò)連接好開發(fā)板和PC機(jī),開發(fā)板上電,系統(tǒng)開始運(yùn)行并且通過運(yùn)行nfs網(wǎng)絡(luò)文件系統(tǒng)就可以進(jìn)入熟悉的linux界面了。
以后調(diào)試程序只需要把編譯好的程序放到root_china的目錄下面就可以了,開發(fā)板不再需要燒寫。
(審核編輯: 智匯胡妮)
分享