This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F280025C: 导入示例项目可以使用SysCtl_delay(),但如果自行引用sysctl.h来使用SysCtl_delay()就显示No source available for "SysCtl_delay()"

Part Number: TMS320F280025C
Other Parts Discussed in Thread: C2000WARE

您好:

我正在初学使用TMS320F280025C芯片,从C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f28002x\examples\led导入这个LED闪烁的项目时,main函数中的Device_init();跳转→SysCtl_setClock(DEVICE_SETCLOCK_CFG);跳转SysCtl_delay(23U);这个延时函数是可以正常运行的。但是,当我尝试学习从零开始新建一个项目,把C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f28002x\driverlib里面的文件都复制到工作区,也正确设置了路径、也正确引用了相关头文件后,Device_init();跳转→SysCtl_setClock(DEVICE_SETCLOCK_CFG);跳转SysCtl_delay(23U);延时函数就无法运行了,连接仿真器时显示No source available for "SysCtl_delay()"。

我查看这个延时函数,发现是在sysctl.c中使用汇编语言写的,如下:

//
// Define to isolate inline assembly
//
#define SYSCTL_DELAY        __asm(" .if __TI_EABI__\n"                         \
                                  " .asg    SysCtl_delay    , _SysCtl_delay\n" \
                                  " .endif\n"                                  \
                                  " .def _SysCtl_delay\n"                      \
                                  " .sect \".TI.ramfunc\"\n"                   \
                                  " .global  _SysCtl_delay\n"                  \
                                  "_SysCtl_delay:\n"                           \
                                  " SUB    ACC,#1\n"                           \
                                  " BF     _SysCtl_delay, GEQ\n"               \
                                  " LRETR\n")
//*****************************************************************************
//
// SysCtl_delay()
//
//*****************************************************************************
SYSCTL_DELAY;

在sysctl.h中也有声明

extern void SysCtl_delay(uint32_t count);

然后我试了其他示例,发现均是在C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f28002x\examples路径导入的项目全部能使用SysCtl_delay()函数,只要是自己引用sysctl.h文件使用SysCtl_delay()函数的就会失败,提示No source available for "SysCtl_delay()",找了很久一直没有找到原因,很奇怪,请帮忙解答一下,不甚感激!