用仿真器调试,M3工程和C28工程都可以正常运行,分别进入while(1);和for(;;);循环,执行相应的中断或者其他的代码。不带仿真器上电自运行,M3正常运行,C28初始化过程中运行到 InitAdc1(); 没有向下执行,用GPIO输出作为运行位置的标志,具体定位到DELAY_US(ADC_usDELAY),之前的代码被执行,之后的代码没有执行,如果屏蔽这个DELAY_US()函数,可以正常一直执行下去。这个函数用的TI的例程,没有修改。程序中添加了
#ifdef _FLASH
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
// Call Flash Initialization to setup flash waitstates
// This function must reside in RAM
InitFlash();
#endif
并且预定义“_FLASH”保证上面代码可以被执行。用仿真器全速运行和单步运行都可以顺利执行DELAY_US()。
请TI的工程师或者各位高手不吝赐教,不胜感激