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

          新聞中心

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

          U-Boot在S3C2410上的移植分析

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


          其中“arm”是CPU的種類,arm920t是ARM CPU對應(yīng)的代碼目錄,是自己開發(fā)板對應(yīng)的目錄。

          交叉編譯器安裝在:/ path/ armv4l-unknown -linux-目錄下,所以把CROSS-COMPILE 設(shè)置成相應(yīng)的路徑: CROSS-COMPILE = / path/ arm4l-unknown-linux -

          生成目標(biāo)文件并進(jìn)行測試
          依次運(yùn)行以下命令:

          # make clean
          # make -config
          # make

          之后會生成三個文件:

          ——ELF 格式的文件, 可以被大多數(shù)Debug 程序識別;
          .bin ——二進(jìn)制文件,純粹的

          二進(jìn)制執(zhí)行代碼,不保存ELF 格式和調(diào)試信息。 這個文件一般用于燒錄到用戶開發(fā)板中;U-Boot .srec ——Motorola S-Record格式,可以通過串行口下載到開發(fā)板中。

          測試與應(yīng)用

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

          1) 測試

          利用編制好的Flash燒寫程序,通過JTAG口將生成的二進(jìn)制文件U-Boot。bin燒入Flash的零地址。 燒錄成功后,拔掉JTAG調(diào)試線并復(fù)位開發(fā)板,從Minicom終端輸出如下信息:

          U-Boot 1.1.2 (Jul 20 2005-09 :34 :21)
          U-Boot code : 33F00000-> 33F1952C BSS:-> 33F1D870
          RAM Configuration :
          Bank # 0 : 30000000 64 MB
          Flash Memory Start 0x0000000
          Device ID of the Flash is 18
          Flash : 16 MB
          Write 18 to Watchdog and it is 18 now
          In : serial
          Out : serial
          Err : serial
          SMDK2410 #

          串口輸出的以上信息表明,CPU和串口已正常工作。通過U-Boot提供的命令flinfo和mtest可以測試Flash和RAM。經(jīng)過測試,可以正確地讀出Flash信息及讀寫RAM,表明Flash 和DRAM 已正確初始化。用tftp命令傳輸宿主機(jī)tftpboot目錄下任一小文件到RAM成功,說明網(wǎng)卡芯片也成功驅(qū)動。

          2) 簡單應(yīng)用

          U- Boot的主要作用是用來引導(dǎo)內(nèi)核。因此,通過U-Boot引導(dǎo)一個特定的內(nèi)核,可以進(jìn)一步測試其的穩(wěn)定性。而使用U-Boot引導(dǎo)內(nèi)核有兩種不同的方法。第一種方法是直接將內(nèi)核映象文件和根文件系統(tǒng)燒寫入Flash,使用此方法,U-Boot在啟動時將 Flash中的內(nèi)核映象及根文件系統(tǒng)讀入RAM指定位置并從同一位置啟動內(nèi)核。第二種方法是將內(nèi)核映象文件和根文件系統(tǒng)下載至RAM中直接啟動(而不是從Flash中讀入RAM) ,此種方法不需要燒寫Flash。筆者為了減少燒寫Flash的次數(shù),在本文中采用第二種方法,其步驟如下:

          SMDK2410 # tftp 30008000 zImage
          SMDK2410 # tftp 30800000 ramdisk.Image.gz
          SMDK2410 # go 30008000

          上述指令執(zhí)行的過程中,未出現(xiàn)異常,內(nèi)核成功啟動,并最終進(jìn)入Shell提示符“ # ”。在Shell提示符下輸入內(nèi)核編譯時定制的各個命令,均可以正常運(yùn)行。另外編寫簡單C程序,并用交叉編譯器編譯之,最終生成的可執(zhí)行文件能夠在開發(fā)板上正常運(yùn)行。上述事實(shí)說明內(nèi)核經(jīng)過U-Boot引導(dǎo)已穩(wěn)定運(yùn)行在開發(fā)板上。此次應(yīng)用,進(jìn)一步驗(yàn)證了U-Boot的穩(wěn)定性。至此,工作告一段落。

          結(jié) 語

          目前,筆者移植的U-Boot已經(jīng)能穩(wěn)定地運(yùn)行在開發(fā)板上,這使得Linux內(nèi)核的調(diào)試脫離了BDM調(diào)試器,節(jié)約了大量的開發(fā)時間,大大提高了效率,是對后續(xù)嵌入式開發(fā)的有力支持。當(dāng)然,U-Boot只是一款好用的,嵌入式Linux的開發(fā)存在很多技術(shù)細(xì)節(jié),只有根據(jù)實(shí)際情況不斷修改、調(diào)試、總結(jié),才能獲得更大的成功。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: U-Boot S3C2410 移植 BootLoader

          評論


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