新聞中心

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ò) 收藏

重建RedBoot映像的第一步是建立主機(jī)開(kāi)發(fā)環(huán)境,建立RedBoot映像的工具要能運(yùn)行在Windows或Linux主機(jī)平臺(tái)上。主機(jī)開(kāi)發(fā)工具包括GNU二進(jìn)制應(yīng)用程序(常稱為binutils)、C/C++編譯器和調(diào)試器。在目標(biāo)處理器架構(gòu)和主機(jī)操作系統(tǒng)平臺(tái)上建立GNU開(kāi)發(fā)工具和主機(jī)開(kāi)發(fā)環(huán)境的詳細(xì)步驟請(qǐng)參閱http://sources.redhat.com/ecos/getstart.html。

安裝完GNU工具后,接著就是確定配置工具,用戶可以采用圖形化配置工具或命令行工具配置建立RedBoot映像。本文重點(diǎn)講述圖形化配置工具。

配置工具允許進(jìn)行源代碼級(jí)設(shè)置,從而確保RedBoot映像是專為各個(gè)用戶應(yīng)用而開(kāi)發(fā)的,整個(gè)源代碼知識(shí)庫(kù)和配置工具用元件定義語(yǔ)言 (CDL)描述庫(kù)中的元件及建立軟件映像規(guī)則。配置工具利用先前設(shè)立的GNU工具建立適合特定處理器結(jié)構(gòu)的RedBoot映像,有關(guān)配置工具的更多信息可以從網(wǎng)上得到,也可以從幫助菜單中獲得。

下面的例子使用的是configtool-2.08-setup.exe,它是目前最新版配置工具,在安裝之前最好閱讀一下 readme.txt文件,一起下載的changes.txt文件則列出了不同版本的變動(dòng)情況。接下來(lái)就是下載RedBoot源代碼,RedBoot源代碼包含在匿名CVS庫(kù)中,可以用免費(fèi)的客戶軟件訪問(wèn)。讀者可從http://sources.redhat.com/ecos/anoncvs.html 獲得更詳細(xì)信息。

連上庫(kù)以后,最好將包括eCos文件在內(nèi)的所有源代碼都下載,因?yàn)镽edBoot會(huì)使用設(shè)備驅(qū)動(dòng)器之類的eCos源文件。在確定建立自己RedBoot映像所需所有文件后,可以刪掉其它不必要文件。RedBoot軟件結(jié)構(gòu)主要軟件模塊方框圖如圖3所示。圖3:RedBoot軟件結(jié)構(gòu)主要模塊框圖。

RedBoot軟件結(jié)構(gòu)采用分層方法,這樣可以裝入新的功能和軟件組件,RedBoot的基礎(chǔ)是eCos硬件抽象層(HAL)和設(shè)備驅(qū)動(dòng)器。

讓我們看一下RedBoot的源代碼目錄結(jié)構(gòu)。從匿名CVS庫(kù)中下載的源代碼文件都放在packages子目錄下,這個(gè)主目錄下面是 redboot子目錄,里面存放全部RedBoot文件。由于所有文件都是從匿名CVS庫(kù)下載的,因此都位于current子目錄下。在redboot子目錄下有個(gè)名為ChangeLog的文件,它記錄了RedBoot源文件的所有修改情況。

配置工具能夠非常方便地用圖形化方式配置RedBoot映像建立所必需的組件,通過(guò)選中或不選中某個(gè)特定組件選擇框,可以激活或去除相應(yīng)的配置選項(xiàng),設(shè)置值可在窗口右邊的方格中加入。

創(chuàng)建新RedBoot配置有兩種方法。第一種方法是在配置工具的Build菜單下選擇模板,這時(shí)會(huì)彈出模板對(duì)話框,然后從中選擇硬件平臺(tái)和模板數(shù)據(jù)包,這里我們的模板數(shù)據(jù)包選擇redboot。這種方法為建立默認(rèn)配置RedBoot映像提供了一個(gè)基本方式,選擇菜單 Build->Packages,在彈出的Packages對(duì)話框中可以添加或刪除其它數(shù)據(jù)包。

第二種創(chuàng)建RedBoot新配置的方法是導(dǎo)入eCos最小配置文件(.ecm)。RedBoot支持的每個(gè)硬件平臺(tái)都包含這樣的最小配置文件,這些配置文件一般位于硬件抽象層目錄hal下對(duì)應(yīng)于每個(gè)結(jié)構(gòu)的misc子目錄中。

最小配置文件包含特定硬件平臺(tái)基本配置信息,將.ecm文件作為出發(fā)點(diǎn),我們就有了作為基礎(chǔ)的硬件平臺(tái)工作配置文件,可改變配置選項(xiàng)支持RedBoot映像所需要的任何修改。圖4:一個(gè)eCos最小配置文件實(shí)例。

最小配置文件同樣使用CDL。圖4是一個(gè)eCos最小配置文件實(shí)例,源自redboot_.ecm文件,適合那些采用PowerPC 的Motorola MBX開(kāi)發(fā)板。從圖中可以看到,.ecm文件列出了cdl_configuration命令的數(shù)據(jù)包清單,需要包含在RedBoot配置中。 cdl_option命令用來(lái)為特定選項(xiàng)設(shè)置選項(xiàng)值。

大多數(shù)支持平臺(tái)都包含一個(gè)可以導(dǎo)入的和RAM RedBoot.ecm文件作為配置起點(diǎn),和RAM表明RedBoot映像在目標(biāo)硬件上的存放位置。一般情況下,RAM配置在最初調(diào)試硬件時(shí)使用,而ROM配置則在映像調(diào)試完成后準(zhǔn)備存放進(jìn)閃存時(shí)使用。RAM映像還可用于更新駐留閃存的RedBoot映像。i386 PC目標(biāo)平臺(tái)還包含了一個(gè)RedBoot FLOPPY配置文件,可供軟盤(pán)啟動(dòng)RedBoot時(shí)使用。

為了導(dǎo)入最小配置文件,需要選擇配置工具菜單中的File->Import命令,然后瀏覽相應(yīng)的.ecm文件并選中,配置工具利用.ecm文件裝載相應(yīng)數(shù)據(jù)包并設(shè)置對(duì)應(yīng)選項(xiàng)。如果發(fā)生因配置選項(xiàng)設(shè)置引起的沖突,配置工具會(huì)顯示一個(gè)沖突解決對(duì)話框,選擇繼續(xù)按鈕就可解決該沖突。

由于RedBoot還依賴其它軟件模塊如HAL,因此并不是所有的配置選項(xiàng)都包含在RedBoot ROM監(jiān)控?cái)?shù)據(jù)包內(nèi)。在eCos HAL包中就有底層硬件配置選項(xiàng),其它可能需要配置的數(shù)據(jù)包還有設(shè)備驅(qū)動(dòng)器,例如在包括網(wǎng)絡(luò)支持的平臺(tái)上,以太網(wǎng)設(shè)備驅(qū)動(dòng)器選項(xiàng)就包含在通用以太網(wǎng)支持包內(nèi)。

如果想要網(wǎng)絡(luò)通信,還需要建立RedBoot網(wǎng)絡(luò)配置選項(xiàng),這樣可以設(shè)定目標(biāo)硬件的默認(rèn)IP地址,或BOOTP初始化期間使用的配置。

完成RedBoot配置后,最好把最小配置文件保存下來(lái),這一步可以通過(guò)選擇File->Export并輸入文件名完成。

創(chuàng)建RedBoot映像

接下來(lái)需要保存當(dāng)前的配置。為了將當(dāng)前配置保存為eCos當(dāng)前配置文件(.ecc),需要選擇File菜單中的Save As命令,不妨把文件存為redboot_rom.ecc。這步操作將生成正在創(chuàng)建的RedBoot映像的工作目錄結(jié)構(gòu),所有目錄都將以剛才創(chuàng)建的.ecc文件名開(kāi)頭。在本例中,目錄名以redboot開(kāi)始。

正確設(shè)置好配置以后,下面就可以開(kāi)始創(chuàng)建RedBoot映像了。為了執(zhí)行創(chuàng)建過(guò)程,需要采用Build->Library命令,此時(shí)配置工具輸出窗口將顯示相關(guān)創(chuàng)建信息。創(chuàng)建過(guò)程完成后,生成的RedBoot映像存放在redboot_installbin子目錄中,本例中新的 RedBoot映像取名為redboot_rom.bin。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉