<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í)間:2009-05-19 來(lái)源:網(wǎng)絡(luò) 收藏

          2.2 lib_arm/board.c文件()
          U―b00t/Lib arm/board.c中的start armboot是C語(yǔ)言開始的函數(shù),也是整個(gè)啟動(dòng)代碼中C語(yǔ)言的主函數(shù),該函數(shù)主要是調(diào)用一一系列的初始化函數(shù)。進(jìn)行各種初始化設(shè)置。該函數(shù)完成的操作是:
          (1)調(diào)用一系列的初始化函數(shù),包括:cpu init(CPU相關(guān)的設(shè)置),board init(板子相關(guān)的設(shè)置),in-terrupt_init(中斷設(shè)置),env_init(環(huán)境變量設(shè)置),init_ baudrate(baud參數(shù)設(shè)置),serial init(串口初始化),console_inh_f(控制臺(tái)設(shè)置),display_banner(顯示標(biāo)題),dram init(可用內(nèi)存配置);
          (2)初始化FLAsH設(shè)備;
          (3)初始化系統(tǒng)內(nèi)存分配函數(shù);
          (4)如果目標(biāo)系統(tǒng)擁有NAND設(shè)備,則初始化NAND設(shè)備;
          (5)如果目標(biāo)系統(tǒng)有顯示設(shè)備,則初始化該類設(shè)備;
          (6)初始化相關(guān)網(wǎng)絡(luò)設(shè)備,填寫IP、MAC地址等。
          2.3 U―boot/common/main.c文件
          完成上述初始化后,進(jìn)入命令循環(huán)(即整個(gè)boot的工作循環(huán)),代碼為:
          for(;;)
          {
          main_loop();

          本文引用地址:http://www.ex-cimer.com/article/152486.htm

          }


          3 過(guò)程
          在此使用的是創(chuàng)維特公司的EB44BO開發(fā)板,系統(tǒng)相關(guān)配置如下:
          處理器:SamslJng S3C4BOX,工作頻率60 MHz;


          2個(gè)串口。4個(gè)可編程的LED以及14針JTAG接口。
          為了降低的難度,在過(guò)程中,一般都是選擇與目標(biāo)處理器以及目標(biāo)板最接近的一個(gè)版本進(jìn)行移植。因此選擇B2進(jìn)行移植。從U―bo()t的官方網(wǎng)站上下載最新版的源代碼,目前最高版本為1.3.3。移植主要修改的文件有:cptl/s3c44b0/start.s,board/dave/b2/lowlevel init.s,board/dave/b2/b2.c,board/dave/corn。mon/FLASH.c,include/configs/b2.h,board/dave/b2/config.mk。
          3.1 cpu/s3c44b0/start.s文件
          start.s是匯編語(yǔ)言編寫的:程序入口代碼,主要包括處理器內(nèi)部各個(gè)寄存器的初始化以及代碼的搬移。主要完成設(shè)置處理器狀態(tài)、初始化中斷、堆棧、內(nèi)存控制器等,并確定是否需要對(duì)整個(gè)代碼重定位,最終從FLASH中跳轉(zhuǎn)到定位好的內(nèi)存位置執(zhí)行。下面對(duì)其中一些代碼進(jìn)行針對(duì)性的。
          (1)設(shè)置WTCON=0x0,禁止看門狗定時(shí)器,避免處理器強(qiáng)行復(fù)位;
          (2)設(shè)置INTMSK=Ox7ffffff,禁止所有中斷,Bootloader的執(zhí)行過(guò)程中不必要響應(yīng)任何中斷;
          (3)根據(jù)嵌入式微處理器工作主頻,修改宏CON-FIG 83C4480 CLCICK SPEED=60 MHz,使處理器能夠正常工作;
          (4)設(shè)置PLLCON=0x34031,PLLCON鎖相環(huán)控制寄存器中儲(chǔ)存有計(jì)算系統(tǒng)時(shí)鐘的相關(guān)參數(shù),為了產(chǎn)生正確的系統(tǒng)時(shí)鐘,必須根據(jù)外接晶振頻率和處理器工作主頻確定各個(gè)倍頻系數(shù)。
          3.2 board/dave/b2/lowlevel init.S文件
          該文件由匯編代碼完成,主要包括SDRAM工作參數(shù)的設(shè)置,以及處理器內(nèi)存控制器的初始化,參數(shù)需要根據(jù)SDRAM芯片資料進(jìn)行設(shè)置。
          3.3 board/dave/b2/b2.c文件
          該文件中的代碼主要是SDRAM的驅(qū)動(dòng)程序,并完成了處理器各個(gè)I/O 口的初始化,根據(jù)具體的目標(biāo)板進(jìn)行適當(dāng)?shù)男薷募纯伞?br />3.4 board/dave/common/FLASH.C
          這個(gè)文件是FLASH的驅(qū)動(dòng)程序。FLASH存儲(chǔ)器的燒寫與擦除一般不具有通用性,根據(jù)不同型號(hào)的存儲(chǔ)器做出相應(yīng)的修改。EB4480開發(fā)板采用的是Intel28F320C3B,總共71個(gè)塊,1~8每塊大小是8 KB,9~71每塊大小是64 KB,它的特殊性決定了需要對(duì)



          關(guān)鍵詞: 分析 移植 S3C44B0 U-boot

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