⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tdma55.h.bak

📁 TI OMAP5910(1510)的最简单测试程序,用于 硬件最初的调试,简要文档含环境配置
💻 BAK
字号:
//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   //同步触发时一次读1帧
#define FS_ELEMENT	1   //同步触发时1次读1个element


#ifndef _DMA_DMACSFI_OFFSET //如果csl中没有定义如下地址宏

#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设置为不支持"空闲时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设备号
//auto:表示参数是否自动reload
//prio:1表示高优先级,0表示低优先级
//sync_int:表示同步触发中断号(eventId).0表示无同步触发中断
//本函数将src、dst地址自动增加方式设置为:src、dst独自依赖于csei/csfi、cdei/cdfi
//dat_type:表示8比特、16比特、还是32比特
//缺省设置仅在1个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);
//不检查地址空间位置,直接设置
EXTERNAL void DmaFastSetDstMem(DMA_Handle hDma,void* src);
//不检查地址空间位置,直接设置
EXTERNAL void DmaFs(DMA_Handle hDma,Uint16 fs_mode);
/*fs_mode:
#define FS_FRAME	0   //同步触发时一次读1帧
#define FS_ELEMENT	1   //同步触发时1次读1个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:表示中断服务程序入口
//prio:优先级
//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); //测试用的一个中断服务程序
//-*********************************************************-//


#endif //_TDMA55_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -