塊設(shè)備通常指一些需要以塊(如512字節(jié))的方式寫(xiě)入的設(shè)備,如IDE硬盤、SCSI硬盤、光驅(qū)等。它的驅(qū)動(dòng)程序的編寫(xiě)過(guò)程與字符型設(shè)備驅(qū)動(dòng)程序的編寫(xiě)有很大的區(qū)別。
前面所講述的驅(qū)動(dòng)程序中都沒(méi)有涉及中斷處理,而實(shí)際上,有很多Linux的驅(qū)動(dòng)都是通過(guò)中斷的方式來(lái)進(jìn)行內(nèi)核和硬件的交互。中斷機(jī)制提供了硬件和軟件之間異步傳遞信息的方式。硬件設(shè)備在發(fā)生某個(gè)事件時(shí)通過(guò)中斷通知軟件進(jìn)行處理。中斷實(shí)現(xiàn)了硬件設(shè)備按需獲得處理器關(guān)注的機(jī)制,與查詢方式相比可以大大節(jié)省CPU資源的開(kāi)銷。
LED和蜂鳴器是最簡(jiǎn)單的GPIO的應(yīng)用,都不需要任何外部輸入或控制。按鍵同樣使用GPIO接口,但按鍵本身需要外部的輸入,即在驅(qū)動(dòng)程序中要處理外部中斷。按鍵硬件驅(qū)動(dòng)原理圖如圖11-7所示。
該實(shí)驗(yàn)是編寫(xiě)最簡(jiǎn)單的字符驅(qū)動(dòng)程序,這里的設(shè)備也就是一段內(nèi)存,實(shí)現(xiàn)簡(jiǎn)單的讀寫(xiě)功能,并列出常用格式的Makefile以及驅(qū)動(dòng)的加載和卸載腳本。讀者可以熟悉字符設(shè)備驅(qū)動(dòng)的整個(gè)編寫(xiě)流程。
本章主要介紹了嵌入式Linux設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā)。首先介紹了設(shè)備驅(qū)動(dòng)程序的概念及Linux對(duì)設(shè)備驅(qū)動(dòng)的處理,這里要明確驅(qū)動(dòng)程序在Linux中的定位。
目前的桌面機(jī)操作系統(tǒng)大多有著美觀、操作方便、功能齊全的GUI(圖形用戶界面),例如KDE或者GNOME。GUI(圖形用戶界面)是指計(jì)算機(jī)與其使用者之間的對(duì)話接口,可以說(shuō),GUI是當(dāng)今計(jì)算機(jī)技術(shù)的重大成就。它的存在為使用者提供了友好便利的界面,并大大地方便了非專業(yè)用戶的使用,使得人們從繁瑣的命令中解脫出來(lái),可以通過(guò)窗口、菜單方便地進(jìn)行操作。
通過(guò)編寫(xiě)一個(gè)跳動(dòng)的“Hello,World”字符串,進(jìn)一步熟悉嵌入式Qt的開(kāi)發(fā)過(guò)程。
這里要講的線程相關(guān)操作都是用戶空間中的線程的操作。在Linux中,一般pthread線程庫(kù)是一套通用的線程庫(kù),是由POSIX提出的,因此具有很好的可移植性。
用戶選用ARM處理器開(kāi)發(fā)嵌入式產(chǎn)品時(shí),選擇合適的開(kāi)發(fā)工具可以加快開(kāi)發(fā)進(jìn)度,節(jié)省開(kāi)發(fā)成本。根據(jù)功能不同,ARM應(yīng)用軟件的開(kāi)發(fā)工具分別有編譯軟件、匯編軟件、連接軟件、調(diào)試軟件、評(píng)估板、JTAG仿真器和在線仿真器等,目前世界上大約有四十多家公司提供以上不同種類的開(kāi)發(fā)產(chǎn)品。
本章主要講解了嵌入式Linux的圖形編程。首先介紹了幾種常見(jiàn)的嵌入式圖形界面編程機(jī)制,并給出了它們之間的關(guān)系。
ARM體系結(jié)構(gòu)是CPU產(chǎn)品所使用的一種體系結(jié)構(gòu),ARM公司開(kāi)發(fā)了一套擁有知識(shí)產(chǎn)權(quán)的RISC體系結(jié)構(gòu)的指令集。每個(gè)ARM處理器都有一個(gè)特定的指令集架構(gòu),而一個(gè)特定的指令集架構(gòu)又可以由多種處理器實(shí)現(xiàn)。
ARM處理器當(dāng)前有6個(gè)產(chǎn)品系列:ARM7、ARM9、ARM9E、ARM10E、ARM11和SecurCore,其中ARM11為最近推出的產(chǎn)品。進(jìn)一步的產(chǎn)品來(lái)自于合作伙伴,例如Intel Xscale ARM7、ARM9、ARM9E、ARM10E是4個(gè)通用處理器系列。每個(gè)系列提供一套特定的性能來(lái)滿足設(shè)計(jì)者對(duì)功耗、性能、體積的需求。
學(xué)吧
夜是打火機(jī)
18713271819cxy
賈仁明
bu一樣的煙火
mikeniu
chris527
LBSEric
21CI2133
洛奇ing
SIASGUOJIe
逮到一只程序猿
zx66
zhaoyuan
建志的智
sdwfywl
cgyyds
云城a
shaolw
ti-funs
劉劍君
帶偷子
shaoniany
陳震偉
2334599288
helloyyll
怪打野題
liqinglong1023
cxk1998