




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、字符型驅(qū)動設(shè)備你是怎么創(chuàng)立設(shè)備文件的,就是/dev/下面的設(shè)備文件,供上層應(yīng)用程序翻開使用的文件?答:mknod命令結(jié)合設(shè)備的主設(shè)備號和次設(shè)備號,可創(chuàng)立一個設(shè)備文件。答:mknod命令結(jié)合設(shè)備的主設(shè)備號和次設(shè)備號,可創(chuàng)立一個設(shè)備文件。UDEV/MDEV自動創(chuàng)立設(shè)備文件的方UDEV/MDEVdevfs共有三種方式可以創(chuàng)立設(shè)備文件。答:中斷處理例程應(yīng)當(dāng)盡量短,把能放在后半段(tasklet,等待隊(duì)列等)的任務(wù)盡量放在后半段。答:中斷處理例程應(yīng)當(dāng)盡量短,把能放在后半段(tasklet,等待隊(duì)列等)的任務(wù)盡量放在后半段。tasklet方式。也就是中斷上半部和下半部。其次:中斷效勞程序中不能有堵塞操作。為什么?大家可以爭論。第三:中斷效勞程序留意返回值,要用操作系統(tǒng)定義的宏做為返回值,而不是自己定義的OK,F(xiàn)AIL的是自旋鎖,緣由是在中斷處理例程中,硬中斷是關(guān)閉的,這樣會喪失可能到來的中斷。的是自旋鎖,緣由是在中斷處理例程中,硬中斷是關(guān)閉的,這樣會喪失可能到來的中斷??赡軜?biāo)記資源的使用狀況?其他進(jìn)程又看不見這個變量可能標(biāo)記資源的使用狀況?其他進(jìn)程又看不見這個變量評:其次句話的意思是:定義一個變量,比方intflag=0;if(flag==0){flag=1;操作臨界區(qū);flag=0;}這樣可否?}這樣可否?答:insmod調(diào)用initrmmod調(diào)用答:insmod調(diào)用initrmmod調(diào)用exit的問題。initexitioremap,定時器,留下一點(diǎn)痕跡。6、在驅(qū)動調(diào)試過程中遇到過oops7、ioctlunlock_ioctl答:由于內(nèi)核沒有方法直接訪問物理內(nèi)存地址,必需先通過ioremap獲得對應(yīng)的虛擬地址。8答:由于內(nèi)核沒有方法直接訪問物理內(nèi)存地址,必需先通過ioremap獲得對應(yīng)的虛擬地址。9platfoem總線的匹配規(guī)章是?在具體應(yīng)用上要不要先注冊驅(qū)動再注冊設(shè)備?有先后挨次沒?10、linux11linux存概念?12、linuxtaskletworkqueue分上半部和下半部?13、linux14、linuxspinlock15、linuxRCU16、linux17、linux18、MIPSCpuuboot19、linuxreadlinux核空間?20、linux21、linux22、linuxKmalloc Kmalloc get_free_mempool_createIRQFIQCPU上半局部執(zhí)行與硬件相關(guān)的處理要求快,而有些驅(qū)動在中斷處理程序中又需要完成大量工作,這構(gòu)成沖突,所以Linux有所謂的上半局部執(zhí)行與硬件相關(guān)的處理要求快,而有些驅(qū)動在中斷處理程序中又需要完成大量工作,這構(gòu)成沖突,所以Linux有所謂的bottomhalf成的,在開中斷的環(huán)境下,由底半程序隨后完成.LinuxLinux的底半機(jī)制主要有Tasklet和workqueue以及softirq2.4內(nèi)核則有BHTaskqueue,softirq,tasklet沒有workqueue),其實(shí)底半可以理解成一種工作的延遲。所以實(shí)際使用時跟timermmap函數(shù)實(shí)現(xiàn)把一個文件映射到一個內(nèi)存區(qū)域,從而我們可以像讀寫內(nèi)存一樣讀寫文件,他比單純調(diào)用read/write也要快上很多。在某些時候我們可以把內(nèi)存的內(nèi)容拷貝到一個文件中實(shí)現(xiàn)內(nèi)存?zhèn)浞?,固然,也可以把文件的?nèi)容映射到內(nèi)存來恢復(fù)某些效勞。另外,mmapmmap函數(shù)實(shí)現(xiàn)把一個文件映射到一個內(nèi)存區(qū)域,從而我們可以像讀寫內(nèi)存一樣讀寫文件,他比單純調(diào)用read/write也要快上很多。在某些時候我們可以把內(nèi)存的內(nèi)容拷貝到一個文件中實(shí)現(xiàn)內(nèi)存?zhèn)浞?,固然,也可以把文件的?nèi)容映射到內(nèi)存來恢復(fù)某些效勞。另外,mmap實(shí)現(xiàn)共享內(nèi)存也是其主要應(yīng)用之一,mmap系統(tǒng)調(diào)用使得進(jìn)程之間通過映射同一個一般文件實(shí)現(xiàn)共享內(nèi)存。實(shí)現(xiàn)共享內(nèi)存。驅(qū)動里面為什么要有并發(fā)、互斥的把握?如何實(shí)現(xiàn)?講個例子?自旋鎖在同一時刻只能被最多一個內(nèi)核任務(wù)持有自旋鎖在同一時刻只能被最多一個內(nèi)核任務(wù)持有l(wèi)inux中的信號量釋放后,在等待隊(duì)列中的一個任務(wù)將被喚醒,從而便可以獲得這個信號量。任務(wù)調(diào)度的機(jī)制?linuxwincelinuxtty嵌入式設(shè)備,為加快啟動速度,可以做哪些方面的優(yōu)化?USBGetGetDeviceDescriptor。主機(jī)的第一個命令要求得到設(shè)備描述符,此SETUP包為8個字節(jié)數(shù)據(jù)〔80,06,00,01,00,00,40,00〕,發(fā)向地址0,端口0。“40”表示返回?cái)?shù)40HDEV_DESC[8個字節(jié),用于說明設(shè)備的描述符的真實(shí)長度和設(shè)備的類型。SetAddress〔00,05,02,00,00,00,00,00〕,在主機(jī)只有一個USB設(shè)備的時候,這個地址一般會是2,狀態(tài),主機(jī)以后會在的指定地址處訪問設(shè)備。GetDeviceDescriptor。主機(jī)再次發(fā)送懇求得到設(shè)備描述符的數(shù)據(jù)包〔80,06,00,01,00,00,12,00〕,與上次不同的是,要求的數(shù)據(jù)的長度是實(shí)際的數(shù)據(jù)長度,同時是發(fā)SetAddress讀取全部ConfigurationDescriptor。接著主機(jī)要求得到設(shè)備全部的配置描述符、接口描述符和節(jié)點(diǎn)描述符〔80,06,00,02,00,00,40,00〕,由于主機(jī)不知道設(shè)備描述符64(5)SetInterface,主機(jī)發(fā)送數(shù)據(jù)包〔01,0B,00,00,00,00,00,00〕,設(shè)置接口值0。SetConifguration,確定USBU進(jìn)展后續(xù)的UUGetMaxLun操作,但是實(shí)際上對于U盤來說無視該步驟也沒有問題。generalpurposeinput/outputGPIO是相對于芯片本身而言的,如某個管腳是芯片的GPIO腳,則該腳可作為輸入或輸出高或低電平使用,固然某個腳具有復(fù)用的功能,即可做generalpurposeinput/outputGPIO是相對于芯片本身而言的,如某個管腳是芯片的GPIO腳,則該腳可作為輸入或輸出高或低電平使用,固然某個腳具有復(fù)用的功能,即可做GPIO也就是說你可以把這些引腳拿來用作任何一般用途的輸入輸出,例如用一根引腳連到led〔一些引腳連到一個傳感器上以獲得該傳感器的狀態(tài),這給cpu供給了一個便利的把握周邊設(shè)備的途經(jīng)。假設(shè)沒有足夠多的gpio管腳,在控制一些外圍設(shè)備時就會力有不逮,這時可實(shí)行的方案是使用CPLD來幫助治理。觸摸屏的主要三大種類是:電阻技術(shù)觸摸屏、外表聲波技術(shù)觸摸屏、電容技術(shù)觸摸屏。電阻觸摸屏的主要局部是一塊與顯示器外表格外協(xié)作的電阻薄膜屏,這是一種多層的復(fù)合薄膜,它以一層玻璃或硬塑料平板作為基層,外表圖有一層透亮氧化金屬觸摸屏的主要三大種類是:電阻技術(shù)觸摸屏、外表聲波技術(shù)觸摸屏、電容技術(shù)觸摸屏。電阻觸摸屏的主要局部是一塊與顯示器外表格外協(xié)作的電阻薄膜屏,這是一種多層的復(fù)合薄膜,它以一層玻璃或硬塑料平板作為基層,外表圖有一層透亮氧化金屬〔ITO的導(dǎo)電電阻〕也涂有一層ITO〔1/1000的透亮隔離點(diǎn)把兩層導(dǎo)電層隔開絕緣。當(dāng)手指觸摸屏幕時,兩層導(dǎo)電層在觸摸點(diǎn)位置就有了接觸,把握器偵測到這一接觸并計(jì)算出〔X,Y〕的位置,再依據(jù)模擬鼠標(biāo)的方式運(yùn)作。這就是電阻技術(shù)觸摸屏的最根本的原理。外表聲波技術(shù)是利用聲波在物體的外表進(jìn)展傳輸換能器偵測到這個變化,反映給計(jì)算機(jī),進(jìn)而進(jìn)展鼠標(biāo)的模擬。觸摸屏外表形成以一個耦合電容,對于高頻電流來說,電容是直接導(dǎo)體,于是手指從接觸點(diǎn)吸走一個很小的電流fork創(chuàng)立一個進(jìn)程或execLinuxfork創(chuàng)立一個進(jìn)程或exec在一個只有128M內(nèi)存并且沒有交換分區(qū)的機(jī)器上,說說下面兩個程序的運(yùn)行結(jié)果11#defineMEMSIZE1024*1024intcount=0;void*p=NULL;while(1){p=(void*)malloc(MEMSIZE);if(!p)break;printf(“Currentallocation%dMB\n“,++count);}2while(1){p=(void*)malloc(MEMSIZE);ifif(!p)break;memset(p,1,MEMSIZE);printf(“Currentallocation%dMB\n“,++count);}第一道程序安排內(nèi)存但沒有填充,編譯器可能會把內(nèi)存安排優(yōu)化掉,程序死循環(huán);其次道,程序安排內(nèi)存并進(jìn)展填充,系統(tǒng)會始終安排內(nèi)存,直到內(nèi)存缺乏,退出循環(huán)。請定義一個宏,比較兩個數(shù)a、b的大小,不能使用大于、小于、if語句搞的比較簡潔。主要思想就是a-b搞的比較簡潔。主要思想就是a-b的值的最高位是否為0;但是又得考慮整數(shù)溢出的問題,所以很簡潔。不知道哪位大俠有更好的方法,教育教育。#include<stdio.h>#defineZHENG(i)((i>>31)==0)#defineFU(i)((i>>31)!=0)#defineCOMPARE(a,b)((ZHENG(a)&&FU(b))||(((ZHENG(a)&&ZHENG(b))||(FU(a)&&FU(b)))&&((((a)-(b))>>31)==0)))voidmain{inta=0x80000001;intb=0x6FFFFFFF;if(COMPARE(a,b)){printf(“a>=b\n“);}else{printf(“a<b\n“);}}參考答案:155都基于TCP/IP參考答案:155都基于TCP/IPTCPSOCK和無連接的UDPSOCK。都是一個sock都是使用sockd)都具有緩沖機(jī)制。A、在Linux/mnt/test/testA、在Linux/mnt/test/testB、當(dāng)testC、當(dāng)test100假設(shè)你所擁有的資源:A、目標(biāo)機(jī)器是一臺具有標(biāo)準(zhǔn)shellCPUARM756MB16MB,軟件環(huán)境基于Linux2.6.11BusyBox1.2B11CPU2MBCPU此題是考察LINUX和嵌入式編程功底的,寫出程序來的不少,但是95%以上的人竟無視我假設(shè)的資源,不知道在重啟test程序的時候需要加上一個適當(dāng)?shù)难陲棔r間,以便資源緊急的操作系統(tǒng)有時間回收資源。85%的人不知道寫完testd之后,要在init里邊加載這個腳本,才能實(shí)現(xiàn)啟動時自動加載的功能。參考答案:#########################################testdisadaemonscripttostartanwatchtheprogramtest#########################################!/bin/sh#load*.sothatmayneedif[-r/sbin/ldconfig];thenldconfigfi#addthelibsPATHthatmayneedexportLD_LIBRARY_PATH=“/lib“#countisthecounterofteststartedtimescount=0#mainloopwhile[1];do#addexecutepropertyfor/mnt/test/testchmod+x/mnt/test/test#starttest/mnt/test/test#therunningtimescounterletcount=count+1echo“testrunningtimesis$count“#Istestrunningtoomanytimes?if[“$count“-gt100];thenecho“Willrebootbecauseoftestrunningtoomanytimes“rebootfi#waitforteststoping...sleepsleep3done#########################################Cdirhelloworld”字符串的文件A:A:unsignedshorti;unsignedshortindex=0;for(i=0;i<index-1;i++){ printf(“a\n”);}B:unsignedshorti;unsignedlongindex=0;for(i=0;i<index-1;i++){ printf(“b\n”);}LINUXARMbootloader輸出,硬件和軟件各應(yīng)當(dāng)去檢查什么?提示:1LINUXDRAM,一般的系統(tǒng)也常常有提示:1LINUXDRAM,一般的系統(tǒng)也常常有NOR或NANDFLASH請簡述下面這段代碼的功能movr12,#0x0ldrr13,movr12,#0x0ldrr13,=0x30100000movr14,#4096loop:ldmiar12!,{r0-r11}stmiar13!,{r0-r11}cmpr12,r14blloop嵌入式中常用的文件系統(tǒng)有哪些?說出它們的主要特點(diǎn)和應(yīng)用場合?rGpioBase0x560000000~15器高八位(8~`150xc3提示:主要說字符設(shè)備的編寫過程LINUX提示:主要說字符設(shè)備的編寫過程LINUX試總結(jié)單片機(jī)底層開發(fā)與LINUX驅(qū)動開發(fā)有哪些異同?假設(shè)是外部擴(kuò)展芯片,請說出你用的芯片的型號畫出上題中你選定相應(yīng)硬件模塊與CPU的主要引腳連線請從網(wǎng)卡、USBHOST、LCDNANDFLASH、WIFI假設(shè)是外部擴(kuò)展芯片,請說出你用的芯片的型號畫出上題中你選定相應(yīng)硬件模塊與CPU的主要引腳連線3)編寫上題中你選定相應(yīng)硬件模塊相應(yīng)3)編寫上題中你選定相應(yīng)硬件模塊相應(yīng)LINUX54、linuxLinuxLinux字符設(shè)備。塊設(shè)備。網(wǎng)絡(luò)設(shè)備。字符設(shè)備指那些必需以串行挨次依次進(jìn)展訪問的設(shè)備FlashLinuxLinuxBSDunix的socket機(jī)制。在系統(tǒng)和驅(qū)動程序之間定義有特地的數(shù)據(jù)構(gòu)造(sk_buff)進(jìn)展數(shù)據(jù)的傳遞。系統(tǒng)里支持對發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的緩存,供給流量把握機(jī)制,供給對多協(xié)議的支持。55、信號量與自旋鎖自旋鎖自旋鎖理器來說,防止中斷處理中的并發(fā)可簡潔承受關(guān)閉中斷的方式,不需要自旋鎖。被持有)的自旋鎖,那么這個任務(wù)就會始終進(jìn)展忙循環(huán)——旋轉(zhuǎn)——等待鎖重可用。要是多于一個的內(nèi)核任務(wù)同時進(jìn)入臨界區(qū)任務(wù)競爭共享資源。換的開銷。自旋鎖的根本形式如下:spin_lock(&mr_lock);//臨界區(qū)spin_unlock(&mr_lock);由于自旋鎖在同一時刻只能被最多一個內(nèi)核任務(wù)持有全剔除出內(nèi)核。成的競爭。另外自旋鎖不允許任務(wù)睡眠(持有自旋鎖的任務(wù)睡眠會造成自死鎖——由于睡眠有可能造成持有鎖的內(nèi)核任務(wù)被重調(diào)度,而再次申請自己已持有的鎖),它能夠在中斷上下文中使用。死鎖:假設(shè)有一個或多個內(nèi)核任務(wù)和一個或多個資源,每個內(nèi)核都在等待其中的一個資源,不行能再獲得該資源,因此就自縛手腳了。遞歸使用一個自旋鎖就會消滅這種狀況。信號量信號量釋放后,在等待隊(duì)列中的一個任務(wù)將被喚醒,從而便可以獲得這個信號量。信號量根本使用形式為:staticDECLARE_MUTEX(mr_sem);//聲明互斥信號量if(down_interruptible(&mr_sem))//可被中斷的睡眠,當(dāng)信號來到,睡眠的任務(wù)被喚醒//臨界區(qū)up(&mr_sem);信號量和自旋鎖區(qū)分信號量和自旋鎖區(qū)分從嚴(yán)格意義上講,信號量和自旋鎖屬于不同層次的互斥手段,前者的實(shí)現(xiàn)有賴于后者。留意以下原則:假設(shè)代碼需要睡眠——這往往是發(fā)生在和用戶空間同步時——使用信號量是唯影響調(diào)度反響時間帶來負(fù)面影響。自旋鎖對信號量需求低開銷加鎖短期鎖定長期加鎖中斷上下文中加鎖持有鎖是需要睡眠、調(diào)度建議的加鎖方法優(yōu)先使用自旋鎖優(yōu)先使用自旋鎖優(yōu)先使用信號量使用自旋鎖使用信號量56、platform57、kmallocvmallockmallocvmalloc介紹kmalloc用于申請較小的、連續(xù)的物理內(nèi)存以字節(jié)為單位進(jìn)展安排,在<linux/slab.h>中void*kmalloc(size_tsize,intflags)安排的內(nèi)存物理地址上連續(xù),虛擬地址上自然連續(xù)gfp_mask———————————————————————————————-情形 相應(yīng)標(biāo)志———————————————————————————————-進(jìn)程上下文,可以睡眠GFP_KERNEL進(jìn)程上下文,不行以睡眠GFP_ATOMIC中斷處理程序GFP_ATOMIC軟中斷GFP_ATOMICTaskletGFP_ATOMICDMAGFP_DMA|GFP_KERNELDMAGFP_DMA|GFP_ATOMIC———————————————————————————————-voidkfree(constvoid*ptr)釋放由kmalloc安排出來的內(nèi)存塊vmalloc用于申請較大的內(nèi)存空間,虛擬內(nèi)存是連續(xù)的以字節(jié)為單位進(jìn)展安排,在<linux/vmalloc.h>中void*vmalloc(unsignedlongsize)安排的內(nèi)存虛擬地址上連續(xù),物理地址不連續(xù)一般狀況下,只有硬件設(shè)備才需要物理地址連續(xù)的內(nèi)存,由于硬件設(shè)備往往存在于MMUkmalloc,而只有在需要獲得大塊內(nèi)存時才使用vmalloc,例如當(dāng)模塊被動態(tài)加載到內(nèi)核當(dāng)中時,就把模塊裝載到由vmalloc[*]kmallocvmalloc,malloc[*]kmalloc保證安排的內(nèi)存在物理上是連續(xù)的,vmalloc保證的是在虛擬地址空間上的連續(xù),malloc[*]kmalloc,vmalloc[*]kmallocvmalloc,malloc[*]kmalloc保證安排的內(nèi)存在物理上是連續(xù)的,vmalloc保證的是在虛擬地址空間上的連續(xù),malloc[*]kmalloc,vmallocmalloc[*]內(nèi)存只有在要被DMA[*]vmallockmalloc58、module_init59、添加驅(qū)動靜態(tài)加載和動態(tài)加載:靜態(tài)加載和動態(tài)加載:靜態(tài)加載是系統(tǒng)啟動的時候由內(nèi)核自動加載的,這個要事先將驅(qū)動編譯進(jìn)內(nèi)核才行;動態(tài)載入內(nèi)核,這種主要用在調(diào)試的時候,比較便利靈敏。insmodmodule.ko60、IICi2c_msg61、kernelpanic62、USBUSBurbUSBUSBUSB總線屬于一種輪詢式總線,主機(jī)把握端口初始化全部的數(shù)據(jù)傳輸。每一總線動作最多傳送三個數(shù)據(jù)包,包括令牌(Token)、數(shù)據(jù)(Data)、聯(lián)絡(luò)(HandShake)。依據(jù)傳輸前制定好的原USB設(shè)備地址和終端號的USB(TokenPacketUSBUSBUSB把握信息供給一個入口。USBUSB1、中斷傳輸:由OUT事務(wù)和INHID2、批量傳輸:由OUT事務(wù)和IN帶寬,當(dāng)總線忙時,USB3、同步傳輸:由OUT事務(wù)和ININOUT是沒有返回包階段的;其次,在數(shù)據(jù)包階段任何的數(shù)據(jù)包都為DATA04、把握傳輸:最重要〔初始配置階段、可選數(shù)據(jù)階段、狀態(tài)信息步驟〕,每一個階段能夠看成一個的傳輸,也就是說把握傳輸其實(shí)是由三個傳輸構(gòu)成的,用來于USBUSB。URB:USB〔USBrequestblock,urb〕USBUSBsk_buffUSB備通信的“電波”。63、同步和互斥同步和互斥完成的特定的任務(wù)。間不行以同時運(yùn)行,他們會相互排斥,必需等待一個線程運(yùn)行完畢,另一個才能運(yùn)行,而同〔也是一種互斥!總結(jié):無法限制訪問者對資源的訪問挨次,即訪問是無序的。同步:是指在互斥的根底上〔大多數(shù)狀況〕,通過其它機(jī)制實(shí)現(xiàn)訪問者對資源的有序訪狀況是指可以允很多個訪問者同時訪問資源答:字符設(shè)備:字符設(shè)備是個能夠像字節(jié)流〔類似文件〕一樣被訪問的設(shè)備,由字符設(shè)備open,close,readwrite答:字符設(shè)備:字符設(shè)備是個能夠像字節(jié)流〔類似文件〕一樣被訪問的設(shè)備,由字符設(shè)備open,close,readwrite調(diào)用。字符終端、串口、鼠標(biāo)、鍵盤、攝像頭、聲卡和顯卡等就是典型的字符設(shè)備。塊設(shè)備:和字符設(shè)備類似,塊設(shè)備也是通過/dev名目下的文件系統(tǒng)節(jié)點(diǎn)來訪問。塊設(shè)備上能夠容納文件系統(tǒng),如:uSD字符設(shè)備和塊設(shè)備的區(qū)分僅僅在于內(nèi)核內(nèi)部治理數(shù)據(jù)的方式之間的軟件接口,而這些不同對用戶來講是透亮的。在內(nèi)核中,和字符驅(qū)動程序相比動程序具有完全不同的接口答:1)查看驅(qū)動模塊中打印信息的命令:dmesg2)查看字符設(shè)備信息可以用答:1)查看驅(qū)動模塊中打印信息的命令:dmesg2)查看字符設(shè)備信息可以用lsmod和modproblsmodmodprobe3〕顯示當(dāng)前使用的中斷號cat/proc/interrupt66、Linux中引入模塊機(jī)制有什么好處?換句話說,模塊初始化函數(shù)的任務(wù)就是為以后調(diào)用函數(shù)預(yù)先作預(yù)備。好處:應(yīng)用程序在退出時,可以不管資源的釋放或者其他的去除工作,但是模塊的退出函數(shù)卻必需認(rèn)真此撤銷初始化函數(shù)所作的一切。該機(jī)制有助于縮短模塊的開發(fā)周期。即:注冊和卸載都很靈敏便利。67、copy_to_user和copy_from_user主要用于實(shí)現(xiàn)什么功能?一般用于file_operations寫。copy_to_user:完成內(nèi)核空間到用戶空間的復(fù)制,copy_from_user:是完成用戶空間到內(nèi)核空間的復(fù)制。一般用于file_operations構(gòu)造里的read,write,ioctl等內(nèi)存數(shù)據(jù)ioctl數(shù)。答:主設(shè)備號:主設(shè)備號標(biāo)識設(shè)備對應(yīng)的驅(qū)動程序。雖然現(xiàn)代的linux內(nèi)核允很多個驅(qū)動程則組織。次設(shè)備號:次設(shè)備號由內(nèi)核使用,用于正確確定設(shè)備文件所指的設(shè)備。依靠于驅(qū)動程序作設(shè)備本地?cái)?shù)組的索引。chartest由驅(qū)動程序464〔感覺類似于串口終端或者字符設(shè)備終端〕。68答:主設(shè)備號:主設(shè)備號標(biāo)識設(shè)備對應(yīng)的驅(qū)動程序。雖然現(xiàn)代的linux內(nèi)核允很多個驅(qū)動程則組織。次設(shè)備號:次設(shè)備號由內(nèi)核使用,用于正確確定設(shè)備文件所指的設(shè)備。依靠于驅(qū)動程序作設(shè)備本地?cái)?shù)組的索引。chartest由驅(qū)動程序464〔感覺類似于串口終端或者字符設(shè)備終端〕。69、設(shè)備驅(qū)動程序中如何注冊一個字符設(shè)備?分別解釋一下它的幾個參數(shù)的含義。答:注冊一個字符設(shè)備驅(qū)動有兩種方法:答:注冊一個字符設(shè)備驅(qū)動有兩種方法:voidcdev_init(structcdev*cdev,structfile_operations*fops)該注冊函數(shù)可以將cdev構(gòu)造嵌入到自己的設(shè)備特定的構(gòu)造中cdev是一個指向構(gòu)造體cdev但不限于該構(gòu)造〕的指針.intregister_chrdev(unsignedintmajor,constchar*namem,structfile)operations*fopen);該注冊函數(shù)是早期的注冊函數(shù),majorfops是默認(rèn)的file_operations〔這是只限于file_operations〕。對于register_chrdev的調(diào)用將為給定的主設(shè)備號注冊0-255作為次設(shè)備號,并為每個設(shè)備建立一個對應(yīng)的默認(rèn)cdev構(gòu)造。答:1〕DMACPU機(jī)制,使用DMA可以使系統(tǒng)CPU答:1〕DMACPU機(jī)制,使用DMA可以使系統(tǒng)CPU從實(shí)際的I/O數(shù)據(jù)傳輸過程中擺脫出來,從而大大提高系統(tǒng)的吞吐率。CPUCPU轉(zhuǎn)去處理突發(fā)大事,處理完畢后CPU所以中斷和MDA的區(qū)分就是MDA不需CPU參與而中斷是需要CPU2〕中斷注冊函數(shù)和中斷注銷函數(shù)注冊中斷:intrequest_irq(unsignedintirq,irqreturn_t(*handler)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)場種菜出租合同樣本
- 凈水項(xiàng)目售后合同標(biāo)準(zhǔn)文本
- 農(nóng)村換工雇工合同標(biāo)準(zhǔn)文本
- pvc管子供應(yīng)合同標(biāo)準(zhǔn)文本
- 倉庫租賃搬家合同樣本
- 秋季學(xué)期師生關(guān)系改善項(xiàng)目計(jì)劃
- 婦產(chǎn)科產(chǎn)前檢查流程完善計(jì)劃
- 二手房屋轉(zhuǎn)讓合同樣本
- 2025掌握合同翻譯關(guān)鍵英語詞匯:輕松看懂英文合同
- 農(nóng)田建設(shè)項(xiàng)目合同樣本
- 倫理與禮儀 知到智慧樹網(wǎng)課答案
- 康養(yǎng)活動策劃方案
- DB11/1950-2021-公共建筑無障礙設(shè)計(jì)標(biāo)準(zhǔn)
- 2024新生兒肺炎個案護(hù)理
- 2022版新課標(biāo)核心素養(yǎng)關(guān)鍵詞解讀-運(yùn)算能力主題研討與教學(xué)分享
- 安委會-安委會工作總結(jié)
- 防汛預(yù)案桌面演練(終)課件
- 山東專業(yè)就業(yè)分析報(bào)告???/a>
- 工裝裝修策劃方案
- 青年教師專業(yè)成長之路
- 采購管理系統(tǒng)的六大功能模塊
評論
0/150
提交評論