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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C/C++指针详解之基础篇(史上最全最易懂指针学习指南!!!!)「建议收藏」

    C/C++指针详解之基础篇(史上最全最易懂指针学习指南!!!!)「建议收藏」目录一.变量的内存实质到1.1变量的实质1.2赋值给变量1.3变量在哪里?二.指针是个什么东西?三.二级指针(指针的指针)3.1定义与初始化3.2间接数据访问3.2.1.改变一级指针指向3.2.2改变N-1级指针的指向3.2.3二级指针的步长四.指针与数组4.1指针与数组名4.1.1通过数组名访问数组元素4….

    2022年5月22日
    38
  • spring拦截器「建议收藏」

    spring拦截器「建议收藏」spring拦截器实现HandlerInterceptor接口或者继承HandlerInterceptorAdapter类都可以实现,主要有三个方法,preHandle在调用具体的controller之前执行,postHandle在调用controller之后,但是页面渲染之前执行,afterCompletion在页面渲染之后执行,拦截器的功能类似与filter的功能,个人认为spring为什么搞…

    2022年6月16日
    30
  • onmousedown和onmouseup事件「建议收藏」

    onmousedown和onmouseup事件「建议收藏」在这个程序中为我们介绍两个鼠标事件onmousedown和onmouseup事件,这个两双鼠标事件分别是鼠标按下时候触发的事件和鼠标松开的时候触发的事件他r这样来设置文本的颜色们的是实现是通过调用javaScript脚本。我们在这个程序中还可以看到的一点对于文本颜色的一个处理,我们在这个文本颜色的处理的过程是getElementById().style.color

    2025年8月13日
    4
  • python安装jieba库教程_pygame库

    python安装jieba库教程_pygame库方法一:使用pycharm里的检索项(此方法适用于需要使用pycharm的小伙伴)1、打开pycharm,在File下打开Settings。2、在ProjectInterpret菜单栏下,点击”+”号。3、在上方的检索框中输入需要下载的库的库名,点击下方InstallPackage。4、如出现:package”jieba”installsuccessfully的字样,库安装成功。方法二:自行下载第三方库通过指令安装1、…

    2022年9月21日
    2
  • Android打开相册_安卓10相册无法使用

    Android打开相册_安卓10相册无法使用最近在学习安卓的过程中,学到了从相册中选取图片的内容。//java版Activity的代码importandroid.app.Activity;importandroid.content.Intent;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.net.Uri;importandroid.os.Bundle;importandroid.view.View;

    2022年9月22日
    3
  • JS数组扁平化_扁平化js

    JS数组扁平化_扁平化jsJS 扁平化 (flatten) 数组

    2022年4月21日
    40

发表回复

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

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