資源描述:
《linux操作系統(tǒng)-中斷》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、新鄉(xiāng)營(yíng)淀針真機(jī)與信息工超嗲覺(jué)實(shí)驗(yàn)報(bào)告課程名稱操作系統(tǒng)原理專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班級(jí)3班學(xué)號(hào)2013052701xx姓名XXX實(shí)驗(yàn)成績(jī)?nèi)握n教師XXX2013年12月3日實(shí)驗(yàn)名稱中斷姓名XXX成績(jī)實(shí)驗(yàn)地點(diǎn)A14-322實(shí)驗(yàn)時(shí)間2013年12月30、實(shí)驗(yàn)?zāi)康呐c要求實(shí)驗(yàn)?zāi)康模哼M(jìn)一步熟悉linin^P斷的執(zhí)行過(guò)程實(shí)驗(yàn)要求:認(rèn)真二、操作步驟1、編寫(xiě)intr.c文件代碼,代碼如下:#include#include#include#includestaticint
2、irq;/*模塊參數(shù)?中斷號(hào)*/staticchar^interface;/*模塊參數(shù)-設(shè)備名staticintcount=0;/*統(tǒng)計(jì)插入模塊期間發(fā)生的中斷次數(shù)moduk_param(interface,charp,0644);module_parani(irq,int,0644);staticirqreturn_tintr_handler(intirq,void*dev_id)*//*注冊(cè)中斷服務(wù)程序,注staticlonginterval=0;if(count==0){interval=jiffies;interval=jiffies-interval;/*計(jì)算兩次中
3、斷之間的間隔,時(shí)間單位為節(jié)拍printk(?’Theintervalbetweentwointerruptsis%ldn,interval);interval=jiffies;count++;returnIRQ_NONE;staticint_initintr_init(void){if(request_irq(irq,&intr一handler,IRQF_SHARED,interface,&irq)){意內(nèi)核版本不同,共享標(biāo)志可能有所不同*/printk(KERN_ERR’?FailstoregisterIRQ%dn,irq);return-EIO;}printk(
4、"%sRequestonIRQ%dsucceededXn",interface,irq);return0;}staticvoid_exitintr_exit(void){printk(’’The%dinterruptshappenedonirq%dn,count,irq);free_irq(irq,&irq);/*釋放中斷線*/printk(”FreeingIRQ%d",irq);return;module_init(intr_init);module_exit(intr_exit);MODULE_LICENSE(”GPLM);2.編寫(xiě)Makefile文件代碼代碼如下:
5、obj-m:=intr.oCURRENT.PATH:=$(shellpwd)LINUX_KERNEL:=$(shelluname-r)#Linux內(nèi)核源代碼的當(dāng)前版本LINUX_KERNEL_PATH:=/lib/modules/$(shelluname-r)/build#Linux內(nèi)核源代碼的絕對(duì)路徑all:make-C$(LINUX_KERNEL_PATH)M=$(CURRENT_PATH)modules#編譯模塊clean:make-C$(LINUX_KERNEL_PATH)M=$(CURRENT_PATH)clean#清理三、實(shí)驗(yàn)結(jié)果1.在模塊文件intrt.c和M
6、akefile當(dāng)前打開(kāi)終端,輸入make命令之后,所在的文件會(huì)編譯出其他文件[root@localhost桌面]#Is123hellomod.c?intr.ko.unsignedMakefileresult?2.c?intr.cintr.mod.cMakefile?toolsa.c?intr.c?intr.mod.omodules.order第二個(gè)實(shí)驗(yàn)a.txt?intr.kointr.oModuk.symvers第一個(gè)實(shí)驗(yàn)2.在運(yùn)行插入模塊insrnod之后,出現(xiàn)執(zhí)行插入模塊操作后,再次查看模塊列表就會(huì)看到hellomod模塊存在。[root@bogon桌面】#insmo
7、dintr.kointerface=ethOirq=9[root@bogon桌面]#lsmodModuleintrvfatfatusb_storagefuseebtable_natebtablesSizeUsedby1186085750470491vfat39108056800214690151761ebtable_natipt.MASQUERADE182233.執(zhí)行卸載模塊命令后就會(huì)發(fā)現(xiàn)intr模塊從模塊列表中消失。[root@bogon桌面]#rmmodintr[root@bogon桌面】#lsmodModul