在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于U-BOOT的S3C44B0引導(dǎo)裝載程序的設(shè)計(jì)與實(shí)現(xiàn)

      基于U-BOOT的S3C44B0引導(dǎo)裝載程序的設(shè)計(jì)與實(shí)現(xiàn)

      作者: 時(shí)間:2012-05-21 來(lái)源:網(wǎng)絡(luò) 收藏


      U-boot可執(zhí)行映像


      移植前需要對(duì)存儲(chǔ)器的地址空間進(jìn)行了解。操作系統(tǒng)內(nèi)核可以通過(guò)U—BOOT下載到SDRAM中,調(diào)試完畢后可以將內(nèi)核燒寫到FLASH中,在本目標(biāo)板中選用的是uclinux嵌入式操作系統(tǒng),在存儲(chǔ)器空間的分配見(jiàn)圖2和圖3。其中圖2為在FLASH中的存儲(chǔ)器空間分布。圖3為啟動(dòng)后在SDR AM中的存儲(chǔ)器分布。

      如圖所2示,F(xiàn)LASH存儲(chǔ)器空間大小為2M,SDRAM大小為8M。系統(tǒng)上電復(fù)位后從0x00000000地址處開(kāi)始執(zhí)行代碼start.s(即第一階段),這一部分代碼運(yùn)行在FLASH中。主要完成必要的寄存器設(shè)置.,中斷向量表,堆棧初始化等,并將第二階段拷貝到SDRAM地址 0x0c120000處,然后從第二階段(即跳轉(zhuǎn)到start-armboot函數(shù))開(kāi)始執(zhí)行,調(diào)用各種init函數(shù),完成第二階段要使用的硬件設(shè)備初始化工作(主要是板級(jí)初始化),最后跳轉(zhuǎn)到main-loop函數(shù)(屬第二階段)中,負(fù)責(zé)接受用戶命令,然后將其分發(fā)給相應(yīng)的處理函數(shù)[3]。

      3.U-Boot移植操作

      要得到下載到目標(biāo)板的U-BOOT二進(jìn)制啟動(dòng)代碼,需要對(duì)下載的U-BOOT進(jìn)行編譯。建立交叉編譯移植開(kāi)發(fā)環(huán)境,主機(jī)端(PC)開(kāi)發(fā)平臺(tái)選用linux操作系統(tǒng),使用交叉編譯工具為arm-elf-tools-20030314.sh。

      移植到新的開(kāi)發(fā)板上僅需修改與硬件相關(guān)的部分即可。主要包括二個(gè)方面的移植,第一層是針對(duì)CPU的移植,第二層是針對(duì)BOARD的移植[4]。為了減少移植工作量,我們?cè)趇nclude/config目錄下選一個(gè)和要移植的硬件相似的開(kāi)發(fā)板,我們選擇了B2開(kāi)發(fā)板,在board目錄下創(chuàng)建一個(gè)myboard目錄,把B2板目錄下的文件拷貝過(guò)來(lái),修改文件名即可。

      本系統(tǒng)開(kāi)發(fā)板主要由嵌入式微處理器、2MB的Flash(SST39VF160)、8MB的SDRAM(HY57V641620)、4個(gè)LED以及ARM JTAG接口組成。該開(kāi)發(fā)板上與相關(guān)部分的功能框圖如圖1所示。

      U-Boot移植主要修改的文件:

      針對(duì)本文提供的主板硬件資源,從移植最小要求,能正常啟動(dòng)的角度出發(fā),主要考慮修改如下文件:u-boot根目錄下的 Makefile文件,include目錄下的myboard.h頭文件,board目錄下的myboard.c文件,cpu/s3c44b0目錄下的文件。移植操作中文件修改的具體操作為:

      ⑴cpu/s3c44b0目錄下

      ◆start.s文件的修改。Start.s是匯編語(yǔ)言編寫的U-BOOT程序入口代碼,完成對(duì)底層硬件的初始化,這個(gè)文件的主要任務(wù)是設(shè)置處理器狀態(tài)、初始化中斷和內(nèi)存時(shí)序等,并確定是否需要對(duì)整個(gè)U-BOOT代碼重定位,最終從Flash中跳轉(zhuǎn)到定位好的內(nèi)存位置執(zhí)行。具體修改內(nèi)容如下。

      ①設(shè)置WTCON=0x0,禁止看門狗定時(shí)器,避免處理器強(qiáng)行復(fù)位。

      ②設(shè)置INTMSK=0X7ffffff,禁止所有中斷。的執(zhí)行過(guò)程中不必響應(yīng)任何中斷。

      ③根據(jù)嵌入式微處理器的工作主頻,修改宏CONFIG__CLOCK_SPEED,使處理器能夠正常工作,本文的目標(biāo)板S3C44B0處理器工作主頻為66MHZ。

      ④設(shè)置PLLCON寄存器。PLLCON鎖相環(huán)控制寄存器中存儲(chǔ)有計(jì)算系統(tǒng)時(shí)鐘的相關(guān)參數(shù),為了產(chǎn)生正確的系統(tǒng)時(shí)鐘,必須根據(jù)外接晶振頻率和處理器工作主頻確定各個(gè)倍頻數(shù)。

      ◆serial.c文件。這個(gè)文件初始化串口,主要是對(duì)UART相關(guān)的寄存器進(jìn)行配置。串口的波特率不需要修改,直接用B2板的串口驅(qū)動(dòng)即可。

      ⑵board/myboard目錄下

      ◆myboard.c文件。這個(gè)文件主要是SDRAM的驅(qū)動(dòng)程序,S3C44B0提供有SDRAM控制器,與一些CPU需要UPM表編程相比,它只需進(jìn)行相關(guān)寄存器的設(shè)置即可。

      ◆flash.c文件。Flash驅(qū)動(dòng)程序就在這個(gè)文件中。Flash存儲(chǔ)器的燒寫與擦除一般不具有通用性,跟具不同型號(hào)的存儲(chǔ)器做出相應(yīng)的修改。 Snds110嵌入式系統(tǒng)板選用的是SST39VF160,所以用snds110目錄下的flash.c替換原來(lái)的flash.c,使FLASH芯片正常工作。

      ◆memsetup.s文件。memsetup.s代碼是對(duì)存儲(chǔ)器空間的初始化,在start.s中被調(diào)用。修改內(nèi)存映射相關(guān)參數(shù),SDRAM的刷新速度等,根據(jù)不同嵌入式系統(tǒng)版本修改。



      關(guān)鍵詞: Bootloader U-BOOT S3C44B0

      評(píng)論


      相關(guān)推薦

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

      關(guān)閉