C6678的底层学习,写一些TIPS给有需要的朋友。
需求:在外部GPIO中断中,嵌套SRIO中断。
“TMS320C66x DSP CPU and Instruction Set” 有关于中断嵌套的说明(6.6.2),这些寄存器是可以直接操作的。
例如:
temp_csr = CSR;
temp_csr |= 1;
CSR = temp_csr;
虽然我很奇怪,调用<csl_chip.h> 中 CSL_chipWriteReg和CSL_chipReadReg两个函数会报错。
需要强调的是,这些配置是在“被嵌套”的中断中操作的。在本例中,就是GPIO产生的主中断的ISR里。
另一方面,C6000编程指南(http://www.ti.com/lit/ug/spru198k/spru198k.pdf)中也有中断嵌套的介绍,但是用汇编写的。
还有,需要注意的是,除了CPU and Instruction Set 里提到的,也要对ISR 和ICR进行操作。一个可以参考的例子是:
https://e2echina.ti.com/question_answer/dsp_arm/c6000_multicore/f/53/t/164843