使用“系统节拍”定时器的程序出现MDK编译错误 .\Flash\Blinky.axf: Error: L6200E: Symbol SysTick_Handler multiply defined (by hal_cm0.o and blinky.o).的解决
出现此错误是因为你在使用RTX内核的程序中添加了SysTick_Handler的实现,RL-RTX操作系统能跑起来的一大前提就是初始化好了Systick,也就是说系统已经实现了SysTick_Handler函数,这个函数就位于Keil安装目录下的“\ARM\RL\RTX\SRC\CM\hal_cm0.c"文件中。
片段如下:
- SysTick_Handler
- BL __cpp(rt_systick)
- B Sys_Switch
也就是说想增加系统节拍定时器中断处理也要在这里实现。在Blinky.c中将如下中断代码注释即可:
// 系统TIC
void SysTick_Handler(void)
{
msTicks++;
}
注释为:
// ϵͳTIC
//void SysTick_Handler(void)
//{
// msTicks++;
//}
即可解决
本文介绍了当使用RTX内核程序时遇到MDK编译错误的具体原因及解决方法。错误提示为“SymbolSysTick_Handler multiply defined”,主要是由于在程序中重复定义了SysTick_Handler中断处理函数。解决办法是注释掉不必要的SysTick_Handler实现。
367

被折叠的 条评论
为什么被折叠?



