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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > U-Boot在S3C44B0上的移植方法

          U-Boot在S3C44B0上的移植方法

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


          具體修改操作

          移植操作中這些文件修改過程的具體操作為:

          (1)start.S 文件的修改。start.S 是匯編語(yǔ)言編寫的 程序入口代碼,位于cpu/ s3c44b0 下。
          移植操作中需要對(duì)start.S 進(jìn)行相應(yīng)的修改,具體修改內(nèi)容如下。

          ①設(shè)置WTCON = 0x0,禁止看門狗定時(shí)器,避免處理器強(qiáng)行復(fù)位。
          ②設(shè)置INTMSK = 0x7ffffff,禁止所有中斷。 的執(zhí)行過程中不必響應(yīng)任何中斷。
          ③根據(jù)嵌入式微處理器工作主頻,修改宏CONFIG- - CLOCK- SPEED,使處理器能
          夠正常工作,本文的目標(biāo)板上工作主頻為66 MHz。在 源程序中多處用到該宏,所以根據(jù)不同的處理器工作主頻進(jìn)行相應(yīng)修改。
          ④ 設(shè)置PLLCON寄存器。PLLCON鎖相環(huán)控制寄存器中儲(chǔ)存有計(jì)算系統(tǒng)時(shí)鐘的相關(guān)參數(shù),為了產(chǎn)生正確的系統(tǒng)時(shí)鐘,必須根據(jù)外接晶振頻率和處理器工作主頻確定各個(gè)倍頻系數(shù)。根據(jù)提供的計(jì)算式(1) 和式(2) 計(jì)算倍頻系數(shù)M 、P、S 和PLLCON的值。設(shè)PLLCON值為Y為


          式中, f in為晶振頻率, f out為S3C44B0 微處理器工作主頻,通常s 取1,使P + 2 = fin/2MHz ,可求得P。

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

          (3) /include/configs目錄下嵌入式系統(tǒng)板頭文件的修改。為了使串口能夠正常工作,需要設(shè)置正確的波特率。本文嵌入式系統(tǒng)板的串口傳輸波特率為 115 200 bps。根據(jù)片上資源配置,修改內(nèi)存映射相關(guān)參數(shù)。該頭文件里還定義了的一些環(huán)境變量,這時(shí)可以不用修改, U-Boot啟動(dòng)后可以通過setenv命令來設(shè)定。其它參數(shù)與啟動(dòng)操作系統(tǒng)內(nèi)核有關(guān),需要與內(nèi)核啟動(dòng)參數(shù)相匹配。

          (4) 為了使串口能夠正常工作,初始化串口4個(gè)相關(guān)寄存器。當(dāng)只有一個(gè)串口時(shí),只需對(duì)UART0的FIFO控制寄存器UFCON0、塊控制寄存器 UL2CON0、控制寄存器UCON0、波特率除數(shù)寄存器UBRDIV0修改, S3C44B0的串口初始化函數(shù)在/cpu/ s3c44b0/ serial.c 文件中。

          如果串口不能正常工作,可能是由于串口時(shí)鐘設(shè)置錯(cuò)誤。查看UBRDIV0寄存器內(nèi)容是否計(jì)算正確,查閱S3C44B0 手冊(cè)由式(3) 計(jì)算,設(shè)UBRDIVO值為0,串口波特率為b,處理器主頻為M, 則

          U = (int) ( M/ b ×16) - 1 (3)

          式中,b = 115 200 bps,M = 66 MHz。

          (5) 根據(jù)嵌入式系統(tǒng)板的配置,對(duì)S3C44B0 相應(yīng)的I/ O 寄存器內(nèi)容修改,修改源文件/ board/smdk4110/ smdk4110.c。由于SMDK4110 嵌入式系統(tǒng)板選用的FLASH 型號(hào)不是SST39VF160,而snds110嵌入式系統(tǒng)板選用的是SST39VF160 ,所以用snds110目錄下的flash.c 替換原來的flash.c,使FLASH 芯片正常工作。

          移植的基本工作已經(jīng)作完,進(jìn)入U(xiǎn)-Boot主目錄,在Shell下輸入make命令編譯U-Boot,編譯后生成最終可以下載到FLASH中的uboot .bin 文件。

          U-Boot 燒寫及運(yùn)行檢查

          需借助FLASH芯片燒寫工具將編譯好的U-Boot.bin 文件燒寫進(jìn)FLASH,檢查U-Boot是否能正常工作。本文使用針對(duì)ARM處理器、運(yùn)行在Lin2ux操作系統(tǒng)上的簡(jiǎn)易調(diào)試器軟件J tager移植U-Boot。J tager支持本文基于ARM7TDMI核的S3C44B0 處理器的調(diào)試和對(duì)SST39VF160 FLASH芯片的讀寫。由于J tager是符合GPL公約、開放源代碼的項(xiàng)目軟件,用戶可以免費(fèi)從因特網(wǎng)獲得該軟件。

          燒寫完畢后,復(fù)位開發(fā)板,打開超級(jí)終端可以看到U-Boot的提示符。如果這時(shí)沒有按任意鍵,U-Boot將自動(dòng)加載操作系統(tǒng)內(nèi)核和文件系統(tǒng)。若是按下任意鍵,則U-Boot停止自動(dòng)加載,進(jìn)入U(xiǎn)-Boot命令行,可以輸入命令進(jìn)行調(diào)試。

          結(jié) 論

          本文結(jié)合分析U-Boot的運(yùn)行機(jī)理和移植Boot-loader的必要條件,研究了U-Boot在基于S3C44B0的嵌入式系統(tǒng)板上的移植方法及具體的軟件修改方法。本文移植情況是在硬件資源固定、不改變Boot-loader 框架前提下,對(duì)與嵌入式目標(biāo)板和CPU 相關(guān)的代碼進(jìn)行修改。嵌入式開發(fā)人員應(yīng)該在清楚了 工作機(jī)理、移植條件之后,針對(duì)自己的目標(biāo)板進(jìn)行移植工作,在遇到不同的目標(biāo)板時(shí)能夠靈活的選用合適的,根據(jù)具體情況裁剪Bootloader,最大限度地發(fā)揮Bootloader的功能。本文選用的Bootloader U-Boot目前能穩(wěn)定地運(yùn)行在使用的嵌入式系統(tǒng)板上。通過U-Boot可以實(shí)現(xiàn)串口與PC通信,查看、修改內(nèi)存,引導(dǎo)u Clinux嵌入式操作系統(tǒng)等功能。前期的移植工作是嵌入式系統(tǒng)開發(fā)的必要環(huán)節(jié),在此基礎(chǔ)上可以進(jìn)行深入的嵌入式系統(tǒng)開發(fā),希望本文能為作相關(guān)工作的開發(fā)者提供參考。


          上一頁(yè) 1 2 3 下一頁(yè)

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

          評(pí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); })();