This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

【C6670】SYS/BIOS下的QpendQ中断



在调试BCP的过程中,由于时间上的考虑,没有选择accumulator产生中断,而是选择更加快速的qpendq中断方式。

设置RX_Q_NUM为662,对应绑定的event是134

整个工程是建立在SYS/BIOS下的,利用task调度,BCP的主程序bcp_func()放在一个task中,现在问题是,

只有bcp_func()所在的任务全部运行结束并退出,才会进入配置的qpendq中断。

有以下几个疑惑:

1. 配置BCP的Rx queue为触发中断queue,中断产生的条件应该是该queue的数据被取完,还是其他条件?

2. task和qpendqueue中断的优先级关系,task会不会对中断有屏蔽处理?

3. 在需要不断从已知数组取payload数据的情况下,BCP如何能够脱离DSP core独立运行?

    还是只能每次都调用BCP主函数,将BCP当做一个独占任务来运行?

  • 使用QpendQ产生中断时,只要QpendQ中有一个描述符就会产生中断事件,在中断中需要把描述符取走,并清系统事件保证下一个中断事件的触发。

    QpendQ中断是硬中断,优先级高于task;组包后将描述符push到BCP TxQ既可,之后都是BCP硬件处理。