嵌入式系統(tǒng)原理與應用習題解析綜述_第1頁
嵌入式系統(tǒng)原理與應用習題解析綜述_第2頁
嵌入式系統(tǒng)原理與應用習題解析綜述_第3頁
嵌入式系統(tǒng)原理與應用習題解析綜述_第4頁
嵌入式系統(tǒng)原理與應用習題解析綜述_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1.8 練習題 P141. 選擇題(1)A說明:嵌入式系統(tǒng)的發(fā)展趨勢表現(xiàn)在以下幾方面:1. 產(chǎn)品種類不斷豐富,應用范圍不斷普及2. 產(chǎn)品性能不斷提高3. 產(chǎn)品功耗不斷降低,體積不斷縮小4. 網(wǎng)絡化、智能化程度不斷提高5. 軟件成為影響價格的主要因素2)D說明:常見的嵌入式操作系統(tǒng) : VxWorks ,Windows CE、uC/OS-II 和 嵌入式 Linux 。(3) A說明: VxWorks是美國 WindRiver 公司于 1983年開發(fā)的一種 32 位嵌 入式實時操作系統(tǒng)。2. 填空題(1) 嵌入式計算機(2) 微處理器 外圍電路 外部設備(3) 板級支持包 實時操作系統(tǒng) 應用編程

2、接口 應用程序(4) 嵌入式處理器 微控制器 數(shù)字信號處理器3. 簡答題(1) 簡述嵌入式系統(tǒng)的定義和特點 答:定義:以應用為中心,以計算機技術為基礎,軟硬件可裁剪,應 用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機 系統(tǒng)。特點:專用性強、實時性好、可裁剪性好、可靠性高和功耗低等。(2) 簡述計算機系統(tǒng)的發(fā)展歷程第一階段大致在 20 世紀 70 年代前后,可以看成是嵌入式系統(tǒng)的萌芽 階段;第二階段是以嵌入式微處理器為基礎, 以簡單操作系統(tǒng)為核心的嵌入 式系統(tǒng);第三階段是以嵌入式操作系統(tǒng)為標志的嵌入式系統(tǒng), 也是嵌入式應用開始普及的階段;第四階段是以基于 Internet 為標志的

3、嵌入式系統(tǒng),這是一個正在迅速 發(fā)展的階段。(3) 簡述 MCU 和 DSP 的區(qū)別MCU 是微控制器, DSP 是數(shù)字信號處理器。MCU 相當于小型的電腦, 內(nèi)部集成的 CPU、ROM、RAM 、I/O 總線, 所以集成度高是它的特點。DSP 是專用的信息處理器, 內(nèi)部的程序是對不同的機器和環(huán)境進行特 別優(yōu)化,所以處理速度是最快的。2.4 練習題1. 填空題(1) ARM7 ARM9 ARM9E ARM10E ARM11(2) 精簡指令集計算機(3) Samsung ARM920T IIC 總線(4) BGA 顯卡布線(5) 1.8V 3.3V(6) 8 128 1(7) S3C241064M

4、B64MB2. 選擇題(1) D (2)C(3)A(4)B(5)B(6)C (7)D(8)C(9)C(10)B3. 簡答題(1) ARM 和 S3C2410X 有什么關系 ?S3C2410是韓國三星公司生產(chǎn)的嵌入式處理器 ,它采用了 ARM 公司的 ARM920T( 即 ARM9) 內(nèi)核(2) ARM7 是 32 位 RISC處理器,使用 3 級流水線,采用馮 ?諾依曼體系結(jié)構(gòu) ,不支持 MMU 。(3) ARM8 是 32位 RISC處理器,使用 5級流水線,采用哈佛體系結(jié) 構(gòu),支持 MMU 。(4) S3C2410X芯片有 27根地址線, 8根片選線 (nGCS),32根數(shù)據(jù)線。(5) S

5、3C2410X芯片內(nèi)部集成了一個 LCD 控制器, SDRAM 控制器,3 個通道 UART ,4個通道 DMA ,4個具有 PWM 功能的計時器和一個 內(nèi)部時鐘, 8通道的 10位 ADC。(6) ARM 體系結(jié)構(gòu)有哪幾種工作狀態(tài)?又有哪幾種運行模 式?其中哪些為特權(quán)模式?哪些為異常模式?并指出處理 器在什么情況下進入相應模式?工作狀態(tài):第 1 種:ARM 狀態(tài)。處理器執(zhí)行 32 位的字對齊的 ARM 指令。第 2 種: Thumb 狀態(tài)。處理器執(zhí)行 16 位的半字對齊的 Thumb 指令。 運行模式:用戶模式 (usr) 快速中斷模式 (fiq) 外部中斷模式 (irq)管理模式 (svc

6、) 數(shù)據(jù)訪問中止模式 (abt) 系統(tǒng)模式 (sys) 未定義指令中止模式 (und)在這 7種運行模式,除了用戶模式外, 其他 6種處理器模式都為特權(quán)模式。在這 6種特權(quán)模式中,除了系統(tǒng)模式外的其他 5 種特權(quán)模式又稱為異 常模式。用戶模式:非特權(quán)模式,也就是正常程序執(zhí)行的模式,大部分任務在 這種模式下執(zhí)行。在用戶模式下, 如果沒異常發(fā)生,不允許應用程 序自行切換果沒異常發(fā)生, 不允許應用程序自行改變處理器的工作模 式,如果有異常發(fā)生,處理器會自動切換工作模式。快速中斷模式: 支持高速數(shù)據(jù)傳輸和通道處理, 當一個高優(yōu) (fast)中斷 產(chǎn)生時將會進入這種模式。外部中斷模式: 也稱為普通中斷模

7、式, 當一個低優(yōu)先級中斷產(chǎn)生時將 會進入這種模式。 在這模式下按中斷的處理器方式又分為向量中斷和 非向量中斷兩種。通常的中斷處理都在 IRQ 模式下進行。 管理模式: 是一種操作系統(tǒng)保護模式, 當復位或軟中斷指令執(zhí)行時處 理器將進入這種模式。數(shù)據(jù)訪問中止模式: 當存取異常時將會進入這種模式, 用來處理存儲 器故障、實現(xiàn)虛擬存儲或存儲保護。系統(tǒng)模式:使用和 user 模式相同寄存器組的特權(quán)模式,用來運行特 權(quán)級的操作系統(tǒng)任務。未定義指令中止模式: 當執(zhí)行未定義指令時會進入這種模式, 主要是 用來處理未定義的指令陷阱, 支持硬件協(xié)處理器的軟件仿真, 因為未 定義指令多發(fā)生在對協(xié)處理器的操作上。(7

8、) ARM 體系結(jié)構(gòu)支持的數(shù)據(jù)類型?有多少寄存器?如何組織? 支持的數(shù)據(jù)類型:1.字節(jié)(byte),各種處理器體系結(jié)構(gòu)中,字節(jié)的長度均為 8 位。2. 半字(half-word) ,在 ARM 體系結(jié)構(gòu)中,半字的長度為 16位。3. 字(word),在 ARM 體系結(jié)構(gòu)中,字的長度為 32 位。ARM 處理器共有 37個寄存器,其中 31 個通用寄存器, 6 個狀態(tài)寄 存器。(8) S3C2410 的存儲控制器如何對內(nèi)存空間進行管理? S3C2410X存儲控制器為片外存儲器提供控制信號。它將系統(tǒng)的存儲 空間分成 8組(Bank),每組的大小為 128MB,共 1GB。(9) 分析程序狀態(tài)寄存器

9、各位的功能描述,并說明C、Z 、N、V在什么情況下進行置 1 和清 0 狀態(tài)寄存器 (PSR)的具體格式為V溢出標志位對于加 / 減法運算指令,當操作數(shù)和運算結(jié)果為二進制補碼表示的帶 符號數(shù)時, V=1 表示符號位溢出,其它指令通常不影響 V 位。例如: 兩個正數(shù) (最高位為 0)相加,運算結(jié)果為一個負數(shù) (最高位為 1),則符 號位溢出,相應 V=1.C-進位或借位標志位對于加法指令(包括比較指令 CMN ),結(jié)果產(chǎn)生進位,則 C1,表 示無符號數(shù)運算發(fā)生上溢出,其他情況下 C0; 在減法指令中(包括比較指令 CMP),結(jié)果產(chǎn)生借位,則 C 0,表 示無符號數(shù)運算發(fā)生下溢出,其他情況下 C1

10、; 對于包含移位操作的非加 /減法運算指令, C 中包含最后一次溢出位 的數(shù)值; 對于其他非加 /減法運算指令, C 位的值通常不受影響。 Z-結(jié)果為 0標志位 Z 1表示運算結(jié)果是 0,Z0 表示運算結(jié)果不是 零; 對于 CMP 指令,Z1 表示進行比較的兩個數(shù)大小相等。N-符號標志位本位設置成當前指令運算結(jié)果的 bit31 的值。當兩個補碼表示有符號 整數(shù)運算時, N 1 表示運算的結(jié)果為負數(shù), N0 表示結(jié)果為正數(shù)或 零。(10)ARM 指令可分為哪幾類?說出哪幾條指令是無條件執(zhí)行的。 ARM 指令可分為: 數(shù)據(jù)處理指令, 跳轉(zhuǎn)指令, 程序狀態(tài)寄存器處理 指令,加載 /存儲指令,協(xié)處理器

11、指令 ,異常產(chǎn)生指令。 無條件執(zhí)行指令: BLX 指令, BKPT 指令(產(chǎn)生軟件斷點中斷 )(11)如何實現(xiàn)兩個 64 位數(shù)的加法操作,如何實現(xiàn)兩個 64 位的減 法操作,如何求一個 64 位數(shù)的負數(shù)?實現(xiàn) 64 位數(shù)據(jù)加法運算:假設 R0和 R1存放了一個 64位數(shù)據(jù)(作為被加數(shù)) ,R0存放數(shù)據(jù)的 低 32位;R2和 R3中存放了另一個 64位數(shù)據(jù)(作為加數(shù)),R2 中存 放低 32 位數(shù)據(jù)。運算結(jié)果送回到 R1:R0中(R0 中存放低 32 位)。 ADDS R0,R0,R2 ;低 32 位相加并影響標志位ADC R1,R1,R3 ;高 32位相加再加上 C 標志位 (進位值)實現(xiàn) 6

12、4 位數(shù)據(jù)減法運算:如果寄存器 R0 和 R1 中放置一個 64 位的被減數(shù),其中 R0 中放置低 32位數(shù)值;寄存器 R2 和 R3 中放置一個 64 位的減數(shù),其中 R2 中放 置低 32 位數(shù)值。運算結(jié)果送回到 R1:R0中(R0中存放低 32位)。SUBS R0,R0,R2 ;低 32 位相減并影響標志位SBC R1,R1,R3 ;高 32位相減再減去 C 標志位的反碼求一個 64 位數(shù)的負數(shù):如果寄存器 R0 和 R1 中放置一個 64 位數(shù),其中 R0 中放置低 32 位數(shù) 值;寄存器 R4和 R5中放置其負數(shù),其中 R4 中放置低 32位數(shù)值。RSBS R4,R0,#00減去低

13、32 位并影響標志位RSC R5,R1,#00減去高 32 位再減去 C 標志位的反碼4. 程序題(1) 分析下列每條語句,并說明程序?qū)崿F(xiàn)的功能。CMP R0, #0/判斷 R0 是否等于 0MOVEQ R1, #0/當 R0 等于 0,則 R1 等于 0MOVGT R1,#1/當 R0 為正數(shù)時,則 R1 等于 1此功能碼段可以判別 R0 中的值為正數(shù)還是 0。(2) 寫一條 ARM 指令,分別完成下列操作。R0 = 16MOV RO, #16R0 = R1 / 16MOV RO,R1,LSR#4R1 = R2 * 4ADD R1,R2.R2.LSL#1R0 = - R0RSB RO,RO,

14、#0(3) 寫出實現(xiàn)下列操作的 ARM 指令。當 Z=1 時,將存儲器地址為 R1 的字數(shù)據(jù)讀入寄存器 R0 。 MOVEQ R0, R1當 Z=1 時,將存儲器地址為 R1+R2 的字數(shù)據(jù)讀入寄存器 R0 。 LDREQ R0, R1,R2將存儲器地址為 R1-4 的字數(shù)據(jù)讀入寄存器 R0。LDR R0,R1,#-4將存儲器地址為 R1+R6 的字數(shù)據(jù)讀入寄存器 R0,并將新地 址 R1 R6 寫入 R1。LDR R0,R1,R6!(4) 寫出下列指令所實現(xiàn)的操作。LDR R2 ,R3, -2! 將存儲器地址為 R3-2 的字數(shù)據(jù)讀入 R2,并將地址 R3-2 寫入 R3 LDR R0 ,R

15、0,R1將存儲器地址為 R0 的字數(shù)據(jù)讀入 R0,并將地址 R0+R1寫入 R0 LDR R1 ,R0,R2,LSL #2!將存儲器地址為 R0+R2*4 的字數(shù)據(jù)讀入 R1,并將地址 R0+R2*4 寫 入 R0STRB R1 ,R2 ,#0xB0R0的低 8位存入存儲器地址為 R2+0xB0 字節(jié)中LDMIA R0 ,R1 , R2,R8 將內(nèi)存單元 R0 所指向的地址單元以字為單位遞減方式讀取到 R1, R2, R8 中,低地址編號的字數(shù)據(jù)內(nèi)存單元對應低編號寄存器STMDB R0 !, R1R5 ,R8, R9R1R5,R8,R9 存儲到以 R0 為起始地址的遞減內(nèi)存中,最終 R0 指向

16、 存放 R9 的地址單元5. 計算題 某設備的接口電路如圖所示,請計算出該設備的地址。3.5 練習題1.選擇題(1) B (2) A(3) C (4) D(5) A2.填空題(1) .so .a程序運行過程中編譯過程中(2) L Io(3) $(4) $ $ ( CC、 CFLAGS等)(5) 目標文件的完整名稱 所有不重復的依賴文件,以空格隔 開 第一個依賴文件的名稱、3. 簡答題(1) make 和 Makefile 之間的關系? 答: make 是一種命令,是根據(jù) Makefile 文件的規(guī)則決定如何編譯和 連接程序或其他的動作。(2) Makefile 的普通變量與預定義變量有什么不同

17、?預定義變量 有哪些?它們分別表示什么意思? 答:普通變量:引用變量時,只需在變量前面加上 $符;預定義變量:已經(jīng)定義好,直接引用即可。預定義變量有: $、$、$。$:表示完整的目標文件名; $:表示所有的依賴文件; $:表 示依賴文件列表中的第一個文件。(3) GCC 編譯器的常用參數(shù)有哪些?它們的功能分別是什么? 答:gcc 編譯器的常用參數(shù): -o,-I,-L,-E,-S,-c 功能: -o 表示編譯成一個可執(zhí)行程序; -I 表示指定頭文件目錄; -L 表示指定庫文件目錄選項; -E 表示對源代碼進行預編譯; -S 表示編 譯成匯編代碼; -c表示把.c 文件轉(zhuǎn)換為以 .o為擴展名的目標

18、文件。4. 編程及調(diào)試題(1) 根據(jù)要求編寫 Makefile 文件。有 5個文件分別是 main.c、visit.h 、 study.h、visit.c 、study.c,具體代碼如下。/main.c 文件/visit.h 文件/study.h 文件/visit.c 文件/study.c1)如果上述文件在同一目錄,請編寫Makefile 文件,用于生成可執(zhí)行程序 zhs。/Makefile 文件2) 如果按照下面的目錄結(jié)構(gòu)存放文件,請改寫 Makefile 文件bin:存放生成的可執(zhí)行文件obj:存放.o 文件include:存放 visit.h 、 study.hsrc:存放 main.c

19、、 visit.c 、 study.c 和 Makefile.3) 如果按照下面的目錄結(jié)構(gòu)存放文件,請改寫 Makefile 文件bin:存放生成的可執(zhí)行文件 obj:存放.o 文件 include:存放 visit.h 、 study.h src:存放 main.c 和 Makefile src/src1:存放 visit.c src/src2:存放 study.c說明:這可能只是其中一種方法,方法不唯一。我這種做法有一個缺 點就是需要修改 visit.c 和 study.c 文件的內(nèi)容,如修改 #include “ ./include/visit.h”。(2) 按要求完成以下操作。 vi

20、編輯 test.c 文件,其內(nèi)容如下。 用 gcc o test.o test.c編譯,生成 test.o 用 gcc g o test1.o test.c編譯,生成 test1.o 比較 test.o 和 test1.o 文件的大小,思考為什么?帶調(diào)試選項 -g 的目標文件 test1.o比較大。因為在 gcc 編譯源代碼時指 定-g選項可以產(chǎn)生帶有調(diào)試信息的目標代碼(3) 使用 GDB 調(diào)試上面的程序 調(diào)試參數(shù) -g 進行編譯#gcc g test.c o test啟動 GDB 調(diào)試,開始調(diào)試#gdb Gtest使用 gdb 命令進行調(diào)試。 略。(4) 編 寫 一 個 程 序 , 將 系

21、統(tǒng) 時 間 以 year-month-day hour:minute:second 格式顯示在屏幕上,并將它保存在 time.txt 文 件。4.4 練習題1. 填空題(1) 串口(2) 115200 8 1 無 無(3) 編程器 串口 網(wǎng)絡接口(4) Bootloader(5) 程序仿真調(diào)試 程序的燒寫(6) zImage root.cramfs(7) 啟動加載模式 下載模式(8) 匯編語言 C 語言(9) U-Boot Blob ARMBoot (或者 RedBoot vivi)(10) BusyBox(11) 啟動加載模式 說明:按回車進入啟動加載模式; 按回車外的任意鍵進入 vivi

22、的下載 模式。2. 選擇題(1) A(2) C(3) A (4) A (5) A3. 簡答題(1) 簡述嵌入式開發(fā)環(huán)境的搭建過程答: 1、交叉編譯工具鏈的安裝; 2、安裝配置 TFTP 服務; 3、安裝 配置 NFS 服務; 4、C-Kermit 的安裝配置; 5、minicom 的安裝配置;6、windows 下超級終端的配置。(2) BootLoader 的結(jié)構(gòu)分兩部分,簡述各部分的功能? 答:兩部分:Stage1:用匯編語言編寫,主要進行設備的初始化; Stage2: 用 C 語言編寫,增強程序的移植性和可讀性。(2) ARM 常用的 Bootloader 程序有哪些?答: U-Boot

23、, Blob, RedBoot,vivi(3) 簡述生成內(nèi)核映像文件 zImage 的步驟。答: 1、 make config 進入命令行;2、 make menuconfig 內(nèi)核裁剪;3、 make clean 清理以前已生成的目標文件;4、make dep 編譯變量的依賴關系;5、make zImage 生成內(nèi)核鏡像文件 zImage。(4) BusyBox 工具的功能是什么?答:BusyBox 工具用來精簡基本用戶命令和程序, 它將數(shù)以百計的常 用 UNIX/Linux 命令集成到一個可執(zhí)行文件中。(5) 簡述根文件系統(tǒng)的創(chuàng)建過程。 答: 1、建立基本的目錄結(jié)構(gòu);2、交叉編譯 Busy

24、Box; 3、創(chuàng)建配置文件;4、利用 cramfs 工具創(chuàng)建根文件系統(tǒng)映像文件。5.4 練習題1. 選擇題(1) B (2)D (3)C (4)A (5)C (6)D2. 填空題(1) 內(nèi)核態(tài)(2) 字符設備 塊設備(3) 主設備號 次設備號(4) 靜態(tài)編譯 動態(tài)編譯(5) insmod說明:用于加載模塊化驅(qū)動程序的命令是 insmod;用于卸載已安裝模 塊化驅(qū)動程序的命令是 rmmod;用于查看已安裝的模塊化驅(qū)動程序的 命令是 lsmod。3. 簡答題(1)簡述驅(qū)動程序的主要功能。答: 1、對設備初始化和釋放; 2、數(shù)據(jù)傳送; 3、檢測和處理設備出 現(xiàn)的錯誤。(2) 簡述驅(qū)動程序的組成。答:

25、 1、自動配置和初始化子程序; 2、服務于 I/O 請求的子程序; 3、 中斷服務子程序。(3) 簡述設備驅(qū)動程序與應用程序的區(qū)別。 答:1、設備驅(qū)動程序工作在內(nèi)核態(tài)下,而應用程序工作在用戶態(tài)下; 2、設備驅(qū)動程序從 module_init() 開始,將初始化函數(shù)加入內(nèi)核初始 化函數(shù)列表中, 在內(nèi)核初始化時執(zhí)行驅(qū)動的初始化函數(shù), 從而完成驅(qū) 動的初始化和注冊,之后驅(qū)動便停止工作,等待應用程序的調(diào)用;而 應用程序從 main()函數(shù)開始執(zhí)行。3、應用程序可以和 GLIBC 庫連接,因此可以包含標準的頭文件;驅(qū) 動程序不能使用標準的 C庫,因此不能調(diào)用所有的 C 庫函數(shù)。(4) 簡述設備文件、驅(qū)動

26、文件、主設備號和次設備號之間的關 系。答:驅(qū)動程序加載到內(nèi)核后有一個主設備號。在 Linux 內(nèi)核中,主設 備號標識設備對應的驅(qū)動程序, 告訴 Linux 內(nèi)核使用哪一個驅(qū)動程序 為該設備(也就是/dev下的設備文件 )服務,而次設備號則用來標識具 體且唯一的某個設備。(5) 簡述字符設備驅(qū)動程序提供的常用入口點及各自的功能 答:open入口點:對將要進行的 I/O 操作做好必要的準備工作, 如清 除緩沖區(qū)等。 如果設備是獨占的, 即同一時刻只能有一個程序訪問此 設備,則 open 子程序必須設置一些標志以表示設備處于忙狀態(tài)。 close入口點:當設備操作結(jié)束時,需要調(diào)用 close 子程序關

27、閉設備。 獨占設備必須標記設備可再次使用。 read入口點:當從設備上讀取數(shù)據(jù)時,需要調(diào)用 read 子程序。 write 入口點:向設備上寫數(shù)據(jù)時,需要調(diào)用 write 子程序。 ioctl 入口點: 主要用于對設備進行讀寫之外的其他操作, 比如配置設 備、進入或退出某種操作模式等, 這些操作一般無法通過 read 或 write 子函數(shù)完成操作。(6) 簡述逐次逼近型 ADC 的結(jié)構(gòu)及工作原理。 答:逐次逼近型 ADC 通常由比較器,數(shù)模轉(zhuǎn)換器 (DAC) ,寄存器和 控制邏輯電路組成。工作原理:初始化時,先將寄存器各位清空。轉(zhuǎn)換時,先將寄存器的 最高位置 1,再將寄存器的數(shù)值送入 DAC

28、 ,經(jīng) D/A 轉(zhuǎn)換后生成模擬 量送入比較器中與輸入的模擬量進行比較,若 VsVi ,則該位的 1 被 保留,否則被清除;然后再將次高位置1,再將寄存器的數(shù)值送入DAC ,經(jīng) D/A 轉(zhuǎn)換后生成的模擬量送入比較器中與輸入模擬量進行 比較,若 VsVi ,則該位的 1 被保留,否則被清除;重復上述過程, 知道最低位,最后寄存器中的內(nèi)容即為輸入模擬值轉(zhuǎn)換成的數(shù)字量。5. 編程題 S3C2410X通過GPG3端口來控制 LED的亮和滅 ,具體電路如圖,請為該字符設備設計一個驅(qū)動程序和應用程序,應用程序能夠根據(jù)用戶需要來控制 LED 的/驅(qū)動程序00081 00082 00083 000B4 000B

29、5 000B6 000B7 000BB 000B9 00090 00091 00092 00093 00094 00095 00096 00097 00098 00099 00100 00101 00102 00103 00104 00105 00106 00107 00108 00109 00110 00111 00112 00113 00114 00115 00116 00117 00118 00119 0012000121 00122 00123 00124 0012S 00126 00127 00128 00129 00130 00131 00132 00133 00134 00135

30、 00136 00137 00138 0013900140 00141 00142 0014300144 0014S 00146 00147 00148 00149 00150 00151 00152 001S3 00164 00155 00156 00157 001S8 00189 00160default: return EINVAL; return 0;送即數(shù),讀取led的狀態(tài)參莎buffer:用來存讀取的LED狀態(tài) cost:用乗記來用戶讀取了多少個字符static ssize.t S3c2410led_read(struct file flip, char buffer, size.

31、t count, loff.t pos)4put_user(m_dev.status, (int M)buffer);法 C LED 撲 譽return 1;寫操作函數(shù)本其例中不傾任何豐佶static ssize_t S3C2410ldWrit ; struct file yflipr char * buffer, size_t count, loff_t xpos) get_user(m_dev.statu$, (int *)buffer);lf(m_dev.stdtus = 0) 滅s3c2410_Qpio_setpin(S3C2410.GPG3, LED.OFF);else it(m_d

32、ev.stotus = 1);?s3c2410_0pio.setpin(S3C2410_GPG3, LED.ON);return 1;文件棧作結(jié)構(gòu)體,實玫s3c2410_led_open()等函數(shù)與open()等系統(tǒng)調(diào)用的連接 static struct fileoperations s3c2410_led_fops * owner THIS_MODULEZopen s3c2410_led_open#.release s3c2410_led_release,.locti s3c2410_led_ioctlr.read s3c2410_led_readrwnte s3c2410_led_writ

33、ez安裝LED設侖的功能函數(shù)準設備加變欖快里面調(diào)用 static void led setup CdeV(void) int ret =if(led_major)舁碎杰分配devno MKDEV(/ed_major, led_minor);ret = register_chrdev_region(deno, 1, OEVICE_NAME); lf(ret 0) printk(Une %d: register chrdev region infile %s error! nz _LNE_, _FILE_);return -1;)else /?杰分配ret alloc_chrdev_region(

34、8o/evnor led_majort 1, DEVICE_NAME); iff(ret 0)phntk(*Line %d: alloc chrdev region in file %s error* nz _LINE_, _FILE_);return 丄;cdev_init(8jn_dev.cdev,m_dev.cdev.owner = THIS.MODULE;m_dev.cdev.ops - s3c2410_ led_ fops;f/g 上龍幺Jf 孝盤 程夕 余弊淳 想器 W 密ret cdevaddCfiumdev-cdev, devno, 1);期 jS Siif(ret 0)pri

35、ntktLine %d: cdev add in file %s error* n: _LINE_, _FILE_) return 1;/應用程序6.7 練習題1. 選擇題(1)C(2) D說明: TinyOS是 UCB erkeley (加州大學伯克利分校)開發(fā)的開放源 代碼操作系統(tǒng)(3) C2. 填空題(1)X Windows , Micro Windows ,MiniGUI (或者 Qtopia Core , Qt/Embedded , OpenGUI )(2)X Window Server ,Xlib ,幀緩存3. 問答題(1)簡述嵌入式 GUI 的特點。答:1、輕型,占用資源少。嵌入式 GUI 要求是輕量型的,這主要是 受限于嵌入式硬件資源。2、可配置。由于嵌入式設備的可定制性,要求相應的 GUI 系統(tǒng)也是 可以定制的,所以嵌入式 GUI 一般都具有可裁剪性。3、高性能。耗用系統(tǒng)資源較少,能在硬件性能受限的情況下、尤其 是 CPU 資源較少的情況下達到相對較快的系統(tǒng)響應速度,同時減少 能源消耗。4、高可靠性。系統(tǒng)獨立,能適用于不同的硬件,在高性能的同時保 證高可

溫馨提示

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

評論

0/150

提交評論