![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/13/15/1151dd92-db80-4100-9252-018bbae86e6f/1151dd92-db80-4100-9252-018bbae86e6fpic.jpg)
![基于-安卓控制的智能無線開關(guān)_第1頁](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/13/15/1151dd92-db80-4100-9252-018bbae86e6f/1151dd92-db80-4100-9252-018bbae86e6f1.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 畢 業(yè) 設(shè) 計</p><p> 基于安卓控制的智能無線開關(guān)</p><p> 學生畢業(yè)論文(設(shè)計)承諾書</p><p> 本人鄭重承諾:所呈交的畢業(yè)論文(設(shè)計)是在指導(dǎo)老師的指導(dǎo)下進行的研究工作及取得的研究成果,論文中參考他人的文獻資料均已明確標注出,論文中的結(jié)論和結(jié)果為本人獨立完成,沒有抄襲、剽竊他人研究成果。</p&g
2、t;<p><b> 畢業(yè)論文作者:</b></p><p><b> 簽字日期: </b></p><p><b> 摘 要</b></p><p> 本課題研究的是基于安卓手機控制的智能無線開關(guān)設(shè)計。基于android手機平臺和ARM
3、核心板,借助于藍牙技術(shù),設(shè)計和實現(xiàn)了一種無線控制開關(guān)系統(tǒng)。實現(xiàn)通過手機端無線控制ARM開發(fā)板端的LED燈的亮滅功能。</p><p> Android手機作為客戶端發(fā)送藍牙信號,藍牙模塊HC-06作為服務(wù)器端接收信號,并向服務(wù)器端的控制器ARM核心板傳遞信號。雙方通過串口進行通信。ARM控制器通過判斷是否接收到信號從而控制核心板上的LED燈的亮滅。</p><p> 本文詳細介紹了基于
4、安卓智能手機的無線開關(guān)控制系統(tǒng)的設(shè)計以及實現(xiàn)。從課題的背景開始討論,接著到開發(fā)平臺的搭建,再到系統(tǒng)整體方案的設(shè)計,最后對整個設(shè)計進行總結(jié),分析出本系統(tǒng)的優(yōu)勢以及出現(xiàn)的不足。</p><p> 關(guān)鍵詞:android 藍牙 無線通信 ARM</p><p><b> 目 錄</b></p><p><b> 1 緒論1&l
5、t;/b></p><p><b> 前 言1</b></p><p> 1.1 近距離無線通信技術(shù)概述2</p><p> 1.3 課題的來源背景5</p><p> 1.4國內(nèi)外研究狀況6</p><p> 1.5系統(tǒng)總體方案6</p><p
6、> 1.5.1 設(shè)計要求6</p><p> 1.5.2 硬件的選取:6</p><p> 1.5.3軟件的設(shè)計:7</p><p> 2 開發(fā)環(huán)境的搭建8</p><p> 2.1 Linux開發(fā)環(huán)境搭建8</p><p> 2.1.1 關(guān)于Linux系統(tǒng)8</p><
7、;p> 2.1.2 關(guān)于GNU8</p><p> 2.1.3 利用Vmware虛擬機搭建Linux開發(fā)環(huán)境8</p><p> 2.2 安卓應(yīng)用開發(fā)環(huán)境搭建10</p><p> 2.2.1 關(guān)于Eclipse軟件10</p><p> 2.2.2 android SDK開發(fā)環(huán)境搭建10</p>&l
8、t;p> 2.2.3 android NDK 開發(fā)環(huán)境搭建11</p><p> 3系統(tǒng)硬件的選取13</p><p> 3.1關(guān)于ARM處理器13</p><p> 3.2 GEC210開發(fā)板簡介15</p><p> 3.3 藍牙HC-06模塊的簡介17</p><p> 3.3.1
9、 HC-06模塊特征17</p><p> 3.3.2 AT 指令集 (對藍牙模塊進行測試)19</p><p> 4 系統(tǒng)軟件的設(shè)計22</p><p> 4.1 相關(guān)軟件編程技術(shù)22</p><p> 4.1.1 嵌入式C編程22</p><p> 4.2 系統(tǒng)底層軟件的設(shè)計22</p
10、><p> 4.2.1 LED燈驅(qū)動程序設(shè)計22</p><p> 4.2.2 LED燈測試程序設(shè)計26</p><p> 4.2.3 UART串口配置28</p><p> 4.3 系統(tǒng)上層軟件的設(shè)計30</p><p> 4.3.1 android應(yīng)用程序工程分析30</p><
11、p> 4.3.2 智能手機端的應(yīng)用程序設(shè)計31</p><p> 4.3.3 GEC210開發(fā)板端的應(yīng)用程序設(shè)計37</p><p> 5 系統(tǒng)整體的調(diào)試42</p><p> 5.1 系統(tǒng)軟硬件的測試42</p><p> 5.2 結(jié)論與總結(jié)45</p><p> 參 考 文 獻46&l
12、t;/p><p> Abstract47</p><p><b> 附錄:48</b></p><p> 附錄一:led_drv.c48</p><p> 附錄二:led_test.c50</p><p> 附錄三:AndroidApp工程源文件:52</p><
13、;p> 3.1 主界面源代碼MainActivity.java52</p><p> 3.2 控制界面源代碼SearchBlueTooth.java55</p><p> 3.3 “關(guān)閉APP”類源代碼SysApplication.java60</p><p> 3.5 主界面布局文件:activity_main.xml61</p>
14、<p> 3.6 控制界面布局文件searchbluetooth.xml63</p><p> 附錄四:ArmApp工程源代碼:63</p><p> 4.1 主界面源文件MainActivity.java63</p><p> 4.2 主界面布局文件activity_main.xml65</p><p> 4
15、.3 Jni源代碼文件:65</p><p> 4.3.1 C庫源文件ArmApp.cpp65</p><p> 4.3.2 頭文件com_jhhu-armapp_MainActivity.h69</p><p> 4.3.3 Android.mk70</p><p> 4.3.4 Application.mk70<
16、;/p><p><b> 致 謝71</b></p><p> 仲愷農(nóng)業(yè)工程學院畢業(yè)論文(設(shè)計)成績評定表72</p><p><b> 1 緒論</b></p><p><b> 前 言</b></p><p> 隨著移動互聯(lián)網(wǎng)平
17、臺的發(fā)展,搭載著免費、開源的android操作系統(tǒng)的android智能手機在移動平臺以其市場占有率第一的優(yōu)勢而大放異彩。然而在現(xiàn)實生活中存在著許多這樣的應(yīng)用情況,系統(tǒng)需要實時傳輸小量的、近距離的突發(fā)信號,這就需要近距離無線通信技術(shù)。因此,基于安卓智能手機控制的無線開關(guān)系統(tǒng)亦是一個值得關(guān)注的領(lǐng)域。</p><p> 安卓智能手機隨處可見,開關(guān)更是司空見慣,無線開關(guān)也是不再新鮮,然而基于安卓智能手機控制的無線開關(guān)確
18、實一個較為新鮮的事物。本系統(tǒng)是一個基于安卓手機的智能無線開關(guān)系統(tǒng),其涉及的硬件設(shè)備由處理單元(基于contex-A8內(nèi)核的S5PV210處理器)、發(fā)射模塊(三星智能手機)、接收模塊(藍牙接收器)、ARM核心板以及其外接電路構(gòu)成。軟件系統(tǒng)則需要用JAVA語言寫兩個安卓APP,一個是安裝到手機端作為藍牙信號發(fā)送的發(fā)送端,另一個則是安裝到ARM核心板上作為藍牙信號的接收端。除此之外,還需要用C語言寫關(guān)于ARM板上的LED燈的硬件驅(qū)動程序以及u
19、art串口的初始化程序。當發(fā)射模塊發(fā)出信號時,接收模塊會接收到無線信號,ARM處理器就會作出分析使對應(yīng)的LED燈執(zhí)行相應(yīng)的亮滅操作,以LED燈的亮滅來模擬開關(guān)的狀態(tài)。此設(shè)計需要用到C語言,JAVA語言,數(shù)字電路,模擬電路,嵌入式系統(tǒng)設(shè)計以及安卓編程等相關(guān)知識。</p><p> 1.1 近距離無線通信技術(shù)概述</p><p> 目前使用較廣泛的近距無線通信技術(shù)是藍牙(Bluetooth
20、),無線局域網(wǎng)802.11(Wi-Fi)和紅外數(shù)據(jù)傳輸(IrDA)。同時還有一些具有發(fā)展?jié)摿Φ慕酂o線技術(shù)標準,它們分別是:ZigBee、超寬頻(Ultra WideBand)、短距通信(NFC)、WiMedia、GPS、DECT、無線1394和專用無線系統(tǒng)等。它們都有其立足的特點,或基于傳輸速度、距離、耗電量的特殊要求;或著眼于功能的擴充性;或符合某些單一應(yīng)用的特別要求;或建立競爭技術(shù)的差異化等。但是沒有一種技術(shù)可以完美到足以滿足所有
21、的需求。</p><p> 藍牙技術(shù)有其性價比高,普遍性(一般的智能手機都有搭載藍牙模塊)的特點,較為適合用作短距離無線通信,因此此處主要對藍牙技術(shù)進行介紹。</p><p> 藍牙技術(shù)(bluetooth)技術(shù)是近幾年出現(xiàn)的,廣受業(yè)界關(guān)注的近距無線連接技術(shù)。它是一種無線數(shù)據(jù)與語音通信的開放性全球規(guī)范,它以低成本的短距離無線連接為基礎(chǔ),可為固定的或移動的終端設(shè)備提供廉價的接入服務(wù)。藍牙
22、技術(shù)是一種無線數(shù)據(jù)與語音通信的開放性全球規(guī)范,其實質(zhì)內(nèi)容是為固定設(shè)備或移動設(shè)備之間的通信環(huán)境建立通用的近距無線接口,將通信技術(shù)與計算機技術(shù)進一步結(jié)合起來,使各種設(shè)備在沒有電線或電纜相互連接的情況下,能在近距離范圍內(nèi)實現(xiàn)相互通信或操作。其傳輸頻段為全球公眾通用的2.4GHzISM頻段,提供1Mbps的傳輸速率和10m的傳輸距離。藍牙技術(shù)誕生于1994年,Ericsson當時決定開發(fā)一種低功耗、低成本的無線接口,以建立手機及其附件間的通信。
23、該技術(shù)還陸續(xù)獲得PC行業(yè)業(yè)界巨頭的支持。1998年,藍牙技術(shù)協(xié)議由 Ericsson、IBM、Intel、NOKIA、Toshiba等5家公司達成一致。藍牙協(xié)議的標準版本為802.15.1,由藍牙小組(SIG)負責開發(fā)。802.15.1的最初標準基于藍牙1.1實現(xiàn),后者已構(gòu)建到現(xiàn)行很多藍牙設(shè)備中。新版802.15.1a基本等同于藍牙1.2標準,具備</p><p> 以上優(yōu)勢的形成,必將改變中國藍牙行業(yè)的現(xiàn)有局
24、面,并在深圳形成以高新技術(shù)為龍頭的一體化藍牙產(chǎn)業(yè)基地,更好的為全中國,全世界服務(wù)。業(yè)內(nèi)專家認為,藍牙的市場前景取決于藍牙價格和基于藍牙的應(yīng)用是否能達到一定的規(guī)模。有了藍牙,我們可以不再為數(shù)字家庭的布線而煩惱,移動電話、計算機、數(shù)碼相機、攝像機、打印機、傳真機和掌上電腦等能隨心所欲無線連通。有了藍牙,這些設(shè)備即會實現(xiàn)自動同步。即使用戶的個人電腦放在手提箱內(nèi),用戶也可以通過電話收電子郵件,通過移動電話屏幕閱讀郵件標題,而不會有到處找連接線、
25、開機、關(guān)機等待等等諸如此類的一系列煩惱。藍牙技術(shù)擁有廣闊的潛力市場。</p><p> 1.2 android操作系統(tǒng)簡介</p><p> Android操作系統(tǒng)是一款由Google公司于2007年11月5日宣布的基于Linux平臺的開源手機操作系統(tǒng)。2008年9月22日,美國運營商T-Mobile USA在紐約正式發(fā)布第一款Google手機——T-Mobile G1。該款手機為臺灣
26、宏達電代工制造,是世界上第一部使用Android操作系統(tǒng)的手機。至最新的數(shù)據(jù)顯示,搭載著安卓系統(tǒng)的智能手機在世界市場的占有率已達到78.9%,遠遠拋開排名第二的ios系統(tǒng)的15.5%。成為目前市場占有率最高,發(fā)展最為快速的一種手機操作系統(tǒng)。</p><p> Android系統(tǒng)是基于Linux和Java技術(shù),它在底層采用Linux內(nèi)核和本地庫,在上層提供Java支持框架和開發(fā)接口。它借助于Linux強 大的穩(wěn)定
27、性、開放性和可移植性,Java語言開發(fā)的廣泛性、簡單性和可移植性,一經(jīng)推出就受動廣泛關(guān)注和歡迎,在嵌入式開發(fā)中產(chǎn)生比較深遠的影響。</p><p> Android的系統(tǒng)架構(gòu)采用了分層架構(gòu)的思想,如下圖所示。從上層到底層共包括四層,分別是應(yīng)用程序程序?qū)?、?yīng)用框架層、系統(tǒng)庫和Android運行時和Linux內(nèi)核。</p><p> 圖1 Android系統(tǒng)架構(gòu)圖</p>&
28、lt;p> 每層功能簡要介紹如下:</p><p><b> 一 應(yīng)用程序?qū)?lt;/b></p><p> 該層提供一些核心應(yīng)用程序包,例如電子郵件、短信、日歷、地圖、瀏覽器和聯(lián)系人管理等。同時,開發(fā)者可以利用Java語言設(shè)計和編寫屬于自己的應(yīng)用程序,而這些程序與那些核心應(yīng)用程序彼此平等、友好共處。</p><p><b>
29、 二 應(yīng)用程序框架層</b></p><p> 該層是Android應(yīng)用開發(fā)的基礎(chǔ),開發(fā)人員大部分情況是在和她打交道。應(yīng)用程序框架層包括活動管理器、窗口管理器、內(nèi)容提供者、視圖系統(tǒng)、包管理器、 電話管理器、資源管理器、位置管理器、通知管理器和XMPP服務(wù)十個部分。在Android平臺上,開發(fā)人員可以完全訪問核心應(yīng)用程序所使用的API框 架。并且,任何一個應(yīng)用程序都可以發(fā)布自身的功能模塊,而其他應(yīng)用程
30、序則可以使用這些已發(fā)布的功能模塊?;谶@樣的重用機制,用戶就可以方便地替換平臺本 身的各種應(yīng)用程序組件。</p><p> 三 系統(tǒng)庫和Android運行時</p><p> 系統(tǒng)庫包括九個子系統(tǒng),分別是圖層管理、媒體庫、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。 Android運行時包括核心庫和Dalvik虛擬機,前者既兼容了大
31、多數(shù)Java語言所需要調(diào)用的功能函數(shù),又包括了Android的核心庫,比如 android.os、android.net、android.media等等。后者是一種基于寄存器的java虛擬機,Dalvik虛擬機主要是完成對生命周期的管理、堆棧的管理、線程的管理、安全和異常的管理以及垃圾回收等重要功能。</p><p><b> 四 Linux內(nèi)核</b></p><p&
32、gt; Android核心系統(tǒng)服務(wù)依賴于Linux2.6內(nèi)核,如安全性、內(nèi)存管理、進程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型。Linux內(nèi)核也是作為硬件與軟件棧的抽象層。驅(qū)動:顯示驅(qū)動、攝像頭驅(qū)動、鍵盤驅(qū)動、WiFi驅(qū)動、Audio驅(qū)動、flash內(nèi)存驅(qū)動、Binder(IPC)驅(qū)動、電源管理等。</p><p> 由此可見,Android的系統(tǒng)架構(gòu)采用分層架構(gòu)的思想,架構(gòu)清晰,層次分明,協(xié)同工作。</p>
33、<p> 1.3 課題的來源背景</p><p> 從2007年11月5日谷歌公司正式向外界展示了這款名為android的操作系統(tǒng)到如今(2014年5月),android操作系統(tǒng)已從最開始的1.0版本到如今的4.4版本kitkat,系統(tǒng)性能達到質(zhì)的飛躍,UI界面更是在2.X時代升級到4.X時代的時候得到質(zhì)的改變,從而使得如今最新的4.4版本是一個非常優(yōu)秀的操作系統(tǒng)。</p><
34、p> 在ARM處理器方面,經(jīng)歷了經(jīng)典的ARM7、ARM9、ARM11等系列,如今Cortex系列更是成為了主流。而在cortex系列中,其cortex-A系列以其開放式操作系統(tǒng)的高性能處理器的特點性能更是遠高于面向?qū)崟r應(yīng)用的卓越性能的Cortex-R 系列 和面向具有確定性的微控制器應(yīng)用的Cortex-M 系列。Cortex-A系列較為高端的系列亦分為A8、A9、A15乃至字長為64位的A50系列。在如今的智能手機領(lǐng)域,A8、A
35、9等系列被廣泛應(yīng)用。</p><p> 在短距離無線通信方面,藍牙已經(jīng)是一種非常普遍,性價比高的短距離無線通信工具。只要是智能手機,都會搭載藍牙模塊,這也就意味著,本課題的短距離無線通信工具材料來源異常豐富,可謂隨手可得。</p><p> 1.4國內(nèi)外研究狀況</p><p> 在智能家居系統(tǒng)研發(fā)方面,亦即包含無線開關(guān)控制,美國及一些歐洲國家一直處于領(lǐng)先地位
36、。近年來,以美國微軟公司及摩托羅拉公司等為首的一批國外知名企業(yè),先后擠身于智能家居的研發(fā)中。例如:微軟公司開發(fā)的“夢幻之家”、摩托羅拉公司開發(fā)的“居所之門”、IBM公司開發(fā)的“家庭主任”等均已日趨成穩(wěn)得技術(shù)強占家居市場。此外,日韓新等國的龍頭企業(yè)紛紛致力于家居智能化的開發(fā),對家居市場更是躍躍欲試。</p><p> 20世紀90年代后期,我國的智能小區(qū)日益興起。眾所周知,我國的智能化住宅建設(shè)最早起于上海、廣州和
37、深圳等沿海城市,并逐漸向內(nèi)陸發(fā)展。在97香港回歸之際,在建設(shè)部“97跨世紀住宅小區(qū)案競賽活動”中,上海中皇廣場被建設(shè)部科技委員會列為全國首家“智能住宅示范工程”,揭開了全國智能小區(qū)發(fā)展的序幕。</p><p> 我國的智能家居相對于國外起步較晚, 尚未形成一定的國家標準。目前,主要采用國外的一些技術(shù)產(chǎn)品,但也有一些企業(yè)推出了自己的產(chǎn)品,主要有:e家庭(海爾)、e-home數(shù)字家園(清華同方)等。<
38、;/p><p> 國內(nèi)各大軟、硬件機構(gòu)正在積極的研制、開發(fā)更為符合市場的智能化家居設(shè)備,以解決當前智能化產(chǎn)品實用性差、使用復(fù)雜及產(chǎn)品價格昂貴等缺點,而技術(shù)創(chuàng)新性也逐步向國際先進水平靠攏,這樣的未來值得期待。</p><p> 由于安卓操作系統(tǒng)是近幾年才流行起來的,基于安卓智能手機控制的領(lǐng)域可謂相對以前的常規(guī)無線控制較為新鮮。</p><p><b> 1
39、.5系統(tǒng)總體方案</b></p><p> 1.5.1 設(shè)計要求</p><p> 本次設(shè)計要求設(shè)計出一個基于安卓智能手機控制的智能無線開關(guān)系統(tǒng)。通過實現(xiàn)從手機端發(fā)送藍牙信號無線控制ARM核心板上的LED燈的亮滅來達到無線控制開關(guān)的功能。本次設(shè)計要求懂得一定的C語言以及JAVA語言知識,對嵌入式系統(tǒng)的驅(qū)動程序編程以及安卓應(yīng)用程序編程有一定的了解,以及熟悉數(shù)、模電等電路知識。
40、</p><p> 1.5.2 硬件的選?。?lt;/p><p> 1)安卓智能手機:對此不作出太大要求,只要有足夠的ROM空間能夠安裝藍牙控制的APP即可。</p><p> 2)藍牙接收模塊:本模塊分主機和從機,主機能和從機配對通信,從機與從機之間或主機與主機之間不能通信,從機能和電腦、手機等的藍牙配對通信,購買時默認為從機。我們在做無線開關(guān)控制時,藍牙模塊主
41、要是實現(xiàn)接收從手機端發(fā)送過來的指令,所以我們需要的是從機模塊。。</p><p> 3)ARM開發(fā)板(附帶LED燈):此處之所以不選擇我們熟悉的傳統(tǒng)的51系列8位單片機而選擇32位的基于cotex-A8內(nèi)核的S5PV210處理器,是為了增加課題的新穎性以及挑戰(zhàn)32位的ARM的驅(qū)動程序編程,該開發(fā)板搭載的是Android2.3系統(tǒng)。</p><p> 1.5.3軟件的設(shè)計:</p&
42、gt;<p> 1)Android的應(yīng)用程序設(shè)計:需熟悉JAVA語言以及android應(yīng)用程序設(shè)計。</p><p> 2)UART串口初始化程序:鑒于我們的藍牙模塊是通過串口與ARM核心板進行通信,故需要我們對arm板上的uart口進行一系列的初始化。</p><p> 3)LED燈的驅(qū)動程序設(shè)計:由于arm開發(fā)板上的android系統(tǒng)是基于linux內(nèi)核的,故此處需
43、要充分了解linux系統(tǒng)的驅(qū)動程序設(shè)計,從而才能熟練寫出LED燈的驅(qū)動程序。</p><p> 圖2 整體結(jié)構(gòu)方案圖</p><p><b> 2 開發(fā)環(huán)境的搭建</b></p><p> 2.1 Linux開發(fā)環(huán)境搭建</p><p> 2.1.1 關(guān)于Linux系統(tǒng)</p><p>
44、 Linux操作系統(tǒng)誕生于1991 年的10 月5 日(這是第一次正式向外公布的時間),其是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。</p><p> Linux用途廣
45、泛,可安裝在各種計算機硬件設(shè)備中,比如手機、平板電腦、路由器、視頻游戲控制臺、臺式計算機、大型機和超級計算機。嚴格來講,Linux這個詞本身只表示Linux內(nèi)核,但實際上人們已經(jīng)習慣了用Linux來形容整個基于Linux內(nèi)核,并且使用GNU 工程各種工具和數(shù)據(jù)庫的操作系統(tǒng)。</p><p> Linux存在著許多不同的Linux版本,有我們熟悉的Ubuntu、RedHat、Debian、SUSE等等,雖然各家公
46、司的Linux系統(tǒng)略有不同,但它們都使用了Linux內(nèi)核。在本次設(shè)計中我們選擇市場上較為普遍的Ubuntu系統(tǒng)。</p><p> 2.1.2 關(guān)于GNU</p><p> GNU計劃,又稱革奴計劃,是由Richard Stallman在1983年9月27日公開發(fā)起的。它的目標是創(chuàng)建一套完全自由的操作系統(tǒng)。Richard Stallman最早是在net.unix-wizards新聞組上
47、公布該消息,并附帶一份《GNU宣言》等解釋為何發(fā)起該計劃的文章,其中一個理由就是要“重現(xiàn)當年軟件界合作互助的團結(jié)精神”。為保證GNU軟件可以自由地“使用、復(fù)制、修改和發(fā)布”,所有GNU軟件都有一份在禁止其他人添加任何限制的情況下授權(quán)所有權(quán)利給任何人的協(xié)議條款,GNU通用公共許可證(GNU General Public License,GPL)。即“反版權(quán)”(或稱Copyleft)概念。</p><p> GNU
48、計劃最終并沒有如Richard Stallman所愿,創(chuàng)建出一套完全自由的操作系統(tǒng),但是卻創(chuàng)造出了vi編輯器、gcc編譯器、gdb調(diào)試器等一大堆自由軟件。最終GNU工程各種工具和數(shù)據(jù)庫和我們熟悉的Linux內(nèi)核組建成我們熟悉的Linux操作系統(tǒng)。本次設(shè)計中就是使用vi編輯器、gcc編譯器、gdb調(diào)試器等工具在Linux平臺下編輯LED燈的驅(qū)動程序和UART的初始化程序。</p><p> 2.1.3 利用Vmw
49、are虛擬機搭建Linux開發(fā)環(huán)境</p><p><b> 1)安裝虛擬機</b></p><p> 直接雙擊打開VMware-workstation-9.0.1.exe,輸入相應(yīng)序列號即可成功安裝虛擬機。</p><p> 2)安裝Ubuntu系統(tǒng)</p><p> 根據(jù)百度經(jīng)驗逐步進行安裝:</p&g
50、t;<p> http://jingyan.baidu.com/article/14bd256e0ca52ebb6d26129c.html</p><p> 3)搭建交叉編譯環(huán)境</p><p> 由于我們要在X86環(huán)境下的ubuntu系統(tǒng)編譯出能在ARM環(huán)境下運行的可執(zhí)行程序,所以我們必須要通過交叉編譯。則需要安裝交叉編譯器(cross compiler)。此處我們選
51、擇交叉編譯工具:arm-linux- 4.2.2</p><p><b> 搭建步驟</b></p><p> 1) 在/usr/local/下建立交叉編譯器的安裝目錄arm:</p><p> sudo mkdir /usr/local/arm</p><p> 2)將下載的交叉編譯器包解
52、壓到/usr/local/arm目錄下:</p><p> sudo tar jxvf cross-4.2.2-eabi.tar.bz2 -C /usr/local/arm/ </p><p> 3)解壓成功后,修改PATH環(huán)境變量:</p><p> sudo vim /etc/profile</p><p>
53、 在文件為加入交叉編譯器arm-linux-所在的路徑:</p><p> export PATH=$PATH:/usr/local/arm/4.2.2-eabi/usr/bin</p><p><b> 然后退出vim。</b></p><p> 4) 更新一下配置文件/etc/profile:</p><
54、p> source /etc/profile</p><p><b> 5)工具安裝成功:</b></p><p> 以上工具只是用來編譯驅(qū)動程序,由于我們的arm開發(fā)板跑的是android系統(tǒng),若要編譯出能在其上運行的可執(zhí)行C文件,普通的arm-linux-gcc編譯器并無此能力,此時則需要android的mk文件,也就是需要android系統(tǒng)的源代碼。
55、</p><p><b> 具體下載過程見:</b></p><p> http://jingyan.baidu.com/article/c85b7a641200e0003bac95a3.html</p><p> 為了使開發(fā)板能與pc機通信,則需要在windows下安裝SecureCRT 5.2。安裝完畢后二者通過串口進行通信。<
56、/p><p> 2.2 安卓應(yīng)用開發(fā)環(huán)境搭建</p><p> 2.2.1 關(guān)于Eclipse軟件</p><p> Eclipse 是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括Java開發(fā)工具(Java Development Kit
57、,JDK)。由于android應(yīng)用程序是用java語言編寫的,所以我們的android應(yīng)用自然也是用Eclipse工具編寫。</p><p> 2.2.2 android SDK開發(fā)環(huán)境搭建</p><p> 1)java JDK安裝</p><p> 進入oracle官網(wǎng)http://www.oracle.com 下載最新jdk-6u22-windows-i
58、586.exe,雙擊開始安裝JDK,路徑選擇c盤(也可以是其他路徑),安裝完設(shè)置java環(huán)境變量。設(shè)置方法如下:</p><p> 我的電腦點右鍵屬性高級進入環(huán)境變量設(shè)置</p><p><b> 設(shè)置path變量</b></p><p> 在系統(tǒng)變量里找到path變量,選擇編輯在變量值的最后追加</p><p>
59、 ;C:\ jdk1.6.0_22\bin</p><p> 設(shè)置classpath環(huán)境變量</p><p> 在系統(tǒng)環(huán)境變量那一欄中點新建</p><p> 變量名:classpath,</p><p> 變量值:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;</p&g
60、t;<p> 設(shè)置JAVA_HOME</p><p> 在系統(tǒng)環(huán)境變量那一欄中點新建</p><p> 變量名:JAVA_HOME</p><p> 變量值:C:\ jdk1.6.0_22</p><p><b> 檢驗JAVA環(huán)境:</b></p><p> 打開cmd
61、命令行,輸入javac:如顯示如下界面</p><p> 圖3 檢驗JAVA環(huán)境</p><p> 則表示安裝成功,否則則應(yīng)仔細檢查以上配置是否正確操作,至此java環(huán)境安裝完成。</p><p> 2)adt-bundle-windows安裝</p><p> 進入android官網(wǎng):http://developer.android
62、.com/sdk/index.html</p><p> 下載adt-bundle-windows.zip,此工具集合了Eclipse軟件、android SDK、ADT等插件,下載后直接解壓打開即可使用。</p><p> 至此,常規(guī)的android SDK開發(fā)環(huán)境已成功搭建,也就是可以直接開發(fā)一般的android應(yīng)用程序了。</p><p> 2.2.3
63、android NDK 開發(fā)環(huán)境搭建</p><p> 由于我們的接收端ARM核心板上需要運行一個android應(yīng)用程序,用來讀取UART串口的藍牙模塊發(fā)送來的信息,以及對LED燈等硬件進行操作,但是我們用常規(guī)的SDK開發(fā)出來的android應(yīng)用程序時用純java語言寫出來的。眾所周知,我們的java語言對uart串口、led燈等硬件的操控無能為力,此時我們自然會想到以操作硬件聞名的C語言了。此時也就是需要一種
64、從java語言里調(diào)用C語言的機制,那就是JNI了。因此,為了實現(xiàn)java語言調(diào)用C語言的功能,我們還得再搭建一個android NDK開發(fā)的環(huán)境。</p><p> 進入android官網(wǎng):</p><p> http://developer.android.com/tools/sdk/ndk/index.html#Downloads</p><p> 下載a
65、ndroid-ndk-r9d-windows-x86.zip解壓都任意目錄,然后打開Eclipse,點Window->Preferences->Android->NDK,設(shè)置NDK路徑,如下圖所示:</p><p> 圖4 android NDK 開發(fā)環(huán)境搭建</p><p> 設(shè)置完成點擊OK便完成android NDK開發(fā)環(huán)境的搭建了。</p>&
66、lt;p><b> 3系統(tǒng)硬件的選取</b></p><p> 3.1關(guān)于ARM處理器</p><p> ARM處理器是由英國ARM公司設(shè)計,由其眾多合作伙伴生產(chǎn)的一系列的RISC處理器的集合。它的發(fā)展由經(jīng)典的ARM7系列、ARM9系列、ARM11系列到現(xiàn)在流行的Cortex-A系列、Cortex-R系列和 Cortex-M系列。</p>
67、<p> ARM處理器的應(yīng)用領(lǐng)域十分廣闊:</p><p> 1 )工業(yè)控制領(lǐng)域:作為 32 的 RISC 架構(gòu),基于 ARM 核的微控制器芯片不但占據(jù)了高端微控制器市場的大部分市場份額,同時也逐漸向低端微控制器應(yīng)用領(lǐng)域擴展, ARM 微控制器的低功耗、高性價比,向傳統(tǒng)的 8 位 /16 位微控制器提出了挑戰(zhàn)。 </p><p> 2 )無線通訊領(lǐng)域:目前已有超過 85%
68、的無線通訊設(shè)備采用了 ARM 技術(shù), ARM 以其高性能和低成本,在該領(lǐng)域的地位日益鞏固。 </p><p> 3 )消費類電子產(chǎn)品: ARM 技術(shù)在目前流行的數(shù)字音頻播放器、數(shù)字機頂盒和游戲機中得到廣泛采用。 4)成像和安全產(chǎn)品:現(xiàn)在流行的數(shù)碼相機和打印機中絕大部分采用 ARM 技術(shù)。手機中的 32位 SIM 智能卡也采用了 ARM 技術(shù)。 除此以外, ARM 微處理器及技術(shù)還應(yīng)用到許多不
69、同的領(lǐng)域,并會在將來取得更加廣泛的應(yīng)用 </p><p> ARM處理器應(yīng)用如此廣泛,是因為其擁有如下一系列的特點:</p><p> 1)體積小、低功耗、低成本、高性能;</p><p> 2)支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;</p><p> 3)大量使用寄存器,指令執(zhí)行速度更快;
70、</p><p> 4)大多數(shù)數(shù)據(jù)操作都在寄存器中完成;</p><p> 5)尋址方式靈活簡單,執(zhí)行效率高;</p><p><b> 6)指令長度固定;</b></p><p><b> 7)眾多合作伙伴。</b></p><p> 本次設(shè)計中,在信號接收端我們
71、使用三星公司設(shè)計的s5pv210處理器(又名“蜂鳥”),其采用了Cortex-A8內(nèi)核,ARM V7指令集,主頻可達1GHZ,64/32位內(nèi)部總線結(jié)構(gòu),32/32KB的數(shù)據(jù)/指令一級緩存,512KB的二級緩存,可以實現(xiàn)2000DMIPS(每秒運算2億條指令集)的高性能運算能力。 </p&g
72、t;<p> 圖5 S5PV210</p><p> 3.2 GEC210開發(fā)板簡介</p><p> GEC210是一款高性能的CortexA8開發(fā)板,其采用三星S5PV210作為主處理器,運行主頻可高 1GHz。S5PV210內(nèi)部集成了PowerVRSGX540高性能圖形引擎,支持3D圖形流暢運行,并可流暢播放1080P大尺寸視頻。</p><
73、p> GEC210板載512MDDR2內(nèi)存,可流暢運行Android,Linux和WinCE6等高級操作系統(tǒng)。它非常適合開發(fā)高端物聯(lián)網(wǎng)終端,廣告多媒體終端,智能家居,高端監(jiān)控系統(tǒng),游戲機控制板等設(shè)備。本次設(shè)計其運行的是Android2.3操作系統(tǒng)。</p><p> 圖6 GEC210開發(fā)板</p><p><b> 硬件配置</b></p>
74、<p><b> CPU處理器</b></p><p> SamsungS5PV210,基于CortexTM-A8,運行主頻1GHz</p><p> 內(nèi)置PowerVRSGX540高性能圖形引擎,支持流暢的2D/3D圖形加速</p><p> 最高可支持1080p@30fps硬件解碼視頻流暢播放,格式可為MPEG4,H.
75、263,H.264等</p><p> 最高可支持1080p@30fps硬件編碼(Mpeg-2/VC1)視頻輸出</p><p><b> DDR2RAM內(nèi)存</b></p><p> Size:512MB</p><p> 32bit數(shù)據(jù)總線,單通道</p><p> 運行頻率:200
76、MHz</p><p><b> FLASH存儲</b></p><p> SLCNANDFlash:256MB(標配)/1GB</p><p><b> 軟件支持</b></p><p> gecboot-210</p><p> Android2.3+Linux
77、-2.6.35</p><p> Android4.0(暫提供預(yù)覽版映像文件)</p><p> Linux-2.6.35+Qtopia-2.2.0/Qt-4.4.3/Qt-4.7</p><p> WindowsCE6</p><p><b> 主要功能特性:</b></p><p>
78、 1. 集成USB 2.0 Hub: 擴展出2個USB Host口2. 串口: 4路,其中1路已經(jīng)轉(zhuǎn)換為RS232,并通過DB9座引出(COM0),同時通過4pin的排針將其他3路引出, 3. 中斷式按鍵: 8個,分別定義不同的功能 4. RJ45網(wǎng)口: 網(wǎng)卡采用DM9000AEP,10/100M自適應(yīng) 5. 音頻輸入與輸出: 采用WM8960專業(yè)音頻芯片,在板麥克風,內(nèi)含Class D功放,并支持
79、HDMI音頻和視頻同步輸出 (1080P)</p><p> 6.VGA輸出, 1600x1200 @ 100HZ</p><p> 7. USB Slave: 1路,符合USB 2.0規(guī)范 8. 紅外接收頭:1個 9. ADC輸入:其中AIN0連接了在板可掉電阻,用于測試 10. 蜂鳴器:1路,由PWM0控制 11. EEPROM: A
80、T24C08(256 Byte),用于I2C測試 12. LCD接口:2個LCD接口,均為40 Pin 0.5mm間距貼片座, 13. SDIO接口:用于連接SD WiFi模塊等 14. CMOS Camera: 用于連接CMOS攝像頭 15. RTC時鐘:帶備份電池 16. PCB層數(shù):2 17. PCB尺寸:180 x 130mm,可方便固定各種LCD模塊,尤其
81、是7寸LCD模塊 18. 供電:DC-5V</p><p> 3.3 藍牙HC-06模塊的簡介</p><p> 本次設(shè)計采用民用級藍牙模塊HC-06,它通過UART連接到GEC210底板上與S5PV210進行通信。</p><p> 圖7 藍牙HC-06</p><p><b> 圖8 模塊原理圖</
82、b></p><p> 3.3.1 HC-06模塊特征</p><p><b> 1、無線收發(fā)</b></p><p> Ø 靈敏度(誤碼率)達到 -80dBm</p><p> Ø -4 -> 6dBm 功率可調(diào)輸出</p><p> 2、性能概要 完整
83、的藍牙解決方案</p><p> Ø 藍牙2.0 帶EDR, 2Mbps-3Mbps 調(diào)制度</p><p> Ø 內(nèi)置 2.4GHz 天線, 用戶無需調(diào)試天線</p><p> Ø 外置 8Mbit FLASH</p><p> Ø 低電壓3.3V 工作(3.1V~4.2V)配對時30~40M
84、A 波動,配對完畢通信8MA</p><p> Ø 可選PIO 控制</p><p> Ø 標準HCI 端口(UART or USB)</p><p> Ø USB 協(xié)議: Full Speed USB1.1, Compliant With 2.0</p><p> Ø 模塊可以作為SMD 貼片
85、工藝</p><p><b> Ø RoHS 制程</b></p><p><b> Ø 引腳半孔工藝</b></p><p> Ø 數(shù)字2.4GHz 無線收發(fā)射</p><p> Ø CSR BC04 藍牙芯片技術(shù)</p><p&
86、gt;<b> Ø 自適應(yīng)跳頻技術(shù)</b></p><p> Ø 體積小,(27mm×13mm×2mm)</p><p> Ø 簡單的外圍設(shè)計電路</p><p> Ø 藍牙Class 2 功率級別</p><p> Ø 存儲溫度:-40 至
87、+85 度,工作溫度:-25 至+75 度</p><p> Ø 協(xié)波干擾:2.4MHz,發(fā)射功率 3 dBm</p><p> Ø 誤碼率:0,但會在傳輸鏈路產(chǎn)生信號衰變,才有誤碼,如RS232 和TTL 線路處理線路</p><p><b> 中</b></p><p><b>
88、 3、低功耗</b></p><p> 4、高性能無線收發(fā)系統(tǒng)</p><p><b> 5、低成本</b></p><p><b> 6、應(yīng)用領(lǐng)域</b></p><p><b> Ø 藍牙車載免提</b></p><p>
89、;<b> Ø 藍牙GPS</b></p><p> Ø 藍牙PCMCIA , USB Dongle</p><p><b> Ø 藍牙數(shù)據(jù)傳送</b></p><p><b> 7、軟件</b></p><p><b>
90、216; CSR</b></p><p> 3.3.2 AT 指令集 (對藍牙模塊進行測試)</p><p> 進入AT 指令的方法:給模塊上電,不配對的情況下,就是AT 模式了。指令間隔1S 左右。</p><p> 出廠參數(shù):波特率9600N81,名字linvor,密碼1234</p><p><b> 1、
91、測試通訊</b></p><p> 發(fā)送:AT(返回OK,一秒左右發(fā)一次)</p><p><b> 返回:OK</b></p><p> 2、改藍牙串口通訊波特率</p><p> 發(fā)送:AT+BAUD1</p><p><b> 返回:OK1200</b&
92、gt;</p><p> 發(fā)送:AT+BAUD2</p><p><b> 返回:OK2400</b></p><p><b> ……</b></p><p> 1---------1200</p><p> 2---------2400</p>&l
93、t;p> 3---------4800</p><p> 4---------9600(默認就是這個設(shè)置)</p><p> 5---------19200</p><p> 6---------38400</p><p> 7---------57600</p><p> 8---------115
94、200</p><p> 9---------230400</p><p> A---------460800</p><p> B---------921600</p><p> C---------1382400</p><p> Ø 設(shè)置超過115200 后用電腦無法使用,要用單片機編程于高于
95、115200 才能使用此波特</p><p> 率和重新發(fā)AT 命令設(shè)低波特率</p><p> Ø 用AT 命令設(shè)好波特率后,下次上電使用不需再設(shè),可以掉電保存波特率。</p><p><b> 3、改藍牙名稱</b></p><p> 發(fā)送:AT+NAMEname</p><p&
96、gt;<b> 返回:OKname</b></p><p> 參數(shù)name:所要設(shè)置的當前名稱,即藍牙被搜索到的名稱。20 個字符以內(nèi)。</p><p> 例:發(fā)送AT+NAMEbill_gates</p><p><b> 返回OKname</b></p><p> 這時藍牙名稱改為bi
97、ll_gates</p><p> 參數(shù)可以掉電保存,只需修改一次。PDA 端刷新服務(wù)可以看到更改后的藍牙名稱,名字</p><p> 不可超過20 個字符。</p><p><b> 4、改藍牙配對密碼</b></p><p> 發(fā)送:AT+PINxxxx</p><p> 返回:OK
98、setpin</p><p> 參數(shù)xxxx:所要設(shè)置的配對密碼,4 個數(shù)字,此命令可用于從機或主機。從機是適配器或手</p><p> 機彈出要求輸入配對密碼窗口時,手工輸入此參數(shù)就可以連接從機。主藍牙模塊搜索從機后,</p><p> 如果密碼正確,則會自動配對,主模塊除了可以連接配對從模塊外,其他產(chǎn)品包含從模塊的</p><p>
99、 時候也可以連接配對,比如含藍牙的數(shù)碼相機,藍牙GPS,藍牙串口打印機,等等,特別地,</p><p> 藍牙GPS 為典型例子</p><p> 例:發(fā)送:AT+PIN8888</p><p> 返回:OKsetpin</p><p> 這時藍牙配對密碼改為8888,模塊在出廠時的默認配對密碼是1234。</p>&
100、lt;p> 參數(shù)可以掉電保存,只需修改一次。</p><p> 5、無校驗設(shè)置指令:(V1.5 版后支持)</p><p> AT+PN(默認就是這個設(shè)置)</p><p> 6、偶校驗設(shè)置指令:(V1.5 版后支持)</p><p><b> AT+PE</b></p><p>
101、 7、奇校驗設(shè)置指令:(V1.5 版后支持)</p><p><b> AT+PO</b></p><p> 8、獲取AT 指令版本命令:AT+VERSION</p><p> 返回LinvorV1.n 則為正品</p><p><b> 4 系統(tǒng)軟件的設(shè)計</b></p>
102、<p> 4.1 相關(guān)軟件編程技術(shù)</p><p> 4.1.1 嵌入式C編程</p><p> Windows平臺下的普通C語言編程跟Linux平臺下的嵌入式C語言編程幾乎沒什么不同。主要差別只是在于編譯器、API等開發(fā)工具的不同。但是,在嵌入式C編程的世界里,如果要編寫出嵌入式驅(qū)動程序,僅僅是熟悉C語言是遠遠不夠的,還得精通嵌入式芯片工作原理(寄存器設(shè)定等),操作系統(tǒng)
103、原理(存儲空間分配等),除此之外,還需要了解基本的數(shù)模電的電路知識等硬件知識??梢?,嵌入式C編程比普通的C編程難度大多了。4.1.2 安卓JAVA編程</p><p> JAVA語言是典型的面向?qū)ο蟮恼Z言。面向?qū)ο蟮某绦蛟O(shè)計語言必須有描述對象及其相互之間關(guān)系的語言成分。這些程序設(shè)計語言可以歸納為以下幾類:系統(tǒng)中一切皆為對象;對象是屬性及其操作的封裝體;對象可按其性質(zhì)劃分為類,對象成為類的實例;實例關(guān)系和繼承關(guān)
104、系是對象之間的靜態(tài)關(guān)系;消息傳遞是對象之間動態(tài)聯(lián)系的唯一形式,也是計算的唯一形式;方法是消息的序列。本次設(shè)計我們的android應(yīng)用程序用的是java語言,因此必須得對面向?qū)ο笏枷胗袀€深刻的認識。</p><p> 4.2 系統(tǒng)底層軟件的設(shè)計</p><p> 本系統(tǒng)的底層軟件指LED燈的驅(qū)動程序,測試程序以及UART串口的初始化程序,這些程序的編寫都是在ubuntu環(huán)境下用vi編輯器
105、編寫的。</p><p> 4.2.1 LED燈驅(qū)動程序設(shè)計</p><p> 我們知道,要寫出硬件的驅(qū)動程序,除了擁有必要的軟件編程能力之外,必須得熟悉硬件的工作原理。此驅(qū)動程序的源文件名為:led_drv.c</p><p> 我們先查看LED燈的電路原理圖,通過查看GEC210開發(fā)板核心版的schematic,可知原理圖如下:</p>&l
106、t;p> 圖9 LED燈的電路原理圖</p><p> 由圖可知,核心版上的4個led燈是與處理器的GPJ2_X引腳連接,根據(jù)二極管的工作原理,VDD_REG1_IO端為高電平,則只要把GPJ2_X端設(shè)置為低電平,led燈就會被點亮。</p><p> 再查此原理圖,可知GPJ2_X引腳與處理器的連接如下:</p><p> 圖10 GPJ2_X引腳
107、與處理器的連接</p><p> 此時則可知道要控制led的亮滅先執(zhí)行兩個步驟,第一:把管理GPJ2_X的控制寄存器GPJ2_CON相應(yīng)位設(shè)置為輸出模式,第二:把數(shù)據(jù)寄存器GPJ2DAT設(shè)置為輸出低電平。</p><p> 此驅(qū)動程序的源文件名為:led_drv.c(具體內(nèi)容請見附錄)</p><p> led_drv.c核心代碼如下:</p>
108、<p> 1、驅(qū)動模塊加載函數(shù):</p><p> static int __init gec210_led_dev_init(void) {</p><p><b> int ret;</b></p><p><b> int i;</b></p><p> for (i =
109、0; i < LED_NUM; i++) {</p><p> ret = gpio_request(led_gpios[i], "LED");//申請LED燈的I/O口</p><p> s3c_gpio_cfgpin(led_gpios[i], S3C_GPIO_OUTPUT);</p><p> gpio_set_value(l
110、ed_gpios[i], 1);</p><p><b> }</b></p><p> ret = misc_register(&gec210_led_dev); //注冊雜項設(shè)備</p><p> printk(DEVICE_NAME"\tinitialized\n");</p><p&
111、gt; return ret;</p><p><b> }</b></p><p> 2、驅(qū)動模塊卸載函數(shù):</p><p> static void __exit gec210_led_dev_exit(void) {</p><p><b> int i;</b></p>
112、<p> for (i = 0; i < LED_NUM; i++) {</p><p> gpio_free(led_gpios[i]); //釋放I/O口</p><p><b> }</b></p><p> misc_deregister(&gec210_led_dev);//卸載雜項設(shè)備</p
113、><p><b> }</b></p><p> 3、定義ioctl函數(shù)</p><p> static long gec210_leds_ioctl(struct file *filp, unsigned int cmd,</p><p> unsigned long arg)</p><p&g
114、t;<b> {</b></p><p> printk("_IOC_NR(cmd)=%d arg=%d\n",_IOC_NR(cmd),(int)arg);</p><p> if( _IOC_TYPE(cmd) != LED_MAGIC )</p><p> return -EINVAL;</p>
115、<p> if( _IOC_NR(cmd) > MAX_NR ) </p><p> return -EINVAL;</p><p> switch( cmd ) {</p><p> case LED1: //設(shè)置LED1 的開或者關(guān)</p><p> gpio_set_value(led_gpios[_IOC_
116、NR(cmd)],arg);</p><p> printk("led 1\n");</p><p><b> break;</b></p><p> case LED2: //設(shè)置LED2 的開或者關(guān)</p><p> gpio_set_value(led_gpios[_IOC_NR(cm
117、d)],arg);</p><p> printk("led2\n");</p><p><b> break;</b></p><p> case LED3: //設(shè)置LED3 的開或者關(guān)</p><p> gpio_set_value(led_gpios[_IOC_NR(cmd)],ar
118、g);</p><p> printk("led3\n");</p><p><b> break;</b></p><p> case LED4: //設(shè)置LED4 的開或者關(guān)</p><p> gpio_set_value(led_gpios[_IOC_NR(cmd)],arg);<
119、;/p><p> printk("led4\n");</p><p><b> break;</b></p><p><b> default:</b></p><p> printk("default\n");</p><p>
120、 return -EINVAL;</p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p><p> //把自定義的ioctl函數(shù)賦值給file_operations </p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于-安卓控制的智能無線開關(guān)
- 基于安卓手機藍牙控制的智能小車設(shè)計
- 基于安卓手機藍牙控制的智能小車設(shè)計
- 基于安卓的智能家居遠程控制系統(tǒng).pdf
- 畢業(yè)設(shè)計(論文)基于安卓手機藍牙控制的智能小車設(shè)計
- 基于安卓智能手機的智能車設(shè)計.pdf
- 基于安卓智能家居App控制系統(tǒng)及用戶行為研究.pdf
- 基于安卓系統(tǒng)聯(lián)網(wǎng)智能車的設(shè)計和研究.pdf
- 基于安卓平臺可靠傳輸?shù)闹悄芗揖酉到y(tǒng).pdf
- 基于智能電視的安卓分享器的設(shè)計與實現(xiàn).pdf
- 基于單片機的wifi智能無線開關(guān)
- 購買安卓智能手機的前提
- 基于安卓系統(tǒng)的漢語智能聊天機器人.pdf
- 基于安卓的無線傳感溫室監(jiān)控系統(tǒng)的研究與應(yīng)用.pdf
- 面向智能家統(tǒng)居的安卓控制系設(shè)計與實現(xiàn).pdf
- 電力開關(guān)柜無線智能控制器.pdf
- 基于安卓的智能家居網(wǎng)關(guān)的設(shè)計與研究.pdf
- 基于安卓與ZigBee技術(shù)的室內(nèi)智能家居系統(tǒng)設(shè)計.pdf
- 基于安卓系統(tǒng)的手機視頻智能軟件設(shè)計與實現(xiàn).pdf
- 2014年安卓外文翻譯--安卓智能手機上的whatsapp messenger程序的取證分析
評論
0/150
提交評論