• 
    

    
    

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

      基于8086單芯片計(jì)算機(jī)的嵌入式Linux操作系統(tǒng)移植

      2015-07-24 08:21:46楊延慶
      西安工程大學(xué)學(xué)報 2015年4期
      關(guān)鍵詞:宿主機(jī)單芯片內(nèi)核

      楊延慶

      (西安醫(yī)學(xué)院 信息技術(shù)處,陜西 西安710021)

      0 引 言

      計(jì)算機(jī)技術(shù)的飛速發(fā)展使得計(jì)算機(jī)硬件的性能不斷提高,計(jì)算機(jī)由原來的大體積、單一的性能逐漸變得體積越來越小,集成度越來越高,性能越來越強(qiáng).硬件復(fù)雜程度的增加對軟件的設(shè)計(jì)也提出了新的要求.計(jì)算機(jī)軟件的開發(fā)成本上升、周期增大,嵌入式系統(tǒng)性能越來越高,在應(yīng)用中充分發(fā)揮了硬件性能的同時降低開發(fā)成本和開發(fā)難度.

      解決硬件與軟件矛盾的做法是引入嵌入式操作系統(tǒng).嵌入式操作系統(tǒng)是一種用途廣泛的系統(tǒng)軟件,通常包括與硬件相關(guān)的底層驅(qū)動程序、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口、通信協(xié)議、圖形界面及標(biāo)準(zhǔn)化瀏覽器等[1-2].嵌入式操作系統(tǒng)負(fù)責(zé)嵌入式系統(tǒng)的全部軟、硬件資源的分配、任務(wù)調(diào)度,控制、協(xié)調(diào)開發(fā)活動,通過裝卸某些模塊來達(dá)到系統(tǒng)所要求的功能[3-5].由于微內(nèi)核與機(jī)器特征相關(guān)的代碼隔離在微內(nèi)核的底層,因此在移植過程中只需修改內(nèi)核中的代碼,嵌入式操作系統(tǒng)就可移植到不同的硬件平臺.本文在構(gòu)建基于8086CPU的單芯片系統(tǒng)設(shè)計(jì)的基礎(chǔ)上研究將Linux操作系統(tǒng)移植到目標(biāo)平臺.

      1 8086單芯片平臺

      1.1 8086單芯片計(jì)算機(jī)平臺

      單芯片計(jì)算機(jī)是將傳統(tǒng)PC的CPU、內(nèi)存、顯卡等集成到單個芯片中.單芯片計(jì)算機(jī)與傳統(tǒng)PC相比具有體積小、質(zhì)量好、能耗底等優(yōu)點(diǎn),同時系統(tǒng)的性能也有了很大的改善.促進(jìn)計(jì)算機(jī)的迅速普及.

      單芯片計(jì)算機(jī)的設(shè)計(jì)是一個基于某一型號CPU及其外圍I/O接口的SoC設(shè)計(jì)過程.本文選擇標(biāo)準(zhǔn)的Intel 8086CPU.

      8086CPU芯片有最小模式與最大模式兩種工作模式.所謂最小模式,是指系統(tǒng)中只有一個8086微處理器,在這種情況下,所有的總線控制信號,都直接由8086CPU產(chǎn)生,系統(tǒng)的總線控制邏輯電路被減到最少,該模式適用于規(guī)模較小的微機(jī)應(yīng)用系統(tǒng).本文提及的8086CPU單芯片計(jì)算機(jī)采用最小工作模式進(jìn)行設(shè)計(jì).8086CPU單芯片計(jì)算機(jī)系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)兩部分組成.

      圖1 8086單芯片計(jì)算機(jī)硬件系統(tǒng)結(jié)構(gòu)Fig.1 The 8086single chip computer hardware system structure

      (1)硬件系統(tǒng):硬件系統(tǒng)包括CPU子系統(tǒng)、接口部件子系統(tǒng)和存儲器子系統(tǒng).CPU子系統(tǒng)包括8086CPU、數(shù)據(jù)收發(fā)控制器、地址鎖存器和存儲器譯碼電路等.接口部件子系統(tǒng)都掛載在Wishbone總線上,包括如下接口模塊:8254定時器/計(jì)數(shù)器、8255通用I/O接口、VGA顯示接口等.存儲器子系統(tǒng)包括RAM與ROM.搭建的8086單芯片計(jì)算機(jī)硬件系統(tǒng)如圖1所示.

      (2)軟件系統(tǒng)包括操作系統(tǒng)和在此平臺上的應(yīng)用軟件.Linux操作系統(tǒng)就是在上述硬件系統(tǒng)的基礎(chǔ)上進(jìn)行移植的軟件系統(tǒng).通過對開源的Linux操作系統(tǒng)內(nèi)核進(jìn)行裁剪來滿足用戶的需求.應(yīng)用軟件指的是在操作系統(tǒng)移植成功以后,為滿足用戶的一些需求在8086單芯片計(jì)算機(jī)上安裝的一些應(yīng)用軟件及進(jìn)行的一系列的操作.

      1.2 開發(fā)平臺

      嵌人式系統(tǒng)開發(fā)采用的是宿主機(jī)-目標(biāo)機(jī)模式,宿主機(jī)是PC機(jī),宿主機(jī)上裝有操作系統(tǒng) Windows XP,在Windows XP系統(tǒng)中裝有虛擬機(jī)vmware并在vmware上裝RedHatLinux5企業(yè)版;目標(biāo)機(jī)采用Intel公司的推出的16位標(biāo)準(zhǔn)的Intel8086微處理器,有29 000只晶體管,速度可分為5MHz,8MHz,10MHz,16位的內(nèi)部結(jié)構(gòu),16位雙向數(shù)據(jù)信號線,20位地址信號線,可尋址1M字節(jié)存儲單元,可利用第16位的地址總線來進(jìn)行I/O端口尋址,可尋址64K個I/O端口,單一的5V電源.嵌入式Linux的載入通??梢酝ㄟ^在宿主機(jī)上運(yùn)行專門的Flash燒寫工具來實(shí)現(xiàn),運(yùn)行該軟件后,宿主機(jī)能直接訪問目標(biāo)板上的Flash器件.

      本文所提到的8086單芯片計(jì)算機(jī)系統(tǒng)就是將Intel8086微處理器及其外圍設(shè)備運(yùn)用硬件描述語言VHDL"軟化",實(shí)現(xiàn)8086微處理器的硬件功能.并在Xilinx公司推出的嵌入式系統(tǒng)開發(fā)板Virtex-ⅡPRO上實(shí)現(xiàn)了功能演示.

      2 Linux移植分析

      2.1 建立Linux交叉編譯環(huán)境

      Linux內(nèi)核移植前首先建立交叉編譯器編譯內(nèi)核文件及應(yīng)用程序[6-8],這是一個比較復(fù)雜的過程同時也是相當(dāng)重要的過程.所謂交叉編譯就是在宿主機(jī)上進(jìn)行編譯[9],生成目標(biāo)機(jī)Intel8086處理器可執(zhí)行的二進(jìn)制位流文件.到網(wǎng)上下載交叉編譯工具鏈Crosstool-ng-1.5.3.因?yàn)镃rosstool-ng能建立一個新的工具鏈以支持對最新kernel的編譯,然后在文件crosstool-ng-1.5.3中選擇適合目標(biāo)板的gcc編譯器和函數(shù)庫glibc,選擇下面的行:

      2.2 Linux內(nèi)核、配置和編譯

      在已經(jīng)安裝好的交叉編譯工具Crosstool-ng的基礎(chǔ)上對內(nèi)核進(jìn)行編譯,編譯內(nèi)核整體上分為3個步驟:1、配置內(nèi)核(就是確定哪些功能要保留在編譯好的內(nèi)核中,哪些功能要從內(nèi)核中刪除),生成一個編譯配置文件.config.2、編譯內(nèi)核.3、安裝內(nèi)核.具體步驟如下:

      圖2 內(nèi)核配置圖形化界面Fig.2 Kernel configuration graphical interface

      該處也可以用make zImage,但必須確保所編譯的新內(nèi)核在640K之下.新內(nèi)核編譯成功之后,這些指令會在/usr/src/linux/arch/X86/boot/下生成bzImage.elf內(nèi)核文件.

      2.3 制作根文件系統(tǒng)

      嵌入式系統(tǒng)的使用還需要根文件系統(tǒng)的支持,它是Linux系統(tǒng)的根本所在,啟動時必須加載以支持系統(tǒng)的運(yùn)行.一般包括以下目錄內(nèi)容:/bin(包含了應(yīng)用程序);/boot(包含了內(nèi)核和啟動文件);/dev(設(shè)備文件目錄);/proc(proc文件系統(tǒng)目錄);/etc(系統(tǒng)配置文件的目錄);/sbin(系統(tǒng)程序的目錄);/lib(共享函數(shù)庫的目錄);/mnt(裝載其它磁盤節(jié)點(diǎn)的目錄);/usr(附加應(yīng)用程序的目錄),同時還要提供一些實(shí)用的基本工具,像ls、chmod、cd等.

      有兩種基本的根文件系統(tǒng)制作方法,將system.ace文件放在壓縮flash卡進(jìn)行有盤引導(dǎo)的本地文件系統(tǒng)LFS(local file system);通過網(wǎng)絡(luò)進(jìn)行的無盤引導(dǎo)即網(wǎng)絡(luò)文件系統(tǒng)NFS(network file system).本文使用第一種方法,采用BusyBox制作一個去構(gòu)件根文件系統(tǒng),BusyBox具有shell的功能,它能提供系統(tǒng)所需要的大部分工具,包括編輯工具、網(wǎng)絡(luò)工具、模塊加載工具、壓縮解壓縮工具、查找工具、帳號密碼管理工具和進(jìn)程相關(guān)工具等.其體積很小,這就使得我們能將根文件系統(tǒng)以及Linux內(nèi)核存放在64KB的flash卡上.

      下載并編譯BusyBox,Klingauf[7]詳細(xì)地介紹如何使用BusyBox制作根文件系統(tǒng),按照其步驟只要修改mkrootfs.sh腳本的幾個地方就可生成根文件系統(tǒng),因此節(jié)省了許多時間.修改如下:

      還要改變兩個文件權(quán)限,如下:

      2.4 CF卡分區(qū)引導(dǎo)

      將根文件系統(tǒng)拷貝到CF卡上.步驟如下:

      (1)在Linux的/etc/fstab中輸入:

      文件/etc/fstab下存放的是系統(tǒng)文件相關(guān)信息.如果該文件設(shè)置正確,則能夠通過"mount/directoryname"命令加載文件系統(tǒng),不同的文件系統(tǒng)對應(yīng)不同的行.“noauto”意思是當(dāng)使用“mount-a”命令時文件系統(tǒng)不加載,“user”指的是允許一般用戶掛載文件系統(tǒng),兩個零表示文件系統(tǒng)不需要轉(zhuǎn)儲、不需要啟動時被掃描.

      運(yùn)行命令:

      表示對設(shè)備進(jìn)行邏輯上的分區(qū),將CF卡分成3個區(qū),第一個區(qū)格式為FAT16,大小保證能夠放下system.ace文件就可以,第二個區(qū)為Linux Swap交換分區(qū),第三個區(qū)用來存放根文件系統(tǒng).

      (2)在網(wǎng)站上下載mkdosfs工具,在windows操作系統(tǒng)下格式化CF卡上第一個區(qū),然后運(yùn)行命令:

      將system.ace拷貝第一個分區(qū)上準(zhǔn)備引導(dǎo).

      (3)在Linux操作系統(tǒng)下格式化第二個分區(qū),運(yùn)行命令:

      一切準(zhǔn)備就緒,將bzImage.elf和文件系統(tǒng)system.ace文件拷貝到CF卡中第一個分區(qū),本地引導(dǎo)Linux,載入運(yùn)行,在開發(fā)板上看到Linux的提示符后,移植就成功了.

      3 結(jié) 論

      (1)結(jié)合嵌入式Linux操作系統(tǒng)和8086單芯片計(jì)算機(jī)的特點(diǎn),解決了Linux操作系統(tǒng)移植的關(guān)鍵技術(shù),移植過程對于其他類型微處理器上Linux的移植具有參考價值.

      (2)移植為構(gòu)建完整的8086單芯片計(jì)算機(jī)系統(tǒng)提供了系統(tǒng)軟件,為應(yīng)用軟件的運(yùn)行提供了操作系統(tǒng)平臺.

      [1]孫璐,陶晶,張勇智,等.基于8086CPU的單芯片計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)[J].中國集成電路,2010(9):45-49.SUN Lu,TAO Jing,ZHANG Yongzhi,et al.The design of the single chip computer system based on 8086CPU[J].China Integrated Circuit,2010(9):45-49.

      [2]李艷芳,唐云.EMU8086和 DEBUG在《微機(jī)原理》課程教學(xué)中的應(yīng)用[J].湖南科技學(xué)院學(xué)報,2013,34(8):41-43.LI Yanfang,TANG Yun.EMU8086and DEBUG in the application of the course“microcomputer principle”teaching[J].Journal of Hunan University of Science and Engineering,2013,34(8):41-43.

      [3]SAVITZKY E,STEPHEN R.Real-time microprocessor systems[M].NewYork:Van Nostrand Reinhold Company,2012:35-60.

      [4]王亞剛.嵌入式Bootloader機(jī)制的分析與移植[J].計(jì)算機(jī)工程,2010,36(6):267-269.WANG Yagang.Embedded Bootloader mechanism analysis and transplantation[J].Computer Engineering,2010,36(6):267-269.

      [5]陳國強(qiáng).嵌入式Linux操作系統(tǒng)的研究[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014,12(1):144-145.CHEN Guoqiang.Research of embedded Linux operating system[J].Computer CD Software and Applications,2014,12(1):144-145.

      [6]李曉寧,李曉峰.基于嵌入式Linux操作系統(tǒng)的研究[J].長春師范學(xué)院學(xué)報,2010,22(2):93-96.LI Xiaoning,LI Xiaofeng.Based on the research of embedded Linux operating system[J].Journal of Changchun Normal University,2010,22(2):93-96.

      [7]劉文峰,李程遠(yuǎn),李善平.嵌入式Linux操作系統(tǒng)的研究[J].浙江大學(xué)學(xué)報:理學(xué)版,2010,14(4):112-113.LIU Wenfeng,LI Chengyuan,LI Shanping.Research of embedded Linux operating system[J].Journal of Zhejiang University:Science Edition,2010,14(4):112-113.

      [8]武苗苗,郭雯雯.嵌入式Linux操作系統(tǒng)通信管理的設(shè)計(jì)研究[J].電子技術(shù)與軟件工程,2013,12(10):102-103.WU Miaomiao,GUO Wenwen.Communication management of embedded Linux operating system design research[J].Electronic Technology and Software Engineering,2013,12(10):102-103.

      [9]Kernel org.The public site for downloading linux kernel archives[EB/OL].(2011-02-17)[2015-01-10].http://www.klingauf.de/v2p/index.phtml.

      [10]武杰.基于 ARM9的嵌入式Linux移植[J].自動化技術(shù)與應(yīng)用,2014(3):59-62.WU Jie.Based on ARM9embedded Linux transplantation[J].Techniques of Automation and Application,2014(3):59-62.

      [11]韓守謙,裴海龍,王清陽.基于 Xenomai實(shí)時嵌入式Linux操作系統(tǒng)的構(gòu)建[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,35(1):123-124.HAN Shouqian,PEI Hailong,WANG Qingyang.Build based on Xenomai real-time embedded Linux operating system[J].Computer Engineering and Design,2011,35(1):123-124.

      猜你喜歡
      宿主機(jī)單芯片內(nèi)核
      萬物皆可IP的時代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
      強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
      基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
      Linux內(nèi)核mmap保護(hù)機(jī)制研究
      虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室在農(nóng)村職校計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)教學(xué)中的應(yīng)用研究
      RDA宣布推出高性能藍(lán)牙音頻系統(tǒng)單芯片RDA5836
      電子制作(2017年18期)2017-12-30 09:53:45
      嵌入式計(jì)算機(jī)軟件測試關(guān)鍵技術(shù)的思考
      基于TEA1532反激式開關(guān)電源的設(shè)計(jì)與調(diào)試
      嵌入式計(jì)算機(jī)軟件測試關(guān)鍵技術(shù)研究
      Marvell發(fā)布64位單芯片移動通信處理器
      安义县| 垫江县| 大竹县| 榆树市| 灌云县| 清远市| 兴义市| 花莲县| 缙云县| 遵义县| 永泰县| 洛南县| 武宣县| 融水| 武强县| 阳谷县| 安新县| 峨边| 济宁市| 东至县| 蒲江县| 景宁| 昌图县| 壤塘县| 靖远县| 二连浩特市| 蓬莱市| 临高县| 汉寿县| 扶余县| 芮城县| 东港市| 仁布县| 子洲县| 瑞昌市| 桐柏县| 偃师市| 鄂温| 泗洪县| 奉贤区| 乃东县|