本文描述了在開發嵌入式linux系統時調試程序的一個方法,本文以深圳遠峰的YF2410DVK為開發平臺,描述在嵌入式linux下面如何使用NFS文件系統來開發調試應用程序,其它的嵌入式平臺類似。
在嵌入式linux系統中,編譯的環境和運行的環境不一樣,所以我們需要交叉編譯工具,一般是在PC上面運行交叉編譯工具編譯好程序,然后再燒寫到目標板的flash上,對于應用程序,我們需要頻繁的調試,如果每次都需要燒寫,那一定是一件很煩的事情,本文講述的就是如何避開這個問題,通過NFS文件系統來調試程序的方法。
準備工作:
一臺裝有REDHAT9.0的PC機,一套YFDVK2410開發板,PC機上裝有YFDVK2410的軟件包,假如我們通過NFS要加載的文件系統為/YF2410/root_dir/root_china,PC機IP:192.168.1.102,開發板IP:192.168.1.134
YFDVK2410開發板設置:
我們需要重新配置編譯內核,開啟開發板NFS文件系統功能,具體步驟如下:
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、 運行make menuconfig進入配置菜單,裝載配置文件SMDK2410
選中networking options-》IP:kernel level auloconfiguralion項
選中file systems-》network file systems-》下的root file system on nfs和nfs file system support
重新編譯內核
下載bootloader和kernel到開發板上,至此,開發板設置已經完成。
PC機設置:
我們必須開啟PC機的NFS服務,具體設置如下:
1、 在LINUX命令符下運行setup,在system services里面選中nfs服務,然后保存退出。
2、 執行vi /etc/exports,在里面添加一行:/YF2410/root_dir/root_china (rw),然后保存退出,/和rw要有空格(/YF2410/root_dir/root_china為共享目錄,rw為讀寫權限)。
3、 執行/etc/rc.d/init.d/nfs restart重啟nfs服務。
4、 為了不必每次開機都要啟動nfs服務,我們把/etc/rc.d/init.d/nfs restart 添加到/etc/rc.d/rc.local中,以后PC啟動的時候就會執行此文件開啟nfs服務。
5、 測試NFS服務:設置完成后可以在本機上進行測試,如果本機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文件,設置開發板IP地址為192.168.1.134
至此,開發板和PC機的設置都已經基本完成,假如我們在PC機上調試好的應用程序已經放到/root_china這個嵌入式的文件系統下面,我們則可以用網絡連接好開發板和PC機,開發板上電,系統開始運行并且通過運行nfs網絡文件系統就可以進入熟悉的linux界面了。
以后調試程序只需要把編譯好的程序放到root_china的目錄下面就可以了,開發板不再需要燒寫。
(審核編輯: 智匯胡妮)
分享