• 
    

    
    

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

      基于NFS的CortexA8開發(fā)板自開發(fā)程序應(yīng)用研究

      2015-04-30 06:37于博
      軟件導(dǎo)刊 2015年4期
      關(guān)鍵詞:架構(gòu)

      于博

      摘要摘要:CortexA8處理器是第一款基于ARMv7 架構(gòu)的應(yīng)用處理器,是有史以來ARM 開發(fā)的性能最高、最具功率效率的處理器。ARM Cortex-A8處理器是一款適用于復(fù)雜操作系統(tǒng)的應(yīng)用處理器?;贜FS文件系統(tǒng),對CortexA8開發(fā)板遠程添加自開發(fā)程序應(yīng)用進行了研究。

      關(guān)鍵詞關(guān)鍵詞:NFS; CortexA8處理器; ARMv7 架構(gòu); 自開發(fā)程序

      DOIDOI:10.11907/rjdk.1431004

      中圖分類號:TP319

      文獻標識碼:A文章編號文章編號:16727800(2015)004011802

      0引言

      NFS是Network File System的簡寫,即網(wǎng)絡(luò)文件系統(tǒng)[1]。網(wǎng)絡(luò)文件系統(tǒng)是FreeBSD支持的文件系統(tǒng)中的一種。 NFS允許一個系統(tǒng)在網(wǎng)絡(luò)上與他人共享目錄和文件。通過使用NFS,不同的操作系統(tǒng)彼此共享文件(share files)——可以通過NFS掛載遠程主機目錄,訪問該目錄就像訪問本地目錄一樣,所以也可以簡單地將它看作一個文件服務(wù)器(Fileserver)[2]。

      1學(xué)習和使用NFS文件系統(tǒng)

      NFS工作原理可以理解為:CortexA8開發(fā)板上需要安裝一個NFS客戶端軟件,Linux宿主機上安裝NFS服務(wù)器端軟件。Linux宿主機配置NFS文件,告訴本機哪塊硬盤區(qū)域可以被NFS Client設(shè)備掛載,Linux宿主機啟動NFS服務(wù)器程序并等待Client掛載。CortexA8和Linux宿主機通過網(wǎng)線相連,運行NFS Client程序通過網(wǎng)線掛載Linux宿主機上的那塊硬盤,這樣在CortexA8開發(fā)板(NFS Client)一端就可以看到Linux宿主機上這塊硬盤區(qū)域里所有的文件了。

      1.1CortexA8開發(fā)板和Linux宿主機兩端安裝NFS組件

      CortexA8開發(fā)板的Linux內(nèi)核和文件系統(tǒng)支持NFS組件,所以CortexA8這端不需作任何修改就可以支持NFS。Linux內(nèi)核的配置:在Linux宿主機下進入/opt/Friendly ARM/mini210/linux3.0.8,運行命令:#make menuconfig (進入Linux內(nèi)核配置界面),進入NFS組件的選擇安裝,如圖1所示。

      1.2主機端安裝NFS服務(wù)器

      在Linux宿主機端安裝NFS服務(wù)器,不同的Linux發(fā)行版會略有不同,筆者使用的是Fedora 17發(fā)行版,過程如下:運行命令:#yum install port map nfsutils(安裝NFS所需要的組件) ,在/opt/Friendly ARM/mini210/目錄下建立一個共享目錄,取名為Source Code

      運行命令:#chimed 777 /opt/Friendly ARM/mini210/Source Code (將文件夾Source Code的權(quán)限設(shè)置為所有人可讀寫和操作),#vim /etc/exports(修改exports配置文件)。在exports配置文件添加一行/opt/Friendly ARM/mini210/Source Code *(sync,rw,no_root_squash)解析。/opt/Friendly ARM/mini210/Source Code 就是NFS服務(wù)器允許NFS客戶端掛載的文件。*:代表任意IP地址都可以掛載該NFS服務(wù)器的指定文件,Rw:代表擁有可讀寫權(quán)限。

      No_root_squash:表示當?shù)顷慛FS服務(wù)器使用共享目錄的使用者是root時,其權(quán)限將被轉(zhuǎn)換為匿名使用者(nobody)。接下來Linux宿主機端還要禁用防火墻,在Fedora17下禁用防火墻的命令為#systemctl stop iptables.service。將NFS服務(wù)器配置成開機啟動并啟動NFS服務(wù)器,命令為#systemctl enable nfsserver.service。

      2為CortexA8開發(fā)板添加自開發(fā)程序

      2.1CortexA8處理器編譯

      CortexA8采用了復(fù)雜的流水線構(gòu)架,針對強功耗應(yīng)用,CortexA8采用了一個優(yōu)化的裝載/存儲流水線,順序執(zhí)行,同步執(zhí)行超標量處理器內(nèi)核,其擁有13級主流水線,10級NEON多媒體流水線,可以提供2 DMIPS/MHZ的性能;它有優(yōu)化的L1緩存,可以提高訪問存儲速度并降低功耗;它有專用的L2緩存,在編譯時,可以把緩存當作標準的RAM進行處理,而緩存大小可以靈活配置,緩存的訪問延遲也可以編程控制;它有基于執(zhí)行記錄的動態(tài)跳轉(zhuǎn)預(yù)盼,準確性高達95%,而且提供重放機制以有效降低預(yù)判錯誤帶來的性能損失;在技術(shù)方面,使用了更高性能及功耗效率和高代碼密度的Thumb-2技術(shù)[3]。它首次采用了強大的NEONTM信號處理擴展集,對H.264和MP3等媒體編解碼提供加速。CortexA8解決方案還包括JazelleRCT Java加速技術(shù),提供最優(yōu)化的實時(JIT)和動態(tài)調(diào)適編譯(DAC),同時減少3/4的內(nèi)存占用空間。此外,新處理器還配置了用于安全交易和數(shù)字版權(quán)管理的TrustZone技術(shù)和AMBA 3 AXITM互連協(xié)議,實現(xiàn)低功耗管理IEM的功能[4]。

      在Linux宿主機下,進入/opt/Friendly ARM/mini210目錄,用C語言編寫helloworld.c程序,運行命令#armLinuxgcc helloworld.c hello world(使用交叉編譯器armlinuxgcc,編譯helloworld.c,源碼為helloworld的可執(zhí)行程序) 。

      2.2CortexA8開發(fā)板燒錄

      在同目錄下運行命令#./hello world(執(zhí)行本目錄下的helloworld程序,應(yīng)該會報錯,因為這個程序是一個ARM體系程序而不是X86體系程序,X86主機無法識別里面的機器碼),將hello world可執(zhí)行程序復(fù)制到rootfs_qtopia_qt4目錄下,重新制作rootfs_qtopia_qt4.img文件系統(tǒng),并將文件系統(tǒng)燒錄至CortexA8開發(fā)板。

      利用超級終端或者Telnet登陸開發(fā)板控制臺,找到添加的helloworld程序,在控制臺下運行命令$./hello world(執(zhí)行hello world程序),觀察是否有正確的輸出返回。

      至此,已經(jīng)至少向開發(fā)板燒錄過兩次文件系統(tǒng)了。這里的問題是在之后的開發(fā)過程中是不是每次添加或者修改程序時都要進行燒錄呢?那效率也實在太低了[5]。下面采用嵌入式軟件開發(fā)中最常用的開發(fā)方法,使用NFS文件系統(tǒng)進行遠程掛載來進行程序開發(fā)。

      3使用NFS進行CortexA8開發(fā)

      將Linux宿主機和CortexA8開發(fā)板通過網(wǎng)線相連,并將Linux宿主機的有線IP地址和CortexA8開發(fā)板的有線IP地址設(shè)置為同一網(wǎng)段(此次實驗室筆者的Linux宿主機IP地址為192.168.1.22,CortexA8開發(fā)板的IP地址為192.168.1.230)。

      在Linux宿主機上,將之前寫好的helloworld.c源程序和helloworld可執(zhí)行程序復(fù)制到/opt/Friendly ARM/mini210/Source Code目錄下。我們在實驗中曾經(jīng)使用Windows下的putty.exe程序telnet登陸過開發(fā)板,其實絕大多數(shù)Linux操作系統(tǒng)也帶有該功能,在Linux宿主機下運行命令#telnet 192.168.1.230(使用telnet工具登陸IP地址為192.168.1.230的CortexA8開發(fā)板命令行控制臺),輸入用戶名為root,即可在Linux宿主機上完成命令行登陸,如圖2所示。

      在控制臺下運行命令:

      $mount –t nfs 192.168.1.22:/opt/Friendly ARM/mini210/Source Code /mnt –o no lock(注意這個命令是“$”符號打頭,是在控制臺進行的,意思是將IP地址為192.168.1.22的NFS服務(wù)器/opt/Friendly ARM/mini210/Source Code文件夾掛載到開發(fā)板Linux文件系統(tǒng)的/mnt目錄下)。完成掛載后,運行$ls /mnt命令,看一下是否是Linux宿主機/opt/Friendly ARM/mini210/Source Code目錄下的內(nèi)容,如圖3所示。筆者此時的/opt/Friendly ARM/mini210/Source Code目錄下的內(nèi)容稍有不同,讀者此時應(yīng)該只有helloworld.c和helloworld。嘗試運行hello world程序,看是否有正確的返回。返回結(jié)果為正確,由此推出,NFS進行CortexA8開發(fā)效率較高。

      綜上所述,使用NFS進行開發(fā),可以通過建立NFS,把Linux 服務(wù)器上的特定分區(qū)共享到待調(diào)試的嵌入式目標系統(tǒng)上,這樣就可以直接在嵌入式目標系統(tǒng)上操作Linux 服務(wù)器,同時可以在線對程序進行調(diào)試和修改,大大簡化了軟件開發(fā)工作。

      參考文獻參考文獻:

      [1]程海粟,李慶武,俞楷,等.基于CortexA8 處理器的車牌識別系統(tǒng)設(shè)計[J].計算機與現(xiàn)代化,2014(5):123125.

      [2]百度百科.CortexA8開發(fā)平臺[EB/OL].http://baike.baidu.com/view/6631918.htm?fr=aladdin.

      [3]楊亮.基于CortexA8嵌入式實驗平臺的設(shè)計與實現(xiàn)[J]. 電子設(shè)計工程,2014(4) : 153154.

      [4]任亮.基于ARM CortexA8的嵌入式Linux開發(fā)的平臺構(gòu)建[J]. 山西煤炭管理干部學(xué)院學(xué)報,2012(4) : 134135.

      [5]李寧.ARM CortexA8處理器原理與應(yīng)用[M].北京: 北京航空航天大學(xué)出版社,2012.

      責任編輯(責任編輯:杜能鋼)

      猜你喜歡
      架構(gòu)
      基于FPGA的RNN硬件加速架構(gòu)
      功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實踐
      基于云服務(wù)的圖書館IT架構(gòu)
      WebGIS架構(gòu)下的地理信息系統(tǒng)構(gòu)建研究
      LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實現(xiàn)
      架構(gòu)——李延洲寫生作品展
      基于SDN與NFV的網(wǎng)絡(luò)切片架構(gòu)
      一種基于FPGA+ARM架構(gòu)的μPMU實現(xiàn)
      具身學(xué)習環(huán)境SMALLab的架構(gòu)分析及啟示
      基于在線雙冗余CANopen架構(gòu)的管軌列控系統(tǒng)
      黄陵县| 宁阳县| 佛冈县| 万全县| 沧源| 大邑县| 右玉县| 巴东县| 卢氏县| 嘉禾县| 饶平县| 罗山县| 竹溪县| 荥阳市| 湖北省| 巴马| 武穴市| 南和县| 孝感市| 隆尧县| 泽州县| 洪江市| 涿鹿县| 福州市| 红原县| 灵山县| 克东县| 辽宁省| 霍林郭勒市| 新郑市| 双流县| 同心县| 陕西省| 永福县| 麻阳| 沐川县| 禹城市| 都匀市| 依安县| 奉新县| 西青区|