|
这是使用BIOS和CSL LIB 作EDMA简单例子. 在CCS BIOS 中需要作 中断--EDMA--edmaHwi 的设置. Spru234 和 spra636a 都是有用的参考
解释见注释.
void main()
{
initEdma(); //Edma 初始化
initHwi(); //中断初始化
EDMA_setChannel(hEdma); //开始EDMA传送
while (1) {}
}
void initEdma(void)
{
EDMA_Config gEdmaConfig; //EDMA设置表
hEdma = EDMA_open(EDMA_CHA_ANY, EDMA_OPEN_RESET); //
gXmtTCC = EDMA_intAlloc(-1); //分配一个可用的TCC
.... //根据实际需要填写EDMA设置表
EDMA_config(hEdma, &gEdmaConfig); 设置EDMA通道
hEdmaReload = EDMA_allocTable(-1); //得到EDMA重载标实 EDMA_config(hEdmaReload, &gEdmaConfig); // 设置EDMA重载通道
EDMA_link(hEdma, hEdmaReload); //设置EDMA重载
EDMA_link(hEdmaReload, hEdmaReload); //设置EDMA重载
EDMA_intClear(gXmtTCC); // 清除可能的EDMA中断
EDMA_intEnable(gXmtTCC); // 打开EDMA中断
EDMA_intHook(gXmtTCC, edmaHwi); //通知系统edmaHwi是中断服务者
}
void edmaHwi(int tcc) //中断服务
{
。。。。//准备数据
EDMA_setChannel(hEdma); //再次开始EDMA传送
}
0 0 0 |
|