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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 采用ROM監(jiān)控器的調(diào)試技巧分析

          采用ROM監(jiān)控器的調(diào)試技巧分析

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

          更新目標(biāo)平臺(tái)

          將RedBoot映像裝進(jìn)非易失性存儲(chǔ)器根據(jù)目標(biāo)不同有很多方法,一般情況下,映像必須用軟件編進(jìn)閃存或用設(shè)備編程器編入

          RedBoot映像裝入閃存后,就可以直接執(zhí)行缺陷修正或增加功能等映像更新任務(wù),此時(shí)需要已有的閃存RedBoot映像和新建立的從RAM運(yùn)行的RedBoot映像的支持。

          首先從閃存啟動(dòng)目標(biāo)平臺(tái)并運(yùn)行舊的RedBoot映像,由于這里采用了閃存映像系統(tǒng)命令將新的RedBoot映像編入閃存,因此需要執(zhí)行


          RedBoot> fis init


          命令初始化fis系統(tǒng)。該命令用于初始化閃存,使新的映像能用fis命令下載。映像系統(tǒng)初始化完成后,可以用


          RedBoot> fis list


          命令查看閃存中的映像。此時(shí)會(huì)得到類似于圖5的輸出,根據(jù)實(shí)際使用的硬件平臺(tái)而顯示不同的地址、長(zhǎng)度和入口地點(diǎn),同時(shí)還能看到RedBoot映像名,該映像名代表的是目前正在閃存中運(yùn)行的RedBoot映像。

          接著用上述同樣的步驟創(chuàng)建一個(gè)RedBoot RAM映像redboot_ram.bin。為了建立從RAM運(yùn)行的映像,需要確保啟動(dòng)類型(CYG_HAL_STARTUP)配置選項(xiàng)設(shè)為RAM。因?yàn)橛布脚_(tái)包括和RAM最小配置文件,因此導(dǎo)入并建立RAM配置并不困難,重要的是要記住將RAM和映像存放到不同的工作目錄中。

          下一步用駐留在閃存中的原有RedBoot映像將新的redboot_ram.bin載入到RAM中,這步操作的命令是:


          RedBoot> load redboot_ram.bin

          載入命令的執(zhí)行有好幾種方法,如把映像從主機(jī)發(fā)送到目標(biāo)硬件的TFTP,具體哪種方法取決于用戶實(shí)際可用資源情況,fis load命令還能用來(lái)通過(guò)閃存映像存儲(chǔ)系統(tǒng)裝載和存儲(chǔ)redboot_ram.bin映像。

          我們用go命令執(zhí)行剛載入RAM中的RedBoot映像。RedBoot映像從RAM執(zhí)行后會(huì)產(chǎn)生新的類似于圖1的初始化消息,要注意這時(shí)是從RAM執(zhí)行RedBoot映像的。采用ROM監(jiān)控器的調(diào)試技巧分析

          接著用與上面相同的步驟裝載新創(chuàng)建的ROM RedBoot映像,裝載redboot_rom.bin映像的命令是:


          RedBoot> load redboot_rom.bin -b


          命令行中的ram_addr指RAM中的位置(不同的平臺(tái)有不同的值),這里臨時(shí)存放著即將編入閃存的redboot_rom.bin映像。

          現(xiàn)在就可以用fis命令將新映像寫進(jìn)閃存了。某些平臺(tái)可以支持閃存的鎖定和解鎖,如果用戶能夠解鎖閃存,那么用戶需要輸入的第一條fis命令是:


          RedBoot> fis unlock -l


          這里flash_addr是需解鎖的閃存地址,本例中這項(xiàng)參數(shù)對(duì)應(yīng)的是fis list命令中RedBoot映像名稱的閃存地址,從fis list命令中還能得到長(zhǎng)度。如果平臺(tái)不支持閃存鎖定,那么用戶可以跳過(guò)這一步。

          隨后可以用命令


          RedBoot> fis create RedBoot -f -b -l -s


          將RAM中的RedBoot新映像寫入閃存中。其中flash_addr是RedBoot新映像寫入閃存的位置,如fis list命令所示,ram_addr是redboot_rom.bin文件載入RAM存儲(chǔ)器的位置。flash_len同樣出現(xiàn)在fis list命令中,代表RedBoot閃存映像的長(zhǎng)度,data_len則是將被寫進(jìn)閃存的redboot_rom.bin文件的長(zhǎng)度。

          在繼續(xù)下面的操作之前,fis create命令會(huì)詢問(wèn)用戶是否愿意替換現(xiàn)有名為RedBoot的映像,如果回答“是”則將把新的映像裝入閃存。下一步,如果硬件平臺(tái)允許鎖定閃存,那么就可以用


          RedBoot> fis lock -f -l


          命令完成閃存鎖定。上面討論的針對(duì)所支持平臺(tái)實(shí)際存儲(chǔ)位置在RedBoot文檔中有詳細(xì)說(shuō)明。

          最后重新啟動(dòng)硬件就可以啟用剛才寫進(jìn)閃存的RedBoot新映像了。

          發(fā)展前景

          目前新版RedBoot正計(jì)劃與eCos v.2同時(shí)推出,新版RedBoot增強(qiáng)功能包括DHCP客戶機(jī)、嵌入式web服務(wù)器、USB調(diào)試和IDE驅(qū)動(dòng)支持。

          即使沒有這些功能改善,RedBoot ROM也能提供一種低成本而且容易使用的硬件調(diào)試與測(cè)試方法。由于RedBoot是開放式源代碼,因此用戶能夠定制RedBoot以滿足項(xiàng)目開發(fā)和測(cè)試階段遇到的所有特殊需求。RedBoot對(duì)GDB的支持甚至可以讓用戶不再需要昂貴的硬件調(diào)試工具。


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

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