DELAY_US()函数宏定义在F2837xS_Example.h和device.h中,实际调用的是F28x_usDelay()函数,这个函数是TI提供的库函数,若工程中使用了基于FLASH的cmd文件,这个函数将被加载到FLASH中,但需要复制到RAM中运行。
单步运行时发现复制相关函数到ram区的代码部分并未执行,即 memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize); 并未执行部分语句依赖宏定义条件语句#ifdef _FLASH.
检查发现_FLASH未定义,故DELAY_US()要正常运行,需在工程中增加预定义_FLASH,且程序中调用函数InitSysCtrl()。
#define _FLASH 1
在F28374S单核CPU1程序中,按上述设置,可正常使用DELAY_US()函数。
问题解决。