TI中文支持网
TI专业的中文技术问题搜集分享网站

Tiva tm4c123gh6pm头文件错误

Tiva tm4c123gh6pm的工程,使用MDK编写,在编译的时候全部通过,但是在链接的时候库文件都显示undefined symbol 。如SysCtlClockGet显示为Error:L6218:Undefined symbol SysCtlClockGet(referred from main.o)头文件路径也定义了。但是比较奇怪的是在rom.h里面的函数就没有报错。

Xiaozhou Ye:

回复 xyz549040622:

嗯,确实是有漏掉了一部分的C文件,但是有一个IntRegister的函数始终没办法解决。然后现在是暂时先屏蔽掉使用

xyz549040622:

回复 Xiaozhou Ye:

IntRegister的话,需要在启动文件中添加中断向量表的。

Xiaozhou Ye:

回复 xyz549040622:

我并没有使用到,只是把所有库里面的C添加进去的时候报错了。

xyz549040622:

回复 Xiaozhou Ye:

贴出IntRegister部分的代码和报错的信息看看。这个函数看名字像是中断函数的。

Xiaozhou Ye:

回复 xyz549040622:

interrupt.c中

voidIntRegister(uint32_t ui32Interrupt, void (*pfnHandler)(void)){    uint32_t ui32Idx, ui32Value;    //    // Check the arguments.    //    ASSERT(ui32Interrupt < NUM_INTERRUPTS);    //    // Make sure that the RAM vector table is correctly aligned.    //    ASSERT(((uint32_t)g_pfnRAMVectors & 0x000003ff) == 0);    //    // See if the RAM vector table has been initialized.    //    if(HWREG(NVIC_VTABLE) != (uint32_t)g_pfnRAMVectors)    {        //        // Copy the vector table from the beginning of FLASH to the RAM vector        // table.        //        ui32Value = HWREG(NVIC_VTABLE);        for(ui32Idx = 0; ui32Idx < NUM_INTERRUPTS; ui32Idx++)        {            g_pfnRAMVectors[ui32Idx] = (void (*)(void))HWREG((ui32Idx * 4) +                                                             ui32Value);        }        //        // Point the NVIC at the RAM vector table.        //        HWREG(NVIC_VTABLE) = (uint32_t)g_pfnRAMVectors;    }    //    // Save the interrupt handler.    //    g_pfnRAMVectors[ui32Interrupt] = pfnHandler;}

xyz549040622:

回复 Xiaozhou Ye:

1.你中断表中有滴答定时器中断,而实际没有定义这个。

2.你实际用的是IntRegister,函数原型的定义是SystickIntRegister,所以报错的吧。

赞(0)
未经允许不得转载:TI中文支持网 » Tiva tm4c123gh6pm头文件错误
分享到: 更多 (0)