- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDMA使用文档原创
C6455 EDMA应用介绍
EDMA调用操作流程
EDMA初始化.
函数:void CSL_edma3Init(CSL_Edma3Context * pContext);
打开EDMA
CSL_edma3Open(edmaObj,CSL_EDMA3,NULL,status);
EDMA module setup
CSL_edma3HwSetup(hModule,hwSetup);
Setup the DRAE masks
CSL_edma3HwControl(hModule,CSL_EDMA3_CMD_DMAREGION_ENABLE, \ regionAccess);
Channel open
CSL_edma3ChannelOpen(chObj, CSL_EDMA3, chAttr, status);
Get the parameter handle
CSL_edma3GetParamHandle(hChannel,0,status);
EDMA parameter entry setup
EDMA通道参数入口:
① OPT选项参数
PRI: 优先级设定
1:高优先级
0:低优先级
ESIZE: 传输的元素大小
0:32bit(64x为64bit)
1:16bit
2:8bit
SYNCDIM: 选择数据为1d,或是2d结构
0:1d
1:2d
SAM: 源地址变化方式
1:不变
0:自增
DAM: 目的地址变化方式
1:不变
0:自增
TCINTEN: 当全部数据传输完成,如果该位为1,将产生对应通道(TCC值)发送完成中断。用于链接发送或中断产生。
0:禁止中断
1:允许中断
TCC: 发送完成中断的通道号
TCCM: 与TCC组合成6位数的通道号
② SRC源操作数地址
③ CNT 传输的长度
④ DST 目的操作数地址
⑤ IDX 通道索引参数
⑥ RLD 通道链接/重载参数
Set EDMA Event Enable Registers (EERH + EER)
clear any pending event and then enable channel:
CSL_edma3HwChannelControl(hChannel,CSL_EDMA3_CMD_CHANNEL_CLEAR,NULL);
Event enable:
CSL_edma3HwChannelControl(hChannel,CSL_EDMA3_CMD_CHANNEL_ENABLE,NULL);
Enable interrupt
regionIntr.region = CSL_EDMA3_REGION_1 ;
regionIntr.intr = 1TCC ;
regionIntr.intrh = 0 ;
CSL_edma3HwControl(hModule,CSL_EDMA3_CMD_INTR_ENABLE,regionIntr);
Manually trigger the channel
此时,EDMA的配置全部完成,启动EDMA:
CSL_edma3HwChannelControl(hChannel,CSL_EDMA3_CMD_CHANNEL_SET,NULL);
EDMA、QDMA概念
▲ 寄存器
① PQSR:优先排队状态寄存器
PQ0-3 = 1 表示无请求挂起
② PQAR0-3:优先队列配置寄存器
PQA表示队列长度
③ CIPR (CIPRL,CIPRH)64BIT EDMA通道中断挂起寄存器
由硬件自动置位,=1表示该通道产生中断挂起
④ CIER(CIERL,CIERH)64BIT EDMA通道中断使能寄存器
当通道相应位=1时, 该通道允许中断
⑤ CCER(CCERL,CCERH)64BIT EDMA通道链接使能寄存器
用于链接触发多个通道传输
⑥ ERL、ERH事件寄存器
不管事件是否使能,只要有相应通道事件发生,都会更新ERL和ERH
⑦ EERL,EERH事件使能寄存器
当相应通道事件使能后,可以允许中断等操作。当采用CPU触发操作EDMA时,可以不用设置该寄存 器
void EDMA_disableChannel(EDMA_Handle hEdma);
void EDMA_enableChannel(EDMA_Handle hEdma);
⑧ ECRL,ECRH事件清除寄存器
当采用CPU触发方式时,硬件自动清零该寄存器,事件触发方式下需要手动清零??
⑨ ESRL,
文档评论(0)