dsp的学习历程远比我的单片机学习例程痛苦。
今天说下CLA配置的问题。
以下是CLA的官方部分配置代码,这一切都很普通,也很正常,但是让鄙人调试难受的一点是,此&claTask1中断函数赋值的时候,只有EALLOW,但是没有EDIS,只要加了EDIS就不行
void CLA_initCpu1Cla1(void)
{//// Suppressing #770-D conversion from pointer to smaller integer// The CLA address range is 16 bits so the addresses passed to the MVECT// registers will be in the lower 64KW address space. Turn the warning// back on after the MVECTs are assigned addresses//
#pragma diag_suppress=770EALLOW;Cla1Regs.MVECT1 = (uint16_t)(&Cla1Task1);Cla1Regs.MVECT2 = (uint16_t)(&Cla1Task2);Cla1Regs.MVECT3 = (uint16_t)(&Cla1Task3);Cla1Regs.MVECT4 = (uint16_t)(&Cla1Task4);Cla1Regs.MVECT5 = (uint16_t)(&Cla1Task5);Cla1Regs.MVECT6 = (uint16_t)(&Cla1Task6);Cla1Regs.MVECT7 = (uint16_t)(&Cla1Task7);Cla1Regs.MVECT8 = (uint16_t)(&Cla1Task8);
#pragma diag_warning=770//// Enable the IACK instruction to start a task on CLA in software// for all 8 CLA tasks. Also, globally enable all 8 tasks (or a// subset of tasks) by writing to their respective bits in the// MIER register//Cla1Regs.MCTL.bit.IACKE = 1;Cla1Regs.MIER.all = 0x00FF;//// Configure the vectors for the end-of-task interrupt for all// 8 tasks//PieVectTable.CLA1_1_INT = &cla1Isr1;PieVectTable.CLA1_2_INT = &cla1Isr2;PieVectTable.CLA1_3_INT = &cla1Isr3;PieVectTable.CLA1_4_INT = &cla1Isr4;PieVectTable.CLA1_5_INT = &cla1Isr5;PieVectTable.CLA1_6_INT = &cla1Isr6;PieVectTable.CLA1_7_INT = &cla1Isr7;PieVectTable.CLA1_8_INT = &cla1Isr8;//// Enable CLA interrupts at the group and subgroup levels//PieCtrlRegs.PIEIER11.all = 0xFFFF;IER |= (M_INT11 );
}
本文发布于:2024-01-31 09:38:15,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170666509427582.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |