基于ARM CONTEX A8的智能家居系統設計_第1頁
基于ARM CONTEX A8的智能家居系統設計_第2頁
基于ARM CONTEX A8的智能家居系統設計_第3頁
基于ARM CONTEX A8的智能家居系統設計_第4頁
基于ARM CONTEX A8的智能家居系統設計_第5頁
已閱讀5頁,還剩45頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、濟南大學泉城學院畢業設計濟南大學畢 業 設 計題 目 基于ARM Contex A8 智能家居系統設計 學 院 工學院 專 業 電氣工程及其自動化 班 級 學 生 學 號 指導教師 二一 六 年 五 月 二十 日- 2 -濟南大學畢業設計摘 要隨著“物聯網”的發展,智能家居近年來成為家電企業研究和轉型的熱點。智能家居對當前的發展形式難以適應,同時智能家居技術在我國處于起步階段,許多技術標準都未標準化,因此加強智能家居應用層方面的研究,通過選取合適的芯片和技術,提出合理的設計方案,組建一種符合我國市場的、具有自主知識產權的智能家居系統己成為當前智能家居研究領域中極富經濟價值和科技價值的課題。該項

2、目使用ARM cortex-A8芯片是三星一款精典的處理器,它內核運算速度快,體積小,功耗低,可以夠兼容各種復雜的外設,可擴展性高。初步的構建功能,功能人機交互界面。實現了檢測用并顯示浮點的格式當前的室內溫度并用曲線顯示溫度隨時間的變化,還可以查看升級進度實現軟件在線升級,實現音樂播放器,蜂鳴器,開關LED燈和實現動態界面的顯示和攝像頭采集視頻的顯示,移植了游戲和計算器供用戶娛樂。本設計基于S5PV210芯片,采用嵌入式linux系統開發,模擬了一套功能齊全,用戶體驗度高的智能家居系統。關鍵詞:智能家居;嵌入式開發;S5PV210ABSTRACTWith the devel

3、opment of Internet of things, smart home has become a hot research and transformation of household electrical appliance enterprises in recent years. Intelligent home of the

4、60;current form of development difficult to adapt to,and smart home technology in our country in the initial stage, many of the technical standards are not standardized. 

5、Therefore, strengthening the study of intelligent home application layer, by selecting the appropriate chip and technology,put forward the reasonable design, established one kind to

6、0;conform to our country market, with independent intellectual property rights of the smart home system has become the current topic of smart home in the research field&#

7、160;of highly economic value and the value of technology.The project use the ARM cortex-A8 chip processor is a classic of Samsung, its kernel computing speed, small volum

8、e,low power consumption, can enough compatible peripherals of avariety of complex, high scalability. Preliminary build function, function man-machine interaction interface. The detection and

9、 display the current the floating-point format, the indoortemperature and curvedisplay temperature changes with time, youcan also check the progress of your upgrade the software

10、60;online upgrade, realizing that the music player, buzzer, switchLED lights andrealize dynamic interface display and camera production video display, Transplant Games and calculator fo

11、r recreational users.This design based on S5PV210 chip, using embedded Linux system development, simulation of a set of complete functions, the user experience a high degree&#

12、160;of intelligent home system. Keywords:intelligent home; embedded developmentsensor; S5PV210目 錄摘 要IABSTRACTII1 前 言11.1智能家居研究背景及意義11.2國內外發展現狀11.3課題研究的內容21.4嵌入式系統的特點32 系統的總體方案設計42.1 系統設計思路42.2 系統方案設計42.3 項目實現功能53 基于S5PV210的智能家居系統硬件設計63.1 芯片的選型63.1.1 SPV210的功能特點73.1.2 AR

13、M CONTEX A8開發板的配置73.1.3智能家居項目硬件配置83.2 DS18B20溫度傳感器的工作原理及結構圖83.3 LED原理和電路圖93.4 TFT觸摸屏原理和電路93.5 報警電路103.5.1蜂鳴器報警的原理103.5.2蜂鳴器報警電路圖113.5.3開發板音頻部分原理圖114 系統環境搭建124.1 搭建嵌入式linux系統環境124.2編譯器124.3 嵌入式linux軟件組成部分及其功能134.3.1 bootloader作用134.3.2 UBOOT移植134.3.3 linux內核組成144.3.4內核移植144.3.5根文件系統rootfs作用144.3.6根文件

14、系統制作144.4.Tslib移植164.4.1.tslib作用164.4.2.tslib移植164.5 QT移植174.5.1QT介紹174.5.2安裝中文字體庫174.5.3 QT界面制作175 基于CONTEX A8智能家居軟件設計195.1通過界面實現開關燈195.2實現DS18B20的溫度顯示195.2.1編寫DS18B20設備驅動程序195.2.2編寫硬件操作庫函數205.2.3編寫ehome圖形界面軟件,添加溫度顯示205.3 在線升級205.3.1升級方案215.3.2 TPAD的linux系統識別U盤215.3.3 TPAD在linux系統擦和寫Nand215.3.4 升級z

15、Image215.4.ehome添加MP3播放器功能225.5 附加功能226 系統的調試與測試236.1 集成測試簡介236.2 硬件和軟件測試246.2.1環境搭建測試246.2.2 tslib測試246.2.3 QT測試246.2.4測試LED燈驅動和硬件操作庫246.2.5溫度傳感器測試256.2.6在線升級功能測試256.3 智能家居文件的編譯267 總結與展望27參考文獻28致 謝29附錄一 主界面程序30附錄二 在線升級代碼32附錄三 音樂播放器程序33附錄四 溫度曲線和顯示程序35附錄五 主控制芯片S5PV210的外接方式電路圖44附錄六 主控芯片S5PV210硬件電路圖45-

16、 44 -1 前 言1.1智能家居研究背景及意義21世紀經濟快速發展,計算機技術更是取得了驚人的發展速度,科學技術也越來越多地影響著人們的生活,人們對自己的衣、食、住、行,提出了更高的要求6。智能化于是就成了出現頻率最高的詞匯,像智慧城市、智能汽車、智能景區,智能控制,智能交通等等,都體現出人類對智能化生活的迫切追求。家庭是社會的細胞,唯有家庭實現了信息化,才能真正實現社會的信息化,研究開發智能家居系統是實現室內信息化的必要過程6。“智能家居”這樣一個更加貼切人們生活的詞匯最早的時候是在西方康捏狄克州被提出來,隨后對智能家居項目投入拉開了序幕,智能家居系統成了科技進步的最大受益者之一1。現在特

17、別是消費電子類產品智能化發展,嵌入式控制器件基本上應用于了生活的方方面面,比如收音機、智能手機、小區電梯、汽車電子、數字電視、工業控制、數碼相機、空調、交換機、路由器、衛星、航空航天、月球探測儀、智能監控、醫療器械,嵌入式的重要作用越突顯出來。近年來隨著“物聯網”的發展,物聯網技術的成熟和智能移動人機交互終端的普及,使得智能家居行業獲得了長足的發展,達到了前所未有的程度12。隨著智能家居技術的日益成熟、制造成本逐漸降低、用戶功能的人性化,使得智能家居“飛入尋常百姓家”,而不再是原來的高處不勝寒。最近幾年,隨著信息通信和計算機的發展,智能家居控制系統在房地產領域得到了一定程度的推廣,智能家居作為

18、一個智能化和物聯化的新型領域,對現在家居安防和家居智能化的管理具有很重要的價值16。1.2國內外發展現狀 由于芯片朝著體積更小、運算更快、功耗更低的方向發展,所以越來越多的智能化芯片被運用到日常電子商品里,而且可以添加更多的外設和更好的功能。比如,諾基亞1050手機只能打電話,發個信息,而iphone手機可以打電話,發信息,WIFI,BT,TP等,軟件隨著硬件的改變而改變。不同的產品,它們的功能不一樣,可靠性也不一樣,成本不一樣,體積和功耗都,有可能不一樣,但是本質同樣的東西都會滿足。根據不同用戶的需求,諾基亞1050:功能單一,可靠性高,成本低,體積小,功耗小,而iphone手機功能強大,可

19、靠性差,成本高,體積大,功耗高。可以得出結論,將來做產品可以做低端和高端,像智能家居就屬于滿足用戶需求的高端產品,然而高端行業會出現后勁不足。同時,盡管大量與智能家居有關的技術逐漸興起,而當前智能家居系統還并未發展成熟,存在諸多問題,如布線繁雜、不美觀、功耗大、對互聯網的依賴性強。到目前國內的研究還沒有建立一個完整的智能家居理論體系,對智能家居的理解也存在著各種的差異;當前國內的智能家居產品大都功能貧乏,系統設計不規范、可擴展性差,對當前的發展形式難以適應,同時智能家居技術在我國處于起步階段,許多技術標準都未標準化,還有很多工作需要做。因此加強智能家居應用層方面的研究,通過選取合適的芯片和技術

20、,提出合理的設計方案,組建一種符合我國市場的、具有自主知識產權的智能家居系統己成為當前智能家居研究領域中極富經濟價值和科技價值的課題5。如果對國內外智能家居系統的深入研究,針對國內現狀,本系統的設計和使用,如果得到廣泛的應用,可以極大地提高人們的生活質量,真正的實現住宅智能化,這也為將為推動中國物聯網的發展起到一定推動作用。如圖1.1所示,物聯網智能家居的體現,體現了萬物互聯的主題。圖1.1 物聯網的智能家居1.3課題研究的內容本次智能家居項目使用了韓國三星公司研發的S5PV210芯片,它的內核cortex-A8 是ARM處理器最高級系列中的芯片,而且開發板接口資源豐富,搭載了相當豐富的外設串

21、口供開發者使用。雖然離現實的成熟的智能家居系統無論是功能上,還是制作上都存在一定差距,但是初步體現出智能家居的思想,達到展示的效果,并且體現一定的實用價值7。結合國內外現有的相關研究成果及現有的成熟技術,項目安排的主要內容有:一、前言。簡要介紹了智能家居課題的研究背景及意義、研究內容、國內外發展和現狀、嵌入式系統的特點和課題所要達到技術要求以及功能的實現方法。二、系統整體方案設計及相關技術。主要包括智能家居系統的設計思路,設計方案和系統實現功能。三、 智能家居系統硬件設計。這部分內容主要包括系統主要芯片結構、各模塊的功能介紹和各模塊硬件電路圖等。4、 系統環境搭建。主要包括系統的UBOOT燒寫

22、,內核移植,根文件系統制作,tslib移植,QT移植和校正。5、 智能家居系統軟件設計。軟件設計部分包括系統通過界面實現開關燈,實現溫度顯示,在線升級,音樂播放器。6、 系統的調試與測試。這部分內容主要包括測試簡介,軟件測試和硬件測試。1.4嵌入式系統的特點嵌入式系統的核心是嵌入式計算機系統,它分為系統硬件層、系統軟件層,應用軟件層和中間層。嵌入式系統是以用戶需求為中心,并且軟、硬件均可裁剪的但必須具備最小系統要求,軟硬件為可以根據用戶的需求而裁剪8。可以接受嵌入式計算機系統發出的控制命令的可以執行裝置又被叫做被控對象,由它來它執行所規定的操作或任務。執行裝置功能可以很簡單,如MP3上的按鈕鍵

23、,可以上下左右切換歌曲;也可以功能很復雜,如谷歌眼鏡,上面集成了多種傳感器和各種微型機器,從而可以執行各種復雜的機器動作并感受各種外界的狀態信息。具有極佳的運算處理性能、極低的功耗、極其豐富的外設接口,并且具有防復制保護,使得智能家居可以應用到很多場合。(1) 可裁剪性強。可以根據功能要求,裁剪設備功能。(2) 實時性好。實時性一般較好,在各種設備控制中可以應用。(3) 接口統一。提供統一的設備驅動接口。(4) 操作方便、提供良好人機交互界面,容易學會。提供強大的網絡功能,支持TCP/IP等各種協議,提供各種協議支持及統一的MAC訪問層的訪問接口,為各種計算設備預留接口。(5) 強穩定性,弱交

24、互性。嵌入式操作系統的用戶接口一般不提供操作命令,它通過系統的調用命令向用戶程序提供服務。(6) 固化代碼。在嵌入式系統中,嵌入式操作系統和應用軟件被固化在嵌入式系統計算機的NAND上。(7) 很好的硬件適應性,具有良好的移植功能。(8) 嵌入式系統會和具體需求有機地結合在一起,嵌入式的升級更新也是和具體產品同步進行,具有較長的生命周期。2 系統的總體方案設計2.1 系統設計思路基于contex A8的智能家居系統設計思路是:當人在室內時,增加用戶體驗,可以操作一塊室內控制器的觸屏來控制室內的器件,進行人機交互的控制。實現了檢測用并顯示浮點的格式當前的室內溫度并用曲線顯示溫度隨時間的變化,還可

25、以查看升級進度實現新版本軟件的在線升級,實現音樂播放器,蜂鳴器,開關LED燈,視屏監控和實現動態界面的顯示和攝像頭采集視頻的顯示,移植了游戲和輔助功能的計算器,供用戶娛樂這樣一來,用戶可以實現操作觸摸屏,就能做自己想做的事。本設計基于S5PV210芯片,采用嵌入式linux系統開發,模擬了一套功能齊全,用戶體驗度高和可擴展性強的智能家居系統9。如圖2.1所示,本次采用的開發板全景圖,中間內含有處理器S5PV210芯片。圖2.1 ARM CONTEX A8開發板2.2 系統方案設計基于contex A8的智能家居系統設計目的是設計出一種用戶體驗良好,功能齊全,實現人與室內和諧的氛圍。要求設計的操

26、作QT界面進行操作實現觸屏式操作。綜合電路各模塊設計、環境搭建,軟件設計、系統的可靠性以及可擴展性等各方面的考慮與分析,最終決定該系統將選用三星S5PV210熱釋電紅外傳感器進行人體紅外信號采集,然后通過S5PV210芯片處理之后傳給外設作出一系列相應的操作,例如控制mp3和蜂鳴器的開與關,并且采用LCD液晶顯示屏將時間顯示出來。經過資料的查詢以及各方面的綜合考慮、分析、研究和比較,認為該方案的設計能夠很好得完成該系統所要實現的一系列功能,該系統的總體方案設計框圖如圖2.2所示。圖2.2 系統的設計框圖2.3 項目實現功能結合最初設定的基本功能,以及現在所掌握的知識能力,初步的構建功能。功能人

27、機交互界面如圖2.3所示。(1)實時檢測當前的室內溫度,并用曲線顯示溫度隨時間的變化,每隔1s刷新一次,同時用浮點的格式顯示出來溫度的值,單位攝氏度。(2)實現軟件在線升級,也能查看升級進度。(3)實現音樂播放器功能,上一首,下一首,暫停和播放音樂。(4)可以通過操作界面點響蜂鳴器,或者用蜂鳴器作為報警聲。(5)可以開關LED燈和切換界面,模擬室內控制電燈。(6)實現動態界面的顯示和攝像頭采集視頻的顯示。(7)能夠在業余時間玩一些游戲(2048和貪吃蛇),還有一些輔助功能,如計算器,登陸界面,日歷,圖片查看器等。圖2.3 智能家居功能人機交互界面3 基于S5PV210的智能家居系統硬件設計3.

28、1 芯片的選型結合現實生活中的實際需要,以及現在人們對嵌入式的理解,最終定下功能目標主要分為四大部分:嵌入式以用戶需求為中心(產品要滿足和符合用戶的需求),用戶需求不同,最終造成產品硬件不同,產品的硬件不同,硬件可裁剪,本質還是用戶需求。三星S5PV210核心板的三大件:CPU,閃存K9K8G08U0B(8G小b),內存K4T1G084QF(1G大B) 。三星S5PV210具有可擴展性能強,可以為將來軟件升級提供充分的資源,而STC89C52等單片機就不能提供高清視頻輸出,視頻播放,視頻采集等功能4。如圖3.1所示,S5PV210處理器芯片。圖3.1 S5PV210處理器芯片3.1.1 SPV

29、210的功能特點S5PV210包含很多強大的硬件編解碼功能,內建MFC(Multi Format Codec),支持MPEG-1/2/4,H.263,H.264等格式視頻的編解碼,支持模擬/數字TV輸出。JPEG硬件編解碼,最大支持8000x8000分辨率,支持2D/3D圖形加速,其多邊生成率為2800萬多邊形/秒,像素填充率可達2.5億/秒,可支持DX9,OpenGL2.0等PC級別的顯示技術,在3D和多媒體方面比以往大幅提升。可以錄制高質量的視頻文件,支持30幀每秒的19201080像素的視屏文件,支持HDMIv1.3高清顯示。具有總共五種定時器功能:接通延時型定時器,保持型接通延時定時器

30、,脈沖型定時器,斷開延時型定時器和擴張型脈沖定時器。系統構架:圖3.2 系統構架圖3.1.2 ARM CONTEX A8開發板的配置核心板的底板:外圍接口;網卡;USB口(4大1小):連接USB設備;串口(2個,9針串口座);音頻輸入和輸出;視頻輸出口(三個);HDMI(1個);按鍵(8個):人機交互;蜂鳴器(1個):報警;LCD屏接口(LCD屏分辨率800*480);JTAG口;SD卡;撥碼開關;TF卡;SPI接口;攝像頭接口;485接口。3.1.3智能家居項目硬件配置CPU:S5PV210;內存:1G;閃存:SLC 1G Nand;網卡:DM9000,100M;串口:2個,調試和數據通信;

31、USB:4個,外接U盤和移動硬盤;DS18B20:溫度傳感器(單總線接口 1-Wire);HIMD:攝像頭(一個);ADC:模數轉換器,分辨率10位或者12位;獨立式按鍵:8個;LED燈:2個;蜂鳴器:1個;AT24C02:EEPROM存儲器,容量256字節;LCD顯示屏:分辨率800*480;電容觸摸屏:GT811。3.2 DS18B20溫度傳感器的工作原理及結構圖DS18B20的讀寫時序和煙霧傳感器相同,只是得到的溫度值的位數因分辨率不同。 金屬在環境溫度變化時會產生相應的延伸。它的工作流程首先初始化時序,然后寫時序,讀時序,然后將高低位字節傳到寄存器并乘以位轉換精度,得到溫度值,溫度傳感

32、器可以用不同的方式來對這種情況進行轉換。以讀取DS18B20檢測的溫度值為例,它的具體具體的操作流程: (1)CPU發送初始化信號 (2)CPU發送SKIP ROM命令0xCC (3)CPU發送CONVERTT溫度轉換命令0x44,溫度轉換以后,二進制溫度值保存 在byte0和byte1中 (4)CPU發送初始化信號 (5)CPU發送SKIP ROM命令0xCC (6)CPU發送READ RAM命令0xBE (7)CPU讀取byte0和CPU讀取byte1 (8)CPU發送初始化信號 (9)實際溫度值=(byte1 << 8 | byte0)*625 (10)應用程序要將實際溫度值

33、/10000DS18B20測溫傳感器電路如圖3.3所示,讀寫時序圖如圖3.4所示。圖3.3 傳感器電路圖 圖3.4 讀寫時序圖3.3 LED原理和電路圖LED發光二極管是利用通電時正向導通反向截止的辦法來實現燈的開與關。用LED來模擬智能家居中室內電燈,通過觸摸屏幕上面的開關按鍵可以實現開關燈。開發板LED的原理圖如圖3.5所示。 圖3.5 LED電路圖3.4 TFT觸摸屏原理和電路我們來探討LCD運作原理。LCD本身是不發光的,顯示屏兩邊沒有作為發光的燈管,同時在顯示屏背面有一塊由熒光物質組成的背光板和反光膜,其主要作用是提供背景光源,液晶層中的細小水晶被包含在細小的單元格中;然后用電路控制

34、哪些地方亮與不亮,液晶材料相當于一個小小的光閥,控制光的通過與不通過。液晶顯示屏通過DVI接口來接受數字信號,這些信號通過數據線來控制電路,由電路來調節顯示器的晶體管和透明電板,從而控制液晶的通光與否,這就是論文里使用的TFT屏幕的原理,如圖3.6是TFT屏幕的電路圖和圖3.7視頻模塊。圖3.6 TFT觸屏模塊圖3.7 視屏播放器電路模塊3.5 報警電路3.5.1蜂鳴器報警的原理蜂鳴器為發生元件,可分為有源蜂鳴器和無源蜂鳴器,這里所說的“源”是震蕩源,無源蜂鳴器的內部是沒有震蕩源的,有源蜂鳴器其內部帶有震蕩源,它的程序控制時比較的方便,只要通電蜂鳴器就會鳴叫。如果使用時直流信號無法使蜂鳴器鳴叫

35、,那么就要用2-5K的方波來驅動。鑒于蜂鳴器工作電流較大,在一般情況下使用三極管就可以來放大電流,使得嵌入式的I/O口無法直接驅動蜂鳴器,此時便要使用放大電路來驅動。蜂鳴器的驅動電路一般情況下包含有一個三極管,一個電源濾波電容,一個蜂鳴器和一個續流二極管。3.5.2蜂鳴器報警電路圖該系統采用蜂鳴器作為該系統的報警模塊,在淋浴時當溫度高于溫度閥值應范圍30攝氏度時,此時蜂鳴器響應單片機進行報警,低于這個溫度值蜂鳴器也將停止報警。蜂鳴器的報警原理是比較簡單,實現了報警的功能,蜂鳴器的電路如圖3.8所示。圖3.8 蜂鳴器電路圖3.5.3開發板音頻部分原理圖在點擊一首歌曲時,CPU就會發送一個信號給存

36、儲器,然后磁頭受到信號就搜索磁道上的信息,然后把音樂的文件數據從磁信號變成電信號在傳送到內存條再傳送到CPU上,經過處理器的計算,再分配到喇叭輸出接口,音頻部分電路圖如圖3.9所示,實現音樂播放器的上下音量控制,左右曲目控制。圖3.9 開發板音頻電路4 系統環境搭建4.1 搭建嵌入式linux系統環境安裝純linux系統,然后給linux系統安裝,使用本地安裝或網絡安裝純linux軟件,安裝包名為sudo apt-get install。(1) 安裝和配置vim:sudo apt-get install vim,拷貝目錄和配置插件/home/tarena/.vimrc(2) 安裝串口終端工具:

37、sudo apt-get install kermit(3) 遠程登錄軟件:sudo apt-get install openssh-server,并重啟sudo /etc/init.d/ssh restart(4) Tftp網絡服務安裝:sudo apt-get install tftpd-hpa,配置tftpd-hpa時關閉WIFI,并且sudo /etc/init.d/nfs-kernel-service restart(5) 配置nfs相關服務:sudo apt-get install nfs-kernel-server /nfs 配置網絡服務sudo /etc/init.d/nfs-

38、kernel-server restart(6) 源碼閱讀工具安裝:sudo apt-get install ctags/cscope windows:源碼閱讀工具sourceinsight,linux編輯查看源碼工具ctags的使用進入要查看的源碼根目錄,cd /opt/arm/文件夾名,將所有源碼生成數據庫文件tags: ctags -R * ,ls tags -lh,所在目錄不能改變,找不到tags數據庫:vim main.c ,將光標移動到對應的位置uart_init,夠實現函數或者變量的自動補全:ctrl+n (8) ubuntu 編譯軟件的安裝搜索“ubuntu 編譯軟件”,gcc

39、編譯器軟件安裝:sudo apt-get install gcc,C+編譯軟件安裝:sudo apt-get install g+,自動換行軟件的安裝:sudo apt-get install automake(9)安裝QT圖形界面開發軟件:sudo apt-get install qt相關的安裝包 。(10)掌握sourceinsight軟件操作使用,下載sourceinsight軟件并安裝,啟動sourceinsight軟件,將來拿到代碼,立即用SI創建源碼功能。4.2編譯器采用官方交叉編譯器:編譯器版本:4.4.6,編譯器路徑:/home/tarena/workdir/toolchain

40、/opt/S5PV210-crosstools/4.4.6,設置交叉編譯器環境變量:sudo vim /etc/environment,在“PATH”中添加如下信息:添加之前:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games添加之后:/home/tarena/workdir/toolchains/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games啟動交叉編譯器環境變量source /etc/environment

41、,查看是否是4.4.6版本編譯器驗證:arm-linux-gcc v 4.3 嵌入式linux軟件組成部分及其功能嵌入式linux系統是由Bootloader,linux內核(kernel),根文件系統(rootfs)組成 ,uboot啟動加載內核到內存,然后由zImage掛接根文件系統,最后由根文件系統掛用戶可以使用的文件,它的它的啟動過程如圖4.1所示。圖4.1 嵌入式linux系統啟動過程4.3.1 bootloader作用Bootloader的作用是初始化硬件(CPU,DDR,Nand,UART等),將內核加載到內存,給內核傳遞啟動參數和啟動內核6。4.3.2 UBOOT移植采用官方U

42、BOOT源碼,源碼包u-boot_CW210_1.3.4.tar.bz2,源碼存放路徑:/opt/uboot/,源碼操作:解壓源碼:tar xvf u-boot_CW210_1.3.4.tar.bz2。清除源碼配置文件和目標文件:make distclean,配置源碼:make cw210_configmake all,USB燒寫固化u-boot.bin,Linux內核移植17。4.3.3 linux內核組成包括7大子系統(1)進程管理:負責進程的創建,切換,調度,銷毀(2)內存管理: 負責內存的分配,銷毀,映射(3)系統調用:open/read/write/close/fork/sbrk/等

43、(4)網絡協議棧:TCP/IP協議(5)驅動程序:外設的驅動程序(6)文件系統:NTFS,FAT32,EXT4,cramfs,ramdisk,nfs.(7)平臺相關: linux內核支持ARM,POWERPC,MIPS,X86 異常向量表的代碼。4.3.4內核移植源碼包采用官方源碼:Kernel__CW210_for_Linux_v1.0.tar.gz,源碼存放路徑:/opt/kernel,然后Kernel__CW210_for_Linux_v1.0.tar.gz解壓源碼。清除源碼配置文件和目標文件:cd /opt/kernel && make

44、distclean,配置源碼:cp config_CW210_linux_V1.0 .config,保存退出:make menuconfig 并編譯make zImage最后拷貝到tftpboot中:cp arch/arm/boot/zImage /tftpboot/。4.3.5根文件系統rootfs作用rootfs作用是給給用戶提供基本的命令和程序使用的動態庫,常見的動態庫例如:ls/cd/mkdir/cp/.libc.so/libm.so/libstdc+.so/libpthread.so等 4.3.6根文件系統制作采用busybox開源軟件制作busybox,源碼包:busybox-1.

45、21.1.tar.bz2,源碼存放目錄:/opt/busybox/,進行解壓源碼:tar jxvf busybox-1.21.1.tar.bz2,進入cd busybox-1.21.1并配置源碼:make menuconfig,重新定制模塊操作命令:Linux Module Utilities,去掉Simplified modutils (NEW),同時添加insmod,rmmod,lsmod,modprobe,Blacklist support,depmod命令。取出閃存flash操作命令,去掉nandwrite (NEW)和nanddump (NEW),然后保存退出9。修改Makefile

46、文件,vim Makefile:將CROSS_COMPILE=修改為CROSS_COMPILE=arm-linux-,將ARCH=$(SUBARCH)修改為ARCH=arm,最后編譯和安裝 make && make install,默認安裝當前目錄的_install目錄:ls _install用file命令檢查編譯結果busybox可執行文件的屬性:file _install/bin/busybox,打印信息如下:ELF 32-bit LSB executable,ARM, version 1 (SYSV), dynamically linked (uses shared li

47、bs), stripped /紅色字體的內容必須為ARM,進入安裝目錄:cd _install。創建目錄:mkdir dev lib etc/init.dproc syshome mnt var tmp root -p(1)添加系統啟動配置文件,vim etc/inittab時添加如下內容后保存退出。:sysinit:/etc/init.d/rcS:respawn:-/bin/sh:ctrlaltdel:/sbin/reboot:shutdown:/bin/umount -a r(2)添加文件系統配置文件vim etc/fstab然后添加如下內容后保存退出。 proc /proc proc d

48、efaults 0 0 tmpfs /tmp tmpfs defaults 0 0 sysfs /sys sysfs defaults 0 0 tmpfs /dev tmpfs defaults 0 0(3) 添加系統啟動服務配置腳本,vim etc/init.d/rcS 后添加內容如下保存退出。/bin/mount -a,mkdir /dev/pts,mount -t devpts devpts /dev/pts,echo /sbin/mdev > /proc/sys/kernel/hotplug,mdev s。添加完成后,修改rcS文件權限:chmod 777 etc/init.d/

49、rcS并添加 busybox運行時所需動態庫,動態庫添加原則:應用軟件需要哪些動態庫,就添加,不相關不做添加,以便節省閃存空間。應用軟件編譯連接需要的動態庫在交叉編譯器中獲取,動態庫路徑如下:/home/tarena/workdir/toolchains/opt/S5PV210-crosstools/4.4.6/arm-concenwit-linux-gnueabi/lib/拷貝所需動態庫到根文件系統lib目錄。拷貝標準C庫find/home/tarena/workdir/toolchains/opt/S5PV210-crosstools/4.4.6/arm-concenwit-linux-g

50、nueabi/lib/ ( -name "libc-*" -o -name "libc.so*" ) -exec cp -frd lib/ ; 拷貝數學運算庫find home/tarena/workdir/toolchains/opt/S5PV210-crosstools/4.4.6/arm-concenwit-linux-gnueabi/lib/ ( -name "libm-*" -o -name "libm.so*" ) -exec cp -frd lib/ ; 拷貝動態鏈接庫find /home/taren

51、a/workdir/toolchains/opt/S5PV210-crosstools/4.4.6/arm-concenwit-linux-gnueabi/lib/ ( -name "ld-*" ) -exec cp -frd lib/ ; 測試制作好的根文件系統備份原有的根文件系統rootf:mv /opt/rootfs /opt/rootfs_bak,cp _install /opt/rootfs frd 將安裝制作好的根文件系統_install拷貝為/opt/rootfs,注意添加NFS網絡服務的支持:sudo vim /etc/exports 添加如下語句:/opt

52、/rootfs *(rw,sync,no_root_squash),保存退出,這時候重啟網絡服務sudo /etc/init.d/nfs-kernel-server restart.uboot中設置NFS網絡啟動參數:setenv bootargs root=/dev/nfs nfsroot=:/opt/rootfs ip=10::::eth0:on init=/linuxrc console=ttySAC0,115200,保存saveenv。4.4.Tslib移植4.4.1.ts

53、lib作用在采用觸摸屏的移動終端中,觸摸屏性能的調試是個重要問題之一,因為電磁噪聲的緣故,觸摸屏容易存在點擊不準確、有抖動等問題。tslib是一個開源的程序,能夠為觸摸屏驅動獲得的采樣提供諸如濾波、去抖、校準等功能,通常作為觸摸屏驅動的適配層,為上層的應用(例如QT)提供了一個統一的接口3。4.4.2.tslib移植源碼存放目錄:/opt/project/source/,進入源碼目錄:cd /opt/project/source,解壓源碼: tar xvf tslib.tar.gz,cd tslib后執行./autogen.sh 生成配置文件configure執行echo "ac_c

54、v_func_malloc_0_nonnull=yes"> tmp.cache。指定安裝的目錄為/opt/project/tslib目錄執行./configure -host=arm-linux -cache-file=tmp.cache -prefix=/opt/project/tslib 執行make && make install ,編譯安裝后修改tslib的配置文件ts.conf。打開配置文件vim etc/ts.conf,進行如下操作:在“module pthres pmin=1”前一行添加“module_raw input”語句。開發板測試tslib

55、:編譯tslib生成目標文件存放目錄:/opt/rootfs/home/tslib/,mkdir /opt/rootfs/home/tslib/拷貝運行時配置文件cp etc /opt/rootfs/home/tslib/ -frd, 拷貝觸摸屏測試軟件cp bin /opt/rootfs/home/tslib/ -frd,拷貝tslib動態庫文件cp lib /opt/rootfs/home/tslib/ -frd 。連接觸摸屏和開發板,獲取觸摸屏設備文件開發板上執行hexdump /dev/input/event0,然后用手指點擊觸摸屏,看串口終端是否有打印信息,如果沒有,event0不是

56、觸摸屏的設備文件,再執行:hexdump /dev/input/event1,同樣點擊屏幕看是否有打印信息,如果沒有,再次更換設備文件為event2,直到找到觸摸屏的設備文件,例如:hexdump /dev/input/event3,有打印信息,至此觸摸屏的設備文件為/dev/input/event3。添加使用tslib時的環境變量后保存退出:打開后vim /opt/rootfs/etc/profile添加如下內容:export TSLIBDIR=/home/tslib export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0

57、 export TSLIB_TSDEVICE=/dev/input/event3export TSLIB_CALIBFILE=$TSLIBDIR/etc/pointercal export TSLIB_CONFFILE=$TSLIBDIR/etc/ts.conf export TSLIB_PLUGINDIR=$TSLIBDIR/lib/tsexport PATH=/home/tslib/bin:$PATHexport LD_LIBRARY_PATH=/home/tslib/lib:$LD_LIBRARY_PATH4.5 QT移植4.5.1QT介紹QT是對底層圖形界面的應用編程接口,面向對象化的

58、封裝,一套基于C+語言的類庫,堪稱藝術級別的開發工具,同時為用戶和團隊帶來高品質的使用體驗11。QT不局限于用戶圖形界面的開發,系統調用,網絡編程,數據庫編程,2D、3D處理,而且是跨平臺的應用編程框架,支持多中操作系統linux,windows,ios,安卓,MAX OS X等,是人機交互必不可少的開發工具。4.5.2安裝中文字體庫字體庫文件:wqy-zenhei.ttc,刪除QT自帶字體庫:rm /opt/project/qt/lib/fonts/* -fr,安裝中文字體庫:cp wqy-zenhei.ttc /opt/project/qt/lib/fonts/ ,安裝編譯出來的QT庫到跟

59、文件系統/opt/rootfs中,拷貝QT庫cp /opt/project/qt/lib /opt/rootfs/home/qt frd和cp /opt/project/qt/plugins /opt/rootfs/home/qt -frd,最后添加QT運行時的環境變量,打開vim /opt/rootfs/etc/profile, 添加如下內容export QTDIR=/home/qt,Export QWS_MOUSE_PROTO=“Tslib:/dev/input/event3”,export QWS_SIZE=800X480,export QT_QWS_FONTDIR=$QTDIR/lib/fonts,export QT_PLUGIN_PATH=$QTDIR/plugins exportQWS_DISPLAY="LinuxFB:mmWidth180:0"export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH保存退出,重啟開發板,執行env命令,查看環境變量是否生效。添加QT運行時的系統庫find /home/tarena/workdir/toolchains/opt/S5PV210-crosstools/4.4.6/arm-concenwit-linux-g

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論