Part Number:TMS320F28379D
现在在调试CLA功能,使用芯片28377d 配置函数如下
void init_cla(void)
{
memcpy((uint32_t *)&Cla1ProgRunStart, (uint32_t *)&Cla1ProgLoadStart,(uint32_t)&Cla1ProgLoadSize );
MemCfg_setLSRAMMasterSel(MEMCFG_SECT_LS0, MEMCFG_LSRAMMASTER_CPU_CLA1);
MemCfg_setLSRAMMasterSel(MEMCFG_SECT_LS1, MEMCFG_LSRAMMASTER_CPU_CLA1);
MemCfg_setLSRAMMasterSel(MEMCFG_SECT_LS2, MEMCFG_LSRAMMASTER_CPU_CLA1);
MemCfg_setLSRAMMasterSel(MEMCFG_SECT_LS3, MEMCFG_LSRAMMASTER_CPU_CLA1);
MemCfg_setLSRAMMasterSel(MEMCFG_SECT_LS4, MEMCFG_LSRAMMASTER_CPU_CLA1);
MemCfg_setLSRAMMasterSel(MEMCFG_SECT_LS5, MEMCFG_LSRAMMASTER_CPU_CLA1);
MemCfg_setCLAMemType(MEMCFG_SECT_LS0, MEMCFG_CLA_MEM_PROGRAM); //将ram区设置为代码页
MemCfg_setCLAMemType(MEMCFG_SECT_LS1, MEMCFG_CLA_MEM_PROGRAM);
MemCfg_setCLAMemType(MEMCFG_SECT_LS2, MEMCFG_CLA_MEM_PROGRAM);
MemCfg_setCLAMemType(MEMCFG_SECT_LS3, MEMCFG_CLA_MEM_PROGRAM);
MemCfg_setCLAMemType(MEMCFG_SECT_LS4, MEMCFG_CLA_MEM_PROGRAM);
MemCfg_setCLAMemType(MEMCFG_SECT_LS5, MEMCFG_CLA_MEM_DATA);
#pragma diag_suppress = 770
CLA_mapTaskVector(CLA1_BASE , CLA_MVECT_1, (uint16_t)&Cla1Task1);
CLA_mapTaskVector(CLA1_BASE , CLA_MVECT_2, (uint16_t)&Cla1Task2);
CLA_mapTaskVector(CLA1_BASE , CLA_MVECT_3, (uint16_t)&Cla1Task3);
CLA_mapTaskVector(CLA1_BASE , CLA_MVECT_4, (uint16_t)&Cla1Task4);
CLA_mapTaskVector(CLA1_BASE , CLA_MVECT_5, (uint16_t)&Cla1Task5);
CLA_mapTaskVector(CLA1_BASE , CLA_MVECT_6, (uint16_t)&Cla1Task6);
CLA_mapTaskVector(CLA1_BASE , CLA_MVECT_7, (uint16_t)&Cla1Task7);
#pragma diag_warning = 770
CLA_enableIACK(CLA1_BASE);
CLA_enableTasks(CLA1_BASE, CLA_TASKFLAG_ALL);
CLA_setTriggerSource(CLA_TASK_1, CLA_TRIGGER_EPWM1INT); //cla触发源设置
// Interrupt_register(INT_CLA1_1, &cla1Isr1);
// Interrupt_register(INT_CLA1_2, &cla1Isr2);
// Interrupt_register(INT_CLA1_3, &cla1Isr3);
// Interrupt_register(INT_CLA1_4, &cla1Isr4);
// Interrupt_register(INT_CLA1_5, &cla1Isr5);
// Interrupt_register(INT_CLA1_6, &cla1Isr6);
// Interrupt_register(INT_CLA1_7, &cla1Isr7);
// Interrupt_register(INT_CLA1_8, &cla1Isr8);
//
//
// // Enable CLA interrupts at the group and subgroup levels
//
// Interrupt_enable(INT_CLA1_1);
// Interrupt_enable(INT_CLA1_2);
// Interrupt_enable(INT_CLA1_3);
// Interrupt_enable(INT_CLA1_4);
// Interrupt_enable(INT_CLA1_5);
// Interrupt_enable(INT_CLA1_6);
// Interrupt_enable(INT_CLA1_7);
// Interrupt_enable(INT_CLA1_8);
}
并且在.h中添加了函数声明
__interrupt void Cla1Task1();
__interrupt void Cla1Task2();
__interrupt void Cla1Task3();
__interrupt void Cla1Task4();
__interrupt void Cla1Task5();
__interrupt void Cla1Task6();
__interrupt void Cla1Task7();
__interrupt void Cla1Task8();
但编译时总是提示#10234-D 错误如图所示
请ti工程师帮忙分析一下
Cherry Zhou:
您好我们已收到您的问题并升级到英文论坛,如有答复将尽快回复您。谢谢!
,
qiangguang li:
谢谢ti工程师的支持,我已找到问题所在,已解决。问题原因所定义的.cla文件和一个.c文件重名所导致的。按照我的理解不同类型的源文件文件名称应该是可以不一样的。
,
Cherry Zhou:
好的,您的问题解决了就好。如需其他帮助请随时联系我们!