<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 采用ROM監控器的調試技巧分析

采用ROM監控器的調試技巧分析

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

更新目標平臺

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

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

首先從閃存啟動(dòng)目標平臺并運行舊的RedBoot映像,由于這里采用了閃存映像系統命令將新的RedBoot映像編入閃存,因此需要執行


RedBoot> fis init


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


RedBoot> fis list


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

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

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


RedBoot> load redboot_ram.bin

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

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

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


RedBoot> load redboot_rom.bin -b


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

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


RedBoot> fis unlock -l


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

隨后可以用命令


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


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

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


RedBoot> fis lock -f -l


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

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

發(fā)展前景

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

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


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

關(guān)鍵詞: ROM 監控器 調試技巧

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>