• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      高 麗,郭翠玲

      (商丘職業(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í)與研究提供了方便.文章詳細(xì)討論了一種構(gòu)建基于arm的嵌入式Linux仿真開發(fā)環(huán)境的方法.仿真結(jié)果表明,基于提出方法構(gòu)建的嵌入式仿真環(huán)境可以應(yīng)用于日常無硬件開發(fā)平臺的嵌入式Linux系統(tǒng)的學(xué)習(xí)與實(shí)驗(yàn),并且具有極大的穩(wěn)定性與可行性.

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

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

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

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

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

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

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

      2 SkyEye的安裝與配置

      構(gòu)建仿真環(huán)境所必需的skyeye-1.3.2_rc1.tar.gz需從SkyEye官方站點(diǎn)下載獲取,將其在Linux系統(tǒng)下進(jìn)行解壓縮安裝.安裝過程中需要超級用戶的權(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中的選項(xiàng)確定.在使用SkyEye前,必須要對它進(jìn)行相關(guān)的修改.通過編寫合適的文件,可以配置出SkyEye支持的任何硬件環(huán)境.skyeye.conf文件由選項(xiàng)組成,每個選項(xiàng)描述一種需要模擬的硬件[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 細(xì)胞轉(zhuǎn)染 lncRNA BLACAT1 siRNA及negative siRNA采購于銳博公司。轉(zhuǎn)染試劑為廣州銳博公司提供的riboFectTM CP。siRNA BLACAT1序列5’-GCATCTAAACTCATCACCA-3’。按siRNA終濃度100 nM進(jìn)行轉(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ù)本文的實(shí)驗(yàn)環(huán)境,需要將交叉編譯工具鏈選項(xiàng)的字段配置為:“TARGET= ARM-Linux”.配置文件gcc-3.3.6-gblic-2.3.6.dat實(shí)現(xiàn)對交叉編譯過程中的一些必需庫文件以及版本信息進(jìn)行配置,其中需要將LINUX_DIR選項(xiàng)修改為當(dāng)前所使用的嵌入式操作系統(tǒng),此處為Linux-2.6.20.

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

      完成arm.sh中有關(guān)配置文件的調(diào)整后,需要運(yùn)行腳本文件arm.sh編譯交叉編譯工具鏈.在Linux操作系統(tǒng)命令行下,首先需要切換到crosstool-0.42目錄,然后執(zhí)行“./arm.sh”.隨后系統(tǒng)進(jìn)行交叉編譯工具的編譯過程,通常需要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中進(jìn)行注冊,即在配置文件中的代碼的最后添加上剛剛生成的交叉編譯工具鏈所在的存儲路徑,其配置代碼為“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)的終端命令里首先運(yùn)行arm-linux-gcc生成一個Simulation_example.o文件,然后使用arm-linux-ld生成一個ELF格式的可執(zhí)行程序Simulation_example,最后使用arm-linux-objcopy命令,生成一個只包含程序機(jī)器碼的二進(jìn)制文件Simulation_example.bin.由于s3c2410在國內(nèi)比較流行,因此,我們針對s3c2410這款芯片進(jìn)行仿真.配置文件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放置在同一個文件夾下.在終端中運(yùn)行skyeye命令,結(jié)果可以得出,Embedded Linux simulation example!字符串在仿真環(huán)境中打印出來了,說明simulation_example能夠正常運(yùn)行,驗(yàn)證了利用構(gòu)建的嵌入式Linux仿真開發(fā)環(huán)境能夠進(jìn)行嵌入式系統(tǒng)的開發(fā)與研究.

      5 結(jié)語

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

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

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

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

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

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

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

      2016-07-04

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

      TP316.81

      A

      1671-8127(2017)02-0098-03

      猜你喜歡
      PC機(jī)配置文件代碼
      提示用戶配置文件錯誤 這樣解決
      搭建簡單的Kubernetes集群
      互不干涉混用Chromium Edge
      忘記ESXi主機(jī)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機(jī)與單片機(jī)的多機(jī)通信技術(shù)及抗干擾方法
      基于三菱FXPLC的感應(yīng)淬火機(jī)床與PC機(jī)的串行通信實(shí)現(xiàn)
      新营市| 兴国县| 蒲城县| 银川市| 五莲县| 基隆市| 偃师市| 凤山县| 沛县| 台州市| 乐至县| 西乌珠穆沁旗| 安平县| 石狮市| 汤原县| 沭阳县| 遂宁市| 广平县| 宁波市| 永宁县| 连州市| 涟水县| 大宁县| 阿荣旗| 江都市| 高阳县| 西吉县| 莎车县| 灵武市| 郧西县| 山丹县| 敦化市| 泰宁县| 大厂| 大关县| 随州市| 湟中县| 滦平县| 凤山县| 敦煌市| 永修县|