在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 如何移植Linux到晶心平臺(tái)

      如何移植Linux到晶心平臺(tái)

      作者: 時(shí)間:2012-03-30 來源:網(wǎng)絡(luò) 收藏

      3. 調(diào)試環(huán)境

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

      3.1設(shè)定 kernel 調(diào)試選項(xiàng)
      Linux Kernel 需要設(shè)定一些調(diào)試選項(xiàng),才能順利的運(yùn)用AndeSoft™的GDB進(jìn)行調(diào)試。中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)。


      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:AndestechAndeSight200MCUice>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)試工程。


      4. Linux至關(guān)鍵點(diǎn)經(jīng)驗(yàn)傳承

      4.1 Kernel加載程序調(diào)試實(shí)作

      kernel加載程序目的將kernel主程序進(jìn)行解壓縮并加載正確位置,此程序與kernel主程序是兩個(gè)不同程序,但會(huì)一起包在zImage中只是kernel加載程序會(huì)attached在zImage的前面。調(diào)試時(shí)需 file不同的 ELF file才能進(jìn)行正確的調(diào)試工作,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 調(diào)試實(shí)作

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

      4.2.1. RAM offset patch

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

      4.2.2. PA/VA remap table

      當(dāng)FPGA板子IO的PA設(shè)定正確后,使用者需要設(shè)定PA/VA remap table,作法可參考arch/nds32/include/asm/spec-ag101.h,依照apec-ag101.h中PA/VA對(duì)應(yīng)的關(guān)系去增減使用者自己IO device的 PA/VA remap table。

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


      關(guān)鍵詞: Linux 移植 晶心平臺(tái)

      評(píng)論


      相關(guān)推薦

      技術(shù)專區(qū)

      關(guān)閉