freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

北郵數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告-文庫吧資料

2024-10-19 18:16本頁面
  

【正文】 IOCTLssize_tSERIAL_LED_ioctl(structinode * inode ,struct file * file, unsigned intcmd, long data){ ifdef OURS_HELLO_DEBUGendif} 補(bǔ)充代碼5 //OPENssize_tSERIAL_LED_open(structinode * inode ,struct file * file){ ifdef OURS_HELLO_DEBUGendifreturn 0。} 補(bǔ)充代碼2 //READssize_tSERIAL_LED_read(struct file * file ,char * buf, size_t count, loff_t * f_ops){ ifdef OURS_HELLO_DEBUG} 補(bǔ)充代碼3 //WRITEssize_tSERIAL_LED_write(struct file * file ,const char * buf, size_t count, loff_t * f_ops)return count。printk(“t %s tn”, VERSION)。數(shù)碼管顯示實(shí)驗(yàn)在此實(shí)驗(yàn)中,我們要編寫針對(duì) 74LV164 的驅(qū)動(dòng)程序,并用其串并轉(zhuǎn)換功能來控制八段LED數(shù)碼管的顯示。write:SIMPLE_INT_write, ioctl:SIMPLE_INT_ioctl, release:SIMPLE_INT_release, }。} 補(bǔ)充代碼3 //WRITEssize_tSIMPLE_INT_write(struct file * file ,const char * buf, size_t count, loff_t * f_ops){ifdef OURS_INT_DEBUG} 補(bǔ)充代碼4 //structfile_operationsINT_ctl_ops ={ open: SIMPLE_INT_open, read: SIMPLE_INT_read, endif return count。補(bǔ)充代碼2 //READssize_tSIMPLE_INT_read(struct file * file ,char * buf, size_t count, loff_t * f_ops){ifdef OURS_INT_DEBUGendif return count。printk(“*********************************************nn”)。補(bǔ)充代碼1 voidshowversion(void){ printk(“*********************************************n”)。只需將上面的代碼改為如下代碼即可:在理論課中,我們學(xué)習(xí)了許多中斷方面的知識(shí),包括中斷向量、中斷優(yōu)先級(jí)、中斷過程等。} 中斷實(shí)驗(yàn)// 滅2秒 // 亮7秒 ioctl(fd,LED_ON)。sleep(2)。sleep(1)。實(shí)驗(yàn)作業(yè)要求在目標(biāo)板上LED閃爍產(chǎn)生亮7秒,滅2秒的效果 在測(cè)試程序中有這樣一段代碼: while(1){ ioctl(fd,LED_OFF)。return 0。}補(bǔ)充代碼(2)//OPENssize_tSIMPLE_GPIO_LED_open(structinode * inode ,struct file * file){ ifdef OURS_GPIO_LED_DEBUG printk(“SIMPLE_GPIO_LED_open [kernel]n”)。補(bǔ)充代碼(1)//WRITEssize_tSIMPLE_GPIO_LED_write(struct file * file ,const char * buf, size_t count, loff_t * f_ops){ ifdef OURS_GPIO_LED_DEBUG printk(“SIMPLE_GPIO_LED_write [kernel]n”)。本實(shí)驗(yàn)涉及的外部硬件只有電阻和發(fā)光二極管。 CPU GPIO驅(qū)動(dòng)程序設(shè)計(jì)在本實(shí)驗(yàn)中,我們要編寫第一個(gè)針對(duì)實(shí)際硬件的驅(qū)動(dòng)程序。雖然這樣一個(gè)字符型設(shè)備驅(qū)動(dòng)程序并沒有任何實(shí)際作用,但是它讓我們輕松掌握了嵌入式驅(qū)動(dòng)的編寫過程,因?yàn)閺?fù)雜繁瑣的驅(qū)動(dòng),其骨架都是相同的。 簡(jiǎn)單設(shè)備驅(qū)動(dòng)程序本次實(shí)驗(yàn)的任務(wù)是編寫一個(gè)字符型設(shè)備驅(qū)動(dòng)程序,并學(xué)習(xí)在應(yīng)用程序中調(diào)用驅(qū)動(dòng)。五、基本接口實(shí)驗(yàn)在完成了基本實(shí)驗(yàn)后,我們開始著手基本接口實(shí)驗(yàn)。(7)編譯該驅(qū)動(dòng)程序到內(nèi)核中,或者用insmod命令加載模塊。(5)實(shí)現(xiàn)所需的文件操作調(diào)用,如read、write等。在驅(qū)動(dòng)程序中實(shí)現(xiàn)驅(qū)動(dòng)的注冊(cè)和卸載。次設(shè)備號(hào)僅由設(shè)備驅(qū)動(dòng)程序解釋,區(qū)分被一個(gè)設(shè)備驅(qū)動(dòng)控制下的某個(gè)獨(dú)立的設(shè)備。設(shè)備由一個(gè)主設(shè)備號(hào)和一個(gè)次設(shè)備號(hào)來標(biāo)識(shí)。一般嵌入式處理器的生產(chǎn)商提供參考電路,也可以根據(jù)需要自行設(shè)計(jì)。實(shí)現(xiàn)一個(gè)嵌入式Linux設(shè)備驅(qū)動(dòng)的大致流程如下。嵌入式Linux系統(tǒng)驅(qū)動(dòng)程序開發(fā)與普通Linux開發(fā)沒有區(qū)別。所以進(jìn)行嵌入式Linux系統(tǒng)的開發(fā),很大的工作量是為各種設(shè)備編寫驅(qū)動(dòng)程序。當(dāng)驅(qū)動(dòng)程序是以模塊的形式編寫時(shí),則要按照如下方式聲明: intinit_module(void)當(dāng)運(yùn)行后面介紹的insmod命令插入模塊時(shí),會(huì)調(diào)用init_module函數(shù)完成初始化工作。若驅(qū)動(dòng)程序是內(nèi)核的一部分,初始化函數(shù)則要按如下方式聲明: int __initchr_driver_init(void)。初始化部分一般還負(fù)責(zé)給設(shè)備驅(qū)動(dòng)程序申請(qǐng)包括內(nèi)存、時(shí)鐘、I/O端口等在內(nèi)的系統(tǒng)資源,這些資源也可以在open子程序或者其他地方申請(qǐng)。如果設(shè)備需要IRQ支持,則要使用request_irq()函數(shù)注冊(cè)中斷。調(diào)用register_chrdev()函數(shù)來注冊(cè)設(shè)備。在這一步驟里對(duì)設(shè)備變量中的項(xiàng)進(jìn)行初始化。(2)初始化設(shè)備驅(qū)動(dòng)相關(guān)的參數(shù)。對(duì)硬件寄存器進(jìn)行設(shè)置。包括設(shè)備注冊(cè)在內(nèi),設(shè)備驅(qū)動(dòng)的初始化函數(shù)主要完成的功能是有以下5項(xiàng)。字符設(shè)備在cleanup_ module()函數(shù)中調(diào)用unregister_chrdev()來完成設(shè)備的注銷。當(dāng)有對(duì)此設(shè)備名的訪問時(shí),Linux通過請(qǐng)求訪問的設(shè)備名得到主、次設(shè)備號(hào),然后把此訪問分發(fā)到對(duì)應(yīng)的設(shè)備驅(qū)動(dòng),設(shè)備驅(qū)動(dòng)再根據(jù)次設(shè)備號(hào)調(diào)用不同的函數(shù)。Linux在/dev目錄中為每個(gè)設(shè)備建立一個(gè)文件,用ls–l命令列出函數(shù)返回值,若小于0,則表示注冊(cè)失?。环祷?或者大于0的值表示注冊(cè)成功。如果動(dòng)態(tài)分配主設(shè)備號(hào)成功,此函數(shù)將返回所分配的主設(shè)備號(hào)。name是設(shè)備名,fops是對(duì)各個(gè)調(diào)用的入口點(diǎn)說明。register_chrdev的定義為:intregister_chrdev(unsigned int major, const char *name, struct file_ operations *fops)。select系統(tǒng)調(diào)用在檢查與設(shè)備文件相關(guān)的文件描述符時(shí)使用select入口點(diǎn)。select入口點(diǎn)。?ioctl入口點(diǎn)。對(duì)于有緩沖區(qū)的I/O操作,一般是把數(shù)據(jù)寫入緩沖區(qū)里。?write入口點(diǎn)。對(duì)于有緩沖區(qū)的I/O操作,一般是從緩沖區(qū)里讀數(shù)據(jù)。?read入口點(diǎn)。當(dāng)最后一次使用設(shè)備完成后,調(diào)用close子程序。?close入口點(diǎn)。open子程序必須對(duì)將要進(jìn)行的I/O操作做好必要的準(zhǔn)備工作,如清除緩沖區(qū)等。打開設(shè)備準(zhǔn)備I/O操作。一個(gè)設(shè)備驅(qū)動(dòng)程序模塊的基本框架在系統(tǒng)內(nèi)部,I/O設(shè)備的存取通過一組固定的入口點(diǎn)來進(jìn)行,入口點(diǎn)也可以理解為設(shè)備的句柄,就是對(duì)設(shè)備進(jìn)行操作的基本函數(shù)。由于Linux 中將設(shè)備當(dāng)做文件處理,所以對(duì)設(shè)備進(jìn)行操作的調(diào)用格式與對(duì)文件的操作類似,主要包括open()、read()、write()、ioctl()、close()等。設(shè)備文件的屬性由三部分信息組成:第一部分是文件的類型,第二部分是一個(gè)主設(shè)備號(hào),第三部分是一個(gè)次設(shè)備號(hào)。?應(yīng)用程序通??梢酝ㄟ^系統(tǒng)調(diào)用open()打開設(shè)備文件,建立起與目標(biāo)設(shè)備的連接。對(duì)用戶程序而言,設(shè)備驅(qū)動(dòng)程序隱藏了設(shè)備的具體細(xì)節(jié),對(duì)各種不同設(shè)備提供了一致的接口,一般來說,是把設(shè)備映射為一個(gè)特殊的設(shè)備文件,用戶程序可以像對(duì)其他文件一樣對(duì)此設(shè)備文件進(jìn)行操作。驅(qū)動(dòng)程序是內(nèi)核的一部分,是操作系統(tǒng)內(nèi)核與硬件設(shè)備的直接接口,驅(qū)動(dòng)程序屏蔽了硬件的細(xì)節(jié),完成以下功能:?對(duì)設(shè)備初始化和釋放;?對(duì)設(shè)備進(jìn)行管理,包括實(shí)時(shí)參數(shù)設(shè)置,以及提供對(duì)設(shè)備的操作接口; ?讀取應(yīng)用程序傳送給設(shè)備文件的數(shù)據(jù)或者回送應(yīng)用程序請(qǐng)求的數(shù)據(jù); ?檢測(cè)和處理設(shè)備出現(xiàn)的錯(cuò)誤。直到正確編譯。8)在上面同一個(gè)終端窗口中,輸入下列 2 , 目標(biāo)文件,如圖 710,圖711: ①armlinuxgcc– ②ls 等到再次出現(xiàn)提示符,代表程序已經(jīng)正確編譯。輸入程序的時(shí)候和其他編輯器是一樣的,如下圖。就像在 Windows系統(tǒng)下面使用寫字板等一樣道理。5)打開PXA270_RP目標(biāo)板電源,按目標(biāo)板上的BOOT鍵,在mini中應(yīng)該會(huì)看到如下圖:6)在mini終端窗口中,如圖,輸入下列四條命令 root ifconfig eth up mounto nolock :/ /mnt cd /mnt 此時(shí),先將該窗口最小化,在后面的第 10 操作步驟中還將會(huì)回到該窗口中進(jìn)行操作。進(jìn)入RedHat 圖形界面后,打開一個(gè)終端窗(Terminal)。2)打開宿主PC 機(jī)電源,進(jìn)入 Linux操作系統(tǒng)。實(shí)驗(yàn)七通過用c語言編寫的簡(jiǎn)單程序HelloWorld,測(cè)試前面幾個(gè)實(shí)驗(yàn)是否成功配置好環(huán)境,從超級(jí)終端可以看到HelloWorld程序的運(yùn)行結(jié)果。當(dāng)我們想用遠(yuǎn)端檔案時(shí),只需調(diào)用“mount”就可以遠(yuǎn)端系統(tǒng)掛接在自己的檔案系統(tǒng)之下。實(shí)驗(yàn)六為宿主PC機(jī)配置了NFS服務(wù)。TFTP(Trivial File Transfer Protocol)是簡(jiǎn)單文件傳輸協(xié)議,由于特定開發(fā)環(huán)境的制約,這一服務(wù)是必須的。由于后面的實(shí)驗(yàn)都要依靠前面實(shí)驗(yàn)的配置,故本段只著重?cái)⑹鰧?shí)驗(yàn)七的具體實(shí)現(xiàn)。對(duì)嵌入式系統(tǒng)有進(jìn)一步的了解。學(xué)習(xí)LINUX開發(fā)環(huán)境的搭建,通訊配置等。(3)查詢選修了章紅老師課程的學(xué)生的學(xué)號(hào)和姓名、課程名稱。3)對(duì)以上視圖進(jìn)行相關(guān)的查詢操作:(1)查詢選修了計(jì)算機(jī)基礎(chǔ)的學(xué)生的學(xué)號(hào)和成績(jī);執(zhí)行結(jié)果:SQL語句:select student_id,student_name,course_name,grade from view1(2)查詢所有學(xué)生的學(xué)號(hào)、姓名、選修的課程名稱和成績(jī);執(zhí)行結(jié)果:SQL語句:select student_id,student_name,course_name from view1 where teacher_name =39。執(zhí)行結(jié)果:SQL語句:select student_id,grade from view1 where course_name =39。執(zhí)行結(jié)果:SQL語句:alterviewview1(student_id,student_name,department_name,teacher_name,course_name,book_name,publish_name,credit,grade,class_id)ASSELECT DISTINCT,student_name,department_name,teacher_name,course_name,book_name,publish_pany, FROMstudent,student_course,course,teacher,teacher_course_class,book,department,class WHERE = and = and = and = and = and = and = 2)修改以上視圖,增加學(xué)生所在班級(jí)信息。Step3:選擇需要顯示的列。1)學(xué)生學(xué)號(hào)、姓名、所在系、授課老師姓名、課程名稱、課程教材名稱、出版社、學(xué)分、選課成績(jī)SQL語句:Createviewview1(student_id,student_name,department_name,teacher_name,course_name, book_name,publish_name,credit,grade)asselectdistinct,department_name,teacher_name,course_name,book_name,publish_pany, fromstudent,course,department,student_course,teacher,teacher_course_class,book,class where= and = and = and = and = and = and =企業(yè)管理器:Step1:右鍵視圖,選擇新建視圖。 andnotexists(select*from student_course student_course2 where = and = ))。SQL語句:select student_id,student_name from student wherenotexists(select*from student_co
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1