基于Linux下智能手機的制作與設計_第1頁
基于Linux下智能手機的制作與設計_第2頁
基于Linux下智能手機的制作與設計_第3頁
基于Linux下智能手機的制作與設計_第4頁
基于Linux下智能手機的制作與設計_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、基于 Linux 下智能手機的制作與設計學生姓名:指導教師:所在院系:工程學院電氣工程系ID: A07060348所學專業:農業電氣化與自動化 研究方向:地方電力系統自動化方向Northeast Agriculture University bachelor dissertationLinux based smartphone and under thedesignStudent:Supervison:Department:Engineering collegeSpecialty:Production prosess control automation DirrectionDirrectio

2、n:Local electric power system automationHarbin ChinaJune 2010基于Linux下智能手機的制作與設計 基于Linux下智能手機的制作與設計 摘要隨著現代計算機技術的飛速發展和互聯網技術的廣泛應用,從PC時代過渡到了以個人數字處理、手持個人電腦和信息家電為代表的3C (計算機、通信、消費電子)一體的后PC時代。后PC時代里,32位系統扮演了越來越重要的角色,32為在市場上將逐漸代替8位和16位市場,它將被廣泛應用于信息電器、移動設備、網絡設備和和消費電子等領域當中,移動設備逐漸深入到我們的生活當中。本設計是以三星公司32位處理器S3C24

3、40控制的基于Linux下的智能手機。擁有液晶觸摸屏顯示,可實現顯示網絡運營商、接收短信、接打電話、存儲短信,信號強度等 功能,通過觸摸屏完成對信息輸入輸出的控制。短信漢字輸入采用T9輸入法,T9輸入法是高效快速的、聰明的輸入法。論文部分主要包括各個模塊硬件電路的詳細設計以及 各個模塊軟件的具體實現。關鍵詞:智能手機;Linux ; GPRS ; s3c2440平臺AbstractAlo ng with the rapid developme nt of moder n computer tech no logy and Internet tech no logy of wide applic

4、ati on, from the PC era in tran siti on to the pers onal digital process ing, han d-held PCS and information home appliances as a representative of the 3C (computer, com muni cati on, and con sumer electro nics) after a PC era. After the PC era, 32-bit system plays a more and more importa nt role in

5、 the market, and will gradually replaced for eight and16 market, it will be widely used in mobile devices, electrical appliances, information and n etwork equipme nt and con sumer electr oni cs, etc, mobile equipme nt gradually to our life.This desig n is sams ung 32 bit microprocessor based on s3c2

6、440 con trol un der the Linux smartph one. With LCD display scree n, can realize n etwork operators, receive SMS messages, answering phone calls, storage, signal strength, complete function of information through touch scree n con trol of the in put and output. Chin ese character in put text in put,

7、 using T9 T9 in put method is quick and efficie nt, in tellige nt in put method. Each module mainly in cludes paper part of the hardware circuit and software modules detailed design of concrete realizati on.Key words: smart pho nes; L in u x; GPRS;s3c2440 platform目錄 TOC o 1-5 h z HYPERLINK l bookmar

8、k2 o Current Document 摘要IAbstract II HYPERLINK l bookmark8 o Current Document 前言1 HYPERLINK l bookmark10 o Current Document 研究的目的和意義 1 HYPERLINK l bookmark12 o Current Document 國內外研究動態 1 HYPERLINK l bookmark14 o Current Document 研究的主要內容 2 HYPERLINK l bookmark16 o Current Document 設計研究的預期效果 2 HYPERLI

9、NK l bookmark18 o Current Document 平臺的選擇3 HYPERLINK l bookmark20 o Current Document 軟件平臺 3 HYPERLINK l bookmark22 o Current Document 硬件平臺 4 HYPERLINK l bookmark24 o Current Document 系統設計7 HYPERLINK l bookmark26 o Current Document 總體設計 7 HYPERLINK l bookmark28 o Current Document 系統方案設計 7 HYPERLINK l

10、bookmark30 o Current Document 功能模塊設計 7軟件設計10 HYPERLINK l bookmark34 o Current Document 主體程序結構設計 10 HYPERLINK l bookmark36 o Current Document 各模塊程序結構設計 11 HYPERLINK l bookmark38 o Current Document 系統引導程序 vivi 11Linux 內核移植13 HYPERLINK l bookmark44 o Current Document root根文件系統 13 HYPERLINK l bookmark46

11、 o Current Document 主界面菜單程序設計 16 HYPERLINK l bookmark48 o Current Document 電話和短信模塊 17輸入法簡介21常用輸入法 21T9輸入法22結論24本設計的結論 24本設計的創新點 24參考文獻25致謝26附錄一錯誤!未定義書簽。附錄二錯誤!未定義書簽。/、八1 前言研究的目的和意義隨著多種技術的不斷融合,移動娛樂市場的日益擴大,以掌上電腦著稱的智能手機 的誕生了。最早的掌上電腦是不具備手機的通話功能,但是隨著用戶對于掌上電腦的個 人信息處理方面功能的依賴的提升,但由不習慣于隨時都攜帶手機和 PC 兩個設備,所 以廠商將

12、掌上電腦的系統移植到了手機中,于是才出現了智能手機這個概念。既然智能 手機的誕生和掌上電腦有關,那它的操作系統也肯定會與掌上電腦有關。目前的智能手 機系統主要包括 Symbian , WindowsMobile 的 Smart Phone 和 Pocket PC Phone, Palm , Linux 五種。其中 Linux 具有源代碼開放、軟件授權費用低、應用開發人才資源豐富等 優點,便于開發個人和行業應用,在市場上占據比較重要的地位。國內外研究動態隨著通信科技的日新月異,人們對3G、智能手機、上網本等詞匯不再陌生。但若真正清楚每項技術發展到何種地步,不花費一番功夫怕是不行。提及智能手機,很

13、多人會 第一時間想到 iphone 不可否認, 蘋果公司在該款手機上體現的杰出設計理念征服了眾多 手機用戶的心。不過,在廠商眼中,智能手機的世界并非一片平和氣象,此乃“兵家必 爭之地”,拉鋸戰早已開打。目前在全球范圍內使用最廣是所謂的第二代手機,以GSM制式和 CDMA 為主。它們都是數字制式的,除了可以進行語音通信以外,還可以收發短 信、彩信、多媒體短信、無線應用協議等。在中國大陸及臺灣以GSM 最為普及, CDMA和小靈通手機也很流行。目前整個行業正在向第三代手機遷移過程中。第一代手機是指模擬的移動電話, 也就是在 20 世紀八九十年代香港美國等影視作品 中出現的大哥大。最先研制出大哥大的

14、是美國摩托羅拉公司的Cooper 博士。由于當時的電池容量限制和模擬調制技術需要碩大的天線和集成電路的發展狀況等等制約,這種 手機外表四四方方,只能成為可移動算不上便攜。很多人稱呼這種手機為“磚頭 ”或是黑金剛等。這種手機有多種制式,如 NMT , AMPS , TACS ,但是基本上使用頻分復用方式只 能進行語音通信,收訊效果不穩定,且保密性不足,無線帶寬利用不充分。此種手機類 似于簡單的無線電雙工電臺,通話是鎖定在一定頻率,所以使用可調頻電臺就可以竊聽 通話。第二代手機也是最常見的手機。通常這些手機使用PHS, GSM 或者 CDMA 這些十分成熟的標準,具有穩定的通話質量和合適的待機時間

15、。在第二代中為了適應數據通訊 的需求,一些中間標準也在手機上得到支持,例如支持彩信業務的GPRS 和上網業務的WAP 服務,以及各式各樣的Java 程序等。3G 是英文 3rdGeneration 的縮寫,指第三代移動通信技術。相對第一代模擬制式手機和第二代 GSM 、CDMA 等數字手機,第三代手機一般地講,是指將無線通信與國際互聯網等多媒體通信結合的新一代移動通信系統。它能夠處理圖像、音樂、視頻流等多種媒體形式,提供包括網頁瀏覽、電話會議、電子商務等多種信息服務。為了提供這種服務,無線網絡必須能夠支持不同的數據傳輸速度,也就是說在室內、室外和行車的環境中能夠分別支持至少 2Mbps (兆比

16、特/每秒)、384kbps (千比特/每秒)以及 144kbps 的傳輸速度。研究的主要內容本設計基于 s3c2440 微處理器和嵌入式操作系統 Linux 建立的平臺, 設計內容如下: ( 1 )嵌入式引導程序 vivi 、嵌入式 Linux 內核的下載;( 2)嵌入式 root 根文件系統的制作與下載;( 3)對觸摸屏硬件結構進行分析,實現觸摸屏信號采集處理,編寫觸摸屏驅動;( 4) s3c2440 處理器與 GPRS 模塊通信;( 5)在 Linux 內核下,多線程程序的編寫以及線程之間的通信。設計研究的預期效果( 1 )采用 GPRS 模塊 SIM300 ,實現顯示網絡運營商、短信的收

17、發、電話的接打、 存儲短信、信號強度等功能;( 2)觸摸屏輸入功能,可輸入數字,字母,漢字等信息;( 3)短信息支持中英文接收和發送;( 4)具有菜單控制功能,使用觸摸屏控制菜單的選擇。實現多級菜單控制,觸摸 屏單擊菜單圖標直接完成各種要求的功能;( 5)支持中國移動和中國聯通兩個運營商。2平臺的選擇軟件平臺( 1)方案一: WinCE 解決方案Windows CE 并不是代表一個標準的相同的對所有平臺適用的軟件。為了足夠靈活 以達到適應廣泛產品需求 , Windows CE 采用標準模式,這就意味著,它能夠由一系列 軟件模式做出選擇,從而使產品定制。另外,一些可利用模式也可作為其組成部分,這

18、 意味著這些模式能夠通過從一套可利用的組份做出選擇, 從而成為標準模式, 通過選擇, 能夠達到系統要求的最小模式, OEM 能夠減少存儲腳本和操作系統的運行。在 Windo ws CE 2 版( Beta 版)測試響應, Intertime 應用軟件在 odoSH3 參考平臺上運行 1000 次中斷測試,內部運行 58.98Mhz ,外部為 14.745Mhz 外部頻率,這個測試在一個標準的 H/PC 配置,它包括 Windows CE 所有模式和組合。僅有主操作系統進程進行( NK.exe, Filesys.exe, Gwes.exe, Device. EXE, Shell.EXE 和 Ex

19、plover.EXE ),在測試中無用戶初 始中斷(觸摸屏、鍵盤或其它應用),應用軟件可報告下面的 ISR 和 IST 開始、最小和 最大時間: 響應 最大、最小值 ,ISR 開始 1.3-7.5 微秒; IST 開始 93-275 微秒。但是 W indows CE 不想 Linux 那樣代碼開源和使用免費,這使得它的使用沒有 Linux 普及。( 2)方案二: Linux 解決方案Linux 以它的高效性和靈活性著稱。它能夠在 PC 計算機上實現全部的 Unix 特性, 具有多任務、多用戶的能力。 Linux 是在 GNU 公共許可權限下免費獲得的,是一個符合 POSIX 標準的操作系統。

20、 Linux 操作系統軟件包不僅包括完整的 Linux 操作系統,而且 還包括了文本編輯器、高級語言編譯器等應用軟件。它還包括帶有多個窗口管理器的 X-Window 圖形用戶界面,如同我們使用 WinCE 一樣,允許我們使用窗口、圖標和菜單 對系統進行操作。 Linux 與其它操作系統相比是個后來者,但 Linux 具有二個其它操作 系統無法比擬的優勢。其一, Linux 具有開放的源代碼,能夠大大降低成本。其二,既 滿足了手機制造商根據實際情況有針對性地開發自己的 Linux 手機操作系統的要求,又 吸引了眾多軟件開發商對內容應用軟件的開發,豐富了第三方應用。(3)方案對比與選取Linux

21、是開放源代碼, 遍布全球的眾多 Linux 愛好者都是 Linux 開發者的強大技術支 持者;Windows CE目前6.0內核全部開放,GUI不開放。Linux的內核小、效率高;Windows CE相比,占用過多的RAM。 Linux是開放源代碼的 OS,在價格上極具競爭力,適合中國國情。 Windows CE 需要版權費用。 Linux 不僅支持 x86 芯片, 還是一個跨平臺的系統。 更換 CPU 時就不會遇到更換平臺的困擾。 Linux 內核的結構在網絡方面是非常完整的, 它提供了對包括十兆位、百兆位及千兆位的以太網絡,還有無線網絡、Token ring (令牌環)和光纖甚至衛星的支持

22、,目前 WINCE 的網絡功能也比較強大。由于硬件平臺以確 定為S3C2440,而且綜合價格、開源,硬件平臺支持等方面的因素,我們選擇Linux為智能手機設計的軟件平臺。在處理速度上S3C2440更能體現出自己的優勢,最高以533MHz 的速度超過了硬件平臺( 1)方案一: SPCE3200 解決方案S+core7 內核是由臺灣凌陽科技公司自行設計、并且是臺灣第一個擁有獨立知識產 權的 32 位 RISC CPU 內核。該處理器在一個芯片上集成了像手機、數碼相機、電子游 戲機、 MP3 播放器、 PMP 等多媒體系統所需的功能。 S+core7 是一個單任務、具有 7 級 流水線的高性能、高

23、速 32 位 RISC 處理器 ,采用了 Sunplus ISA ( Instruction Set Architecture )指令集。SPCE3200 內置 MPEG4 硬件編解碼模塊,并可外擴其它用于多媒體、機器人領域的 功能模塊。芯片提供 32768Hz 實時時鐘、低電壓檢測、低電壓復位、 12 位模數轉換器 (ADC) 、 UART 接口、 SPI 接口、 SIO 接口、 I2C 主設備接口以及其它 I/O 設備接口,專 長于圖像、視頻處理,可以輸出圖像、聲音到電視機及 LCD 上顯示,并可與外部存儲器 通信, 但是在裸機下或加載一個實時的操作系統uCos 來實現 MPEG 的編解碼

24、和 MP3 的解碼,加之硬件驅動都是一個很大的工程。價格也比較貴,在市場上特別是手機行業很 少使用。( 2)方案二: ARM 處理器 +SIM300 目前,全世界有幾十家著名的半導體公司都使用 ARM 公司的授權,其中包括摩托 羅拉 IBMIntel 、SONY 、 NEC 、 LG 、ATMEL 等,從而保證了大量的開發工具和豐富的 第三方資源, 它們共同保證了基于 ARM 處理器核的設計可以很快投入市場可以說, ARM 不僅僅代表一個公司,代表了一類微處理器,代表了一種技術,還代表了一種新型的產 業發展模式。ARM9 系 列 : 包 括 ARM9TDMI 、 ARM920T 和 帶 有 高

25、 速 緩 存 處 理 器 宏 單 元 的 ARM940T 。該系列主要應用于引擎管理、儀器儀表、安全系統、機頂盒、高端打印機、 PDA 、網絡電腦以及帶有 MP3 音頻和 MPEG4 視頻多媒體格式的智能電話中。圖2.1S3C2440方案結構框圖圖2.1為S3C2440方案結構框圖,S3C2440是三星公司設計的32位RISC(精簡指令集計算機)嵌入式處理器。該芯片基于ARM920T內核,具有5級流水線,集成了如LCD控制器、SDRAM控制器、1個觸摸屏接口、 2個SPI接口等,內核最高工作頻率可達266MHz。S3C2440的處理速度和性能價格比都是很高的,針對要求我們第一個想到的方案就是用

26、s3c2440處理器去做拍照,音、視頻的播放,假如加載Linux或 WindowsCE4.2這樣強大的操作系統顯然是能解決很多問題的。例如三星公司提供在微軟Platform Builder下的板級支持 BSP。實際測試我們用vivi弓I導了 Linux和 WindowsCE4.2分別測試,在兩個平臺下面跑 Mp3速度十分理想,尤其在Linux下播放視頻文件更是質量客觀。鍵盤輸入和顯示輸出功能,對于S3C2440來說可以說是輕而易舉的事情,觸摸屏接口便解決了為題,這樣不僅沒有增加了硬件的體積,增加了可靠性、穩定性以及集成度,同時也降低了系統功耗。(3 )方案對比與選取我們測試了 S3C2440嵌

27、入式系統的圖像和視頻播放能力。在主頻400MHz下播放一個視頻,其播放幀率完全達到24幀以上,完全符合電影播放要求。Mp3文件播放使用凌陽公司的解碼庫文件進行測試,通過S3C2440處理器內部的音頻輸出效果非常理想。我們現有的 S3C2410嵌入式開發系統采用的是IIS的音頻控制器 UDA1341,而凌陽采用內置DAC作為輸出,兩者都是16位精度。解壓Mp3文件對比兩者并沒有區別。兩個處 理器都能很好的支持電阻式觸摸屏幕,對操控上有很大提升。SPCE3200 。操作系統的選擇上 s3c2440 更能輕易的選擇出適合任何一款產品的操作系統, 而且技術非常成熟。在更少的外圍電路,更少的程序代碼上,

28、 s3c2440 嵌入式開發系統更容易實現基本 要求。整個系統應用起來非常方便。由于實現的大部分功能都是由硬件完成,所以實現 功能時軟件需要較少的工序, 這樣不僅降低了軟件的編寫工作, 提高了實際應用的品質, 而且價格上比 SPCE3200 更占優勢,所以我們最終選擇了 s3c2440 的系統方案。3系統設計總體設計系統方案設計選用S3C2440,因其具有豐富的硬件資源及多媒體特性,內嵌16位DAC ;具有I2C,USB等標準硬件控制器接口;具有 SD卡控制器、TFT型LCD控制器。使本系統大 部分的功能由硬件完成,并且S3C2440各個基礎功能模塊的底層代碼基本開發完成,使軟件開發的工作量很

29、大的降低,系統方案設計框圖如圖3.1。統圖3.1系統結構框圖功能模塊設計(1)ROOT根文件系統模塊在計算機系統中,要用到大量的程序和數據,它們以文件的形式存放在外存中,需要時 可隨時將它們調入內存。如果由用戶直接管理外存上的文件,不僅要求用戶熟悉外存特性, 了解各種文件的屬性,以及它們在外存上的位置,而且在多用戶環境下,還必須能保證數據 的安全性和一致性。類似于windows下的C、D、E等各個盤,linux系統也可以將磁盤、FLASH 等存儲設備等劃分為若干個分區,在不同的分區存放不同類別的文件。首先:linux 一樣要在一個分區上存放系統啟動所必需的文件,比如內核鏡像文件、內核啟動后運行

30、的第一個程序(init )、給用戶提供操作界面的 shell程序,應用程序所依賴的庫等。這些必需、基本的文件合稱為根文件系統,Linux系統啟動后首先掛載這個分區。Linux引導啟動時,默認使用的文件系統是根文件系統,其中一般都包括這樣一些子目錄:/etc/,/dev/,/usr/,/bin/, /var/等。一個最基本的根文件系統由以下幾個目錄構成,我們制作根文件系統的過程,其實也就是構造以下目 錄的過程:/bi n /sbi n /dev /etc /lib /usr /var /proc /tmp /home /root /mnt。(2)Linux 內核Linux是一類 Unix計算機操

31、作系統的統稱。Linux操作系統的內核的名字也是“ Linux。” Linux操作系統也是自由軟件和開放源代碼發展中最著名的例子。嚴格來講, Linux這個詞本身只表示Linux內核,但在實際上人們已經習慣了用Linux來形容整個基于Linux內核,并且使用GNU工程各種工具和數據庫的操作系統。Linux得名于計算機業余愛好者 Linus Torvalds 。(3)TFT LCD 觸摸屏模塊Liquid Crystal Display的縮寫,一種顯示器件液晶是一種規則性排列的有機化合物,它是一種介于固體和液體之間的物質。液晶本身并不能構發光,它主要是通過因為電壓 的更改產生電場而使液晶分子排列

32、產生變化來顯示圖像目前主流的液晶顯示器件,色彩、響應速率大大提升,多用于mp4、PDA等手持設備、電腦顯示器等。液晶面板主要由兩塊無鈉玻璃夾著一個由偏光板、液晶層和彩色濾 光片構成的夾層組成。偏光板、彩色濾光片決定了有多少光可以通過以及生成何種顏色 的光線。觸摸屏作為輸入設備,所需的儲存空間不大,移動部分少,便于封裝,在使用時比 鍵盤和鼠標更為直觀。根據所用的介質以及工作原理,觸摸屏可分為:電阻式、電容式、 紅外線式、聲表面波式。本設計采用四線電阻式觸摸屏,分為由觸摸檢測部件和觸摸屏 控制器兩部分。觸摸檢測部件安裝在顯示器屏幕前面,用于檢測用戶觸摸位置;觸摸屏 控制器從觸摸點檢測裝置上接收觸摸

33、信息,將它轉換成觸點坐標后送給CPU。如圖3.2所示為電阻式觸摸屏。圖3.2觸摸屏ADC連接電路電阻式觸摸屏在強化玻璃表面分別涂上兩層OTI透明氧化金屬導電層,兩層OTI之間以細小的透明隔離點隔開。手指接觸屏幕時,兩層OTI導電層出現一個接觸點,電阻發生變化,在 X和Y兩個方向上產生信號,送觸摸屏控制器,同時主芯檢測電壓及電 流,計算出觸摸的位置,反應速度1020ms。四路AD通道直接處理觸摸屏輸出的電壓轉化為數字信號,然后得到觸點的位置。(4)SIM300芯片特性GPRS就好比移動通信設備的ADSL,而GSM就是普通固定電話線。GSM采用的是電路交換技術。但GPRS就不同了,它采用的是封包交

34、換(Packet Switch)技術。理論上,封包交換技術最大的資料傳輸速率可達171.2Kbps。 GPRS對原有GSM網絡改動很少,投資省。新增分組域設備。GSM設備軟件升級。GPRS采用信道捆綁和增強數據速率改進實現高速接入,GPRS設計可以與 8個信道實現捆綁,每個信道的傳輸速率提高到 14.4kbp。最高速率為:14.4kbps*8=115.2kbps。第二代 GPRS(EDGA)會提高到48kbps*8=384kbps。高速數據傳輸。速度10倍于GSM,更可滿足用戶的理想需求,還可以穩定地傳送大容量的高質量音頻與視頻文件,可謂不一般的巨大進步,GPRS工作原理如圖3.3所示:PLM

35、NPSTN| PDNryLRMSCXHLRACGRGGSNSGSNATMSLRTCETCEPCUBSCSoftware updateGPRS enabled terminal equipmentGateway GPRS support node (GGSN) for transition to the InternetServing GPRS support node(SGSN) for serving usersGPRS register (GR) as an HLR extension for data service specific informationSGSN location r

36、egister (SLR) like VLR but for data servicesPacket control unit (PCU) for the discrimination of packet and speech data圖3.3 GPRS工作原理建立新的連接需要的時間比傳統的wap短的多,(每次數據的訪問無需長時間等待建立呼叫連接),您隨時都可與網絡保持聯系,即使在通話過程中數據傳輸暫停,通話結束 后也會在極短的時間內切換回來。做個 打電話”的比方,在使用GSM+WAP手機上網時,就好比電話接通便開始計費; 而使用 GPRS+WAP上網則要合理得多,就像電話接通并不收費,只有對

37、話時才計算費 用。總之,它真正體現了少用少付費的原則GPRS應用于以下領域:In ternet業務。VPN業務/移動辦公室。不間斷的WAP接入業務。野外銷售 /業務、商船管理。移動商務、移動銀行。結合定位技術,提供個性化移動定位服務。信息點播:新聞、證券消息、天氣 預報、生活信息。控制家庭設備。模組使用標準的UART串行通信接口與主芯片進行通信,可以與任何帶有通用UART串行通信接口的控制器進行連接。 該項目要求我們采用 S3C244作為主控芯片(MCU) 控制GPRS模組,用AT指令集實現手機功能, 下面重點介紹一下 GPRS模組與MCU連 接特點。4軟件設計 如果把硬件比作系統的軀體,那么

38、軟件編程就是它的靈魂。失去靈魂的軀體只能是 個擺設,沒有多大的價值而言,軟件設計是本系統制作的關鍵點之一,軟件設計主要分 為主體系統結構設計和各個模塊但系統設計。主體程序結構設計系統在開機時會進行的系統的初始化設置,顯示的界面為主菜單界面,在程序中四 個線程來分別處理不同功能模塊。主線程:初始化觸摸屏,初始化串口,負責創建其余 三個線程,并等待其返回。msg_prompt_pthread 線程:主要是對隊列里的數據進行分析處理找出主要信息并進 行相應的操作。rec_signal_pthread 線程:主要接收 GPRS 的數據,進行簡單的處理后放入隊列,等 待其余線程進行接收。main_pth

39、read 線程: 對按鍵, 顯示, 和短信 str Unicode ,Unicode str 的轉換, 菜單顯示。圖 4.1 為主體程序控制流程圖。圖4.1程序控制流程圖各模塊程序結構設計421系統引導程序vivi在專用的嵌入式板子運行GNU/L inux系統已經變得越來越流行。引導加載程序是系統加電后運行的第一段軟件代碼。PC機中的引導加載程序由BIOS(其本質就是一段固件程序)和位于硬盤 MBR中的OS BootLoader (比如,LILO 和GRUB等)一起組成。BIOS 在完成硬件檢測和資源分配后,將硬盤 MBR中的BootLoader讀到系統的 RAM中,然 后將控制權交給OS B

40、ootLoader。BootLoader的主要運行任務就是將內核映象從硬盤上圖4.2 vivi流程圖讀到RAM中,然后跳轉到內核的入口點去運行,也即開始啟動操作系統。在嵌入式系統中,通常并沒有像BIOS那樣的固件程序(注,有的嵌入式 CPU也會內嵌一段短小的啟動程序),因此整個系統的加載啟動任務就完全由BootLoader來完成。比如在一個基于ARM7TDMI core的嵌入式系統中,系統在上電或復位時通常都從地址0 x00000000處開始執行,而在這個地址處安排的通常就是系統的BootLoader程序。簡單地說,BootLoader就是在操作系統內核運行之前運行的一段小程序。通過這段小程序

41、,我們可以初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境帶到一個合適的狀態,以便為最終調用操作系統內核準備好正確的環境。BootLoader是嚴重地依賴于硬件而實現的,特別是在嵌入式世界。因此,在嵌入式世界里建立一個通用的BootLoader幾乎是不可能的。盡管如此,我們仍然可以對BootLoader歸納出一些通用的概念來,以指導用戶特定的BootLoader設計與實現。vivi是韓國mizi公司開發的 Bootloader,適用于ARM9處理器,vivi有兩種工作模 式:啟動加載模式和下載模式。啟動加載模式可以在一段時間后(這個時間可更改)自 行啟動linux內核,這時vivi

42、的默認模式。在下載模式下,vivi為用戶提供一個命令行接 口,通過接口可以使用vivi提供的一些命令,如圖4.2 vivi的啟動流程圖。開始禁止看門狗關閉中斷初始化系統時鐘存儲器設置UART初始化輸出VI號!版本1開發板初始化T內存映身寸1F初始化MTD初始化私有數據4初始化內置命令1F啟動 vivi-shell 或 boot1:結束4.2.2Linux 內核移植對以 ARM 為基礎的目標系統,可從 HYPERLINK / / 下載 Linux-2.4.18 版本的內核,從 ARMLinux 的官方站點 HYPERLINK .uk .uk 下載 2.4.18-rmk5 補丁。 打上補丁后的內

43、核就是 Linux-2.4.18-rmk5 ,這個 Linux 內核包含了對大多數以 ARM 為基礎的嵌入式系 統的支持。一個嵌入式 Linux 系統從軟件的角度看通常可以分為四個層次:( 1)引導加載程序:包括固化在固件 (firmware) 中的 boot 代碼 ( 可選 )和 BootLoader 兩大部分;(2) Linux 內核:特定于嵌入式系統的定制內核以及內核啟動參數;( 3)文件系統:根文件系統和建立于 Flash 設備上的文件系統;( 4)用戶應用程序:特定于用戶的應用程序。Linux 內核是 Linux 系統軟件的核心, 它的性能對整個系統的性能起決定作用, 如果 內核不支

44、持某個硬件,那么在基于該內核的系統中,這個硬件將不能使用,內核移植一 般包括內核配置、內核編譯、內核下載三部分。4.2.3 root 根文件系統Linux 支持多種文件系統,包括ext2 、 ext3 、 vfat 、 ntfs 、 iso9660 、jffs 、 romfs 和 nfs等,為了對各類文件系統進行統一管理, Linux 引入了虛擬文件系統 VFS(Virtual File System),為各類文件系統提供一個統一的操作界面和應用編程接口。Linux 下的文件系統結構如圖4.3 。圖4.3 Linux文件系統結構前面介紹過,Linux和UNIX的文件系統是一個以“/為根的階層式

45、的樹狀文件結構,“/因此被稱為根目錄。所有的文件和目錄都置于根目錄“/之下。根目錄“/下面有/bin,/home, /usr等子目錄。在早期的UNIX系統中,各個廠家各自定義了自己的UNIX系統的文件系統構成,比較混亂。為了避免在Linux也產生同樣的問題,在Linux面世不久,就開始了對Linux文件系統進行標準化的活動,于1994年推出了名為 FSSTND(FilesystemStandard)的Linux文件系統層次結構標準。之后, FSSTND標準吸引了 UNIX 社團的開 發人員,他們把FSSTND擴大到UNIX系統,FSSTND就變為FHS (Filesystem Hierarch

46、y Standard)。FHS標準使得眾多的Linux發布包有了可以遵循的標準,使得軟件和用戶可以預測已經安裝了的文件和目錄的位置。下面依次講述這幾個目錄的作用。根目錄:Linux中所有的目錄及文件都位于根目錄下,可以說是所有目錄的父目錄。home :用戶目錄,所有的用戶都是用此空間,對于每一個普通用戶,都有一個以用 戶名命名的子目錄,里面存放相關的配置文件。bin :該目錄下存放所有用戶(包括系統管理員和一般用戶)都可以使用的、基本的 命令,這些命令在掛載其他文件系統之前就可以使用,所以/bin目錄必須和根文件系統在同一個分區中,不是急迫需要的系統命令可以放在/usr/bin目錄下,由用戶后

47、來安裝的系統命令存放在 /usr/local/bin 目錄下。bin 目錄下存放常用的命令有:cat、chgrp、chmod、cp、ls、sh、kill、mount、umount、mkdir等,在嵌入式系統中通常由busybox生成,其中/usr/bin可選。sbin :存放系統管理所需要的命令,只有系統管理員能夠使用,不是急迫需要的系 統命令可以放在/usr/sbin目錄下,由用戶后來安裝的系統命令存放在/usr/local/sbin目錄下。dev:該目錄下存放的是設備文件,在linux下以文件的方式訪問各種外設,即通過讀寫某個設備文件操作某個具體硬件。etc目錄系統的所有配置文件都存放在此

48、目錄中,啟動或改變運行級時運行的腳本 或腳本目錄。lib :該目錄下存放共享庫和可加載模塊,共享庫用于啟動系統、運行根文件系統中 的可執行程序,比如/bin、/sbin下的程序,不是根文件系統所必需的庫文件放在/usr/lib,/var/lib等。其中的文件主要有:共享連接庫、動態連接庫(libc.so.*),連接器、加載器(ld*),內核可加載模塊存放存放的目錄等。mnt:用于臨時掛接某個文件系統的掛接點,通常是空目錄,可以在里面建一些子 文件夾,用來臨時掛接光盤、硬盤、nfs、sd卡、U盤等。tmp :臨時文件目錄,重新啟動時被清除,一些需要生成臨時文件的程序要用到/tmp目錄,為減少對

49、FLASH的操作,一般掛載一個虛擬的文件系統。usr目錄:存放一些共享、只讀的程序和數據、所有命令、庫、man等,/usr目錄的內容可以在另一個分區中,在系統啟動后再掛載到根文件系統中的/usr目錄下,/usr目錄下的內容可以在多個主機間共享,如表4.1所示。表4.1 usr 目錄結構/usr/usr/usr/bin用戶和管理員的標準命令/usr/sbin用戶和管理員的標準命令/usr/local/系統管理員安裝的應用程序目錄/usr/lib應用程序及程序包的連接庫/usr/includeC/C+等各種開發語言環境的標準include 文件/usr/local/share系統管理員安裝的共享文

50、件/usr/share存放使用手冊等共享文件的目錄/usr/X11R6Xwindows桌面系統/usr/share/man系統使用手冊var與/usr目錄相反,/var目錄中存放可變的數據,比如:spool 目錄(mail、news、打印機等)log文件,臨時文件等,如表4.2所示。表4.2 var 目錄結構/var/var/var/lib各種狀態數據/var/log日志記錄/var/mail電子郵件/var/run進程的標示數據/var/mail電子郵件/var/tmp臨時文件目錄proc :空目錄,常作為 proc文件系統的掛載點。proc文件系統是個虛擬文件系統,它沒有實際的存儲設備,里

51、面的目錄、文件都是由內核臨時生成的,用來表示系統的運 行狀態,也可以在操作其中的文件控制系統。系統啟動后,使用以下命令掛載proc文件系統(常在/etc/fstab進行設置以自動連接),其具體內容可參見表4.3。表4.3 proc目錄結構目錄內容和用途/proc/1 關于進程1的信息目錄。每個進程在/proc下有一個名為其進程號的目錄。/proc/cpuinfo處理器信息,如類型、制造商、型號和性能/proc/devices/proc/dma/proc/filesystems當前運行的核心配置的設備驅動的列表顯示當前使用的 DMA通道核心配置的文件系統/proc/interrupts/proc

52、/ioports顯示使用的中斷當前使用的I/O端口/proc/ksyms/proc/loadavg/proc/meminfo核心符號表系統-平均負載”;3個指示器指岀系統當前的工作量存儲器使用信息,包括物理內存和swap/proc/modules/proc/net當前加載了哪些核心模塊網絡協議狀態信息/proc/uptime/proc/version系統啟動的時間長度核心版本主界面菜單程序設計主界面程序包含了對應的圖像文件和源代碼。主要功能是提供主菜單的顯示和觸摸 屏數據的讀取。初期這個程序里還包含了觸摸屏數據識別函數,用于把相應的位置翻譯 成對應的控制信息。void TFT_i nit(vo

53、id)char *fbn ame = /dev/fb/0; getFBP(fb name);TFT_I ni t();MainFrame = TFT_CreateWindowEx(0,0,320,240,COLOR_YELLOW); TFT_File_Picture(MainFrame,0,0,./Screen/happy4.bmp,1);Menu = TFT_CreateWindowEx(106, 60, 105, 15, RGB24(66, 187, 250); Msg = TFT_CreateWindowEx(106, 60, 105, 110, COLOR_YELLOW); Signb

54、ox = TFT_CreateWindowEx(106, 60, 105, 26, COLOR_YELLOW); Numdis = TFT_CreateWindowEx(106, 120, 105, 50, COLOR_CYAN); TFT_SetColor(Signbox, COLOR_BLUE);TFT_SetColor(MainFrame, COLOR_BLACK); TFT_SetColor(Msg, COLOR_BLACK); TFT_SetColor(Numdis, COLOR_BLACK);TFT_ClearWindow(Msg);TFT_SetTextPos(MainFrame

55、, 125, 80);void *msg_prompt_pthread(void *arg) ;void *main_pthread(void *arg) ;void *rec_signal_pthread(void *arg) ;int main(int argc, char *argv)TFT_init();fd_uart = Uart_Init(1);while(1) pthread_create(&tid2,NULL,msg_prompt_pthread,NULL); pthread_create(&tid3,NULL,main_pthread,NULL); pthread_create(&tid4,NULL,rec_signal_pthread,NULL); pthread_join(tid2,NULL);pthread_join(tid3,NULL); pthread_join(tid4,NULL);return 0;電話和短信模塊AT(Data(Data電話和短信的實現是微處理器通過串口向 GPRS 按順序發送 AT 指令集實現的。 即 Attention , AT 指令集是從終端設備 (Terminal Equipment , TE) 或數據終端設備 Terminal Equipment ,DTE) 向終端適配器 (Terminal Adapter ,TA)

溫馨提示

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

評論

0/150

提交評論