Multicore Navigator (CPPI):Notify end of QM interrupt
来源:互联网 发布:中文域名注册多少钱 编辑:程序博客网 时间:2024/05/21 22:44
在RTOS中,Multicore Navigator (CPPI)中PDSP监控的中断是作为中断进程进行调度的。如下,QM_PDSP_ISR是作为中断进程的入口函数注册给中断进程的,每次中断进程被调用的时候,都将从QM_PDSP_ISR处执行,这与普通的非中断进程不同(从被打断处继续执行)。
void QM_PDSP_ISR()
{
//processing func
ISR_func();
// End interrupt.
(void)QmInterruptEndOfInterrupt(interrupt_Type,accChannel);
}
当ISR_func执行完后,要通过QmInterruptEndOfInterrupt函数作一些善后工作:
intr =accChannel; //PDSP监控QM中断的channel号,即也是中断号
/*1, Clear status register bit of this interrupt */
regPtr->statusClearRegs = (u32)(1<<intr);
/*,2,Subract one for this interrupt from the int count register */
regPtr->intCntRegs[ intr] = 1;
/*,3,Signal that interrupt has been serviced */
regPtr->endOfInt = intr;
第一步目的是清除intr中断状态寄存器,表示该中断已得到服务;
第二步目的是将记录该intr中断对应的count寄存器减1(因为同一个intr中断可以触发多次,对应intr的count寄存器记录了还没有得到服务的intr中断的数量),表示intr中断已响应一次。count最大值是3,表示最大可以记录3个同种intr中断,超出的将会丢掉。
第三步设置对应于intr中断的endOfint寄存器,表示该intr中断已正式服务完成。
当第三步设置完成后,如果intr中断对应的count寄存器值不等于0,则intr中断将会再次触发(假设比intr中断优先级高的中断count寄存器值为0,即没有高优先级中断触发),但是this should not happen with firmware generated interrupts(4.4.1.2 inMulticore Navigator (CPPI) Users guide.pdf)。
控制QM interrupt中断的regs area是QMSS INTD config region(Multicore Navigator (CPPI) Users guide.pdf):
中断号Valid values are: (other values are ignored)
0, 1 = PKTDMA RX starvation interrupts 0 and 1 (respectively)
2 - 33 = High-priority channel interrupts 0 through 31 (respectively)
34 - 49 = Low-priority channel interrupts 0 through 15 (respectively)
- Multicore Navigator (CPPI):Notify end of QM interrupt
- wait、sleep、interrupt、notify
- Tms320c6678——多核导航模块(Multicore Navigator)
- qm
- Java多线程sleep(),join(),interrupt(),wait(),notify()
- sleep,interrupt和wait,notify的区别
- Java多线程sleep(),join(),interrupt(),wait(),notify()
- Java多线程sleep(),join(),interrupt(),wait(),notify()
- Java多线程sleep(),join(),interrupt(),wait(),notify()
- sleep,wait,join与interrupt,notify
- Java多线程sleep(),join(),interrupt(),wait(),notify()
- Java多线程sleep(),join(),interrupt(),wait(),notify()
- CountDownLatch,interrupt, wait, notify, Thread各方法
- wait、notify、sleep、interrupt对比分析
- java中interrupt、join、sleep、notify、notifyAll、wait详解
- java中interrupt、join、sleep、notify、notifyAll、wait详解
- wait notify interrupt join setDaemon 方法的用法
- 深入剖析Sleep、wait、notify、notifyAll、yield、join、Interrupt
- ACE反应器框架引用计数策略的使用
- POJ 2299-Ultra-QuickSort(归并排序求相邻元素的交换次数)
- 基于xmpp openfire smack开发之smack类库介绍和使用[2]
- Log4J的配置
- GitHub上最火的Android开源项目(二)
- Multicore Navigator (CPPI):Notify end of QM interrupt
- 锤子如何连接MacOS系统调试
- python检索目录下所有文件中包含指定字符串的文件
- Swift开发之调用系统相册
- Android Open Accessory Protocol 2.0
- 通过编码分别测试ArrayList 和 LinkedList 添加、删除对象时的耗时情况(精确到纳秒),并总结出以上两种集合的数据结构的不同之处。
- 表单里头第一个按钮天生就有提交功能?
- [OSGI] Eclipse启动/调试Felix
- GitHub上最火的Android开源项目(三)