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

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

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

以下解说在详细应用中,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对外提供的唯一输入port(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列,为Nyquist所用寄存器)例如以下:

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

 Rx channel A寄存器:

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

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

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

Tx Scheduler寄存器:

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118783.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • blend

    blend

    2021年12月10日
    49
  • linux下socket编程实例_C语言窗口编程

    linux下socket编程实例_C语言窗口编程1.什么是TCP/IP、UDP?TCP/IP(TransmissionControlProtocol/InternetProtocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。  UDP(UserDataProtocol,用户数据报协议)是与TCP相对应的协议。它是属于TCP/IP协议族中的一种。下面的图表明了这些协议的关系。

    2022年10月7日
    0
  • svn如何删除当前账号,重新登录

    svn如何删除当前账号,重新登录

    2021年7月17日
    102
  • mbus主站电路设计_proteus子电路模块

    mbus主站电路设计_proteus子电路模块1Mbus接收发送机制对于主从式通信系统,因从机之间不能直接交换信息,只能通过主机来转发,此时采用MBus可以实现对从机的相关数据进行采集,并传递至集中器,然后再传递至总站。它由主机从机和两线制总线组成。MBus总线是一种半双工通信总线,其可以通过集中器实现给终端仪表远程供电。1.1发送由集中器向终端仪表传输的信号采用电压值的变化来表示,即集中器向终端仪表发送的数据码流是一种电压脉冲序列,用+36V表示逻辑“1”,用+24V表示逻辑“0”。在稳态时,线路将保持“1”状态。

    2022年10月15日
    0
  • Vim设置换行缩进[通俗易懂]

    Vim设置换行缩进[通俗易懂]vi~/.vimrcsetts=4setexpandtabsetautoindent

    2022年9月30日
    0
  • docker 上传本地镜像_docker从本地文件拉取镜像

    docker 上传本地镜像_docker从本地文件拉取镜像前言之前通过docker搭建过jenkins+python3环境,如果想要在不同的机器上搭建一样的环境,就可以将之前搭建的镜像上传到镜像仓库,这样方便在不同的机器上快速搭建同一套环境。如果公开的话

    2022年7月29日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号