<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > BLOB啟動(dòng)流程與Bootloader程序可移植性研究

BLOB啟動(dòng)流程與Bootloader程序可移植性研究

作者: 時(shí)間:2011-09-02 來(lái)源:網(wǎng)絡(luò ) 收藏
2 的可

本文引用地址:http://dyxdggzs.com/article/150266.htm

  大部分的總體結構與類(lèi)似,一般分為兩個(gè)階段運行。其中第一階段與CPU架構相關(guān),不同架構CPU往往要求不同的與之對應[3],只有少數Bootloader能夠適用于多種架構的CPU,如表1。

  

  2.1 相同構架下Bootloader

  對于相同的CPU構架,Bootloader工作大體上可以分為三部分。

  (1)目標板驅動(dòng)部分,針對特定CPU、Flash、SDRAM等對驅動(dòng)進(jìn)行定制。完成處理器各個(gè)I/O口的初始化、Flash描述(包括區塊大小及數量)和Flash初始化等。一個(gè)必要的工作是Flash分區表的配置,Flash的典型空間分配結構如圖2所示。

  

  (2)目標板相關(guān)的頭文件,文件中包含了目標板配置的宏定義,主要有系統工作頻率、GPIO定義、Flash 各分塊起始地址及容量、Flash 讀/寫(xiě)命令字、SDRAM寄存器配置、SDRAM起始地址及容量、內核裝載地址等。其中大部分GPIO設置的目的是在Bootloader下做板載開(kāi)發(fā),這項功能不是必需的。而CPU頻率及Flash的設置則直接影響到系統能否。對于采用Ramdisk技術(shù)的系統開(kāi)發(fā),SDRAM的配置也直接關(guān)系到Kernel的加載。因此,各頭文件的代碼修改是移植過(guò)程的重點(diǎn)。

  (3)Bootloader總體配置文件修改,包括目標板聲明、指定目標板頭文件、定制文件關(guān)聯(lián)關(guān)系等。

  圖3以在PXA255[4]的目標板上移植為例表現了需要增、改的關(guān)鍵文件之間的內在聯(lián)系。

  

BLOB在PXA255的目標板上移植

  圖3中:

  (1)src/blob/PXA255.c:筆者編寫(xiě)的針對PXA255目標板驅動(dòng)文件,這里是采用默認設置的最簡(jiǎn)情況,必要時(shí)還需對文件如Flash.c等進(jìn)行修改。

  (2)include/blob/arch/PXA255.h:目標板頭文件,它必須通過(guò)arch.h及config.h進(jìn)行指定,最終反映在configure.in中。

  (3)configure.in:添加目標板聲明,如果已有目標板類(lèi)型,則無(wú)需修改該文件;如果沒(méi)有,則需要根據情況添加目標板名稱(chēng)、CPU型號、必需的.o文件,如:

  PXA255)

  AC_MSG_RESULT(Ipaq PXA255)

  AC_DEFINE(PXA255)

  AC_DEFINE(USE_SERIAL3)

  _PLATFORM_OBJ=″PXA255.o″

  BLOB_FLASH_OBJS=″nullflash.o″

  use_cpu=″PXA255″

  use_lcd=″no″

  (4)Makefile.am:由于添加了PXA255.c和PXA255.h,所以要在它們所在目錄的Makefile.am中進(jìn)行登記,保證configure.in和Makefile.am在進(jìn)行./configure處理時(shí)能夠生成正確的Makefile文件,最終在執行Make命令后生成BLOB的可執行文件。

  需要注意的是Linux內核必須根據目標板硬件情況作相應的設置[5],這里不展開(kāi)論述。

  



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>