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

?

嵌入式Linux仿真開發(fā)環(huán)境研究

2017-06-01 12:24:00郭翠玲
關(guān)鍵詞:PC機配置文件代碼

高 麗,郭翠玲

(商丘職業(yè)技術(shù)學(xué)院,河南 商丘 476000)

?

嵌入式Linux仿真開發(fā)環(huán)境研究

高 麗,郭翠玲

(商丘職業(yè)技術(shù)學(xué)院,河南 商丘 476000)

仿真開發(fā)環(huán)境為嵌入式Linux的學(xué)習(xí)與研究提供了一條新的途徑,使嵌入式軟件的開發(fā)與調(diào)試可以脫離具體的目標(biāo)硬件平臺,給嵌入式Linux的學(xué)習(xí)與研究提供了方便.文章詳細討論了一種構(gòu)建基于arm的嵌入式Linux仿真開發(fā)環(huán)境的方法.仿真結(jié)果表明,基于提出方法構(gòu)建的嵌入式仿真環(huán)境可以應(yīng)用于日常無硬件開發(fā)平臺的嵌入式Linux系統(tǒng)的學(xué)習(xí)與實驗,并且具有極大的穩(wěn)定性與可行性.

嵌入式Linux;SkyEye;交叉編譯;ARM;仿真環(huán)境

嵌入式系統(tǒng)是一門實踐性非常強的學(xué)科,然而,對于缺少相應(yīng)的硬件開發(fā)板和完善的軟件開發(fā)環(huán)境情況下,無法深入研究和學(xué)習(xí)嵌入式Linux系統(tǒng).Linux下的開源仿真軟件SkyEye[1]10-13可以實現(xiàn)基于電腦軟件模擬嵌入式硬件開發(fā)板的功能,同時SkyEye提供了對當(dāng)前主流嵌入式操作系統(tǒng)的支持.SkyEye的諸多特性,使得在缺少相關(guān)硬件開發(fā)板情況下,研究和學(xué)習(xí)嵌入式Linux系統(tǒng)開發(fā)得以成為現(xiàn)實.

嵌入式Linux仿真開發(fā)環(huán)境主要有2個部分構(gòu)成,分別是搭建仿真環(huán)境和構(gòu)建交叉編譯工具鏈[2]68-70.本文首先剖析了仿真環(huán)境原理,然后詳細介紹了仿真軟件SkyEye的安裝與配置文件,并利用crosstool腳本工具構(gòu)建了基于ARM的嵌入式Linux交叉編譯工具鏈.從而實現(xiàn)了利用仿真軟件快速搭建一個基于ARM的嵌入式Linux仿真開發(fā)環(huán)境.

1 仿真環(huán)境分析

現(xiàn)有嵌入式開發(fā)框架一般采用個人PC機進行嵌入式軟件的開發(fā).由于CPU體系架構(gòu)的不一致,導(dǎo)致了個人PC機上無法運行嵌入式硬件平臺上的代碼.一種較為通用的手段是在個人PC機上采用某種仿真軟件來模擬嵌入式硬件平臺,即采用仿真環(huán)境進行嵌入式Linux系統(tǒng)開發(fā).基于仿真環(huán)境嵌入式開發(fā)的實質(zhì)是在個人PC機平臺上采用指令仿真器執(zhí)行嵌入式硬件平臺上的二進制代碼[3]79-83.一個典型的基于仿真環(huán)境的嵌入式系統(tǒng)開發(fā)架構(gòu)流程如圖1所示.

圖1 基于仿真環(huán)境的嵌入式開發(fā)

基于個人PC機的嵌入式仿真開發(fā)環(huán)境下,應(yīng)用程序源代碼仍然采用交叉編譯工具鏈編譯成能夠在嵌入式硬件平臺執(zhí)行的目標(biāo)機代碼,然而這些代碼也可以直接在個人PC機上運行.需要特別指出的是,編譯后的程序源代碼在個人PC機上直接運行需要有相關(guān)嵌入式硬件平臺仿真器的支持.指令仿真器是嵌入式硬件平臺仿真器的核心部分,其功能是將能夠在嵌入式硬件平臺上執(zhí)行的二進制程序代碼轉(zhuǎn)換為個人PC機CPU體系架構(gòu)所支持的程序代碼[4]34-38.

2 SkyEye的安裝與配置

構(gòu)建仿真環(huán)境所必需的skyeye-1.3.2_rc1.tar.gz需從SkyEye官方站點下載獲取,將其在Linux系統(tǒng)下進行解壓縮安裝.安裝過程中需要超級用戶的權(quán)限,在安裝前切換到root用戶.整個安裝命令如下.

su root

_ (輸入root用戶的密碼)

tar zxvf skyeye-1.3.2_rc1.tar.gz

cd skyeye-1.3.2_rc1.tar.gz

./configure

make

make install

SkyEye模擬的硬件配置和模擬行為由配置文件skyeye.conf中的選項確定.在使用SkyEye前,必須要對它進行相關(guān)的修改.通過編寫合適的文件,可以配置出SkyEye支持的任何硬件環(huán)境.skyeye.conf文件由選項組成,每個選項描述一種需要模擬的硬件[5]78-81.

3 構(gòu)建ARM Linux交叉工具鏈

3.1 準(zhǔn)備工具

首先給出需要準(zhǔn)備的資源文件,如表1所示.

表1 工具包文件

為了便于管理和使用,在/home/arm/下新建一個目錄soure_file存放這些資源文件.然后在/home/arm下使用tar命令解壓crosstool-0.42.tar.gz.

3.2 創(chuàng)建腳本文件

由于要構(gòu)建的是基于arm9架構(gòu)的,所以要創(chuàng)建的是arm920t的arm-linux-gcc.在/home/arm/crosstool-0.42目錄下,新建一個編譯腳本arm.sh,在命令行下用vi命令編輯它的內(nèi)容如下.

set-ex

RESULT_TOP=/opt/crosstool

export TARBALLS_DIR RESULT-TOP

GCC_LANGUAGES=“c,c++”

export GCC_LANGUAGES

mkdir-p $RESULT_TOP

eval ‘cat arm.dat gcc-3.3.6 - glibc-2.3.6.dat’ sh all.sh-notest

1.2.2 細胞轉(zhuǎn)染 lncRNA BLACAT1 siRNA及negative siRNA采購于銳博公司。轉(zhuǎn)染試劑為廣州銳博公司提供的riboFectTM CP。siRNA BLACAT1序列5’-GCATCTAAACTCATCACCA-3’。按siRNA終濃度100 nM進行轉(zhuǎn)染。轉(zhuǎn)染具體步驟遵循riboFectTM CP試劑盒說明書。

echo Done.

3.3 建立配置文件

編譯腳本arm.sh內(nèi)的配置文件arm.dat和gcc-3.3.6-gblic-2.3.6.dat,必須依據(jù)嵌入式系統(tǒng)的具體配置做相關(guān)的修改.依據(jù)本文的實驗環(huán)境,需要將交叉編譯工具鏈選項的字段配置為:“TARGET= ARM-Linux”.配置文件gcc-3.3.6-gblic-2.3.6.dat實現(xiàn)對交叉編譯過程中的一些必需庫文件以及版本信息進行配置,其中需要將LINUX_DIR選項修改為當(dāng)前所使用的嵌入式操作系統(tǒng),此處為Linux-2.6.20.

3.4 執(zhí)行arm.sh編譯腳本

完成arm.sh中有關(guān)配置文件的調(diào)整后,需要運行腳本文件arm.sh編譯交叉編譯工具鏈.在Linux操作系統(tǒng)命令行下,首先需要切換到crosstool-0.42目錄,然后執(zhí)行“./arm.sh”.隨后系統(tǒng)進行交叉編譯工具的編譯過程,通常需要1~2 h左右.當(dāng)Linux操作系統(tǒng)完成編譯過程后,opt/crosstool目錄下將會出現(xiàn)若干個不同名稱的交叉編譯工具.

3.5 添加環(huán)境變量

編譯完交叉工具鏈之后,還需要修改Linux環(huán)境變量PATH.只需要將其在Linux操作系統(tǒng)etc目錄下的配置文件bash.bashrc中進行注冊,即在配置文件中的代碼的最后添加上剛剛生成的交叉編譯工具鏈所在的存儲路徑,其配置代碼為“export PATH=/opt/crosstool/gcc-3.3.6-glibc-2.3.6/arm-linux/bin:$PATH”.

4 仿真開發(fā)環(huán)境測試

完成交叉編譯工具鏈和SkyEye安裝后,嵌入式linux仿真開發(fā)環(huán)境就算搭建完成.我們編寫了一個程序Simulation _example.c來測試搭建的仿真開發(fā)環(huán)境.

void simulation ( )

{char *t=“Embedded Linux Simulation example ! ” ;

long* paddr=(long*) 0x50000020;

while(*t)

{ *paddr=*t ;

t++;}

while ( 1 ) ;}

在Linux系統(tǒng)的終端命令里首先運行arm-linux-gcc生成一個Simulation_example.o文件,然后使用arm-linux-ld生成一個ELF格式的可執(zhí)行程序Simulation_example,最后使用arm-linux-objcopy命令,生成一個只包含程序機器碼的二進制文件Simulation_example.bin.由于s3c2410在國內(nèi)比較流行,因此,我們針對s3c2410這款芯片進行仿真.配置文件skyeye的具體內(nèi)容如下.

cpu : arm920t

mach : s3c2410x

mem_bank : map=M , type=RW , addr=0x00000000 , size=0x00800000 , file=. /simulation_example.bin

mem_bank : map=I , type=RW , addr=0x48000000 , size=0x20000000

把skyeye.conf與simulation_example.bin放置在同一個文件夾下.在終端中運行skyeye命令,結(jié)果可以得出,Embedded Linux simulation example!字符串在仿真環(huán)境中打印出來了,說明simulation_example能夠正常運行,驗證了利用構(gòu)建的嵌入式Linux仿真開發(fā)環(huán)境能夠進行嵌入式系統(tǒng)的開發(fā)與研究.

5 結(jié)語

基于仿真環(huán)境的嵌入式系統(tǒng)的開發(fā)和學(xué)習(xí)可以脫離具體的目標(biāo)機硬件,利用主機(PC)性能高、調(diào)試環(huán)境好的特點,同時又可以檢驗?zāi)繕?biāo)機系統(tǒng)上的代碼的正確性.本文詳細剖析了采用SkyEye創(chuàng)建基于ARM體系結(jié)構(gòu)的嵌入式Linux系統(tǒng)仿真開發(fā)環(huán)境的方法,實驗結(jié)果表明能夠使用仿真開發(fā)環(huán)境進行ARM平臺下的嵌入式Linux開發(fā),具有可靠的穩(wěn)定性.

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

[2] 劉永林,梁 瑩,王詩琴.基于Linux的嵌入式交叉編譯環(huán)境的建立及實現(xiàn)[J].電腦開發(fā)與應(yīng)用,2011,24(7).

[3] 栗華山,羅 婕.嵌入式系統(tǒng)仿真開發(fā)環(huán)境設(shè)計與實現(xiàn)[J].現(xiàn)代計算機(專業(yè)版),2012(36).

[4] 陳 渝,韓 超.嵌入式系統(tǒng)設(shè)計與實踐[M].北京:北京航空航天大學(xué)出版社,2009.

[5] 劉林海,王 明,杜克明.基于SkyEye的嵌入式Linux移植仿真技術(shù)研究[J].計算機與網(wǎng)絡(luò),2014(2).

[責(zé)任編輯 冰 竹]

2016-07-04

高 麗(1983- ),女,河南商丘人,商丘職業(yè)技術(shù)學(xué)院講師,碩士,主要從事嵌入式系統(tǒng)與智能計算研究。

TP316.81

A

1671-8127(2017)02-0098-03

猜你喜歡
PC機配置文件代碼
提示用戶配置文件錯誤 這樣解決
搭建簡單的Kubernetes集群
互不干涉混用Chromium Edge
忘記ESXi主機root密碼怎么辦
創(chuàng)世代碼
動漫星空(2018年11期)2018-10-26 02:24:02
創(chuàng)世代碼
動漫星空(2018年2期)2018-10-26 02:11:00
創(chuàng)世代碼
動漫星空(2018年9期)2018-10-26 01:16:48
創(chuàng)世代碼
動漫星空(2018年5期)2018-10-26 01:15:02
基于PC機與單片機的多機通信技術(shù)及抗干擾方法
基于三菱FXPLC的感應(yīng)淬火機床與PC機的串行通信實現(xiàn)
政和县| 河津市| 永德县| 香港 | 运城市| 莒南县| 昌平区| 汕尾市| 木里| 蓬莱市| 汝城县| 温泉县| 河南省| 宁阳县| 英吉沙县| 顺昌县| 临沭县| 获嘉县| 双桥区| 信丰县| 扶余县| 天峻县| 务川| 温泉县| 若尔盖县| 天等县| 朝阳市| 关岭| 泗水县| 库伦旗| 平利县| 漳平市| 盈江县| 海盐县| 龙陵县| 新余市| 宁远县| 三台县| 太白县| 雷波县| 桂林市|