為嵌入式系統(tǒng)開發(fā)人員建立虛擬的ARM平臺_第1頁
為嵌入式系統(tǒng)開發(fā)人員建立虛擬的ARM平臺_第2頁
為嵌入式系統(tǒng)開發(fā)人員建立虛擬的ARM平臺_第3頁
為嵌入式系統(tǒng)開發(fā)人員建立虛擬的ARM平臺_第4頁
為嵌入式系統(tǒng)開發(fā)人員建立虛擬的ARM平臺_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、鄭州大學(xué)畢業(yè)設(shè)計(jì)(翻譯)題 目:Virtual ARM Platform for Embedded SystemDevelopers指導(dǎo)教師:李正民 職稱: 副教授學(xué)生姓名: 喬 旭 學(xué)號: 20052430222專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)院(系): 信息工程學(xué)院完成時間:2009年 5月 20日2009年 5月 20日為嵌入式系統(tǒng)開發(fā)人員建立虛擬的 ARM平臺 摘要 越來越多的嵌入式系統(tǒng)開發(fā)人員和片上系統(tǒng)設(shè)計(jì)師采用 microprocessor-based( 基于 微處理器的 )設(shè)計(jì)方法,以減少推向市場的時間。在過去的10 年里, ARM處理器一直都是嵌入式系統(tǒng)行業(yè)的主角之一。 然而, 在早

2、期設(shè)計(jì)階段, 有許多對基于 ARM處理器的嵌入式軟件 開發(fā)的限制。 對于那些不熟悉嵌入式軟件設(shè)備的人來說, 在 ARM硬件平臺上測試他們的軟件 是一項(xiàng)異常艱巨的工作。 為克服這些問題, 我們?yōu)榛?ARM的嵌入式系統(tǒng)開發(fā)人員設(shè)計(jì)了虛 擬的 ARM平臺,提供更容易測試和調(diào)試的環(huán)境。使用虛擬ARM平臺的好處是: (1) 減少開發(fā)成本, (2)對于初學(xué)者降低了入門的難度, 以及(3) 讓您更輕松地測試和調(diào)試嵌入式軟件。 與 許多其他的純粹以軟件為導(dǎo)向且獨(dú)立于硬件平臺的ARM模擬器不同, 我們的虛擬 ARM平臺是專門針對 SYS-Lab 5000 ARM硬件平臺 (由Libertron 公司負(fù)責(zé)設(shè)計(jì)制

3、造 )研發(fā)的,這意味著 我們的平臺可以盡可能地模仿在目標(biāo)硬件上的嵌入式軟件的各種行為。 本文旨在介紹我們的 虛擬 ARM平臺的設(shè)計(jì)思想以及它在減少設(shè)計(jì)時間和開銷方面的一些應(yīng)用。1. 導(dǎo)言嵌入式系統(tǒng)是一個擁有特殊用途的計(jì)算機(jī)系統(tǒng), 它僅僅采用通用計(jì)算機(jī)系統(tǒng)一小部分的 專用功能,有時還需要進(jìn)行實(shí)時處理。通常,嵌入式系統(tǒng)具備完整的硬件設(shè)備和機(jī)械裝置, 并且它已經(jīng)深深滲透到現(xiàn)代生活的方方面面。 不僅僅是個人數(shù)字助理 (PDA)、mp3、手機(jī)等電 子消費(fèi)產(chǎn)品,在電信系統(tǒng),交通運(yùn)輸系統(tǒng),醫(yī)學(xué)儀器等領(lǐng)域里,仍然存在著許多的嵌入式系 統(tǒng),例如防抱死剎車系統(tǒng) (ABS) 、 GPS、電子聽診器等。 1微處理器是

4、嵌入式系統(tǒng)非常重要的硬件結(jié)構(gòu)之一。 隨著個人計(jì)算機(jī)和因特網(wǎng)的普及, 微 處理器成為 IT 行業(yè)發(fā)展中的主要角色。針對不同的用途,每個微處理器都有自己的特殊結(jié) 構(gòu)。 2 其中, ARM微處理器采用 RISC結(jié)構(gòu),被廣泛應(yīng)用于嵌入式系統(tǒng)的設(shè)計(jì)之中。這不僅 僅是因?yàn)樗母咝阅芎土畠r(jià),而且還因?yàn)樗械凸牡奶攸c(diǎn)。ARM系列處理器在各種電子消費(fèi)類產(chǎn)品中占有很大優(yōu)勢,從便攜式設(shè)備 (PDAs,手機(jī), 媒體播放器,掌上游戲機(jī)和計(jì)算器 ) 到計(jì)算機(jī)外設(shè) ( 硬盤,桌面路由器 ) 。我們即將在本文中介紹的虛擬 ARM平臺,是一個為目標(biāo)硬件設(shè)計(jì)的 ARM模擬器。 與其他 僅僅在軟件模型上設(shè)計(jì)的虛擬 ARM機(jī)不同,

5、我們的虛擬 ARM平臺可以與目標(biāo)嵌入式系統(tǒng)執(zhí)行 相類似的操作。 這種相類似的操作具體是指我們的虛擬ARM平臺允許嵌入式系統(tǒng)開發(fā)人員在一個正真的 H/W平臺上開發(fā)和測試他們的嵌入式應(yīng)用。 為執(zhí)行一個特定的虛擬 ARM平臺, 我 們已經(jīng)選擇了 SYS-Lab5000 ARM硬件平臺作為我們的目標(biāo) H/W平臺。 正是由于特定目標(biāo)的虛 擬平臺可以測試目標(biāo)平臺的細(xì)節(jié)而無需實(shí)際的目標(biāo)平臺,設(shè)計(jì)時間和花銷被大幅的降低了。 尤其在教學(xué)領(lǐng)域, 在無法提供充足數(shù)量的嵌入式設(shè)備時, 這種針對特定目標(biāo)的虛擬平臺將盡 可能減少學(xué)生對實(shí)際硬件的需求, 同時為學(xué)生學(xué)習(xí)如何設(shè)計(jì)特定目標(biāo)的嵌入式系統(tǒng)提供巨大 幫助。我們的虛擬

6、ARM平臺通過使用 SimIt-ARM 虛擬器和 QT程序庫的用戶圖形界面,完全 可以建立在 ARM虛擬器之上。 為了方便維護(hù)和調(diào)試, 我們還擴(kuò)展了特定目標(biāo)的易用程度, 設(shè) 計(jì)了給定平臺信息, 提供自動進(jìn)行特定平臺環(huán)境設(shè)置的模擬器。此外, 我們還可以為簡易操作系統(tǒng)模擬器運(yùn)行中斷句柄定時器。本文的余下部分將介紹以下內(nèi)容: 在第二部分, 我們討論在虛擬 ARM平臺上開發(fā)嵌入式 系統(tǒng)與實(shí)際硬件平臺上的區(qū)別。 在第三部分, 我們將總結(jié)一些相互關(guān)系的研究成果。 第四部 分介紹我們的虛擬 ARM平臺是如何組織和工作的, 第五部分介紹我們的研究成果, 第六部分2. 虛擬 ARM平臺的需求2.1 S/W 嵌入

7、式系統(tǒng)的發(fā)展眾所周知,在通用計(jì)算機(jī)平臺例如PC上開發(fā)軟件與在嵌入式平臺上開發(fā)軟件有很大的不同。因此, 通用平臺軟件開發(fā)人員在開發(fā)嵌入式平臺軟件時, 可能會遇到很多困難。 因?yàn)椋?嵌入式系統(tǒng)軟件開發(fā)需要將通用運(yùn)行程序燒錄到嵌入式平臺中, 并檢查它的運(yùn)行。 這就意味 著當(dāng)通用軟件有相同的開發(fā)和運(yùn)行環(huán)境(不同 PC之間)時,軟件開發(fā)環(huán)境 (以 PC為例)和嵌入式軟件運(yùn)行環(huán)境 (嵌入式目標(biāo)平臺 )不相同。圖 1展示的是通常開發(fā)和測試嵌入式系統(tǒng)軟件的 步驟。圖 1 嵌入式系統(tǒng)軟件的開發(fā)與 PC軟件在每一步發(fā)展中僅僅需要 PC 不同,嵌入式軟件的發(fā)展需要在實(shí)際的嵌入式系 統(tǒng)硬件上進(jìn)行。 對于那些不熟悉嵌入

8、式軟件環(huán)境的人來說, 在實(shí)際的硬件平臺上測試他們的 軟件是一件很富有挑戰(zhàn)性的工作。 他們需要全面了解嵌入式系統(tǒng), 并善于使用硬件和在硬件 上燒錄程序。 而且,如果他們不能負(fù)擔(dān)足夠的嵌入式系統(tǒng) (通常價(jià)格昂貴 ) ,他們能在實(shí)際硬 件上測試他們軟件的機(jī)會將變得極為有限。 為了解決這一問題, 我們設(shè)計(jì)了能夠方便測試和 調(diào)試基于 ARM嵌入式系統(tǒng)開發(fā)人員的虛擬 ARM平臺。2.2 虛擬 ARM平臺的使用虛擬 ARM平臺可以和實(shí)際 ARM硬件平臺一樣地觀察嵌入式軟件運(yùn)行的結(jié)果。 開發(fā)人員可 以寫程序代碼,在客戶機(jī) (PC) 上通過虛擬 ARM平臺證實(shí)他們的程序。因?yàn)樗齈C外不需要其他的硬件, 在開發(fā)

9、程序時也不需要燒錄的階段。 圖 2 展示的是在虛擬 ARM平臺上開發(fā)嵌入 式系統(tǒng)程序的過程。圖 2 在虛擬 ARM平臺上開發(fā)嵌入式應(yīng)用程序的過程3. 一些相互關(guān)系的工作成果以下我們簡要地對其中的部分近些年來, 在嵌入式軟件虛擬工具方面有許多研究成果, 成果進(jìn)行總結(jié)。在嵌入式系統(tǒng)開發(fā)中,作為最廣為人知的ARM模擬器, ARMulator 常被用于提供虛擬環(huán)境原型。通過虛擬的硬件 IP 和端口,在 ARMulator 上操作系統(tǒng) ( 例如 C/OS-II)6 可以脫 離 H/W 平臺模擬運(yùn)行。SimIt-ARM 是一個設(shè)置指令的模擬器,它可以在用戶層和系統(tǒng)層運(yùn)行ARM程序。SimIt-ARM 支持

10、兩種流行的模擬形式:解釋和動態(tài)編譯。但正如圖 3所示, SimIt-ARM 不能 夠脫離在 C運(yùn)行庫支持下的 I/O 控制代碼去建立固件級的程序。 因此,對于不同的目標(biāo)平臺, 初始化代碼也是不相同的。 開發(fā)人員不能在虛擬工具和目標(biāo) H/W ARM平臺中使用相同的可執(zhí) 行程序。圖3 在兩種平臺下固件級代碼的運(yùn)行所有的這些努力都為了向開發(fā)人員提供書寫源代碼,建立可執(zhí)行程序,并在主機(jī)PC上運(yùn)行的功能。 但不幸的是, 這些工具只能在特定目標(biāo)處理器上模擬可執(zhí)行文件。 因此它不能 為整個目標(biāo)硬件平臺模擬運(yùn)行,不能控制外圍設(shè)備,同時在代碼模擬上也有相當(dāng)大的限制。4. 虛擬 ARM平臺的執(zhí)行我們建議虛擬 AR

11、M平臺對外圍設(shè)備進(jìn)行持續(xù)的控制, 這是以往的 ARM模擬器所不能提供 的。通過對外圍設(shè)備增加控制代碼, 現(xiàn)有的 ARM模擬器 ( 例如 SimIT-ARM 或者 SimpleScalar) 可以控制外圍設(shè)備,例如 LED,七段數(shù)碼顯示器,步進(jìn)電機(jī)等等。圖4 展示的是虛擬 ARM平臺通過對外圍設(shè)備的“靶樣”控制,開發(fā)嵌入式系統(tǒng)的步驟。圖4 虛擬 ARM平臺對外設(shè)提供控制虛擬 ARM平臺由虛擬 ARM模擬器,圖形用戶界面, 輸入事件句柄, 定時器, 和 I/O 設(shè)備 模型組成。如圖 5 所示,虛擬 ARM平臺啟動后,首先初始化圖形用戶界面,在屏幕上顯示 GUI 主窗口,然后虛擬 ARM模擬器開始運(yùn)

12、行,處理可執(zhí)行文件的操作并向虛擬ARM平臺發(fā)送結(jié)果。當(dāng)虛擬 ARM平臺從虛擬 ARM模擬器得到模擬結(jié)果后, 便同從虛擬 ARM模擬器得到的可 執(zhí)行報(bào)告一道更新它的用戶界面。 當(dāng)輸入事件句柄發(fā)現(xiàn)任何輸入事件, 他分析事件, 當(dāng)事件 是中斷請求時, 他將中斷當(dāng)前執(zhí)行的程序。 如果事件不是中斷請求, 句柄將輸入事件進(jìn)程發(fā)送到虛擬 ARM模擬器來模擬修改后的數(shù)據(jù)操作。圖 5 在虛擬 ARM 平臺運(yùn)行程序4.1 虛擬 ARM模擬器虛擬 ARM模擬器不僅可以解碼還可以與實(shí)際的ARM處理器一樣運(yùn)行給定的 ARM操作,即處理從虛擬 ARM平臺轉(zhuǎn)移的事件。 如圖 6 所示,當(dāng)虛擬 ARM模擬器解碼 ARM命令時

13、, 要檢查 解碼命令是否包含外圍設(shè)備的控制地址。 如果不包含, 虛擬 ARM模擬器僅僅運(yùn)行 ARM命令并 向虛擬 ARM平臺發(fā)送結(jié)果。然而,如果包含,虛擬ARM模擬器可以執(zhí)行額外的操作。因此,虛擬 ARM平臺利用 I/O 內(nèi)存映像圖控制外圍設(shè)備, 特定平臺的數(shù)據(jù)文件包含設(shè)備控制記錄存 取地址和相應(yīng)的設(shè)備控制地址。一個特定數(shù)據(jù)文件的平臺例子如表 1 所示。通過查找 H/W特定數(shù)據(jù)平臺,虛擬 ARM模擬器確定應(yīng)該控制哪個設(shè)備,確定如何控制相應(yīng)的設(shè)備。最終, 虛擬 ARM模擬器通過發(fā)送設(shè)備控制符和虛擬ARM平臺數(shù)據(jù)處理控制設(shè)備。表1 對 SYS-Lab 5000 ARM H/W平臺的數(shù)據(jù)抽樣通過使用

14、特定平臺的數(shù)據(jù)文件, 開發(fā)人員允許在虛擬 ARM平臺和實(shí)際 H/W平臺上使用相同的代碼控制外圍設(shè)備。4.2 圖形用戶界面 圖形用戶界面將被用于處理輸入事件, 程序同步, 打印屏幕上的模擬結(jié)果。 如圖 7 是我 們的 GUI 全局結(jié)構(gòu)。圖7 圖形用戶界面和虛擬 ARM模擬器GUI 看起來與實(shí)際的目標(biāo) H/W平臺一致。 GUI通過打印真實(shí)設(shè)備的更改顯示外圍設(shè)備控 制結(jié)果。同樣地,在 GUI中當(dāng)開發(fā)人員敲擊外圍設(shè)備 (例如鍵盤和轉(zhuǎn)換器 )使虛擬 ARM平臺發(fā) 現(xiàn)外部輸入。 在開發(fā)人員控制外圍設(shè)備時, 圖 8.2 顯示了一個執(zhí)行 GUI 的例子, 圖 8.1 顯示 了一個脫離 GUI 的虛擬 ARM平

15、臺的例子。圖 8.2 GUI 下的虛擬 ARM平臺 LED 顯示圖 8.1 脫離 GUI 的虛擬 ARM平臺 LED 顯示4.3 定時器和 I/O 設(shè)備我們還在虛擬 ARM平臺上使用定時器。 當(dāng)虛擬 ARM平臺啟動時, 初始化定時器。 通過使 用定時器, 開發(fā)人員可以測試看門狗定時器中斷, 上下文開關(guān)程序和系統(tǒng)內(nèi)核模擬器例如 C/OS-II6 。圖 9 顯示了定時器被用于操作系統(tǒng)定時器。圖9 操作系統(tǒng)定時器是如何在虛擬ARM平臺上工作的虛擬 ARM模擬器可以像使用 SDRAM單元一樣使用虛擬 SDRAM。通過使用作為虛擬內(nèi)存的 虛擬 SDRAM,虛擬 ARM模擬器可以通過連接 I/O 控制代碼

16、模擬固件級代碼,使得代碼的運(yùn)行 與實(shí)際 H/W ARM平臺相一致。圖 10顯示了在虛擬 ARM平臺和實(shí)際 H/W ARM平臺上的固件級 代碼均可以運(yùn)行。圖 10 在虛擬 ARM平臺和 H/W 平臺上運(yùn)行固件級代碼 當(dāng)然,我們還可以使用 LED,點(diǎn)陣,七段數(shù)碼管, LED文本顯示器,步進(jìn)電機(jī),直流電 機(jī)和鍵盤區(qū)。 LED(如圖 8.2) ,點(diǎn)陣 (如圖 11.1) ,七段數(shù)碼管 ( 如圖 11.2) 都可以通過 CPU時 鐘控制將控制數(shù)據(jù)轉(zhuǎn)換為圖形輸出。 LED文本顯示器 ( 如圖 11.3) 通過一步步地輸入文本控制 數(shù)據(jù),可以在 LED上顯示給定的打印信息。步進(jìn)電機(jī)和直流電機(jī) ( 如圖 11

17、.4) 在 CPU時鐘的 控制之下, 通過給定速度控制數(shù)據(jù), 可以看到它們旋轉(zhuǎn)。 鍵盤通過檢測鼠標(biāo)單擊每個關(guān)鍵按 鈕,發(fā)送相應(yīng)的數(shù)據(jù)輸入到虛擬ARM平臺。圖 11.1 執(zhí)行點(diǎn)陣圖 11.2 執(zhí)行七段數(shù)碼管圖 11.3 執(zhí)行 LCD 文本顯示器圖 11.4 執(zhí)行步進(jìn)電機(jī)5. 實(shí)驗(yàn)結(jié)果我們已經(jīng)通過實(shí)驗(yàn)測試了我們的虛擬ARM平臺。我們每一項(xiàng)的測試結(jié)果如圖12 所示,這需要完全控制嵌入式開發(fā)板上的每一個設(shè)備。通過測試每項(xiàng)應(yīng)用, (如圖 13) ,我們可以 看出在實(shí)際 H/W 平臺和我們的虛擬平臺上,外部特征是非常相似的,如圖14.1 和圖 14.2所示有著相同的運(yùn)行結(jié)果。1: Initialize T

18、ext-LCD2: Print “ Virtual ARM ” -oLnC TDe xt3: Activate STEP MOTOR to spin4: Sequentially Turn ON&OFF LED Lamps by Rows5: Get Keypad Input6: Shows input data from Keypad through 7-Segment7: Shows input data from Keypad through Dot-Matrix8: Repeat step 5 to step 79: OS controls task1(step 4) and task

19、2(step 8)圖 12 測試應(yīng)用圖 13 針對虛擬 ARM平臺和 SYS-Lab5000 的逐項(xiàng)測試圖 14.1 在實(shí)際平臺上的運(yùn)行結(jié)果圖 14.2 在虛擬 ARM平臺上的運(yùn)行結(jié)果6. 小結(jié)在本文中, 我們提出虛擬的 ARM開發(fā)平臺, 提供了一個與真正的 H/W 平臺非常相似的極 好的測試環(huán)境。通過使用我們的虛擬ARM平臺,開發(fā)人員將能夠開發(fā)基于 ARM的嵌入式系統(tǒng)軟件, 而不再需要購買目標(biāo) H/W平臺。由于開發(fā)人員可以在主機(jī)上立即測 試自己的程序而不用燒錄可執(zhí)行文件到實(shí)際平臺。 程序的整體開發(fā)過程將更快, 更方便。 此 外,一個類似于目標(biāo)的 H/W平臺的用戶友好的 GUI界面, 使得入門

20、嵌入式系統(tǒng)變得容易。 特 別是,虛擬 ARM平臺將作為大學(xué)理想的教育工具, 使得學(xué)生在學(xué)習(xí)和研究嵌入式系統(tǒng)軟件時 沒有任何時間,空間和金錢的限制。7. 鳴謝本論文受 到韓國 MKE(Ministry of Knowledge Economy)和 ITRC(Information Technology Research Center) 的 大 力 支 持 , 程 序 依 據(jù) 標(biāo) 準(zhǔn) 為 IITA(Institute for Information Technology Advancement) 。 (IITA-2008-C1090-0801-0045)8. 參考文獻(xiàn)1 Y. S. Li and

21、S. Malik, Performance analysis of Real-Time Embedded Software, Kluwer Academic Publishers, 1999.2 A. Krishnaswarmy and R. Gupta, Profile Guided Selection of ARM and Thumb Instructions,CM SIGPLAN Joint Conference on Languages Compilersand Tools for Embedded Systems & Software and Compilers for Embedd

22、ed Systems (LCTES/SCOPES), Berlin, Germany, June 2002.34 5 Gon Kim, Sang-Young Cho, and Jungbae Lee, “ Virtual Prototyping Environment on ARMulator ”, Korea Computer Congress 2004 oVl. 2., 2004, pp. 592 -594.6 Jean J. Labrosse, MicroC/OS-II Real Time Kernel 2/E, R&D Technical Books, 2002.7 P. Schaumont, D. Ching, I. Verbauwhede, A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論