<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 在基于ADSP BF533的嵌入式Linux系統(tǒng)上的移植

          在基于ADSP BF533的嵌入式Linux系統(tǒng)上的移植

          作者: 時間:2012-04-26 來源:網(wǎng)絡(luò) 收藏

          2.3.2安裝交叉編譯器

          交叉編譯是在一個架構(gòu)下編譯另外一個架構(gòu)的目標(biāo)文件。要從http://blackfin.uclinux.org網(wǎng)站上下載Blackfin ToolChain,然后安裝并修改環(huán)境變量PATH,使其包含ToolChain的安裝目錄。

          3 啟動兩階段

          代碼一般分為stage1和stage2兩大部分。stage1依賴于cpu體系結(jié)構(gòu)如設(shè)備初始化代碼,常用匯編語言編寫以達到短小精悍,提高系統(tǒng)運行效率的目的。它主要包括cpu/bf533目錄下的start.s。stage2一般采用C語言編寫實現(xiàn)復(fù)雜功能,這樣代碼則具有更好的可讀性和可移植性,主要包括lib blackfin/board.c文件和common/main.c文件中main_loop函數(shù)。

          stagel從cpu入口函數(shù)cpu/bf533/start.s開始,通常包含以下步驟:

          (1)基本硬件的初始化,為隨后執(zhí)行kernel準(zhǔn)備好基本的硬件環(huán)境。包括:屏蔽所有中斷,引導(dǎo)裝載程序的執(zhí)行過程中不必執(zhí)行任何中斷,中斷屏蔽可通過寫cpu的中斷屏蔽寄存器或狀態(tài)寄存器實現(xiàn);設(shè)置cpu的速度和時鐘頻率,初始化pll;RAM初始化,初始化內(nèi)存控制器的各個寄存器;初始化 UART,向串口打印的字符信息;關(guān)閉cpu內(nèi)部指令,數(shù)據(jù)cache。

          (2) 為加載U-Boot的stage2準(zhǔn)備RAM空間,通常將stage2置于整個RAM空間的最頂層1 MB空間。

          (3)拷貝U-Boot的stage2到RAM。判斷是否是Flash運行,如果是就將stage2的代碼拷貝到TEXT BASE處。將stage2安排到RAM空間的最頂層1 MB是較推薦的方法。

          (4)設(shè)置堆棧指針sp為C語言代碼執(zhí)行做好準(zhǔn)備。

          (5)跳轉(zhuǎn)到stage2的C語言代碼入口點。

          stage2主要包括lib-blackfin/board.c中board_init_f、board_init_r函數(shù)以及common/main.C中main_loop函數(shù)。通常包含以下步驟:

          (1)初始化此階段需用的硬件設(shè)備,由board_init_f和board_init_r函數(shù)實現(xiàn)。

          (2)內(nèi)存映射檢測。

          (3)加載內(nèi)核并為內(nèi)核設(shè)置啟動參數(shù)。

          (4)調(diào)用內(nèi)核。

          4 U-BOOt的移植

          4.1 U-Boot方法與要點

          移植U-Boot簡便的方法是從U-Boot支持的開發(fā)板中選擇一個與其目標(biāo)板接近的開發(fā)板進行修改。需修改的是與硬件相關(guān)的部分,涉及到兩個層面:針對CPU的移植,由于U-Boot_1.1.3支持,故只需做第二層面的移植:針對目標(biāo)板硬件的移植。在移植前,需仔細閱讀U- Boot/readme文件,該文件對目錄結(jié)構(gòu)和如何移植作了簡要介紹。從移植U-Boot的最小要求、U-Boot能夠正常啟動的角度出發(fā),選擇 的STAMP板為模板,相關(guān)源代碼在/board/stamp目錄下,結(jié)合U-Boot的啟動流程,主要修改文件如下:

          (1)與目標(biāo)板相關(guān)的代碼部分:在board下創(chuàng)建mybf533目錄,無需從頭開始,參考與目標(biāo)板相似的STAMP板在mybf533目錄下創(chuàng)建 mybf533.c、mybf533.h、flash.c、config.mk、Makefie等文件。需要修改/board/mybf533 /config.mk:

          TFEXT_BASE用于設(shè)置程序編譯鏈接的起始地址即將U-Boot的stage2拷貝到SDRAM的TEXT_BASE處,即SDRAM最頂層一段存儲區(qū)。修改board/mybf533/Makefile:



          (2)與CPU相關(guān)的代碼部分:U-Boot_1.1.3/epu文件中含有的目錄,其中包含start.s、cpu.c、cpu.h、interrupt.c、init_sdram.s等。故不需要建立與cpu相關(guān)的文件目錄。



          關(guān)鍵詞: U-Boot BF533 Linux系統(tǒng)

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();