国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SkyEye的嵌入式系統(tǒng)仿真環(huán)境的構(gòu)建*

2010-08-14 08:03周兆豐侯向鋒
關(guān)鍵詞:源碼命令嵌入式

周兆豐,侯向鋒

(湖北師范學(xué)院,黃石435002)

引 言

以手機(jī)和信息家電為代表的嵌入式系統(tǒng)的應(yīng)用開發(fā)已經(jīng)成為現(xiàn)代工業(yè)最熱門的領(lǐng)域之一,其靈魂就是嵌入在其中的計(jì)算機(jī)系統(tǒng)——嵌入式系統(tǒng)。嵌入式系統(tǒng)仿真環(huán)境是支持嵌入式系統(tǒng)軟件開發(fā)的一種快速、高效和低成本的工具,對(duì)于提高嵌入式系統(tǒng)的開發(fā)效率和開發(fā)質(zhì)量具有重要意義。SkyEye是一個(gè)支持多架構(gòu)、多核并且具有高度可擴(kuò)展性的硬件仿真平臺(tái),是國(guó)內(nèi)最優(yōu)秀的開源軟件(opensource software)項(xiàng)目之一,中文名字是“天目”。SkyEye的目標(biāo)是在通用的Linux和Windows平臺(tái)實(shí)現(xiàn)一個(gè)仿真集成開發(fā)環(huán)境,模擬常見的嵌入式計(jì)算機(jī)系統(tǒng),使μ Clinux以及μ C/OS-II等多種嵌入式操作系統(tǒng)和各種系統(tǒng)軟件(如TCP/IP、圖形子系統(tǒng)、文件子系統(tǒng)等)能夠良好運(yùn)行,并可對(duì)它們進(jìn)行源碼級(jí)的分析和測(cè)試。

如果要學(xué)習(xí)Linux操作系統(tǒng)或者進(jìn)行嵌入式系統(tǒng)開發(fā),但缺少硬件支持,嵌入式系統(tǒng)仿真環(huán)境軟件SkyEye將是一個(gè)非常有效的學(xué)習(xí)工具和開發(fā)手段。如果想研究與具體硬件無關(guān)的系統(tǒng)軟件(如TCP/IP協(xié)議棧等),采用SkyEye可以有效地提高工作效率。

構(gòu)建基于SkyEye的嵌入式系統(tǒng)仿真環(huán)境是借助于該仿真環(huán)境進(jìn)行學(xué)習(xí)和研究的前提。但是目前基于Sky-Eye的嵌入式系統(tǒng)仿真環(huán)境的構(gòu)建沒有詳細(xì)、系統(tǒng)的說明資料。在不同版本的Linux環(huán)境下,采用源碼安裝方式安裝軟件所需的庫文件和軟件包的種類各不相同。安裝編譯源碼時(shí)所需的庫文件和軟件包,也就是編譯環(huán)境的配置。通常源碼安裝需要編譯器(預(yù)處理器、C編譯器和匯編器),鏈接器等開發(fā)工具以及相關(guān)的程序庫(C或C++標(biāo)準(zhǔn)庫和特殊軟件需要的支持庫)支持。而像SkyEye這樣的專業(yè)軟件安裝還需要額外的庫文件和軟件包支持,并且所需的庫文件和軟件包隨著Linux版本的不同而不同,安裝過程較為復(fù)雜。這也是SkyEye源碼安裝難以成功的最主要原因。

因此在SkyEye的安裝過程中,配置編譯環(huán)境是比較困難的,更是至關(guān)重要的。本文在說明基于SkyEye的嵌入式系統(tǒng)仿真環(huán)境如何構(gòu)建的過程中,詳細(xì)講述了如何配置SkyEye所需的編譯環(huán)境,為快速構(gòu)建基于 SkyEye的嵌入式系統(tǒng)仿真環(huán)境提供了良好的方案。

1 安裝分類及仿真環(huán)境構(gòu)建的步驟

SkyEye在Linux上的安裝方式主要有兩種,分別是二進(jìn)制的RPM包安裝和源碼安裝。

二進(jìn)制的RPM包安裝主要是針對(duì)普通用戶的,通過命令rpm–ivh skyeye-1.2.9-rc1.i386.rpm就可以將其安裝到默認(rèn)的/opt/skyeye路徑下。RPM包安裝雖然被廣泛應(yīng)用于 Radhat、Fedora、SUSE 和 Mandriva等 Linux版本,但仍然有很多其他的Linux版本不支持此安裝方式,因此其應(yīng)用受到很大限制。

源碼安裝就是需要對(duì)源代碼進(jìn)行重新編譯的安裝。這種安裝方式不僅適用于所有版本的Linux系統(tǒng),而且可以自行修改編譯參數(shù)、增加或刪除相應(yīng)功能。最新的Linux軟件版本一般都是先以源碼形式出現(xiàn)的,所以源碼安裝方式在Linux上最為流行。本文討論的基于SkyEye的嵌入式系統(tǒng)仿真環(huán)境的構(gòu)建也是以源碼安裝方式進(jìn)行的。

構(gòu)建基于SkyEye的嵌入式系統(tǒng)仿真環(huán)境通常需要以下幾個(gè)的步驟:

①配置編譯環(huán)境;

②SkyEye軟件安裝;

./configure;

make;

make install;

③交叉工具鏈安裝;

④測(cè)試。

2 配置編譯環(huán)境

能否正確配置好所需要的編譯環(huán)境是源碼編譯成功與否的關(guān)鍵所在。配置SkyEye的編譯環(huán)境,就是安裝編譯SkyEye源碼時(shí)所需要的開發(fā)工具包、關(guān)鍵庫文件、頭文件等。由于Linux版本以及安裝風(fēng)格的多樣性,導(dǎo)致很難確定SkyEye所需要的編譯環(huán)境。下面以剛安裝好未作任何設(shè)置的Ubuntu環(huán)境為例,講述如何正確、有效地配置SkyEye所需要的編譯環(huán)境。

2.1 Ubuntu系統(tǒng)準(zhǔn)備

為了提高安裝效率,需要對(duì)Ubuntu系統(tǒng)作一些必要的設(shè)置,如切換到root用戶和更新源列表source.list等。

(1)切換到root用戶

安裝是需要權(quán)限的,在 root用戶下操作可以省去很多麻煩。更改root用戶步驟如下:

①sudo passwd root;(輸入當(dāng)前用戶密碼后并設(shè)置root用戶新密碼)

②su root;(輸入新密碼后進(jìn)入root用戶)

(2)更新源列表source.list

source.list就是下載軟件和更新系統(tǒng)的源列表,對(duì)用戶成功安裝SkyEye非常重要??梢酝ㄟ^netselect和netselect-apt命令自動(dòng)生成源列表,也可以手動(dòng)操作得到。手動(dòng)操作的步驟如下:

①在ubuntu論壇上(http://wiki.ubuntu.org.cn/Template:8.04source)找到與 Ubuntu8.04對(duì)應(yīng)的源列表,然后再根據(jù)實(shí)際的網(wǎng)絡(luò)情況選擇更新源;

②通過cd/etc/apt,進(jìn)入apt目錄;

③通過cp soure.list source.list_bak,備份源列表;

④通過gedit source.list,把需要的源(如成都電子科技大學(xué)、上海交通大學(xué)、中國(guó)科技大學(xué))復(fù)制到最前端,然后保存;

⑤通過apt-get update,更新源列表,并借助于提示看選擇是否合適。若存在不合適的源,則刪除,最終可使下載的速度達(dá)到最佳。

2.2 配置SkyEye編譯環(huán)境

如何快速、有效、全面地配置SkyEye所需要的編譯環(huán)境是本文討論的重點(diǎn),也是構(gòu)建基于SkyEye的嵌入式系統(tǒng)仿真環(huán)境的難點(diǎn)。要配置SkyEye所需要的編譯環(huán)境,首先要明確SkyEye需要什么樣的開發(fā)工具和軟件包支持。用戶可以通過下面幾種方法來獲得所需要的信息并進(jìn)行相關(guān)的配置。

①通過SkyEye提供的 INSTALL、README和UserManual來得到源碼安裝所需要的信息。權(quán)威的官方資料給出了必要的信息和常規(guī)的安裝步驟,但是信息不夠全面,沒有告訴用戶如何針對(duì)具體的 Linux平臺(tái)(如Ubuntu)去配置編譯環(huán)境,用戶仍然需要去自己查找所需要的軟件包,難度較大。

②通過分析configure.in等文件得到。因?yàn)閏onfigure.in文件是對(duì)由autoscan掃描源代碼后形成的configure.scan更改得來的,是形成configure腳本文件的基礎(chǔ),是執(zhí)行./configure命令的主要依據(jù),所以其提供的信息最全。但是要想從中提取出SkyEye所需要的信息,必須具有一定的專業(yè)知識(shí)。因此該方法不適用于一般的用戶。

③通過apt-cache showsrc skyeye命令語句得到。showsrc命令會(huì)列舉出SkyEye編譯時(shí)依賴的軟件包。用戶只要通過“apt-get install+軟件包列表”命令,就可以安裝絕大多數(shù)必需的軟件包,在多數(shù)情況下都可以配置好SkyEye所需要的編譯環(huán)境。

④通過apt-get build-dep skyeye命令語句得到。build-dep是專門配置將要安裝軟件所需編譯環(huán)境的語句。利用該命令配置的編譯環(huán)境比方法③配置得更全面。

但是利用方法③和方法④配置SkyEye的編譯環(huán)境是有前提的,那就是Ubuntu的軟件庫里要有 SkyEye軟件存在。對(duì)于Ubuntu8.04來講,軟件倉(cāng)庫中SkyEye的版本為1.2.3(Ubuntu9.10軟件庫中SkyEye的版本為1.2.5),版本相對(duì)較老。因?yàn)樾吕习姹镜腟kyEye所需要的編譯環(huán)境大體相似,所以可以利用方法③或方法④來配置編譯環(huán)境。但是配置后,還需要再安裝新版本額外需要的軟件包。

⑤通過auto-apt run./configure命令自動(dòng)得到。當(dāng)采用源碼方式安裝一個(gè)軟件,卻因?yàn)槿鄙兕^文件而失敗時(shí),auto-apt可以搜索到包含頭文件的包并自動(dòng)安裝該文件。雖然此方法需要先安裝build-essential軟件包,但是可以獲得較完整的編譯環(huán)境。

該配置方法是直接針對(duì)configure腳本來進(jìn)行自動(dòng)安裝的,適用范圍很廣。無論是新版本的軟件還是舊版本的,無論Ubuntu軟件庫中是否存在要安裝的軟件,只要configure腳本信息全面,就可以把編譯環(huán)境配置成功。

3 SkyEye軟件安裝

在Ubuntu8.4環(huán)境下,安裝SkyEye的一種最簡(jiǎn)單的方法就是通過apt-get install skyeye命令語句來實(shí)現(xiàn)。安裝的是軟件庫中的SkyEye1.2.3,版本較老,而且只具備基本功能。

對(duì)于源碼安裝來說,安裝之前需要先對(duì)源碼包進(jìn)行解壓,然后進(jìn)入解壓后的目錄。通過下面的命令實(shí)現(xiàn):

tar xzvf skyeye-1.2.9-rc1.i386.tr.gz;

cd skyeye-1.2.9-rc1;

進(jìn)入目錄后,用戶可以通過下面幾種方法來實(shí)現(xiàn)SkyEye的安裝:

(1)基本安裝

通過這種安裝方法,用戶可以得到SkyEye-1.2.9版本最基本的功能。安裝步驟如下:

①apt-apt-get install build-essential;

build-essential軟件包包含一個(gè)列表,表中列出了在編譯Ubuntu軟件包時(shí)所必需的軟件包(如C與C++編譯器等)。

②apt-get install binutils-dev;

binutils-dev軟件包是GNU二進(jìn)制工具(BFD開發(fā)文件),依賴于binutils,安裝此軟件包會(huì)同時(shí)安裝binutils軟件包。binutils是一套用來構(gòu)造和使用二進(jìn)制文件所需要的工具,是用來編譯、測(cè)試和分析軟件的。binutils最重要的成員是匯編器as和鏈接器ld,還包括一些二進(jìn)制代碼工具。

③apt-get install libreadline5-dev;

readline庫用于向需要提供命令行界面的不同程序提供一個(gè)一致的用戶界面。libreadline5-dev依賴于軟件包libncurses-dev,安裝libreadline5-dev時(shí)會(huì)同時(shí)安裝libncurses-dev軟件包。

④./configure--prefix=/usr/local|tee simple_install.log;

./configure主要是用來測(cè)試編譯環(huán)境的,成功執(zhí)行該命令后會(huì)生成一個(gè)makefile文件。該文件包含編譯的過程和所需要的庫。--prefix=/usr/local是用來指定安裝路徑的。tee simple_install.log是用來生成一個(gè)日志文件的,生成的日志文件記錄了./configure的執(zhí)行過程。這樣可以供用戶詳細(xì)分析整個(gè)過程和找出缺少的文件信息。

⑤make;

按照makefile文件來編譯和執(zhí)行。

⑥make install;

把編譯好的文件安裝到指定目錄。

(2)通過build-dep或showsrc提供的軟件包列表安裝

利用build-dep或showsrc命令安裝的主要區(qū)別在于,build-dep可以自動(dòng)安裝build-essential軟件包文件,而showsrc不會(huì)。下面給出利用build-dep命令安裝skyeye的步驟:

①apt-get build-dep skyeye;

創(chuàng)建skyeye的配置環(huán)境;

②apt-get install libreadline5-dev;

③./configure-prefix=/usr/local|tee build-dep_install.log;

④make;

⑤make install。

(3)通過auto-apt安裝

使用auto-apt命令前,需要先安裝該命令并更新數(shù)據(jù)庫。通過下面的命令實(shí)現(xiàn):

apt-get install auto-apt;

auto-apt update&&updatedb&&update-local。

auto-apt工具安裝好以后,再通過下面的步驟來安裝SkyEye:

①apt-get install libreadline5-dev;

②apt-get install gawk;

awk是一個(gè)程式語言,對(duì)于資料的處理具有很強(qiáng)的功能。gawk是GNU所做的awk,gawk包含awk的所有功能。

③apt-get install f77;

f77就是指GNU的Fortran77編譯器。auto-apt可以自動(dòng)安裝,但是當(dāng)找不到相應(yīng)文件時(shí),不會(huì)自動(dòng)跳過此文件的安裝(如gawk與 f77)。安裝步驟②與③是為了使auto-apt更順利地執(zhí)行。

④auto-apt run./configure-prefix=/usr/local|tee auto-apt_instll.log;

⑤make;

⑥make install。

用戶通過方法(1)安裝SkyEye,只能得到其最基本的功能。建議用戶使用方法(2)或方法(3)安裝SkyEye。方法(2)適用于所有版本的SkyEye;而方法(3)只適用于具有configure腳本的SkyEye的安裝,也就是說版本要在1.2.5以上。但是方法(2)不能完全提供新版本需要的編譯環(huán)境,還需安裝新版本額外需要的軟件包。方法(3)幾乎可以滿足編譯環(huán)境的需要,除非auto-apt在configure腳本中沒有發(fā)現(xiàn)需要安裝的軟件包。另外需要注意的是,在執(zhí)行./configure或者make階段警告是不影響正常安裝的,但是錯(cuò)誤提示的問題必須要解決,否則安裝不成功。

4 交叉編譯工具鏈安裝

本文以無MMU的 ARM7TDMI為測(cè)試用處理器內(nèi)核,所以要安裝交叉編譯工具鏈arm-tools-elf20030314.sh。安裝步驟如下:

①通過chmod+x arm-elf-tools-20030314.sh增加可執(zhí)行屬性;

②通過vi arm-elf-tools-20030314.sh打開此文件,然后到arm-elf-tools-20030314.sh文件的第39行,將tail+${SKIP}${SCRIPT}|gunzip|tar xvf–語句改為tail-n+${SKIP}${SCRIPT}|gunzip|tar xvf–并保存,以消除本身存在的錯(cuò)誤;

③通過sh arm-elf-tools-20030314.sh解壓此工具包到默認(rèn)目錄;

④通過輸入arm-elf-再按Tab鍵,看是否出現(xiàn)一系列的arm-elf-xxx二進(jìn)制工具,如果有 arm-elf-gdb等,則說明需要的工具已經(jīng)在安裝目錄下;

⑤通過ldd arm-elf-gdb測(cè)試一下,看是否有(not found)文字。如果沒有,則說明此調(diào)試工具可以用。其余類同。

5 測(cè)試結(jié)果

利用SkyEye-1.2.9自帶的測(cè)試?yán)觓rm_hello來驗(yàn)證搭建的交叉編譯環(huán)境是否成功。測(cè)試步驟如下:

①利用cd/usr/local/testsuite/arm_hello命令進(jìn)入測(cè)試?yán)幽夸?

②執(zhí)行make指令,編譯出可執(zhí)行程序;

③執(zhí)行skyeye–e hello后進(jìn)入(skyeye)狀態(tài);

④在(skyeye)提示符下輸入 start命令,啟動(dòng)調(diào)試功能;

⑤在(skyeye)提示符下輸入 run命令,輸出結(jié)果如圖1所示。

圖1 測(cè)試結(jié)果

測(cè)試結(jié)果說明測(cè)試程序arm_hello運(yùn)行正常,證明了搭建的基于SkyEye-1.2.9的嵌入式系統(tǒng)仿真環(huán)境是成功的。

因?yàn)镾kyEye-1.0.0之前的版本用戶較少,所以本文只對(duì)SkyEye1.0.0及其以后的版本進(jìn)行了安裝測(cè)試。下面的測(cè)試都是基于apt-get build-dep skyeye來配置編譯環(huán)境的。

①SkyEye-1.0.0、SkyEye-1.2.3及SkyEye-1.2.4的安裝測(cè)試

因?yàn)镾kyEye-1.0.0、SkyEye-1.2.3及 SkyEye-1.2.4三個(gè)版本都沒有configure腳本,所以安裝SkyEye-1.0.0時(shí)直接用make編譯就可以了,而SkyEye-1.2.3與Sky-Eye-1.2.4需要用make NO_DBCT=1來編譯。編譯后把binary文件夾中的 skyeye可執(zhí)行文件拷貝到/usr/local/bin中就可以了。

②SkyEye-1.2.5、SkyEye-1.2.6、SkyEye-1.2.7 及SkyEye-1.2.8的安裝測(cè)試。

因?yàn)镾kyEye-1.2.5、SkyEye-1.2.6、SkyEye-1.2.7 及SkyEye-1.2.8五個(gè)版本存在configure腳本,所以安裝時(shí)需先執(zhí)行./configure腳本,以生成makefile文件。五個(gè)版本都可以順利地執(zhí)行./configure。在執(zhí)行make時(shí),只有SkyEye-1.2.8需要安裝texinfo軟件包,命令為apt-get install texinfo。

最后執(zhí)行make install就可以正確安裝SkyEye了。由于測(cè)試程序方法與SkyEye-1.2.9類似,本文不再贅述。

總之,多個(gè)版本SkyEye的測(cè)試結(jié)果證明,本文提出的仿真環(huán)境構(gòu)建方案是正確的、可行的。

[1]宋靖,吳慶波.嵌入式系統(tǒng)仿真運(yùn)行環(huán)境SkyEye應(yīng)用研究[J].微處理機(jī),2007(2).

[2]陳渝,楊曄,李明,等.嵌入式系統(tǒng)仿真環(huán)境——SkyEye[J].電子設(shè)計(jì)應(yīng)用,2004(2).

[3]王利明.一個(gè)開放源碼的嵌入式仿真環(huán)境——SkyEye[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003(9).

猜你喜歡
源碼命令嵌入式
只聽主人的命令
面向數(shù)據(jù)可靠傳輸?shù)母咦g碼率帶反饋的LT碼
國(guó)內(nèi)一站式工程設(shè)備租賃平臺(tái)眾能聯(lián)合完成C2、C3兩輪融資
淺談開源操作系統(tǒng)的歷史
企業(yè)如何保護(hù)源碼
移防命令下達(dá)后
搭建基于Qt的嵌入式開發(fā)平臺(tái)
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
這是人民的命令
Altera加入嵌入式視覺聯(lián)盟
吉木乃县| 昭觉县| 龙口市| 萍乡市| 通河县| 新源县| 伊川县| 宁陕县| 泌阳县| 奇台县| 辉南县| 西峡县| 海原县| 山西省| 盘山县| 辉县市| 锦屏县| 福海县| 雷州市| 资源县| 泌阳县| 宿松县| 鄂托克旗| 穆棱市| 常山县| 道真| 重庆市| 郴州市| 大安市| 榆林市| 龙里县| 佳木斯市| 南涧| 南平市| 邯郸县| 宝山区| 汤阴县| 壤塘县| 习水县| 资中县| 陇川县|