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所用寄存器)例如以下:
Rx channel A寄存器:
Tx channel B寄存器(A寄存器与Rx channel同样):
Tx Scheduler寄存器:
TI C66x DSP 系统events及其应用 - 5.1(QM accumulator的配置)的更多相关文章
- TI C66x DSP 系统events及其应用 - 5.6(INTMUX)
系统event 0~127(包含了eventCombiner的输出event 0~3)与CPU支持的12个可屏蔽中断是通过INTMUX寄存器进行映射的(不包含NMI.RESET).能够选择将系统eve ...
- TI C66x DSP 系统events及其应用 - 5.11(中断控制寄存器)
C66x DSP运行中断的简要流程: 1.使能了全局中断和子中断.假设硬件检測到中断发生,那么CPU就要跳转. 2.软件把CPU内部的A,B类寄存器的值等推入堆栈保存,把当前PC寄存器的值放入IRP寄 ...
- TI C66x DSP 系统events及其应用 - 5.8(ISTP)
中断服务表指针ISTP(Interrupt Service Table Pointer)位置寄存器用于定位的中断服务例程,那ISTP去哪里找要运行的程序,ISTP(当中的ISTB字段)就是指向IST表 ...
- TI C66x DSP 系统events及其应用 - 5.10(创建ISR的三种情况)
ISFP是服务中断的指令包,创建ISR的三种情况: 1.一个ISFP包的8条指令就能够满足ISR watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWl5ZW ...
- TI C66x DSP 系统events及其应用 - 5.7(IST)
当CPU開始处理一个中断(INT4~15)时,它将引用中断服务表(IST).IST是一个获取包括中断服务代码的包的表. IST包括16个连续的获取包.每个中断服务获取包(ISFP)包括最多14条指令( ...
- TI C66x DSP 系统events及其应用 - 5.9(IST重定位)
RESET中断的获取包必须位于0地址处,然后其它中断的获取包能够位于不论什么256字(1k字节边界)对齐的程序空间.IST的位置由ISTP寄存器中的ISTB字段决定. IST又一次定位举例: 1,将I ...
- TI C66x DSP 四种内存保护问题 -之- CPU訪问corePac内部资源时的内存保护问题
CPU訪问corePac内部资源(L1.L2)时的内存保护(通过设置内存的訪问权限实现)等问题请參考以下两个blog.已经叙述的非常具体. "TI C66x DSP 系统events及其应用 ...
- TI C66x DSP 四种内存保护问题 -之- 外设訪问corePac内部资源时的内存保护问题
外设訪问corePac内部资源(L1,L2)时的内存保护等问题请參考以下两个blog.已经叙述的非常具体. "TI C66x DSP 系统events及其应用 - 2"," ...
- TI C66x DSP 四种内存保护问题 -之- 针对CPU訪问外存(DDR3 or MSM)时的内存保护问题 - 举例
在代码维护中遇到过这种问题,CPU訪问了corePac的外部内存空间0x75510C55地址,即CPU向corePac的L2内存控制器发起了对该内存的訪问,然后L2内存控制器将该请求发给corePac ...
随机推荐
- (原创)android4.4沉浸式标题栏
趁着清明节的闲工夫,把我的百年不升级一次系统的红米note手机升级到了miuiv6的系统,早就听说android4.4的系统有沉浸式标题栏,一直没有体验过.这次终于有机会了.看了几个手机上常用的应用都 ...
- NS2仿真:使用NS仿真软件模拟简单网络模型
NS2仿真实验报告1 实验名称:使用NS仿真软件模拟简单网络模型 实验日期:2015年3月2日~2015年3月7日 实验报告日期:2015年3月8日 一.实验环境(网络平台,操作系统,网络拓扑图) 运 ...
- this——笔记
this是执行上下文中的一个属性.this与上下文中可执行代码的类型有直接关系,this值在进入上下文时确定,并且在上下文运行期间永久不变. 在这里一切都简单.在全局代码中,this始终是全局对象本身 ...
- 使用 Intel HAXM 为 Android 模拟器加速,媲美真机(转)
源:http://www.cnblogs.com/beginor/archive/2013/01/13/2858228.html 慢的问题. Intel HAXM (Hardware Accelera ...
- RDLC 聚合函数按条件求和,显示"错误号"
=Sum(IIf(Fields!AValue.Value >0,Val(Fields!AValue.Value),)) 一直显示错误号 修改为 =Sum(IIf(Fields!AValue.Va ...
- .NET定时发送邮件
添加一个全局应用程序类Global.asax 代码会在访问网站时运行 Global.asax代码: void Application_Start(object sender, EventArgs e) ...
- android图形基础知识
Android核心分析(23)-----Andoird GDI之基本原理及其总体框架 2010-06-13 22:49 18223人阅读 评论(18) 收藏 举报 AndroidGDI基本框架 在An ...
- 同步关键字synchronized
同步关键字synchronized 同步关键字synchronized使用简洁,代码可维护性好.在JDK6中,性能也比早期的JDK有很大的改进.如果可以满足程序要求,应该首先考虑这种同步方式. 关键字 ...
- XCode中使用SVN 教程
修改subversion.config方法: 可以直接在终端上输入:vi ~/.subversion/config来编辑. 也可以通过Finder搜索.subversion,点击下边的+号,进入高级搜 ...
- 在类库中使用log4net
最近在做一个类库,用的C#写的,为了DEBUG方便需要日志输出,于是找了log4net这个工具进行日志输出; 因为调用这个类库的是C++,而且本人对C++不是很熟悉,于是无法在app.config或者 ...