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

正文內(nèi)容

北郵小學(xué)期avr單片機(jī)電子琴實(shí)驗(yàn)報(bào)告-資料下載頁

2024-10-25 07:08本頁面
  

【正文】 話響了,這個(gè)人便要接電話,接完電話后再回來打掃房間。這個(gè)過程便是“執(zhí)行主程序(打掃房間)——中斷(電話響,接電話)——中斷返回(繼續(xù)打掃房間)”的過程,單單片機(jī)CPU正在執(zhí)行程序的過程中,如果外部硬件或內(nèi)部組件有緊急的請求,此時(shí)中斷系統(tǒng)可以將當(dāng)前的程序暫停,優(yōu)先處理中斷請求。當(dāng)中斷請求處理完畢的時(shí)候,再返回來繼續(xù)執(zhí)行主程序。有了中斷系統(tǒng),便可以使單片機(jī)具備對(duì)外部的異步事件進(jìn)行處理的能力。所以,主程序雖然是個(gè)死循環(huán),但是每當(dāng)外界有中斷請求的時(shí)候,它就跳轉(zhuǎn)到中斷程序中去執(zhí)行,所以我們看到,大部分,也是最主要的程序一般都位于中斷服務(wù)程序中,這樣,單片機(jī)的各個(gè)模塊既能單獨(dú)地并行地互不干擾地運(yùn)行,又能夠保證主程序順序執(zhí)行,這樣就發(fā)揮了模塊化程序設(shè)計(jì)思想的高效特點(diǎn),并且既充分利用了各個(gè)硬件的資源,又能減少能量損耗。最后,單片機(jī)中的對(duì)各個(gè)硬件資源的控制有嚴(yán)格的控制寄存器來控制,并且各個(gè)單片機(jī)都不同,所以在設(shè)計(jì)單片機(jī)并且運(yùn)用它的某些硬件功能的時(shí)候,一定要仔細(xì)閱讀單片機(jī)的用戶手冊,充分了解各個(gè)控制寄存器的設(shè)定方法時(shí)候才能正確使用其硬件,并且還要時(shí)刻注意各個(gè)硬件之間的中斷的相互影響關(guān)系,否則程序運(yùn)行后極容易出現(xiàn)讓人不知所源的錯(cuò)誤??傊谶@一學(xué)期的51單片機(jī)的學(xué)習(xí)過程中,我對(duì)于單片機(jī)的編程思想以及方法有了初步的入門,并且自己也動(dòng)手編寫并且下載到單片機(jī)上運(yùn)行,雖然都是一些最簡單的程序,但是對(duì)于我學(xué)習(xí)單片機(jī)的入門有極大的幫助,讓我有很大的收獲,同時(shí)也激起了我對(duì)單片機(jī)的濃厚興趣,單片機(jī)的強(qiáng)大功能一直讓我著迷,如何能夠使單片機(jī)在利用最少的硬件資源,能量資源的條件下完成我們所需要的功能,一直是讓許許多多電子工程師為之努力的方向,這也是我今后繼續(xù)學(xué)習(xí)單片機(jī)所要重視的方面。第四篇:北郵嵌入式實(shí)驗(yàn)報(bào)告北京郵電大學(xué)嵌入式系統(tǒng)開發(fā)實(shí)驗(yàn)報(bào)告學(xué)院:班級(jí): 姓名: 學(xué)號(hào):序號(hào):目錄一、實(shí)驗(yàn)?zāi)康?.............................................................................................1二、實(shí)驗(yàn)設(shè)備..............................................................................................1三、基礎(chǔ)實(shí)驗(yàn)(實(shí)驗(yàn)一~實(shí)驗(yàn)七)............................................................1..................................................................................................1 ..................................................................................................1 ..................................................................................................1四、驅(qū)動(dòng)程序..............................................................................................5..........................................................................5 ......................................................................................6 ..............................................................................7 ..................................................................8五、基本接口實(shí)驗(yàn)......................................................................................8..............................................................9 CPU GPIO驅(qū)動(dòng)程序設(shè)計(jì)...................................................9 ...........................................................................10 ................................................................12 LED點(diǎn)陣驅(qū)動(dòng)程序設(shè)計(jì)...................................................19 AD驅(qū)動(dòng)實(shí)驗(yàn)....................................................................23 DA驅(qū)動(dòng)實(shí)驗(yàn)....................................................................26六、實(shí)驗(yàn)中遇到的問題及解決方法........................................................30七、實(shí)驗(yàn)總結(jié)及心得................................................................................31一、實(shí)驗(yàn)?zāi)康耐ㄟ^實(shí)驗(yàn)熟悉Linux環(huán)境,并掌握一些基本接口驅(qū)動(dòng)的寫法和用C語言編寫簡單的實(shí)驗(yàn)程序。學(xué)習(xí)LINUX開發(fā)環(huán)境的搭建,通訊配置等。并熟練掌握LINUX驅(qū)動(dòng)程序的編寫及開發(fā)流程。對(duì)嵌入式系統(tǒng)有進(jìn)一步的了解。二、實(shí)驗(yàn)設(shè)備,并且配置好ARM Linux的開發(fā)環(huán)境三、基礎(chǔ)實(shí)驗(yàn)(實(shí)驗(yàn)一~實(shí)驗(yàn)七)實(shí)驗(yàn)一~七為基礎(chǔ)實(shí)驗(yàn),目的是為后續(xù)實(shí)驗(yàn)搭建好軟、硬件環(huán)境,配置好相關(guān)的協(xié)議、服務(wù),并通過編寫最簡單的HelloWorld程序進(jìn)行測試。由于后面的實(shí)驗(yàn)都要依靠前面實(shí)驗(yàn)的配置,故本段只著重?cái)⑹鰧?shí)驗(yàn)七的具體實(shí)現(xiàn)。實(shí)驗(yàn)五為宿主PC機(jī)配置了TFTP服務(wù)。TFTP(Trivial File Transfer Protocol)是簡單文件傳輸協(xié)議,由于特定開發(fā)環(huán)境的制約,這一服務(wù)是必須的。在配置完成后,每次重啟宿主PC機(jī)時(shí),都須先輸入命令:service xinetd restart,以啟動(dòng)TFTP服務(wù)。實(shí)驗(yàn)六為宿主PC機(jī)配置了NFS服務(wù)。NFS(Network File System)指網(wǎng)絡(luò)文件系統(tǒng),它實(shí)現(xiàn)了文件在不同的系統(tǒng)間使用。當(dāng)我們想用遠(yuǎn)端檔案時(shí),只需調(diào)用“mount”就可以遠(yuǎn)端系統(tǒng)掛接在自己的檔案系統(tǒng)之下。每次重啟宿主PC機(jī)時(shí),都須先輸入命令:service nfs restart,以啟動(dòng)nfs服務(wù)。實(shí)驗(yàn)七通過用c語言編寫的簡單程序HelloWorld,測試前面幾個(gè)實(shí)驗(yàn)是否成功配置好環(huán)境,從超級(jí)終端可以看到HelloWorld程序的運(yùn)行結(jié)果。實(shí)驗(yàn)步驟如下: 1)硬件連接:連接宿主 PC 機(jī)和一臺(tái) PXA270RP目標(biāo)板。2)打開宿主PC 機(jī)電源,進(jìn)入 Linux操作系統(tǒng)。3)啟動(dòng)RedHat 的圖形界面,如下圖,若您是以 root 身份登陸在文本模式下,則輸入命令startx啟動(dòng)圖形界面。進(jìn)入RedHat 圖形界面后,打開一個(gè)終端窗(Terminal)。4)輸入mini然后回車,minicim設(shè)置為115200 8NI無流控。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)行操作。7)宿主機(jī)上打開一個(gè)終端窗口(Terminal),點(diǎn)擊【紅帽/System Tools/Terminal】啟動(dòng)終端窗口,輸入下列 4 條命令: ① cd /home②mkdir HW③ cd HW④ vi/*請您輸入程序 程序清單*/此時(shí)會(huì)顯示一個(gè)空白的屏幕,這條命令的含義是,使用 Vi 編輯器,我們看到的空白窗口是對(duì)文件進(jìn)行編輯的窗口,如下圖。就像在 Windows系統(tǒng)下面使用寫字板等一樣道理。在 vi 里面先單擊鍵盤 A 鍵,然后左下角會(huì)變成—INSER。輸入程序的時(shí)候和其他編輯器是一樣的,如下圖。當(dāng)輸入程序完畢后,單擊鍵盤 Esc 鍵,然后按“:”(冒號(hào))此時(shí)左下角會(huì)出現(xiàn)冒號(hào)然后輸入“wq”最后按“Enter”確認(rèn)存盤退出 vi 編輯器,如下圖。8)在上面同一個(gè)終端窗口中,輸入下列 2 , 目標(biāo)文件,如圖 710,圖711: ①armlinuxgcc– ②ls 等到再次出現(xiàn)提示符,代表程序已經(jīng)正確編譯。如果此步出現(xiàn)錯(cuò)誤信息,請查看錯(cuò)誤信息,并且重新編輯原來的 C文件,修改錯(cuò)誤。直到正確編譯。9)重新打開第 7 步最小化的開有mini的終端窗口,即到 PXA270RP 目標(biāo)板的mnt目錄下,請您輸入下列 3 條命令,運(yùn)行HelloWorld編譯成功的HelloWorld目標(biāo)程序:① cd home/HW/*回到mini中目標(biāo)板的/mnt/home/HW目錄下*/ ②ls ③./ HelloWorld/*此時(shí)會(huì)看到如下圖*/四、驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序?qū)嶋H是處理和操作硬件控制器的軟件,從本質(zhì)上講,是內(nèi)核中具有最高特權(quán)級(jí)的、駐留內(nèi)存的、可共享的底層硬件處理例程。驅(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)用程序請求的數(shù)據(jù); ?檢測和處理設(shè)備出現(xiàn)的錯(cuò)誤。Linux操作系統(tǒng)將所有的設(shè)備全部看成文件,并通過文件的操作界面進(jìn)行操作。對(duì)用戶程序而言,設(shè)備驅(qū)動(dòng)程序隱藏了設(shè)備的具體細(xì)節(jié),對(duì)各種不同設(shè)備提供了一致的接口,一般來說,是把設(shè)備映射為一個(gè)特殊的設(shè)備文件,用戶程序可以像對(duì)其他文件一樣對(duì)此設(shè)備文件進(jìn)行操作。這意味著:?由于每一個(gè)設(shè)備至少由文件系統(tǒng)的一個(gè)文件代表,因而都有一個(gè)“文件名”。?應(yīng)用程序通??梢酝ㄟ^系統(tǒng)調(diào)用open()打開設(shè)備文件,建立起與目標(biāo)設(shè)備的連接。?打開了代表著目標(biāo)設(shè)備的文件,即建立起與設(shè)備的連接后,可以通過read()、write()、ioctl()等常規(guī)的文件操作對(duì)目標(biāo)設(shè)備進(jìn)行操作。設(shè)備文件的屬性由三部分信息組成:第一部分是文件的類型,第二部分是一個(gè)主設(shè)備號(hào),第三部分是一個(gè)次設(shè)備號(hào)。其中類型和主設(shè)備號(hào)結(jié)合在一起惟一地確定了設(shè)備文件驅(qū)動(dòng)程序及其界面,而次設(shè)備號(hào)則說明目標(biāo)設(shè)備是同類設(shè)備中的第幾個(gè)。由于Linux 中將設(shè)備當(dāng)做文件處理,所以對(duì)設(shè)備進(jìn)行操作的調(diào)用格式與對(duì)文件的操作類似,主要包括open()、read()、write()、ioctl()、close()等。應(yīng)用程序發(fā)出系統(tǒng)調(diào)用命令后,會(huì)從用戶態(tài)轉(zhuǎn)到核心態(tài),通過內(nèi)核將open()這樣的系統(tǒng)調(diào)用轉(zhuǎn)換成對(duì)物理設(shè)備的操作。一個(gè)設(shè)備驅(qū)動(dòng)程序模塊的基本框架在系統(tǒng)內(nèi)部,I/O設(shè)備的存取通過一組固定的入口點(diǎn)來進(jìn)行,入口點(diǎn)也可以理解為設(shè)備的句柄,就是對(duì)設(shè)備進(jìn)行操作的基本函數(shù)。字符型設(shè)備驅(qū)動(dòng)程序提供如下幾個(gè)入口點(diǎn):?open入口點(diǎn)。打開設(shè)備準(zhǔn)備I/O操作。對(duì)字符設(shè)備文件進(jìn)行打開操作,都會(huì)調(diào)用設(shè)備的open入口點(diǎn)。open子程序必須對(duì)將要進(jìn)行的I/O操作做好必要的準(zhǔn)備工作,如清除緩沖區(qū)等。如果設(shè)備是獨(dú)占的,即同一時(shí)刻只能有一個(gè)程序訪問此設(shè)備,則open子程序必須設(shè)置一些標(biāo)志以表示設(shè)備處于忙狀態(tài)。?close入口點(diǎn)。關(guān)閉一個(gè)設(shè)備。當(dāng)最后一次使用設(shè)備完成后,調(diào)用close子程序。獨(dú)占設(shè)備必須標(biāo)記設(shè)備方可再次使用。?read入口點(diǎn)。從設(shè)備上讀數(shù)據(jù)。對(duì)于有緩沖區(qū)的I/O操作,一般是從緩沖區(qū)里讀數(shù)據(jù)。對(duì)字符設(shè)備文件進(jìn)行讀操作將調(diào)用read子程序。?write入口點(diǎn)。往設(shè)備上寫數(shù)據(jù)。對(duì)于有緩沖區(qū)的I/O操作,一般是把數(shù)據(jù)寫入緩沖區(qū)里。對(duì)字符設(shè)備文件進(jìn)行寫操作將調(diào)用write子程序。?ioctl入口點(diǎn)。執(zhí)行讀、寫之外的操作。select入口點(diǎn)。檢查設(shè)備,看數(shù)據(jù)是否可讀或設(shè)備是否可用于寫數(shù)據(jù)。select系統(tǒng)調(diào)用在檢查與設(shè)備文件相關(guān)的文件描述符時(shí)使用select入口點(diǎn)。設(shè)備的驅(qū)動(dòng)程序在加載的時(shí)候首先需要調(diào)用入口函數(shù)init_module(),該函數(shù)最重要的一個(gè)工作就是向內(nèi)核注冊該設(shè)備,對(duì)于字符設(shè)備調(diào)用register_chrdev()完成注冊。register_chrdev的定義為:intregister_chrdev(unsigned int major, const char *name, struct file_ operations *fops)。其中,major是為設(shè)備驅(qū)動(dòng)程序向系統(tǒng)申請的主設(shè)備號(hào),如果為0,則系統(tǒng)為此驅(qū)動(dòng)程序動(dòng)態(tài)分配一個(gè)主設(shè)備號(hào)。name是設(shè)備名,fops是對(duì)各個(gè)調(diào)用的入口點(diǎn)說明。此函數(shù)返回0時(shí)表示成功;返回EINVAL,表示申請的主設(shè)備號(hào)非法,主要原因是主設(shè)備號(hào)大于系統(tǒng)所允許的最大設(shè)備號(hào);返回EBUSY,表示所申請的主設(shè)備號(hào)正在被其他設(shè)備程序使用。如果動(dòng)態(tài)分配主設(shè)備號(hào)成功,此函數(shù)將返回所分配的主設(shè)備號(hào)。如果register_chrdev()操作成功,設(shè)備名就會(huì)出現(xiàn)在/proc/dvices文件中。Linux在/dev目錄中為每個(gè)設(shè)備建立一個(gè)文
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1