?? tdma55.h
字號(hào):
//tdma55.h
#ifndef _TDMA55_H
#define _TDMA55_H
#ifdef _TDMA55_C
#undef EXTERNAL
#define EXTERNAL
#else
#undef EXTERNAL
#define EXTERNAL extern
#endif
//-*********************DMA 同步事件定義**********-//
#define FS_MCSI1_TX 1
#define FS_MCSI1_RX 2
#define FS_MCSI2_TX 3
#define FS_MCSI2_RX 4
#define FS_MPUIO2 5
#define FS_MPUIO4 6
#define FS_FREE 7
#define FS_McBSP1_TX 8
#define FS_McBSP1_RX 9
#define FS_McBSP3_TX 10
#define FS_McBSP3_RX 11
#define FS_UART1_TX 12
#define FS_UART1_RX 13
#define FS_UART2_TX 14
#define FS_UART2_RX 15
#define FS_FREE1 16
#define FS_FREE2 17
#define FS_UART3_TX 18
#define FS_UART3_RX 19
//-***********************************************//
/*bit5: bit0
block_ie last_ie frame_ie half_ie drop_ie tout_ie
*/
#define DMA_INT_BLOCK (1<<5)
#define DMA_INT_LAST_FRAME (1<<4)
#define DMA_INT_FRAME (1<<3)
#define DMA_INT_HALF_FRAME (1<<2)
#define DMA_INT_DAT_DROP (1<<1)
#define DMA_INT_TIME_OUT (1<<0)
#define DMA8BIT DMA_DMACSDP_DATATYPE_8BIT
#define DMA16BIT DMA_DMACSDP_DATATYPE_16BIT
#define DMA32BIT DMA_DMACSDP_DATATYPE_32BIT
#define FS_FRAME 0 //同步觸發(fā)時(shí)一次讀1幀
#define FS_ELEMENT 1 //同步觸發(fā)時(shí)1次讀1個(gè)element
#ifndef _DMA_DMACSFI_OFFSET //如果csl中沒(méi)有定義如下地址宏
#define _DMA_DMACSFI_OFFSET 0x0a
#define _DMA_DMACSEI_OFFSET 0x0b
#define _DMA_DMACDFI_OFFSET 0x0e
#define _DMA_DMACDEI_OFFSET 0x0f
#define _DMA_DMACSEI_ADDR(n) (((n) * _DMA_CHAN_SZ) + _DMA_BASE_ADDR + _DMA_DMACSEI_OFFSET)
#define _DMA_DMACSFI_ADDR(n) (((n) * _DMA_CHAN_SZ) + _DMA_BASE_ADDR + _DMA_DMACSFI_OFFSET)
#define _DMA_DMACDEI_ADDR(n) (((n) * _DMA_CHAN_SZ) + _DMA_BASE_ADDR + _DMA_DMACDEI_OFFSET)
#define _DMA_DMACDFI_ADDR(n) (((n) * _DMA_CHAN_SZ) + _DMA_BASE_ADDR + _DMA_DMACDFI_OFFSET)
#endif //_DMA_DMACSFI_OFFSET
#define _DMA_GLOBAL_REG_BASE 0x0e00
//#define _DMA_DMAGCR_ADDR (_DMA_GLOBAL_REG_BASE+0)
#define _DMA_DMAGTCR_ADDR (_DMA_GLOBAL_REG_BASE+1)
#define _DMA_DMAGSCR_ADDR (_DMA_GLOBAL_REG_BASE+2)
EXTERNAL void GlobalInitDma(void);
//dma設(shè)置為不支持"空閑時(shí)idle"功能
EXTERNAL void DmaAutoInit(DMA_Handle hDma,Uint16 on_off);
//on_off=1 on;0 off
EXTERNAL void DmaRepeat(DMA_Handle hDma,Uint16 on_off);
//on_off=1 on;0 off
EXTERNAL void DmaFlushFifo(DMA_Handle hDma,Uint16 on_off);
//on_off=1 on;0 off
EXTERNAL void DmaEndProg(DMA_Handle hDma,Uint16 yes_no);
EXTERNAL Uint16 DmaRunning(DMA_Handle hDma);
EXTERNAL void DmaStart(DMA_Handle hDma);
EXTERNAL void DmaStop(DMA_Handle hDma);
EXTERNAL DMA_Handle InitDma(Uint16 dev_no,Uint16 prio,Uint16 sync_int,
Uint16 frm_len,Uint16 elem_len,Uint16 dat_type);
//dev_no表示dma設(shè)備號(hào)
//auto:表示參數(shù)是否自動(dòng)reload
//prio:1表示高優(yōu)先級(jí),0表示低優(yōu)先級(jí)
//sync_int:表示同步觸發(fā)中斷號(hào)(eventId).0表示無(wú)同步觸發(fā)中斷
//本函數(shù)將src、dst地址自動(dòng)增加方式設(shè)置為:src、dst獨(dú)自依賴(lài)于csei/csfi、cdei/cdfi
//dat_type:表示8比特、16比特、還是32比特
//缺省設(shè)置僅在1個(gè)block傳完后才中斷
EXTERNAL void DmaSetSrcMem(DMA_Handle hDma,void* src,Uint16 inc_mode,Uint16 burst_on_off);
EXTERNAL void DmaSetDstMem(DMA_Handle hDma,void* dst_adr,Uint16 dat_type,Uint16 burst_on_off);
EXTERNAL void DmaFastSetSrcMem(DMA_Handle hDma,void* src);
//不檢查地址空間位置,直接設(shè)置
EXTERNAL void DmaFastSetDstMem(DMA_Handle hDma,void* src);
//不檢查地址空間位置,直接設(shè)置
EXTERNAL void DmaFs(DMA_Handle hDma,Uint16 fs_mode);
/*fs_mode:
#define FS_FRAME 0 //同步觸發(fā)時(shí)一次讀1幀
#define FS_ELEMENT 1 //同步觸發(fā)時(shí)1次讀1個(gè)element
*/
EXTERNAL void DmaSetSrcMcBsp();
EXTERNAL void DmaSetDstMcBsp();
EXTERNAL void DmaSetSrcMcsi();
EXTERNAL void DmaSetDstMcsi();
EXTERNAL void DmaSetNtxtDmaParaMem(void);
EXTERNAL void DmaSetNtxtDmaParaTipb(void);
EXTERNAL void DmaSetInt(DMA_Handle hdma,Uint16 intmode,void (*func)(void) ,Uint16 prio);
//func:表示中斷服務(wù)程序入口
//prio:優(yōu)先級(jí)
//intmode表示是blk中斷、frame中斷,0.5frame中斷等,各比特域定義如下.
/*bit5: bit0
block_ie last_ie frame_ie half_ie drop_ie tout_ie
#define DMA_INT_BLOCK (1<<5)
#define DMA_INT_LAST_FRAME (1<<4)
#define DMA_INT_FRAME (1<<3)
#define DMA_INT_HALF_FRAME (1<<2)
#define DMA_INT_DAT_DROP (1<<1)
#define DMA_INT_TIME_OUT (1<<0)
*/
EXTERNAL void DmaIsr(void); //測(cè)試用的一個(gè)中斷服務(wù)程序
//-*********************************************************-//
#endif //_TDMA55_H
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -