




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
嵌入式課程設(shè)計(jì) ---DMA傳送編程嵌入式課程設(shè)計(jì)系別 :計(jì)算機(jī)與通信工程學(xué)院班級(jí) :通信工程 08-1班姓名 :####學(xué)號(hào) :33333333333鄭州輕工業(yè)學(xué)院計(jì)算機(jī)與通信工程學(xué)院2011年12月鄭州輕工業(yè)學(xué)院課程設(shè)計(jì)任務(wù)書題目DMA傳送編程專業(yè)、班級(jí) 通信工程 08-1學(xué)號(hào)3333333姓名333主要內(nèi)容、基本要求、主要參考文獻(xiàn)等 :1、主要內(nèi)容(1)編寫單字節(jié)方式、雙字節(jié)方式和四字節(jié)方式常規(guī)內(nèi)存拷貝及時(shí)間檢測程序(2)編寫DMAT式內(nèi)存拷貝及時(shí)間檢測程序(3)比較DMAT式內(nèi)存拷貝及常規(guī)內(nèi)存拷貝的效率2、基本要求(1)掌握S3c44B0DM檢制器的使用(2)掌握DM徽件編程方法3、主要參考文獻(xiàn)[11馬忠梅,馬廣云,徐英惠,田澤.ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ).北京:北京航天航空大學(xué)出版社, 2002【2】田澤 .嵌入式系統(tǒng)開發(fā)與應(yīng)用實(shí)驗(yàn)教程 .北京航空航天大學(xué)出版社, 2004[3]周立功.ARM微控制器基礎(chǔ)與實(shí)戰(zhàn)[M].北京航天航空大學(xué)出版社,2003完成期限:指導(dǎo)教師簽名 :張濤張彥課程負(fù)責(zé)人簽名 :張濤張彥2-目錄TOC\o"1-5"\h\z一、課程設(shè)計(jì)的基本任務(wù) 4二、課程設(shè)計(jì)的基本要求 4三、預(yù)備知識(shí) 4 四、實(shí)驗(yàn)設(shè)備 4 五、基礎(chǔ)知識(shí) 4 六、課程設(shè)計(jì)說明書 7七、程序代碼 83-DMA傳送編程.一、課程設(shè)計(jì)的基本任務(wù)了解DMA專送原理掌握S3c44B0DMAfe制器的使用掌握DM儆件編程方法二、課程設(shè)計(jì)的基本要求編寫單字節(jié)方式、雙字節(jié)方式和四字節(jié)方式常規(guī)內(nèi)存拷貝及時(shí)間檢測程序編寫DMAT式內(nèi)存拷貝及時(shí)間檢測程序比較DMAT式內(nèi)存拷貝及常規(guī)內(nèi)存拷貝的效率三、預(yù)備知識(shí)了解ADT集成開發(fā)環(huán)境的基本功能了解DMA勺原理以及處理步驟四、實(shí)驗(yàn)設(shè)備JX44B0教學(xué)實(shí)驗(yàn)箱ADT1000?真器和ADTIDE集成開發(fā)環(huán)境串口連接線五、基礎(chǔ)知識(shí)直接數(shù)據(jù)存儲(chǔ) -DMADMAJ式當(dāng)高速外設(shè)要與系統(tǒng)內(nèi)存或者要在系統(tǒng)內(nèi)存的不同區(qū)域之間,進(jìn)行大量數(shù)據(jù)的快速傳送時(shí),查詢方式和中斷方式可能不能滿足要求直接存儲(chǔ)器存?。―MA就是為解決這個(gè)問題提出的采用DMAJ式,在一定時(shí)間段內(nèi),由DMA空制器取代CPU獲得總線控制權(quán),來實(shí)現(xiàn)內(nèi)存與外設(shè)或者內(nèi)存的不同區(qū)域之間大量數(shù)據(jù)的快速傳送典型的DMA空制器(以下
簡稱DMAC)J工作電路簡稱DMAC)J工作電路-4-DM徽據(jù)傳送的工作過程1)DMAC發(fā)出DMAt送請(qǐng)求2)DMAC2)DMAC通過連接到CPU勺HOLD言號(hào)向CPl>出DMA請(qǐng)求3)CPU3)CPU在完成當(dāng)前總線操作后會(huì)立即對(duì)DMA青求做出響應(yīng)CPU(勺響應(yīng)包括兩個(gè)方面:CPU等控制總線、數(shù)據(jù)總線和地址總線浮空,即放棄對(duì)這些總線的控制權(quán)CPU等有效的HLDA言號(hào)力口至ijDMACt,以通知DMACCPU已經(jīng)放棄了總線的控制權(quán)CPU將總線浮空,即放棄了總線控制權(quán)后,由DMACI管系統(tǒng)總線的控制權(quán),并向外設(shè)送出DMA勺應(yīng)答信號(hào)DMAC送出地址信號(hào)和控制信號(hào),實(shí)現(xiàn)外設(shè)與內(nèi)存或內(nèi)存之間大量數(shù)據(jù)的快速傳送DMAC等規(guī)定的數(shù)據(jù)字節(jié)傳送完之后,通過向CP3HOLD言號(hào),撤消對(duì)CPU的DMA青求。CPU攵到此信號(hào),一方面使HLDA6效,另一方面又重新開始控制總線,實(shí)現(xiàn)正常取指令、分析指令、執(zhí)行指令的操作。DM聯(lián)送方式I/O接口到存儲(chǔ)器存儲(chǔ)器到 I/O接口存儲(chǔ)器到存儲(chǔ)器I/O接口到存儲(chǔ)器的傳送當(dāng)進(jìn)行由I/O接口到存儲(chǔ)器的數(shù)據(jù)傳送時(shí),來自I/O接口的數(shù)據(jù)利用DMACf出的控制信號(hào),將數(shù)據(jù)輸送到系統(tǒng)數(shù)據(jù)總線D0~D7±,同時(shí),DMAC1出存儲(chǔ)器單元地址及控制信號(hào),將存在于D0~D7±的數(shù)據(jù)寫入所選中的存儲(chǔ)單元中。這樣就完成了由I/O接口到存儲(chǔ)器一個(gè)字節(jié)的傳送。同時(shí)DMAO改內(nèi)部地址及字節(jié)數(shù)寄存器的內(nèi)容。存儲(chǔ)器到 I/O接口與前一種情況類似,在進(jìn)行這種傳送時(shí), DMACS出存儲(chǔ)器地址及控制信號(hào),將選中的存儲(chǔ)單元的內(nèi)容讀出放在數(shù)據(jù)總線D0~D7±,接著,DMACf出控制信號(hào),將數(shù)據(jù)寫到規(guī)定的(預(yù)選中)端口中去,而后MDA?動(dòng)修改內(nèi)部的地址及字節(jié)數(shù)寄存器的內(nèi)容S3c44B0勺DM饋制器-5-S3c44B廓成了4個(gè)通道的DM饋制器:,兩個(gè)ZDM饋制器ZDMA0/1可以用于存儲(chǔ)器到存儲(chǔ)器、儲(chǔ)存器到 I/O設(shè)備、I/O設(shè)備之間的 DMA傳送;,兩個(gè)BDM舲制器BDMA0/1用于儲(chǔ)存器與I/O設(shè)備之間的傳輸。S3c44B(fr與DM饋制器有關(guān)的寄存器ZDMA0/1空制寄存器ZDMA起始地址、目的地址寄存器DMA+數(shù)器寄存器ZDMA0/1空制寄存器ZDMA起始地址、目的地址寄存器-6-DMA+數(shù)器寄存器六、課程設(shè)計(jì)說明書本實(shí)驗(yàn)通過DMAT式實(shí)現(xiàn)存儲(chǔ)器到存儲(chǔ)器間的數(shù)據(jù)傳送,并將其與常規(guī)的內(nèi)存拷貝操作進(jìn)行比較拷貝動(dòng)作的計(jì)時(shí)處理采用定時(shí)器進(jìn)行計(jì)時(shí)處理,采用函數(shù) Timer_Start啟動(dòng)計(jì)時(shí)處理,參數(shù)divider表示定時(shí)時(shí)間間隔,0:16us1:32us2:64us3:128us操作完成時(shí)調(diào)用Timer_Stop停止定時(shí)器計(jì)數(shù),其返回值為計(jì)數(shù)值,該值乘以時(shí)間問隔(128us)即為計(jì)時(shí)時(shí)間Timer_Start(3);/*128us*/time=Timer_Stop();/* 停止定時(shí)器*/Uart_Printf("CopyBytes:time=%f\n",time*128E-6);常規(guī)的內(nèi)存拷貝操作字節(jié)拷貝"(unsignedchar*)(dstAddr)="(unsignedchar*)(srcAddr);雙字節(jié)拷貝(unsignedshort*)(dstAddr)=*(unsignedshort*)(srcAddr);字節(jié)拷貝7-(unsignedint*)(dstAddr)=*(unsignedint*)(srcAddr);DMA勺內(nèi)存拷貝操作清除傳輸完畢標(biāo)志zdma0Done=0;設(shè)置DMA專輸?shù)钠鹬沟刂泛烷L度rZDISRC0=srcAddr|(dw<<30)|(1<<28);/*dw為DMAt輸寬度*/rZDIDES0=dstAddr|(2<<30)|(1<<28);rZDICNT0=length|(2<<28)|(1<<26)|(3<<22)|(1<<20);啟動(dòng)DMA專輸并開始計(jì)時(shí)rZDCON0=0x1;Timer_Start(3);DMA勺內(nèi)存拷貝操作等待傳輸完成,傳輸完成標(biāo)記將在DM/fr斷服務(wù)程序中置位while(zdma0Done==0);返回當(dāng)前定時(shí)計(jì)數(shù)器中的值time=Timer_Stop();Uart_Printf("ZDMA0:time=%f\n",time*128E-6);關(guān)中斷rINTMSK=BIT_GLOBAL;DM沖斷處理函數(shù)voidisr_dma0(void){rI_ISPC=BIT_ZDMA0;/*設(shè)置傳輸完畢標(biāo)志 */zdma0Done=1;}實(shí)驗(yàn)報(bào)告要求什么叫DMA專送方式?試說明DMA&式傳送數(shù)據(jù)的主要步驟。試比較DMA專輸、查詢式傳輸及中斷方式傳輸之間的優(yōu)缺點(diǎn)和適用場合 ?七、程序代碼 :/**************************************************************/8-/**//*FILENAMEVERSION*//**//*DMA.C1.0*//**//*DESCRIPTION*//**//*JX44B0(S3C44B0X)DMA實(shí)驗(yàn)*//**//**//*DATASTRUCTURES*//**//*FUNCTIONS:*//* 在JX44B0教學(xué)實(shí)驗(yàn)箱進(jìn)行DMAT式內(nèi)存拷貝的實(shí)驗(yàn)*//**//*DEPENDENCIES*//*JX44B0-1*//*JX44B0-2*//*JX44B0-3*//**//**//*NAME:*//*REMARKS:*//**//*Copyright(C)2003WuhanCVTECHCO.,LTD*//**************************************************************//**************************************************************//*學(xué)習(xí)ARMftt理器中DMAJ式的處理方法:*//*DMA方式:內(nèi)存,內(nèi)存DMA方式傳輸數(shù)據(jù)*//*注意:學(xué)習(xí)該實(shí)驗(yàn)之前請(qǐng)先學(xué)習(xí) interrupt中斷處理實(shí)驗(yàn) *//**************************************************************//*包含文件 */#include"44b.h"#include"44blib.h"#include"rtc.h"typedef(*ISR_ROUTINE_ENTRY)(void);#definePrintfUartPrintf/*functions*/voidZdma0(intsrcAddr,intdstAddr,intlength);voidZdma0Done(void);voidTest_Zdma0(void);voidisr_dma0(void);/*globals*/volatileintzdma0Done;voidIsrIRQ()__attribute__((interrupt("IRQ")));/**************************************************************///Functionname:IsrIRQ//Description: 非矢量方式下中斷的查表處理//中斷地址表位于 0x0c7fff00開始的256字節(jié)//Returntype:void//Argument:void**************************************************************/voidIsrIRQ(){intcount=0;unsignedintisr_pending;unsignedintisr_mask=0x00000001;unsignedintisr_mask_set=rINTMSK;ISR_ROUTINE_ENTRYisr_routine_entry=(ISR_ROUTINE_ENTRY)0x0;__asm__("STMFDSP!,{r1,r4-r8}@SAVEr1,r4-r10\n""nop\n");isr_pending=(rINTPND&~isr_mask_set);10-while(isr_mask){if(isr_pending&isr_mask){isr_routine_entry=(ISR_ROUTINE_ENTRY)(*(int*)(HandleADC+count));break;}count+=4;isr_mask<<=1;
if(isr_routine_entry)(*isr_routine_entry)();__asm__("LDMFDSP!,{r1,r4-r8}@RESTOREr1,r4-r10\n""nop\n");/**************************************************************///Functionname:init_interrupt_handler//Description:式下中斷向量表初始化處理//Returntype:void//Argument:irq_handler//中斷處理函數(shù)入口**************************************************************/voidinit_interrupt_handler(unsignedintirq_handler){inti;rINTPND=0x00000000;/*清除所有未決的中斷 */rI_ISPC=0x03FFFFFF;for(i=0;i<256;i+=4)/* 清除中斷表 */{11-(unsignedint*)(_ISR_STARTADDRESS+i)=0;}非矢量方設(shè)置IRQ模式處理函數(shù)*(unsignedint*)(HandleIRQ)=irq_handler;非矢量方設(shè)置IRQ模式處理函數(shù)/**************************************************************///Functionname:install_isr_handler//Description: 非矢量方式下中斷向量的安裝//Returntype:void//Argument:irq_no,中斷號(hào)//irq_routine,中斷處理函數(shù)地址**************************************************************/voidinstall_isr_handler(intirq_no,void*irq_routine){*(unsignedint*)(irq_no)=(unsignedint)irq_routine;}/**************************************************************///Functionname:Main//Description:DMA測試程序主函數(shù)//內(nèi)存,內(nèi)存DMA方式傳輸數(shù)據(jù)//傳輸完畢引發(fā)DM/fr斷//注冊(cè)中斷源 :BIT_ZDMA0//Returntype:int//Argument:void**************************************************************/intMain(void){Uart_Select(0);Uart_Init(MCLK,115200);Uart_Printf("DMATESTPROGRAM\n");rINTCON=0x7;/*Non-vect,IRQdisable,FIQdisable*/init_interrupt_handler((unsignedint)IsrIRQ);-12-install_isr_handler(HandleZDMA0,(void*)isr_dma0);rINTMOD=0x0;/*設(shè)置所有中斷為IRQ模式*/rINTMSK=(0x07ffffff&~(BIT_GLOBAL|BIT_ZDMA0));/*使能TICK中斷*/rINTCON=0x5;/*打開IRQ模式的中斷*/Test_Zdma0();while(1);/*************************************************************///Functionname:TestZdma0//Description:testzdma0//Returntype:void//Argument:void**************************************************************/voidTest_Zdma0(void)unsignedchar*src,*dst;inti;unsignedintmemSum;Uart_Printf("[ZDMA0MEM2MEMTest]\n");dst=(unsignedchar*)malloc(0x80000);src=(unsignedchar*)malloc(0x80000);/*將dst區(qū)域設(shè)置為非 Cacheable區(qū)域,關(guān)閉 Cache*/rNCACHBE1=(((((unsigned)dst+0x100000)>>12)+1)<<16)|((unsigned)dst>>12);Uart_Printf("dst=%x,src=%x\n",(int)dst,(int)src);-13-Zdma0((int)src,(int)dst,0x80000);free(src);free(dst);}/*************************************************************///Functionname:Zdma0//Description: 以三種不同的方式進(jìn)行數(shù)據(jù)拷貝,檢查其時(shí)間消耗//Returntype:void//Argument:srcAddr,拷貝數(shù)據(jù)的起始地址//dstAddr,拷貝數(shù)據(jù)的目的地址//length,拷貝數(shù)據(jù)的長度**************************************************************/voidZdma0(intsrcAddr,intdstAddr,intlength){inttime;/*將目標(biāo)地址設(shè)置為非Cache區(qū)*/rNCACHBE1=(((((unsigned)dstAddr+0x100000)>>12)+1)<<16)|((unsigned)dstAddr>>12);/*測試單字節(jié)方式的拷貝時(shí)間 *//*啟動(dòng)定時(shí)器,精度128us,用于計(jì)時(shí)*/Timer_Start(3);for(time=0;time<length;time++){*(unsignedchar*)(dstAddr+time)=*(unsignedchar*)(srcAddr+time);}TOC\o"1-5"\h\z/*返回當(dāng)前定時(shí)計(jì)數(shù)器中的值 */time=Timer_Stop();/*輸出拷貝的時(shí)間 */Uart_Printf("CopyBytes:time=%f\n",time*128E-6);14-/*測試雙字節(jié)方式的拷貝時(shí)間 */Timer_Start(3);for(time=0;time<length;time+=2){(unsignedshort*)(dstAddr+time)=*(unsignedshort*)(srcAddr+time);}time=Timer_Stop();Uart_Printf("Copyshortwords:time=%f\n",time*128E
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 體育類書籍的讀書心得
- 數(shù)字化轉(zhuǎn)型驅(qū)動(dòng)的職業(yè)培訓(xùn)人才培養(yǎng)模式-洞察及研究
- 人生感悟富有哲理的句子
- 隱性梅毒的護(hù)理查房
- 馬爾堡病毒病健康宣教
- 食管惡性腫瘤護(hù)理措施
- 初中地理課程標(biāo)準(zhǔn)解讀與教學(xué)應(yīng)用探索
- 分析綠色貿(mào)易壁壘對(duì)出口貿(mào)易的影響及提出應(yīng)對(duì)策略
- 兒童青少年運(yùn)動(dòng)技能測評(píng)工具的標(biāo)準(zhǔn)化研究
- 先天性魚鱗病健康宣教
- 開展退伍老兵活動(dòng)方案
- 2025年中國物流集團(tuán)招聘筆試備考題庫(帶答案詳解)
- 年產(chǎn) 35 萬噸金屬結(jié)構(gòu)件項(xiàng)目(一期年產(chǎn) 6 萬噸金屬結(jié)構(gòu)件)環(huán)評(píng)報(bào)告書
- 【基于中國醫(yī)療行業(yè)上市公司數(shù)據(jù)的CAPM模型實(shí)證檢驗(yàn)分析7800字】
- 地產(chǎn) 設(shè)計(jì)培訓(xùn)課件
- 中國古建筑行業(yè)市場發(fā)展現(xiàn)狀及投資前景展望報(bào)告
- 浙江杭州市2024-2025學(xué)年高一下學(xué)期6月期末考試物理試題及答案
- 員工勸退方案文案(3篇)
- 2025年高考全國一卷數(shù)學(xué)真題-答案
- 企業(yè)異地作業(yè)管理制度
- 陜西省專業(yè)技術(shù)人員繼續(xù)教育2025公需課《專業(yè)技術(shù)人員綜合素質(zhì)拓展》4學(xué)時(shí)題庫及答案
評(píng)論
0/150
提交評(píng)論