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

正文內(nèi)容

北郵電子院嵌入式實驗報告大四上-免費(fèi)閱讀

2024-10-23 04:10 上一頁面

下一頁面
  

【正文】 if(ret)}補(bǔ)充代碼9 static void __exit cleanup_AD_ctl(void){} DA驅(qū)動實驗通過本實驗的操作,我們使用示波器看到了通過DA轉(zhuǎn)換而輸出的波形。ad_ucb=ucb1x00_get()。endif return count。} struct ucb1x00 *ad_ucb。j} r = 1。c = cwrite(fd,buf,2)。作業(yè)一,隔行掃描:printk(“cleanup_LED_ctl [kernel]n”)。printk(“pxa270_LED_CTL_init [kernel]n”)。 LED點(diǎn)陣驅(qū)動程序設(shè)計通過本實驗的操作,我們將 8X8 的點(diǎn)陣 LED 驅(qū)動起來并通過編寫測試程序,使其能夠按照您的意圖進(jìn)行顯示。sleep(1)。module_exit(cleanup_SERIAL_LED)。printk(“pxa270_SERIAL_LED_init [kernel]n”)。ret =devfs_register_chrdev(SERIAL_LED_MAJOR, amp。return count。printk(“*********************************************nn”)。printk(“SIMPLE_INT_read [kernel]n”)。}// 休眠1秒ioctl(fd,LED_ON)。}補(bǔ)充代碼(3)//structfile_operationsGPIO_LED_ctl_ops ={ open:SIMPLE_GPIO_LED_open, read:SIMPLE_GPIO_LED_read, write:SIMPLE_GPIO_LED_write, ioctl:SIMPLE_GPIO_LED_ioctl, release:SIMPLE_GPIO_LED_release, }。我們知道,凡是操作系統(tǒng)控制外部設(shè)備,即使是最簡單的硬件電路,也是需要驅(qū)動的。(8)測試該設(shè)備,編寫應(yīng)用程序,對驅(qū)動程序進(jìn)行測試。主設(shè)備號惟一標(biāo)識了設(shè)備類型,即設(shè)備驅(qū)動程序類型,它是塊設(shè)備表或字符設(shè)備表中設(shè)備表項的索引。除非系統(tǒng)不使用操作系統(tǒng),程序直接操縱硬件。(5)其他初始化工作。比如,設(shè)置中斷掩碼,設(shè)置串口的工作方式、并口的數(shù)據(jù)方向等。注冊以后,Linux將設(shè)備名與主、次設(shè)備號聯(lián)系起來。設(shè)備的驅(qū)動程序在加載的時候首先需要調(diào)用入口函數(shù)init_module(),該函數(shù)最重要的一個工作就是向內(nèi)核注冊該設(shè)備,對于字符設(shè)備調(diào)用register_chrdev()完成注冊。往設(shè)備上寫數(shù)據(jù)。關(guān)閉一個設(shè)備。應(yīng)用程序發(fā)出系統(tǒng)調(diào)用命令后,會從用戶態(tài)轉(zhuǎn)到核心態(tài),通過內(nèi)核將open()這樣的系統(tǒng)調(diào)用轉(zhuǎn)換成對物理設(shè)備的操作。Linux操作系統(tǒng)將所有的設(shè)備全部看成文件,并通過文件的操作界面進(jìn)行操作。在 vi 里面先單擊鍵盤 A 鍵,然后左下角會變成—INSER。實驗步驟如下: 1)硬件連接:連接宿主 PC 機(jī)和一臺 PXA270RP目標(biāo)板。實驗五為宿主PC機(jī)配置了TFTP服務(wù)。通過這次實驗,我對嵌入式編程有了更深層次的理解,加深了我對理論知識的認(rèn)識,有助于今后的學(xué)習(xí)和工作。而之后的幾個實驗都是基于實驗十二進(jìn)行相應(yīng)的改動即可。其次要確定虛擬機(jī)上網(wǎng)橋的設(shè)定是否正確。for(j=0。for(j=0。module_exit(cleanup_DA_ctl)。if(ret)return ret。return 0。補(bǔ)充代碼3:ifdef OURS_DA_DEBUG printk(“SIMPLE_DA_read [kernel]n”)。val1 = ioctl(fd,UCB_ADC_INP_AD0,0)。if(ret)return ret。補(bǔ)充代碼6:open: SIMPLE_HELLO_open, read: SIMPLE_HELLO_read, write: SIMPLE_HELLO_write, ioctl: SIMPLE_HELLO_ioctl, release: SIMPLE_HELLO_release補(bǔ)充代碼7:ad_ucb = ucb1x00_get()。補(bǔ)充代碼3:ifdef OURS_HELLO_DEBUG printk(“SIMPLE_HELLO_write [kernel]n”)。printf(“buf[0],buf[1]: [%x,%x]n”,buf[0],buf[1])。// sleep secondc = cbuf[0]=c。三、作業(yè)代碼按橫方向隔行掃描led點(diǎn)陣數(shù)碼管。補(bǔ)充代碼4:open: SIMPLE_LED_open, read: SIMPLE_LED_read, write: SIMPLE_LED_write, ioctl: SIMPLE_LED_ioctl, release: SIMPLE_LED_release補(bǔ)充代碼5:int ret =ENODEV。四、測試顯示:測試時,顯示如下:作業(yè)1: 作業(yè)2:實驗十六 LED點(diǎn)陣驅(qū)動程序設(shè)計本實驗要求我們學(xué)會編寫驅(qū)動程序,實現(xiàn)在Linux系統(tǒng)下控制LED點(diǎn)陣顯示,并在此基礎(chǔ)上稍加改進(jìn),實現(xiàn)對LED的控制。sleep(1)。MODULE_AUTHOR(“l(fā)iduo”)。If(ret補(bǔ)充代碼9: int ret =ENODEV。return 0。補(bǔ)充代碼2: ifdef OURS_HELLO_DEBUG printk(“SERIAL_LED_read [kernel]n”)。endif return count。sleep(5)。實驗十三 CPU GPIO驅(qū)動程序設(shè)計本實驗是讓我們在linux系統(tǒng)中插入自己的驅(qū)動程序,調(diào)用它。//描述信息 MODULE_AUTHOR(“l(fā)iduo”)。}static int __init pxa270_ HELLO_init(void)//模塊初始化函數(shù),調(diào)用HW_ HELLO_init 函數(shù){ int ret =ENODEV。/*INIT:驅(qū)動程序初始化devfs_register_chrdev(SIMPLE_HELLO_MAJOR,“hello_serial_ctl”,amp。endif return 0。驅(qū)動程序代碼及注釋為: // 頭文件include include include include include include include define SIMPLE_HELLO_MAJOR 96 // 定義主設(shè)備號HELLO DEVICE MAJOR define OURS_HELLO_DEBUG // 定義標(biāo)識符define VERSION “” // 定義版本號 void showversion(void)//顯示版本的函數(shù) { printk(“***************************************”)。在每次重啟宿主PC機(jī)時,都需要重新將超級終端掛載到虛擬機(jī)上,掛載之前須通過ifconfig命令查看該機(jī)的IP地址,若其已經(jīng)復(fù)位,須用命令:ifconfig eth0 up重置宿主PC機(jī)的IP地址。配置宿主PC機(jī)端的TFTP服務(wù),并開通此服務(wù)。學(xué)會在宿主機(jī)上安裝Linux操作系統(tǒng)——。實驗二是在宿主PC端安裝虛擬機(jī),提供了實驗需要的Linux操作系統(tǒng)。NFS是指網(wǎng)絡(luò)文件系統(tǒng),它實現(xiàn)了文件在不同的系統(tǒng)間使用。}/*write:用于向打開的文件寫數(shù)據(jù) file:是文件指針 buf:寫入數(shù)據(jù)緩存區(qū) count:求傳輸?shù)淖止?jié)數(shù) f_ops:文件當(dāng)前偏移量當(dāng)讀取標(biāo)識符OURS_HELLO_DEBUG時,打印信息,然后返回count*/ ssize_t SIMPLE_HELLO_write(struct file * file ,const char * buf, size_t count, loff_t * f_ops){ ifdef OURS_HELLO_DEBUGprintk(“SIMPLE_HELLO_write[kernel]n”)。endif MOD_DEC_INC_USE_COUNT。if(ret{printk(“pxa270 init_module failed with %d n[kernel]”,ret)。}/*模塊卸載函數(shù)devfs_unregister_chrdev(SIMPLE_HELLO_MAJOR,“hello _ctl”)最為主要 devfs_unregister_chrdev卸載設(shè)備驅(qū)動程序,包括主設(shè)備號、驅(qū)動程序名*/ static void __exit cleanup_ HELLO_ctl(void){ ifdef OURS_HELLO_DEBUGprintk(“cleanup_HELLO_ctl[kernel]n”)。pwd)TOPDIR:=.KERNELDIR=/pxa270_linux/linux INCLUDEDIR=$(KERNELDIR)/include CROSS_COMPILE=armlinuxAS =$(CROSS_COMPILE)as LD =$(CROSS_COMPILE)ld CC =$(CROSS_COMPILE)gcc CPP =$(CC)E AR =$(CROSS_COMPILE)ar NM =$(CROSS_COMPILE)nm STRIP =$(CROSS_COMPILE)strip OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdumpCFLAGS+=I..CFLAGS+=Wall –O –D_KERNEL_DMODULE –I$(INCLUDEDIR)TARGET = modules: $(TARGET)all: $(TARGET): $(CC)c $(CFLAGS)$^o $clean: rmf *.o *~ Makefile文件的內(nèi)容用于執(zhí)行編譯工作,一個Makefile文件包括:① 由make工具創(chuàng)建的目標(biāo)體(target),通常是目標(biāo)文件或可執(zhí)行文件;② 要創(chuàng)建目標(biāo)體所依賴的文件(dependency_file);③ 創(chuàng)建每個目標(biāo)需要運(yùn)行的命令(mand)。補(bǔ)充代碼2:ifdef OURS_GPIO_LED_DEBUG printk(“SIMPLE_GPIO_LED_open [kernel]n”)。printk(“t %s tn”,VERSION)。一、補(bǔ)充代碼補(bǔ)充代碼1:printk(“*****************************************n”)。endif return 0。ret = devfs_register_chrdev(SERIAL_LED_MAJOR, “serial_led_ctl”, amp。補(bǔ)充代碼10: ifdef OURS_HELLO_DEBUG printk(“cleanup_SERIAL_LED [kernel]n”)。for(count=0。ret=write(fd,data,1)。endif return count。補(bǔ)充代碼6:ifdef OURS_LED_DEBUG printk(“cleanup_LED_ctl [kernel]n”)。jwrite(fd,buf,2)。buf[1]=~r。printk(“************************************************nn”)。補(bǔ)充代碼5:ifdef OURS_HELLO_DEBUG printk(“SIMPLE_HELLO_release [kernel]n”)。If(ret補(bǔ)充代碼8:int ret =ENODEV。代碼:for(i=0。驅(qū)動程序代碼:一、補(bǔ)充代碼補(bǔ)充代碼1:include“../AD/” /引用AD驅(qū)動程序的頭文件/補(bǔ)充代碼2:printk(“*****************************************n”)。endif return 0。If(ret補(bǔ)充代碼9:int ret =ENODEV。MODULE_AUTHOR(“l(fā)iduo”)。unsigned long I。endif } printf(“create sin waven”)。這些實驗內(nèi)容只要按照實驗指導(dǎo)書上的步驟一步一步做即可,不會出現(xiàn)難以解決的問題,一般都會做的很順利??偟膩碚f,實驗的難度不大。否則,在需要一次一次編譯一次次查看錯誤一次次改正錯誤,這會是個費(fèi)時費(fèi)力的工作。對嵌入式系統(tǒng)有進(jìn)一步的了解。當(dāng)我們想用遠(yuǎn)端檔案時,只需調(diào)用“mount”就可以遠(yuǎn)端系統(tǒng)掛接在自己的檔案系統(tǒng)之下。5)打開PXA270_RP目標(biāo)板電源,按目標(biāo)板上的BOOT鍵,在mini中應(yīng)該會看到如下圖:6)在mini終端窗口中,如圖,輸入下列四條命令 root ifconfig eth up mounto nolock :/ /mnt cd /mnt 此時,先將該窗口最小化,在后面的第 10 操作步驟中還將會回到該窗口中進(jìn)行操作。直到正確編譯。設(shè)備文件的屬性由三部分信息組成:第一部分是文件的類型,第二部分是一個主設(shè)備號,第三部分是一個次設(shè)備號。open子程序必須對將要進(jìn)行的I/O操作做好必要的準(zhǔn)備工作,如清除緩沖區(qū)等。對于有緩沖區(qū)的I/O操作,一般是從緩沖區(qū)里讀數(shù)據(jù)。select入口點(diǎn)。如果動態(tài)分配主設(shè)備號成功,此函數(shù)將返回所分配的主設(shè)備號。包括設(shè)備注冊在內(nèi),設(shè)備驅(qū)動的初始化函數(shù)主要完成的功能是有以下5項。調(diào)用register_chrdev()函數(shù)來
點(diǎn)擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1