如果使用者有自己慣用的boot loader,可以使用慣用的boot loader以加快開發(fā)時(shí)程,如果沒有boot loader的開發(fā)經(jīng)驗(yàn),可以選用u-boot作為系統(tǒng)的boot loaderu-boot的source ocde位置在BSPv310/source/Standalone/u-boot/u-boot.tgz.
2.1 U-boot
AndeSoft的BSP310中u-boot source code是需要EBIOS boot up后再執(zhí)行的u-boot版本。直接boot up不需要其他軟件協(xié)助的U-boot版本(ROM版)是比較符合使用者的需要,晶心版的u-boot使用方法請(qǐng)參考BSP310 User Manual.如果要ROM版的u-boot需要在BSP310中的u-boot軟件做patch,其指令如下:
# patch -p1 patching file arch/nds32/cpu/n1213/ag101/cpu.c
patching file arch/nds32/cpu/n1213/start.S
patching file arch/nds32/include/asm/u-boot-nds32.h
patching file arch/nds32/lib/board.c
patching file board/AndesTech/adp-ag101p/config.mk
patching file include/configs/adp-ag101p.h
patch 完成的u-boot source code 可以產(chǎn)生ROM版的u-boot image,直接開機(jī)后的執(zhí)行結(jié)果如圖表3所示。

?
圖表 3 u-boot 執(zhí)行結(jié)果圖
3. 調(diào)試環(huán)境
在移植Linux到晶心平臺(tái)之前,先架設(shè)好調(diào)試的環(huán)境,尤其對(duì)底層Linux原始碼的移植,有莫大的幫助,在 printk尚未正常運(yùn)作前,需依靠AndeShape?的AICE與 AndeSoft?的GDB來進(jìn)行調(diào)試。
3.1設(shè)定Linux kernel 調(diào)試選項(xiàng)
Linux Kernel 需要設(shè)定一些調(diào)試選項(xiàng),才能順利的運(yùn)用AndeSoft?的GDB進(jìn)行調(diào)試。晶心平臺(tái)中Linux kernel 調(diào)試選項(xiàng)設(shè)定如圖表4所示,增加這些選項(xiàng)會(huì)增加kernel 映像文件的空間,如果空間占用過大以至于不符合設(shè)計(jì)需求時(shí),可在調(diào)試工作完畢后將調(diào)試選項(xiàng)關(guān)閉以節(jié)約不必要的空間浪費(fèi)。

?
圖表 4設(shè)定Kernel hacking 中調(diào)試選項(xiàng)勾選
3.2 Linux kernel 調(diào)試的程序
Build成kernel bootpImage (含kernel debug message如圖表四選項(xiàng)) 后,Linux的映像檔放到FPGA板子上,PC host 端的AndeSoft?的GDB透過網(wǎng)絡(luò)(socket)與AICE連接至FPGA板子,進(jìn)行調(diào)試的工作。
3.2.1. 編譯鏈結(jié)成映像檔
設(shè)定好AndeSoft?的 cross-compiler 路徑后,利用下列指令經(jīng)由compiler and linker后可以得到 bootpImage,指令如下:
#CROSS_COMPILE="nds32le-linux-" ARCH="nds32" make xc5_defconfig
#CROSS_COMPILE="nds32le-linux-" ARCH="nds32" make menuconfig
# CROSS_COMPILE="nds32le-linux-" ARCH="nds32" make bootpImage INITRD=xc5_glibc_ramdisk.img
將生成的bootpIamge放到FPGA板子上,將AICE連接到FPGA板子啟動(dòng)ICEman,指令如下:
#C:\Andestech\AndeSight200MCU\ice>ICEman.exe --p 1234
PC host端的AndeSoft?的GDB透過網(wǎng)絡(luò)(socket)與AICE連接至FPGA板子,進(jìn)行調(diào)試的工作,示范指令如下:
#ddd --debugger nds32le-linux-gdb vmlinux
gdb>target remote 10.0.2.164:1234
其中IP值 10.0.2.164是一個(gè)應(yīng)用范例,用戶可依環(huán)境實(shí)際IP值進(jìn)行設(shè)定。環(huán)境設(shè)定完成后,可以開始進(jìn)行調(diào)試工程。
評(píng)論