嵌入式系統(tǒng)原理與應(yīng)用習(xí)題答案_第1頁
嵌入式系統(tǒng)原理與應(yīng)用習(xí)題答案_第2頁
嵌入式系統(tǒng)原理與應(yīng)用習(xí)題答案_第3頁
嵌入式系統(tǒng)原理與應(yīng)用習(xí)題答案_第4頁
嵌入式系統(tǒng)原理與應(yīng)用習(xí)題答案_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、版權(quán)說明本文件中出現(xiàn)的任何文字?jǐn)⑹?、文件格式、插圖、照片、方法、過程等內(nèi)容,除另有特別注明,版權(quán)均屬本人所有。-WangYiwei由于我正在學(xué)習(xí)嵌入式系統(tǒng)原理與應(yīng)用一一基于ARM微處理器和Linux操作系統(tǒng)”這門課程,網(wǎng)絡(luò)上找不到課后習(xí)題答案。因此本人通過認(rèn)真地做習(xí)題,不懂百度,查閱相關(guān)書籍等途徑,整理了一份答案,可供各位參考。注意:答案弁不一定完全正確,有異議的答案歡迎提出來大家一起探討。嵌入式系統(tǒng)三原理與應(yīng)用.二基尸ARM被處理器二三三RlLinux操作系統(tǒng)練習(xí)題P141.選擇題(1) A說明:嵌入式系統(tǒng)的發(fā)展趨勢表現(xiàn)在以下幾方面:1 .產(chǎn)品種類不斷豐富,應(yīng)用范圍不斷普及2 .產(chǎn)品性能不斷

2、提高3 .產(chǎn)品功耗不斷降低,體積不斷縮小4 .網(wǎng)絡(luò)化、智能化程度不斷提高5 .軟件成為影響價格的主要因素(2) D說明:常見的嵌入式操作系統(tǒng):VxWorks,WindowsCEuC/OS-II和嵌入式Linux(3) A說明:VxWorks是美國WindRiver公司于1983年開發(fā)的一種32位嵌入式實時操作系統(tǒng)。2.填空題(1) 嵌入式計算機(jī)(2) 微處理器外圍電路外部設(shè)備(3) 板級支持包實時操作系統(tǒng)應(yīng)用編程接口應(yīng)用程序(4) 嵌入式處理器微控制器數(shù)字信號處理器3.簡答題( 1)簡述嵌入式系統(tǒng)的定義和特點答:定義:以應(yīng)用為中心,以計算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,應(yīng)用系統(tǒng)對功能、可靠性、成本

3、、體積、功耗有嚴(yán)格要求的專用計算機(jī)系統(tǒng)。特點:專用性強(qiáng)、實時性好、可裁剪性好、可靠性高和功耗低等。( 2)簡述計算機(jī)系統(tǒng)的發(fā)展歷程第一階段大致在20世紀(jì)70年代前后,可以看成是嵌入式系統(tǒng)的萌芽階段;第二階段是以嵌入式微處理器為基礎(chǔ),以簡單操作系統(tǒng)為核心的嵌入式系統(tǒng);第三階段是以嵌入式操作系統(tǒng)為標(biāo)志的嵌入式系統(tǒng),也是嵌入式應(yīng)用開始普及的階段;第四階段是以基于Internet為標(biāo)志的嵌入式系統(tǒng),這是一個正在迅速發(fā)展的階段。( 3)簡述MCU和DSP的區(qū)別MCU是微控制器,DSP是數(shù)字信號處理器。MCU相當(dāng)于小型的電腦,內(nèi)部集成的CPU、ROM、RAM、I/O總線,所以集成度高是它的特點。DSP是專

4、用的信息處理器,內(nèi)部的程序是對不同的機(jī)器和環(huán)境進(jìn)行特別優(yōu)化,所以處理速度是最快的。練習(xí)題1. 填空題(1) ARM7ARM9ARM9EARM10EARM11(2) 精簡指令集計算機(jī)(3) SamsungARM920TIIC總線(4) BGA顯卡布線(5)(6) 81281(7) S3C241064MB64MB2. 選擇題(1) D(2)C(3)A(4)B(5)B(6)C(7)D(8)C(9)C(10)B3. 簡答題(1)ARM和S3c2410X有什么關(guān)系S3c2410韓國三星公司生產(chǎn)的嵌入式處理器,它采用了ARM公司的ARM920T即ARM9)內(nèi)核(2)ARM7是32位RISCM理器,使用3級

5、流水線,采用馮諾依曼體系結(jié)構(gòu),不支持MMU。(3)ARM8是32位RISCM理器,使用5級流水線,采用哈佛體系結(jié)構(gòu),支持MMU。(4)S3c2410XK片有27根地址線,8根片選線(nGCS)32根數(shù)據(jù)線。(5)S3c2410XK片內(nèi)部集成了一個LCD控制器,SDRAM控制器,3個通道UART4個通道DMA,4個具有PWM功能的計時器和一個內(nèi)部時鐘,8通道的10位ADc。(6)ARM體系結(jié)構(gòu)有哪幾種工作狀態(tài)又有哪幾種運行模式其中哪些為特權(quán)模式哪些為異常模式并指出處理器在什么情況下進(jìn)入相應(yīng)模式工作狀態(tài):第1種:ARM狀態(tài)。處理器執(zhí)行32位的字對齊的ARM指令。第2種:Thumb狀態(tài)。處理器執(zhí)行1

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

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

8、發(fā)生在對協(xié)處理器的操作上。(7)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)存空間進(jìn)行管理S3c2410游儲控制器為片外存儲器提供控制信號。它將系統(tǒng)的存儲空間分成8組(Bank)每組的大小為128MB,共1GR(9)分析程序狀態(tài)寄存器各位的功能描述,弁說明C、Z、N、V在

9、什么情況下進(jìn)行置1和清0狀態(tài)寄存器(PSR)具體格式為iW”墻打¥2524第14IJ-i7fr540NZCVQunusedJunusedujiucdIFTmodtLirii-Ii.,Iiiiiiii幾iri狀一城如疆域杓斷一V一溢出標(biāo)志位對于加/減法運算指令,當(dāng)操作數(shù)和運算結(jié)果為二進(jìn)制補碼表示的帶符號數(shù)時,V=1表示符號位溢出,其它指令通常不影響V位。例如:兩個正數(shù)(最高位為0)相加,運算結(jié)果為一個負(fù)數(shù)(最高位為1),則符號位溢出,相應(yīng)V=1.C-進(jìn)位或借位標(biāo)志位對于加法指令(包括比較指令CMN),結(jié)果產(chǎn)生進(jìn)位,則C=1,表示無符號數(shù)運算發(fā)生上溢出,其他情況下C=0;在減法指令中(包

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

11、載/存儲指令,協(xié)處理器指令,異常產(chǎn)生指令。無條件執(zhí)行指令:BLXJ旨令,BKP甘旨令(產(chǎn)生軟件斷點中斷)(11)如何實現(xiàn)兩個64位數(shù)的加法操作,如何實現(xiàn)兩個64位的減法操作,如何求一個64位數(shù)的負(fù)數(shù)實現(xiàn)64位數(shù)據(jù)加法運算:假設(shè)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位)。ADDSR0,R0,R2低32位相加并影響標(biāo)志位ADCR1,R1,R3高32位相加再加上C標(biāo)志位(進(jìn)位值)實現(xiàn)64位數(shù)據(jù)減法運算:如果寄存器R0和R1中放置一個64位的被減數(shù),其中R

12、0中放置低32位數(shù)值;寄存器R2和R3中放置一個64位的減數(shù),其中R2中放置低32位數(shù)值。運算結(jié)果送回到R1:R0中(R0中存放低32位)。SUBSR0R0,R2;低32位相減并影響標(biāo)志位SBCR1R1,R3;高32位相減再減去C標(biāo)志位的反碼求一個64位數(shù)的負(fù)數(shù):如果寄存器R0和R1中放置一個64位數(shù),其中R0中放置低32位數(shù)值;寄存器R4和R5中放置其負(fù)數(shù),其中R4中放置低32位數(shù)值。RSBSR,4R0,#00減去低32位并影響標(biāo)志位RSCR5R1,#00減去高32位再減去C標(biāo)志位的反碼4.程序題(1) 分析下列每條語句,并說明程序?qū)崿F(xiàn)的功能。CMPR0,#0擇題(2) B(2)A(3)C(

13、4)D(5)A(3) 空題(1) .so.a程序運行過程中編譯過程中(2) LIo(3) $*©$八$(CGCFLAG舞)(5) 目標(biāo)文件的完整名稱所有不重復(fù)的依賴文件,以空格隔開第一個依賴文件的名稱、3 .簡答題make和Make萬le之間的關(guān)系答:make是一種命令,是根據(jù)Makefile文件的規(guī)則決定如何編譯和連接程序或其他的動作。(2)Makefile的普通變量與預(yù)定義變量有什么不同預(yù)定義變量有哪些它們分別表示什么意思答:普通變量:引用變量時,只需在變量前面加上$符;預(yù)定義變量:已經(jīng)定義好,直接引用即可。預(yù)定義變量有:$、$八、$。$:表示完整的目標(biāo)文件名;$八:表示所有的依

14、賴文件;$:表示依賴文件列表中的第一個文件。(3)GCC編譯器的常用參數(shù)有哪些它們的功能分別是什么答:gcc編譯器的常用參數(shù):-o,-I,-L,-E,-S,-c功能:-o表示編譯成一個可執(zhí)行程序;-I表示指定頭文件目錄;-L表示指定庫文件目錄選項;-E表示對源代碼進(jìn)行預(yù)編譯;-S表示編譯成匯編代碼;-c表示把.c文件轉(zhuǎn)換為以.0為擴(kuò)展名的目標(biāo)文件。4 .編程及調(diào)試題根據(jù)要求編寫Make萬le文件。有5個文件分別是、,具體代碼如下。iincludetstdio.h>mtmain(void)inti=Ci:pnrtf(Pleaseinputthevaluecfifrom1to5;£

15、canf("%>d"r汝i);if(i=1)vi&at();if(|-士)5 tudy。;raid ViSit();|include "visit.h"uoid visit。fprintff visit friend todayreturn0;study5i|include'study,h"voidstudyopnntf("studyembeddedsyst&fnteriyn");i.PHONV:clean之#顯示的指出。1"口為偽目標(biāo)|防止當(dāng)前目錄下存在文件,不能進(jìn)行清理匚作34OB

16、dECT5=main.visit.ostudy.5件自定義變量1shs:?(OBJECTS)由gee-Wall-g一口q色5inain.o:ntalii.cvisit.hstudy,h10 gcc-g-c$<o11 visit.o:visit,cvisit-.liizqcc-Wa11-c$<-$012 ,0;studyich14gee-Mb11-g-c$<-0L£16 cLean:17 Geehoffrertiuvefile.Jle#在命令前加E表小不顯不韻今19 rm-fHeflin(OBJECTS)的文件include:存放、src:存放、和Makefile.1

17、 .PHONY:clean23 SRC_DIR=.4 1NJDLR=./includeSOBJPIR=.Vctij6 E工NDHR=.n/toin7(EIN_DIR)/zha:$(OBJ_DIR)/main.o$(OBJ_DIR)/visit.c(OBJ_DIR)/study,o9 gcc-Vali-gV-10 5(OBJ_DIR)/inain.o:?(SRC_DIR)/main.c3(INC_DIR)/visit,h$(INC_DIR)/study.h11 gcc-Fall-g-c$<-c12 $IR)/visIt.:$(SRCLIR)/visit_e?(INCDIR)/visit.h

18、13 gec-Vai1-g-c$<-o514 $(OBJ_DIR)/study,ci$(SRC_DIR)study,c$(rNC_DIR)/study.h15 gcc-Fall-g-c$<-q轉(zhuǎn)X6clean;17日已。ho"removefile.”16 rm-f?(BINDIR)/zhs$(OBJ_PIR)/*.3)如果按照下面的目錄結(jié)構(gòu)存放文件,請改寫Makefile文件。bin:存放生成的可執(zhí)行文件obj:存放.o文件include:存放、src:存放和Makefilesrc/src1:存放src/src2:存放1 .PHONY:clean23 SP.C_D1R=.

19、4 工近二1)工n=./IncludeeOBJ_PIR=,./obj6 E工N二DIR=./bin7S5(BIN_DIR)/zhs:5£OBJ_DIR)/main,o$(OBJ_DIR)/visit.c?/study,0gcc-Mall-g帛八-o沌10 5(OBJ_DIR)/niain.o:$(SRC_DIP)/main.c$(INC_DIR)/visit.h5(IIJC_DIR)/study,h11 gcc-Wall-g-c$<-c12 (OBJ_DIR)/visits:tSRC_DIR)/sccl/visic.c5(INC_DIR)/visit.h13 gcc-Wall-

20、g-c5<-c尊014 5(OBJ_DIR)/sr.udy.:$(SRC_BIRJ/src2/study.c(INC_DIR)/studv.h1£gee-Vail-c$<-c16 clean:17 6echo"reniovu£ilestart-"18 tm-±(DIMDIR)/shsS(OBJDR)”.口說明:這可能只是其中一種方法,方法不唯一。我這種做法有一個缺點就是需要修改和文件的內(nèi)容,如修改#include.include/"。(2)按要求完成以下操作。vi編輯文件,其內(nèi)容如下。1#incljde上.J1-Tmaln

21、(4 5 ints='i;7 for(i=;i<=;i+)3(9s=s+i;1311printf(rs;用gcc-o編譯,生成wywubuntu:/mnt/hgfs/lo;exercise91sIstestcwyvX?ubuntu:/nnt/hgfs/lo/exercise91sgccLyvubuntu:/m(it/hgfs/lo/exercise_915Istest.ctest.。vryvjbuntu:mnt/hqfs/lo/EXErti*91s-qtest.test.c用gcc-g-o編譯,生成wyw$ubuntu:/mnt/hgfs/lo;exercise915Istest

22、.ctestwywbuntu:/mnt/hgfs/lo/exercise91$qccwywubuntu:/mnt/hgfs/lc/exercise91g(stestl.otest.ctest.owywubuntumnt/hqfs/lo/exercise91j-otestl.otest.c比較和文件的大小,思考為什么wyviubuntu:/nnt/hgfs/lo/exercise_915Is-Itotal9-rwxrwxrvx1-rwxrwxrvx1rootrootB3?Q2O14-Q1-05rootroot1512014-01-0518:24testl.oIB:22tertI-rwxrwxrv

23、xrootroot71762914-010518:22test.owywubuntu:/mnt/hqfs/lo/exercise91s帶調(diào)試選項-g的目標(biāo)文件比較大。因為在gcc編譯源代碼時指定-g選項可以產(chǎn)生帶有調(diào)試信息的目標(biāo)代碼(3)使用GDB調(diào)試上面的程序調(diào)試參數(shù)-g進(jìn)行編譯#gccg-otestIsgcc -g test.c -o testIswywubuntui/mnt/hgfs/lo/exercise91$testl.otest.ctest.owywubuntu:/nrnt/hgis/lo/exercise91$wy1箱ubuntu:/wit/hgls/lo/exercise91,

24、testtestl.otest.ctest.。wywubuntui/mut/hqfs/lG/exercise91s啟動GDB調(diào)試,開始調(diào)試#gdbGtestwywubuntu:/mnt/hgfs/lo/exercise91sgdbGtestGNUgdb(GDB)7.1-ubuntuCop/rightIC)2310FreeSoftwareFoundation,Inc.licenseGPLv3+:GNUGPLversion3orlater<http:/gnu,org/1icenses/gpl.btml>Thisisfreesoftware:youarefreetochangeandre

25、distributeit.ThereisNOWARFVKMTY,totheextentpermittedb;law.Type*'showcopying"andNshowM3antY"fordetails.ThisGDBwasconfiguredasni4B6-linux-gnu".ForbugreportinginstructionsRpleasesee:<http:Z/www,/sQftware/gdb/bug5/>.Gtest;Nosuchfileordirectory,(gdb)使用gdb命令進(jìn)行調(diào)試略。(4)編寫一個程序

26、,將系統(tǒng)時間以year-month-dayhour:minute:second格式顯示在屏幕上,弁將它保存在文件1345irt'】)6丁rime_tt;9t.ttm-ptoday;FrLtL“101r1r11t=time();1T1ptoday=localtimef&t);XJ14printf(2d62dptoday->t(n_year+,ptoday-itm_iron4,p_taday->tffl_ffldayPp_today->tmhour,p_tcday->tm_minrptoday->tn_sec);516fp=fopen(,);XJrif

27、f=ip)18(19printf(F);2g21return-;222324fprintffprrptoday->tmyear+rp_today->tmmon+,p_today->tm_nidyFptoday->tmhour,ptoddy-Atnjiiin,ptoda/->tnsec);26 return;27 )練習(xí)題1 .填空題(1)串口2 2)11520081無無(3)編程器串口網(wǎng)絡(luò)接口Bootloader(5)程序仿真調(diào)試程序的燒寫(6)zImage(7)啟動加載模式下載模式(8)匯編語言C語言(9) U-BootBlobARMBoot(或者RedBoot

28、vivi)(10) BusyBox(11)啟動加載模式說明:按回車進(jìn)入啟動加載模式;按回車外的任意鍵進(jìn)入vivi的下載模式。2. 選擇題(1) A(2)C(3)A(4)A(5)A3. 簡答題(1)簡述嵌入式開發(fā)環(huán)境的搭建過程答:1、交叉編譯工具鏈的安裝;2、安裝配置TFTP服務(wù);3、安裝配置NFS服務(wù);4、C-Kermit的安裝配置;5、minicom的安裝配置;6、windows下超級終端的配置。(2) BootLoader的結(jié)構(gòu)分兩部分,簡述各部分的功能答:兩部分:Stagel:用匯編語言編寫,主要進(jìn)行設(shè)備的初始化;Stage2用C語言編寫,增強(qiáng)程序的移植性和可讀性。(3) ARM常用的B

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

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

31、斷服務(wù)子程序。(3)簡述設(shè)備驅(qū)動程序與應(yīng)用程序的區(qū)別。答:1、設(shè)備驅(qū)動程序工作在內(nèi)核態(tài)下,而應(yīng)用程序工作在用戶態(tài)下;2、設(shè)備驅(qū)動程序從module_init()開始,將初始化函數(shù)加入內(nèi)核初始化函數(shù)列表中,在內(nèi)核初始化時執(zhí)行驅(qū)動的初始化函數(shù),從而完成驅(qū)動的初始化和注冊,之后驅(qū)動便停止工作,等待應(yīng)用程序的調(diào)用;而應(yīng)用程序從main()函數(shù)開始執(zhí)行。3、應(yīng)用程序可以和GLIBCS連接,因此可以包含標(biāo)準(zhǔn)的頭文件;驅(qū)動程序不能使用標(biāo)準(zhǔn)的C庫,因此不能調(diào)用所有的C庫函數(shù)。(4)簡述設(shè)備文件、驅(qū)動文件、主設(shè)備號和次設(shè)備號之間的關(guān)系。答:驅(qū)動程序加載到內(nèi)核后有一個主設(shè)備號。在Linux內(nèi)核中,主設(shè)備號標(biāo)識設(shè)備

32、對應(yīng)的驅(qū)動程序,告訴Linux內(nèi)核使用哪一個驅(qū)動程序為該設(shè)備(也就是/dev下的設(shè)備文件)服務(wù),而次設(shè)備號則用來標(biāo)識具體且唯一的某個設(shè)備。(5)簡述字符設(shè)備驅(qū)動程序提供的常用入口點及各自的功能。答:open入口點:對將要進(jìn)行的I/O操作做好必要的準(zhǔn)備工作,如清除緩沖區(qū)等。如果設(shè)備是獨占的,即同一時刻只能有一個程序訪問此設(shè)備,則open子程序必須設(shè)置一些標(biāo)志以表示設(shè)備處于忙狀態(tài)。close入口點:當(dāng)設(shè)備操作結(jié)束時,需要調(diào)用close子程序關(guān)閉設(shè)備。獨占設(shè)備必須標(biāo)記設(shè)備可再次使用。read入口點:當(dāng)從設(shè)備上讀取數(shù)據(jù)時,需要調(diào)用read子程序。write入口點:向設(shè)備上寫數(shù)據(jù)時,需要調(diào)用write子

33、程序。ioctl入口點:主要用于對設(shè)備進(jìn)行讀寫之外的其他操作,比如配置設(shè)備、進(jìn)入或退出某種操作模式等,這些操作一般無法通過read或write子函數(shù)完成操作。(6)簡述逐次逼近型ADC的結(jié)構(gòu)及工作原理。答:逐次逼近型ADC通常由比較器,數(shù)模轉(zhuǎn)換器(DAC)寄存器和控制邏輯電路組成。工作原理:初始化時,先將寄存器各位清空。轉(zhuǎn)換時,先將寄存器的最高位置1,再將寄存器的數(shù)值送入DAQ經(jīng)D/A轉(zhuǎn)換后生成模擬量送入比較器中與輸入的模擬量進(jìn)行比較,若Vs<Vi,則該位的1被保留,否則被清除;然后再將次高位置1,再將寄存器的數(shù)值送入DAQ經(jīng)D/A轉(zhuǎn)換后生成的模擬量送入比較器中與輸入模擬量進(jìn)行比較,若V

34、s<Vi,則該位的1被保留,否則被清除;重復(fù)上述過程,知道最低位,最后寄存器中的內(nèi)容即為輸入模擬值轉(zhuǎn)換成的數(shù)字量。5.編程題S3c2410X通過GPG3端口來控制LED的亮和滅,具體電路如圖,請為該字符設(shè)備設(shè)計一個驅(qū)動程序和應(yīng)用程序,應(yīng)用程序能夠根據(jù)用戶需要來控制LED的頭文 # I nd udu vlncl ude * i Firidiuiri # i rioludie 盧 i n lj cl i include sr i cuiud 鼻 # i nczlLid已 # I n cl udc k i nulud* M i ricJuci。 尹 i n elude件vhriLJX/ kcU

35、LFIul. h a 士 IlnLis</ module.hv I i n lixZ i n it- hv I i 門 lisk/1 dl av i os Jh "c I i n Li2Kjr types. H >y linux/ icctLh averr©r,h c I i nud 曰h av 11 n uxZ fs.ln > a Erm/ =n sm/ li c 匚匚uws . h r-c a s-nn/ arch/ r&gs- pi o.h”聲史 W 吊黏枸體 O Sr defini& KJEVTCTE_NAME ,Pled,Bdef

36、ine OCVrCC MAJOR intIi±>clrnnjioir=DEVICE_MAJOR";產(chǎn)/至'A?與&taiticimtlcd_minior-cp/箕豌蘆手defineLED_QN,1/趙、M匚=/中C)時,JR君Md巨fin芭l_fczI>_OFlHo/其二q口W任3e)48LfeOpoo-i2.EntiasHtinuicts3g-24TLO1cd_dcvm_dev;ui1-de5_tdevino:力口中q1/KI帕ftIOsm口v&id0_led_inltl0(voidi-JJOaaZ/四己需L-tOstl應(yīng)白勺湍口為輔出

37、s3c2.4J.O_gHO_cfgpin(S3ULQ_<SPxS雪,S3E2-4LO_GPCS3_OLJTPj;-0=1iz/seKI-EO初始為焙天狀石00032L>3i_2-410_oiLiioi_scl|z»iH(53C24LO_C3P<33*LED_OFT);/tJ開謖說S-t曰;匚.irit.鄉(xiāng)3,之47QISd的H(flruttv<iiJC'txtrlfile王rctum0s/注消設(shè)曲staticints3c24-1O_lod_rOloaSShCstructinode工indd0sructfile=fUp3Tl"elzLirn;I

38、Jr“IO捺簾審.度過UED_OFJqil_E口一口卜F命簾來:控簾I-E0的言天“醇新ciirirl:P3戶V命令,包格LEDONKILEOOFFstaEiczinL§3匚2410IwCiiOUtl廣lultir>u«lvI>*Itrhtruc_tfile*fllpFuriMiqn±dirttdlrM*runsigoe-dIcncj匕<一一-nwittuh(.arid)1_a-匕LED_ON:a3c24ia_gpio_sctoin<S3C2<10PG3,LED_QN)>mefErtatus=Xjliru-Qk二casesLED

39、_dFFtiq_gpi£erpiriw3;uNa1o_qpgm.li曰=_c尸尸do5.三七口1tLi石一DjhrwmlcJ00082二0083:OOOQ4二0086OO8G4ccca。-00088:0089z0090:00091二00092二00053:0094:00096二00096:0097:0098:0009920100=00101:00X02;0X03;00104二OOXOGs0X06T0107二00X08二00109:01X0;O111二00112二00X13;0X14二O1XG=OX16T0117:OOXX8二DO1,L9:01203re±urr-EINVAL

40、;/ZiS函都.醫(yī)取LEDRD狀蘇/第密Ibuffer:用來療崩依取的LE6犬本/uoun匕角東記隸用戶俵取了多少個拿在statics&iz.e_tM3c2410_led_Ci(struotfile.flip,char-bufersise_tcounr,-pow)<一一一put_(intZ/tflf我看return1;>/與操作國都,市實例中不做任何季,侑static££iNe_ts3c24»1O_led_write(struckfile*fliprchar-bufTeL.size_tuouwtr'poa)<一cje*t_dYiz

41、.sXdtus,(irit)if(r»_</ev.status=o)沃-s3c241O_gpio_setpic(S3U241O_GPG3ZLED_OFF);elseif(/T>_c/onz.ctatuoX)/#S3C7U1O_gpio_aetpic(M3UN410_GPG3,IFC_ON);returnX;?/文f牛探作給構(gòu)建實現(xiàn)U241Oed_QpecC等函數(shù)與stoticstructfile_opcration3»3c2410_lc<l_t,ops<-owner=THIS_MOOULE,.opus=、3u?41。_Id_epu”,.release

42、-sMvNdAUIccflrcloaso,.ioatlBc:N4C>_*<!_loot1.rcod-,3uN41O_ledread,.write=w3uN。工。ledvuariteropenC)等系繪舊用白勺連接00121: 0173; O12 3 r 0124- 01.2 S : 012i 00X27: 0012 e: 00129: 01300X31; 0132 r 0133i 0 134 r O13S. 001362 00137: DO12S:DO13S1 0140= oiair 0142. ooiai: 00144 ; 00X46 : DO14«: 00147 2

43、O145 rDO14S = OXBOS 00151: O1B2 T OOXSS. 001&4 : O1SS O1S xDO1S71 OO1GG: oiss T 0 1 6 C .>«<去裝LCD設(shè)超白勺0戰(zhàn)國妙,在謾金加制??炖锩嬖g可staticvoidIed_setup_cdev<<>i<i)<mtret一主;if(/o</oiojoirJ/郎志升交<</<5izrfoMKOEV_,r,d/or.frrefrr>rr»or);rr-t=register-chrdev_1,r>frVIC?

44、tT-NAMF);if(retyO)<printkC'Lmc:/d:realtorchrdcvrcaioninfilcerror?n*LINEFILE_return-1;yIse"動寺分ret-Qlloc_chrdcv_rogion(&,<fov/?o/ocf吸X/DEVIQE_NAME):Iff(retvo)(printk(*Lin»e%d:etllocchrdvregioninfil匕wrrorinMrLINE,FILE);return-x;y?cdev_icittkm_<fou.uclev>"lod_,ops);”_&

45、lt;/r?«zcdeev.ovwnr-THIS_MODULE;mefev<.cdcv.ops*-a_s*3u24NO_/cdfopv;球立詆岳大NK上瘋常源而的逮Wretodev_oddC_c/w.uduv.duv-co,1)j/W厭KRa金0tvO)<pnntl<("Line%d:cdevaddinfile%©error!n*rLINEfFIUE);return-1;00161Irutr,O;OO1G2:OX63rOO1C4xooies:00166:0X67;OOL8:OOlCSsOLTOr0171二00X72:0173x0X74:DOLTS

46、:0017C=O1T7rooiTe二00175zOO10O.00181:00182:O1Q3=0184Z001850106-0197=ooxae:OOLQ9=?oodludnu2。ev?/1AiJ!力(1軌roJS彳目美變更W始staticiniinitS3C241O_led_lHlt(v«>«1)<intre-t=-1;1<3<l_SCtup_cdlcvf();k擊LCDJ與3uN410_lc<l_initIO();城7姊w>_c/oK.s-totus-O;/乙8的新船,rtstajr»i。;y桎建制】載函卻stotiuvoi

47、dS3c241O_led_CXlt(void>cdev_del(8<r»_</«v.cdev);平雙unreister_chrdev_region(<fovz?Or工);?module_init(:s3v24ioledinrt);module_exitc&3uncio_ied_ex11);MODULE_LICENSE(GPL);企化00化JO*口心坦Kz»死/,M限g各#蒼r石號00190:/*±*WH*wiW'W*iariferMitarMMM*七七七七七*七nta1MMMf¥書S3C21CXiffi起

48、金P仁三漓口東模制的三次,快用學(xué)在諛疊建計一個當(dāng)反動程序和應(yīng)用程序,旅用程序能史改相用用戶需再來控制LEDB'J蒞貝/族文(4300X2-mridd。vistTdhiA ax3-工,ncJiLid欄<zstdlit>>hz*口口。工碎_ineludecliniatd-h>'二*、wlLi<1gvun+Lha二口口工e.#,iincIididecsvs/ioctl.Hi_ii工二i?includse士£y±Ftyp邑eUh"Qn1立Ifl OCHS7-dofinUEE>ON1冶Kb亳君甲")產(chǎn)y事LEOW

49、 aa:qd-fini_ED_OFFojzt生至干fojl=T*L&akDO02,_V£iirddel&y(inl!OQJ巴,inj<i-intmflinint<ar9«:1c?har口始“口了口口口二與二ociox<s:inttd-1.jint=O;/任用M甘萬哲j3f口O口N日二二fd=op«?nCHVd«v/lied41fo_rowf);門m開誑再priiitF("Line:opendewioe-ledfmiled*oBirLINE);return-xjn_printf(Mledtierstshow.»r耳爭金ctirl+utoaMilrn",;ioctlQfdrIL匕口DFfjuwImiI=工,redCfdl,&lcl_二t與值口£i);/ZH身e_eo的=相狀去|-FCI&d_Et3tWE=O>/ZJS1或懸滅醇ioc

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論