最近准备基于TMS320F28027开发一套产品, 通过f28027自带的ad对电流进行采样, 每次采样完成, 触发中断, 然后进行傅立叶变换.
这几天在用TI的评估板进行软件测试, 发现一个问题, 还没有找到解决方法: 如果用jtag烧录程序到flash中, 程序可以正常运行; 如果使用c2prog1.7通过串口烧录程序到flash, 中断函数无法执行, 程序不断重新执行, 连主循环到进入不了. 请帮忙卡看是怎么回事?
主函数代码如下, 每次程序执行到 EnableInterrupts(); 就又返回InitSysCtrl();
不知道是否中断函数的地址被指到了主程序起始的地址?
void main(void)
{
InitSysCtrl();
InitGpio();
InitI2CGpio();
InitSciGpio();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
#ifdef _TOFLASH
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
MemCopy(&RamconstsLoadStart, &RamconstsLoadEnd, &RamconstsRunStart);
InitFlash();
#endif
InitI2C();
InitSci();
InitRS485();
InitCpuTimers();
InitAdc();
InitEPwm();
EnableInterrupts();
EnableDog();
for (;;)
{}
}