999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種開發嵌入式系統的軟件模擬方法的研究

2008-12-31 00:00:00韓天柱曹家璉
電腦知識與技術 2008年31期

摘要:在進行嵌入式系統開發過程中,所需的硬件和資金是兩大難以解決的問題,對開發人員的要求也比較嚴格,稍有疏忽就會損壞硬件,造成不必要的損失。本文提出了一種模擬開發嵌入式系統的軟件模型,將運行在VMWare上的Linux與cygwin上的SkyEye連接起來進行嵌入式系統仿真開發,既節省了硬件資源又解決了資金問題,克服了開發人員由于不熟悉硬件所帶來的一系列弊端,并對其可行性進行了較詳細分析和論述,最后闡述了其應用前景。

關鍵詞:嵌入式系統;軟件模擬;仿真開發

中圖法分類號:TP316文獻標識碼:A文章編號:1009-3044(2008)31-0906-02

A Study of Developing Embedded System with Software Simulation

HAN Tian-zhu, CAO Jia-lian, ZHANG hui

(Dalian Jiaotong University, Dalian 116028, China)

Abstract: There are two problems difficult to solve while developing embedded system, hardware and money. And meanwhile, need developer to be familiar with hardware very well, or may cause unnecessary lose with negligence. This article brings forward a new model of developing embedded system with software simulation, Connecting SkyEye based on cygwin with Linux based on VMWare for Embedded System Simulation Development, not only saving hardware resources and money, but also surmount a series of disadvantages because the developers unfamiliar with hardware. And analyses its feasibility in detail.Then states its further application.

Key words: embedded system; Software Simulation; Simulation Development

1 引言

我們現實中開發嵌入式操作系統,大多是采用宿主機—目標機方式。宿主機(上位機)一般可用普通PC 機來代替。目標機(下位機)即是待開發的目標板。在教學實驗或公司培訓新人的實踐中,對于宿主機,可以很容易獲得,而目標板,需要購買,即使購買實驗平臺,也需要很大一筆資金投入。而且可重用性并不理想。這就催生一種想法,能否在一臺PC機上完成嵌入式系統開發?這正是本文所要探討的問題。對于這個問題,我們可以通過軟件模擬方式來達到目的。即在一臺裝有Windows操作系統的普通PC機上面通過軟件模擬硬件的方式來進行嵌入式系統開發。這樣,既節省了資金;又能使人們在仿真環境下動手進行“真實”的嵌入式開發;還能避免開發人員由于疏忽等原因造成不必要的硬件資源浪費。一舉而三得。

2 問題分析

現在我們所擁有的是一臺運行Windows操作系統的普通PC機。需要解決兩個問題,第一、如何用軟件模仿出一臺運行Linux 系統的PC機?第二、如何找到一個能夠仿真硬件開發板的軟件?這兩個問題解決了,也就滿足了第一部分引言提出的問題。達到實驗的需求。非常幸運,我們所提出的這兩個問題都能夠解決。對于第一個問題,這就是基于VMWare的Linux 。VMWare可以在一臺普通電腦上仿真一個真實的X86計算機,Linux完全可以流暢的運行在它的上面。后面將有對這個虛擬機的簡單介紹;對于第二個問題,SkyEye能夠完全勝任這個角色,運行在cygwin上面的SkyEye就可以模擬出我們所需要的目標板硬件環境。以上兩個問題的迎刃而解,使我們具備了第一部分所提出問題的所有基本條件。現在我們有了能在PC機上運行的普通“PC機”和“硬件”目標板。是否能將這兩種“系統”互連,這也正是筆者對這幾種直接或間接運行于Windows上的軟件的一種嘗試性整合分析。

相信很多人都用過VMWare虛擬機,通過它可以在Windows系統里再運行一個Linux或者其他別的通用操作系統,能夠讓你充分享受在一臺電腦上運行兩個系統并且還可以互相通信的樂趣。因此我們提出基于它上面運行的Linux作為此實驗的“上位機”。如何解決“硬件環境”是本實驗的主要任務。下面就對這個所需的“硬件集成環境”的實現做簡單介紹。

2.1 cygwin

cygwin是一個在Windows平臺上運行的UNIX模擬環境,是cygnus solutions公司開發的自由軟件(該公司現已被Redhat收購)。它對于學習UNIX/Linux操作環境,或者從UNIX到Windows的應用程序移植,或者進行某些特殊的開發工作,尤其是使用gnu工具集在Windows上進行嵌入式系統開發,非常有用。

cygnus當初首先把gcc,gdb,gas等開發工具進行了改進,使他們能夠生成并解釋win32的目標文件。然后,他們要把這些工具移植到Windows平臺上去。一種方案是基于Win32 API對這些工具的源代碼進行大幅修改,這樣做顯然需要大量工作。因此,他們采取了一種不同的方法——他們寫了一個共享庫(就是cygwin.dll),把win32 API中沒有的UNIX風格的調用(如fork,spawn,signals,select,sockets等)封裝在里面,也就是說,他們基于Win32 API寫了一個UNIX系統庫的模擬層。這樣,只要把這些工具的源代碼和這個共享庫連接到一起,就可以使用UNIX主機上的交叉編譯器來生成可以在Windows平臺上運行的工具集。以這些移植到Windows平臺上的開發工具為基礎,cygnus又逐步把其他的工具(幾乎不需要對源代碼進行修改,只需要修改他們的配置腳本)軟件移植到Windows上來。這樣,在Windows平臺上運行bash和開發工具、用戶工具,感覺好像在UNIX上工作一樣。

2.2 SkyEye

SkyEye是開源軟件(OpenSource Software)項目,中文名字是“天目”。SkyEye的目標是在通用的Linux和Windows平臺實現一個仿真集成開發環境,模擬常見的嵌入式計算機系統;可在SkyEye上運行uC Linux以及uC/OS-II等多種嵌入式操作系統和各種系統軟件(如TCP/IP、圖形子系統、文件子系統等), 并可對它們進行源碼級的分析和測試。

通過SkyEye仿真集成環境可以很方便地進入嵌入式系統軟件學習和開發的廣闊天地中。尤其對于缺少嵌入式硬件開發環境和軟件開發環境的用戶來說,它將是一個非常有效的學習工具和開發手段,因為SkyEye的整個軟件系統都是Open Source的,且基于GPL協議(uC/OS-II除外)。因此,如果要學習Linux操作系統或者進行嵌入式系統開發,但苦于沒有硬件支持,SkyEye仿真環境軟件是一個很好的選擇!

目前,SkyEye仿真的CPU包括不帶MMU的AT9 1X40和帶MMU的ARM720T等,它們都是基于ARM7TDMI CPU內核的。SkyEye還模擬了其它硬件外設,如串口、網絡芯片、內存、時鐘、網絡HUB,LCD,USB等。在SkyEye上運行的操作系統和各種系統軟件“意識” 不到它們是在一個虛擬的計算機系統上運行。SkyEye的CPU仿真主要完成對ARM 指令集處理、寄存器操作和CPU 流水線處理等的仿真。

SkyEye從總體上分為四個層次:

① 用戶接口模塊:包括命令行用戶界面和圖形用戶界面,及時處理用戶的輸入命令,并把相關調試數據輸出給用戶。

② 符號處理模塊:主要處理執行文件的頭信息,解釋執行文件中內嵌的debuger調試信息,管理符號表,解析源代碼表達式,定位源代碼中的語句位置和機器碼的位置關系等。

③ 目標控制模塊:主要完成執行控制(如執行中斷程序,設置中斷條件等), 程序棧結構分析,對具體目標硬件的控制(如本地調試、遠程調試和仿真調試的控制)。

④ 目標仿真模塊:主要是模仿計算機系統中的主要硬件(包括CPU、內存和各種硬件外設等)

的執行,對執行文件的機器指令進行解釋,并仿真執行每一條機器指令, 產生相應的硬件響應。

要注意的是,SkyEye并不能完全取代開發板等硬件的功能,但通過它可以比較容易地進入到嵌入式軟件開發的廣闊天地中。由于SkyEye建立在GDB基礎之上, 使用者可以方便地使用GDB提供的各種調試手段對SkyEye仿真系統上的軟件進行源碼級的調試,還可以進行各種分析, 如執行點分析、程序執行覆蓋度分析等。由于SkyEye提供了源代碼和相關文檔, 有經驗的用戶完全可以修改和擴充SkyEye來滿足自己的需求。

由于SkyEye的用戶接口是基于GDB的,所有支持GDB的集成開發環境都可以很容易地移植為SkyEye的集成開發環境。

2.3 “硬件環境”構成

SkyEye可以運行在Linux操作系統或者運行在cygwin上面。在這里,我們選擇后者,這樣可以作為模擬“硬件目標板”而與Linux 系統分開來,并且都運行于同一臺PC機上的Windows環境下,便于通信。目前,SkyEye的最新版本1.2.4能夠在cygwin上很好的運行。這就為我們所需要的“硬件環境”提供了很好的支持!

3 解決方案

通過以上四種直接或間接運行在Windows環境的軟件的相互整合,我們現在完全可以通過它們來實現在一臺PC上模擬整個嵌入式系統開發過程了。概述如下:我們以VMWare上運行的Linux為宿主機,通過程序實現與運行在cygwin上的SkyEye通信。因為VMWare模擬的是X86計算機,所以在運行Linux時可以模擬出仿真的網卡接口和其他外設接口,而且能通過網卡登陸互聯網,本人在VMWare上面運行Linux時,在登陸互聯網時,其仿真出來的網卡甚至與所在的PC機物理網卡發生沖突。這說明也能通過其宿主PC機與其他軟件模擬的接口互連。而上文也提到SkyEye也模擬出了許多硬件外設,如串口UART、8019AS網絡芯片等。因此,我們通過它們所共同依賴的宿主機——PC機就可以將他們互連起來,實現兩者的通信,以上過程可通過如圖1來表示。

這樣就可以在VMWare上運行的Linux下編寫嵌入式系統軟件,通過調試加載到“下位機”SkyEye上來進行調試和運行。如果發現錯誤,可以及時終止程序運行,并退出SkyEye,迅速地重新建立起硬件環境,同時繼續在Linux虛擬機上調試已經編制好的程序,再下載“燒寫”到SkyEye“目標板”上。這樣,我們既不用擔心因操作不當或者其他原因錯誤而導致燒壞目標板,還能夠集中精力在編寫嵌入式操作系統軟件上面,進而編寫出更加優秀的嵌入式系統軟件。省時又省錢,是一種全新的開發嵌入式系統的模擬方法。

4 總結

本文提出了一種軟件模擬嵌入式開發的方法,及其可行性的分析。要注意到,具體軟件模擬嵌入式編程未必會這么復雜,因為SkyEye本身即可完全運行在Windows或Linux環境下。并且可以通過它來實現嵌入式程序的編寫,而且非常高效。然而為了能夠通過軟件模擬來實現一種宿主機——目標機的嵌入式開發流程,這些“麻煩”是必要的,這樣可以更有助于人們了解嵌入式開發過程并掌握其內在的聯系。當然,這種開發模式對于公司開發嵌入式軟件其意義不大;但可以將它運用于培訓新人實踐;也可以應用于院校的嵌入式實驗教學,對于加深學生對嵌入式硬件的了解及提高嵌入式編程能力將大有幫助。

參考文獻:

[1] 陳渝,李明,楊曄, 等. 源碼開放的嵌入式系統軟件分析與實踐——基于SkyEye和ARM開發平臺[M]. 北京:北京航空航天大學出版社,2004.

[2] 王利明,宋振宇,李明,陳渝. 一個開放源碼的嵌入式仿真環境——SkyEye單片機與嵌入式系統應用[J]. 2003.

主站蜘蛛池模板: 久久久久青草大香线综合精品 | 国产精品丝袜视频| 欧美.成人.综合在线| 九九热精品视频在线| 亚洲成a人片在线观看88| 国产区在线观看视频| 欧美不卡视频在线观看| 亚洲欧美一级一级a| 国产成人高清精品免费软件| 亚洲视频欧美不卡| 欧美高清国产| 亚洲综合中文字幕国产精品欧美| 亚洲精品无码高潮喷水A| 午夜限制老子影院888| 国产地址二永久伊甸园| 国产色婷婷| 国产精品99r8在线观看| 久久免费视频6| 91久草视频| 欧美伦理一区| 亚洲欧美日韩成人高清在线一区| 国产va欧美va在线观看| 亚洲精品国产首次亮相| 亚洲91精品视频| 永久天堂网Av| 成人另类稀缺在线观看| 欧美日韩一区二区在线播放| 2048国产精品原创综合在线| 国产丝袜第一页| 激情無極限的亚洲一区免费| 亚洲最猛黑人xxxx黑人猛交| 99精品热视频这里只有精品7| 四虎在线高清无码| 沈阳少妇高潮在线| 99性视频| 欧美国产日产一区二区| 国产精品香蕉| 色老头综合网| 亚洲熟妇AV日韩熟妇在线| 免费视频在线2021入口| 九九热免费在线视频| 一级毛片免费观看不卡视频| 色婷婷国产精品视频| 久草网视频在线| 免费午夜无码18禁无码影院| 女人av社区男人的天堂| 亚洲视频欧美不卡| 亚洲成人黄色在线| 男女精品视频| 在线观看国产网址你懂的| 欧美国产视频| 91精品视频播放| 视频在线观看一区二区| 国产精品va免费视频| 中文精品久久久久国产网址| 刘亦菲一区二区在线观看| 99激情网| 青青操视频免费观看| 国产成人精品一区二区三在线观看| 国产va欧美va在线观看| 美女国内精品自产拍在线播放| 成人在线观看不卡| 国产女人在线视频| 欧美五月婷婷| 91香蕉国产亚洲一二三区| 2021国产精品自产拍在线| 欧美激情网址| 一区二区午夜| 无码国产伊人| 亚洲三级a| 国产导航在线| 538国产在线| 亚洲人成网站在线观看播放不卡| 国产午夜无码专区喷水| 喷潮白浆直流在线播放| 国产呦视频免费视频在线观看| 99热线精品大全在线观看| 久久夜色精品| 免费人成黄页在线观看国产| 亚洲精品在线91| 色婷婷狠狠干| 亚瑟天堂久久一区二区影院|