999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Linux的嵌入式虛擬實(shí)驗(yàn)平臺(tái)的應(yīng)用
——以GPIO流水燈驅(qū)動(dòng)開(kāi)發(fā)為例

2020-10-10 16:49:28劉淑影王光陽(yáng)魏梨君張永華
關(guān)鍵詞:流水嵌入式環(huán)境

劉淑影,王光陽(yáng),魏梨君,楊 穎,張永華

(阜陽(yáng)師范大學(xué),安徽 阜陽(yáng)236037)

0 引言

目前大部分高校的計(jì)算機(jī)及其相關(guān)專業(yè)都陸續(xù)開(kāi)設(shè)了嵌入式相關(guān)課程,而Linux以其開(kāi)源、免費(fèi)、多用戶等優(yōu)勢(shì)已成為高校合理利用資源的最佳選擇[1-3]。在VMware虛擬機(jī)上搭建嵌入式Linux開(kāi)發(fā)環(huán)境有以下優(yōu)勢(shì):一是方便用戶的使用。目前大部分用戶習(xí)慣在Window操作系統(tǒng)上進(jìn)行日常辦公,所以在Window基礎(chǔ)之上安裝VMware進(jìn)而進(jìn)行嵌入式開(kāi)發(fā),省去了重新裝機(jī)的麻煩。二是減少了對(duì)硬件的依賴。在虛擬機(jī)上安裝Linux能夠減少軟硬件之間的不兼容問(wèn)題。三是維護(hù)方便。虛擬機(jī)環(huán)境下Linux操作系統(tǒng)能夠更快捷地完成數(shù)據(jù)備份功能,從而達(dá)到統(tǒng)一管理、維護(hù)和降低維護(hù)成本的目的[4]。

本文給出一種基于Linux的嵌入式虛擬實(shí)驗(yàn)平臺(tái)的搭建方法,通過(guò)在VMware虛擬機(jī)上安裝Linux操作系統(tǒng)、搭建虛擬開(kāi)發(fā)平臺(tái),為高校的實(shí)驗(yàn)教學(xué)活動(dòng)增加了靈活性,對(duì)創(chuàng)新現(xiàn)代化實(shí)驗(yàn)教學(xué)起到推動(dòng)作用。

1 嵌入式虛擬開(kāi)發(fā)平臺(tái)的搭建

嵌入式虛擬開(kāi)發(fā)平臺(tái)可以減少嵌入式開(kāi)發(fā)成本,并且為嵌入式開(kāi)發(fā)人員降低了入門(mén)難度。下面從三個(gè)方面介紹嵌入式虛擬開(kāi)發(fā)平臺(tái)的搭建。

1.1 Linux的安裝

實(shí)驗(yàn)平臺(tái)采用VMware Workstation虛擬機(jī),其使用范圍較廣,很多網(wǎng)站都可以下載,本文使用的是10.0版本。搭建嵌入式虛擬開(kāi)發(fā)環(huán)境的第一步是安裝虛擬機(jī),然后在虛擬機(jī)上安裝Linux操作系統(tǒng)(具體鏡像文件可以從網(wǎng)上下載或通過(guò)Linux光盤(pán))。

使用VMware Workstation虛擬機(jī)軟件VMware Tools增強(qiáng)工具包,可以增強(qiáng)虛擬機(jī)中的虛擬顯卡和硬盤(pán)性能、同步虛擬機(jī)與主機(jī)文件的驅(qū)動(dòng)程序,因此要在搭建的開(kāi)發(fā)環(huán)境中安裝VMware Tools工具包。

1.2 配置NFS

在嵌入式開(kāi)發(fā)環(huán)境中安裝NFS,可以實(shí)現(xiàn)網(wǎng)絡(luò)中計(jì)算機(jī)通過(guò)Interent共享資源,同時(shí)也可以實(shí)現(xiàn)掛載系統(tǒng)的目的,這種方式對(duì)于系統(tǒng)的調(diào)試非常方便。NFS安裝簡(jiǎn)單,具體步驟如下。

Step1:在Linux系統(tǒng)中打開(kāi)命令終端,輸入命令nfs-sudo apt-get install nfs-kernel-server。

Step2:新建立一個(gè)NFS專用文件夾(sudo mkdir/mnt/nfs),其中/mnt/nfs是將要共享的文件目錄。打開(kāi)exports文件(vi/etc/exports),在其末尾添加指令-/mnt/nfs*(rw,sync,no_root_squash,no_sub?tree_check),然后保存并退出。

Step3:首先通過(guò)命令restart重新啟動(dòng)portmap服務(wù),再重新啟動(dòng)NFS服務(wù)。

Step4:將Ubuntu系統(tǒng)的"/mnt/nfs"目錄掛在到實(shí)驗(yàn)箱(嵌入式Linux系統(tǒng))的"/mnt"目錄下面,從而實(shí)現(xiàn)文件的共享。

1.3 交叉開(kāi)發(fā)環(huán)境搭建

建立交叉開(kāi)發(fā)環(huán)境是嵌入式應(yīng)用軟件開(kāi)發(fā)的第一步。在交叉開(kāi)發(fā)環(huán)境中,在一臺(tái)PC機(jī)(宿主機(jī))上對(duì)源程序進(jìn)行編輯、編譯、鏈接之后,生成應(yīng)用程序,然后將其下載到能夠運(yùn)行、調(diào)試該程序的目標(biāo)設(shè)備中。其中宿主機(jī)是裝有VM虛擬機(jī)的計(jì)算機(jī),而目標(biāo)機(jī)則一般指嵌入式設(shè)備。下面給出安裝交叉編譯器的步驟。

Step1:通過(guò)Linux系統(tǒng)終端,將交叉編譯器復(fù)制到本地Ubuntu的"/usr/local/arm"目錄下,如果本地沒(méi)有此文件夾,則新建一個(gè)。

Step2:修改交叉編譯工具中環(huán)境變量的路徑。首先打開(kāi)環(huán)境變量文件".bashrc"("cd/root"-"gedit.bashrc"),然后添加代碼-"export PATH=$PATH:/usr/local/arm/arm-2009q3/bin"到該文件、保存、退出,最后更新環(huán)境變量("source.bashrc")。

Step3:交叉編譯環(huán)境的測(cè)試。在Ubuntu終端輸入"arm",通過(guò)鍵盤(pán)上的TAB切換到root權(quán)限,如果命令行中出現(xiàn)arm編譯器信息,就表明交叉編譯環(huán)境安裝好了,測(cè)試成功,如圖1所示。

圖1 ARM編譯器

2 GPIO流水燈驅(qū)動(dòng)的開(kāi)發(fā)

本文所采用的實(shí)驗(yàn)環(huán)境及開(kāi)發(fā)流程如圖2所示,在主機(jī)的Ubuntu操作系統(tǒng)下安裝交叉編譯器,對(duì)Linux內(nèi)核配置make menuconfi,編譯生成Linux的鏡像文件boot.img。最后通過(guò)文件夾共享和USB的方式將生成的鏡像文件下載到目標(biāo)板,通過(guò)Uboot引導(dǎo)執(zhí)行[5-6],圖2給出了嵌入式Linux環(huán)境下的開(kāi)發(fā)流程。

圖2 嵌入式Linux環(huán)境下的開(kāi)發(fā)流程

2.1 GPIO流水燈的工作原理

本實(shí)驗(yàn)選取ARM A8系統(tǒng)自帶8位LED流水燈,使用復(fù)用的IO接口和8位數(shù)據(jù)線,通過(guò)74AHC138 3-8線譯碼器產(chǎn)生不同模塊所需要的片選信號(hào),作為74LVCH273鎖存器CLK時(shí)鐘信號(hào),達(dá)到復(fù)用IO接口的目的。其電路如圖3所示。

圖3 流水燈工作原理

在圖3所示的電路圖中,將8個(gè)發(fā)光二極管LED的一端與鎖存器74LVCH273的8個(gè)輸出口進(jìn)行連接,另一端經(jīng)過(guò)一個(gè)限流電阻接地,當(dāng)鎖存器輸出高電平使LED兩端出現(xiàn)壓降產(chǎn)生電流會(huì)點(diǎn)亮LED燈。將鎖存器的控制引腳連接到ARM端的GPIOA23引腳,如果GPIOA23為低電平時(shí),鎖存器74LVCH273的8個(gè)輸出口處于無(wú)效狀態(tài),GPIOA23輸出高電平時(shí)鎖存器的8個(gè)輸出口會(huì)根據(jù)8個(gè)輸入口持續(xù)輸出對(duì)應(yīng)高低電平,8個(gè)輸入口連接ARM端的GPIOA0~A7端口。鎖存器的某個(gè)輸出端為高電平時(shí),此時(shí)LED有電流通過(guò)并發(fā)光。如果當(dāng)鎖存器的某個(gè)輸出端輸出低電平時(shí),LED就會(huì)熄滅。

2.2 GPIO流水燈驅(qū)動(dòng)開(kāi)發(fā)

由于驅(qū)動(dòng)程序沒(méi)有主函數(shù),因此進(jìn)行流水燈驅(qū)動(dòng)程序設(shè)計(jì)的第一步就是進(jìn)行流水燈的初始化,初始化過(guò)程中使用misc_register()函數(shù)注冊(cè)設(shè)備名和驅(qū)動(dòng)的接口。該接口通過(guò)cled_ioctl()函數(shù)傳遞cled_gpio_ctl()函數(shù)的返回值。其中cled_gpio_ctl()函數(shù)的具體操作步驟如下。

Step1:首選通過(guò)gpio_request()函數(shù)來(lái)顯示配置該通用輸出輸出GPIO端口的pinmux,再申請(qǐng)GPIO端口。

Step2:標(biāo)記該通用輸出輸出GPIO的使用方向(是輸入還是輸出)。

Step3:通過(guò)函數(shù)gpio_get_value()獲取GPIO引腳并使用函數(shù)gpio_set_value()設(shè)置GPIO引腳的值。

Step4:使用通用輸出端口的導(dǎo)出函數(shù)gpio_ex?port()將GPIO端口導(dǎo)出到用戶空間。

2.3 程序測(cè)試

在嵌入式虛擬開(kāi)發(fā)平臺(tái)上將編好的GPIO流水燈驅(qū)動(dòng)程序進(jìn)行交叉編譯。首先編輯Kconfig、makefile文件,將cled.c加入到內(nèi)核編譯,設(shè)置環(huán)境變量“export ARCH=arm”,然后執(zhí)行make menucon?fig,選中繼電器驅(qū)動(dòng),流水燈的選擇如圖4所示。

圖4 流水燈的選擇

編譯內(nèi)核,重新將內(nèi)核燒寫(xiě)到實(shí)驗(yàn)箱上。設(shè)備啟動(dòng)后,在“/dev”目錄下可查看到設(shè)備節(jié)點(diǎn),如圖5所示。

圖5 查看設(shè)備節(jié)點(diǎn)

將編寫(xiě)好的繼電器驅(qū)動(dòng)程序在嵌入式虛擬開(kāi)發(fā)平臺(tái)上進(jìn)行交叉編譯,生成文件名為cled的目標(biāo)文件,將此目標(biāo)文件復(fù)制到/mnt/nfs目錄下。

打開(kāi)Putty終端,連接實(shí)驗(yàn)箱串口,將實(shí)驗(yàn)箱/mnt目錄掛載到Linux系統(tǒng)/mnt/nfs目錄下,運(yùn)行程序如圖6所示。

圖6 試驗(yàn)箱掛載到Linux上

運(yùn)行程序,觀察試驗(yàn)箱下面的跑馬燈開(kāi)始依次點(diǎn)亮,如圖7所示。

圖7 實(shí)驗(yàn)運(yùn)行結(jié)果

3 結(jié)語(yǔ)

綜上所述,基于Linux的嵌入式虛擬實(shí)驗(yàn)平臺(tái)的搭建是切實(shí)可行的。本文主要介紹了虛擬實(shí)驗(yàn)平臺(tái)的搭建過(guò)程,然后通過(guò)嵌入式GPIO流水燈驅(qū)動(dòng)的開(kāi)發(fā)來(lái)證明該平臺(tái)的有效性。嵌入式系統(tǒng)應(yīng)用開(kāi)發(fā)更偏重實(shí)踐和應(yīng)用,學(xué)生需要多動(dòng)手、多寫(xiě)程序、多去實(shí)踐操作,親自搭建虛擬實(shí)驗(yàn)平臺(tái),調(diào)試程序代碼,以此來(lái)增加學(xué)生提動(dòng)手實(shí)踐和進(jìn)行嵌入式開(kāi)發(fā)的機(jī)會(huì)。通過(guò)2年多的實(shí)踐,證明采用基于Linux的嵌入式虛擬實(shí)驗(yàn)平臺(tái)進(jìn)行教學(xué)后學(xué)生的學(xué)習(xí)興趣和嵌入式開(kāi)發(fā)能力都有所提高[4]。

猜你喜歡
流水嵌入式環(huán)境
長(zhǎng)期鍛煉創(chuàng)造體內(nèi)抑癌環(huán)境
一種用于自主學(xué)習(xí)的虛擬仿真環(huán)境
流水
文苑(2020年10期)2020-11-07 03:15:26
孕期遠(yuǎn)離容易致畸的環(huán)境
環(huán)境
搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
流水有心
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
Altera加入嵌入式視覺(jué)聯(lián)盟
倍福 CX8091嵌入式控制器
主站蜘蛛池模板: 91探花国产综合在线精品| 国产精品任我爽爆在线播放6080| 国产精品福利尤物youwu| 日韩小视频在线观看| 伊人成色综合网| 亚洲无码免费黄色网址| 性视频久久| 制服丝袜一区二区三区在线| 亚洲精品第一在线观看视频| 欧美成人日韩| 一级毛片免费不卡在线| 一级毛片中文字幕| 99九九成人免费视频精品| 视频一本大道香蕉久在线播放| 亚洲午夜福利在线| 毛片网站观看| 一级毛片免费观看久| 精品国产免费人成在线观看| 日本尹人综合香蕉在线观看 | 制服丝袜在线视频香蕉| 四虎国产永久在线观看| 亚洲va精品中文字幕| 久久99热这里只有精品免费看| 福利姬国产精品一区在线| 亚洲AⅤ波多系列中文字幕| 最新午夜男女福利片视频| 亚洲第一色网站| 国内精品久久久久鸭| 97色婷婷成人综合在线观看| 日本影院一区| 亚洲无码高清视频在线观看| 一区二区偷拍美女撒尿视频| 亚洲欧美另类中文字幕| 一本大道无码日韩精品影视| 久久综合亚洲鲁鲁九月天| 亚洲日韩精品欧美中文字幕| 在线免费看片a| 成人在线第一页| 亚欧乱色视频网站大全| 国产亚洲欧美在线专区| 国产91在线免费视频| 成年网址网站在线观看| 亚洲无线一二三四区男男| 在线观看热码亚洲av每日更新| 手机看片1024久久精品你懂的| 超碰91免费人妻| 91在线播放免费不卡无毒| 欧美自慰一级看片免费| 少妇精品久久久一区二区三区| 国产乱人伦偷精品视频AAA| 免费在线成人网| 久草视频中文| 精品福利视频导航| 国产人人干| 囯产av无码片毛片一级| 久久动漫精品| 日韩精品亚洲一区中文字幕| 2020国产在线视精品在| 男人天堂伊人网| 一级片免费网站| 国产精品女人呻吟在线观看| 青青青伊人色综合久久| 一本久道久综合久久鬼色| 欧美成人精品一级在线观看| 高清无码不卡视频| 国产18在线| 黄色网址手机国内免费在线观看| 亚洲成人手机在线| 日韩精品无码免费一区二区三区| 亚洲国产成人久久精品软件| 一本一本大道香蕉久在线播放| 久久婷婷六月| 18禁色诱爆乳网站| 在线观看无码av免费不卡网站| 精品乱码久久久久久久| 亚洲永久视频| 欧美国产菊爆免费观看| 亚洲婷婷丁香| 国产福利免费在线观看| 东京热高清无码精品| 精品免费在线视频| 亚洲综合一区国产精品|