首页 > 其他 > 详细

TI C66x DSP 系统events及其应用 - 5.1(QM accumulator的配置)

时间:2014-05-10 04:53:01      阅读:413      评论:0      收藏:0      [点我收藏+]

下面讲解在具体应用中,event与中断ISR的设置。以对QM的queue监控产生中断(不是EXCEP)为例,主要包括配置QM accumulator(用于监控QM queue)与配置ISR(ISR与event配置)。

首先介绍QM accumulator的配置,QM模块中QMSS(包含QMSS Tx queue 800:831,Tx/Rx channel 0:31,RxChan,TxChan,Tx queue是一一对应的,如Tx queue是806,那么相应的TxChan与RxChan编号都是6)用于CPU之间的通信,QMSS Rx queue可以配置为high priority queue(也可以配置general queue等),然后利用PDSP的 channel(0:31,该channel与分配给QM的chip-event是一一对应的,见QM user guide 5.2节)监控QMSS Rx queue,条件满足时,将会产生中断。QMSS的Tx queue是QMSS对外提供的唯一输入端口(queue 800:831),当有descriptor PUSH到QMSS的Tx queue后,经过Tx channel与Rx channel后,将会将输出结果输出到配置给QMSS的Rx queue。

QM accumulator的配置主要包括QMSS Rx channel的使能(Rx channnel只需使能即可),Tx channel的使能与配置,Rx flow的配置,Tx Scheduler配置,PDSP监控的配置。本节先讲QMSS Rx channel,Tx channel的配置,Tx Scheduler的配置PDSP监控的配置在5.2中讲解。以Nyquist为例。

QMSS Rx channel配置:

      confRegPtr = (void*)0x02a08800;
      /* Enable Rx Channel */
      confRegPtr[channel].channelCtrlRegA = 0x80000000;//channel为QMSSTx queue对应的channel

QMSS Tx channel配置

      /* Configure Tx Channel */
      confRegPtr[tmpChan].channelCtrlRegB = ((u32)filterEPI<<30)|((u32)filterPS<<29)|((u32)aifMode<<24);//filterEPI=filterPS=aifMode=0
      /* Set channel priority */
      if( prioRegPtr != GLO_NULL )
      {
        prioRegPtr[tmpChan] = (u32)priority;//prioRegPtr=0x02a08c00(TX Scheduler Config). priority=1
      }
      /* Enable Tx Channel */
      confRegPtr[tmpChan].channelCtrlRegA = 0x80000000;

QMSS 配置寄存器地址(infra1列)如下:

bubuko.com,布布扣

 Rx channel A寄存器:

bubuko.com,布布扣

 Tx channel B寄存器(A寄存器与Rx channel相同):

bubuko.com,布布扣

Tx Scheduler寄存器:

bubuko.com,布布扣

TI C66x DSP 系统events及其应用 - 5.1(QM accumulator的配置),布布扣,bubuko.com

TI C66x DSP 系统events及其应用 - 5.1(QM accumulator的配置)

原文:http://blog.csdn.net/yiyeguzhou100/article/details/24865545

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!