新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 如何移植Linux到晶心平臺

如何移植Linux到晶心平臺

作者: 時間:2012-03-30 來源:網絡 收藏

3. 調試環(huán)境

之前,先架設好調試的環(huán)境,尤其對底層原始碼的,有莫大的幫助,在 printk尚未正常運作前,需依靠AndeShape™的AICE與 AndeSoft™的GDB來進行調試。

3.1設定 kernel 調試選項
Linux Kernel 需要設定一些調試選項,才能順利的運用AndeSoft™的GDB進行調試。中Linux kernel 調試選項設定如圖表4所示,增加這些選項會增加kernel 映像文件的空間,如果空間占用過大以至于不符合設計需求時,可在調試工作完畢后將調試選項關閉以節(jié)約不必要的空間浪費。


3.2 Linux kernel 調試的程序

Build成kernel bootpImage (含kernel debug message如圖表四選項) 后,Linux的映像檔放到FPGA板子上,PC host 端的AndeSoft™的GDB透過網絡(socket)與AICE連接至FPGA板子,進行調試的工作。

3.2.1. 編譯鏈結成映像檔
設定好AndeSoft™的 cross-compiler 路徑后,利用下列指令經由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板子啟動ICEman,指令如下:

#C:AndestechAndeSight200MCUice>ICEman.exe --p 1234

PC host端的AndeSoft™的GDB透過網絡(socket)與AICE連接至FPGA板子,進行調試的工作,示范指令如下:

#ddd --debugger nds32le-linux-gdb vmlinux
gdb>target remote 10.0.2.164:1234

其中IP值 10.0.2.164是一個應用范例,用戶可依環(huán)境實際IP值進行設定。環(huán)境設定完成后,可以開始進行調試工程。


4. Linux至關鍵點經驗傳承

4.1 Kernel加載程序調試實作

kernel加載程序目的將kernel主程序進行解壓縮并加載正確位置,此程序與kernel主程序是兩個不同程序,但會一起包在zImage中只是kernel加載程序會attached在zImage的前面。調試時需 file不同的 ELF file才能進行正確的調試工作,kernel加載程序的位置在arch/nds32/boot/compressed/vmlinux,指令如下所示。


#ddd --debugger nds32le-linux-gdb arch/nds32/boot/compressed/vmlinux

kernel主程序的ELF file “vmlinux”在kernel source code的根目錄下指令如下所示。
#ddd --debugger nds32le-linux-gdb vmlinux

4.2 Linux kernel 調試實作

kernel加載程序執(zhí)行完畢后會跳到kernel主程序執(zhí)行。進入點是arch/nds32/kernel/head.S的assembly code執(zhí)行完后會進入 kernel 的主要函數 “start_kernel”。

4.2.1. RAM offset patch

晶心版Linux原始碼搭配XC5平臺,RAM的起始位置(指的是PA)是0x0,使用者FPGA開發(fā)板的RAM起始位置如果不是0x0,必須要修改FPGA板子中RAM的起始位置,做法是在晶心版的Linux原始碼中進行RAM address patch,將原始碼中RAM位置調整到FPGA開發(fā)板中RAM的真實位置。

4.2.2. PA/VA remap table

當FPGA板子IO的PA設定正確后,使用者需要設定PA/VA remap table,作法可參考arch/nds32/include/asm/spec-ag101.h,依照apec-ag101.h中PA/VA對應的關系去增減使用者自己IO device的 PA/VA remap table。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


關鍵詞: Linux 移植 晶心平臺

評論


相關推薦

技術專區(qū)

關閉