.\Flash\Blinky.axf: Error: L6200E: Symbol SysTick_Handler multiply defined (by hal_cm0.o and blinky.

使用“系统节拍”定时器的程序出现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"文件中。

 

片段如下:

 

[cpp] view plain copy print ?
  1. SysTick_Handler  
  2.         BL      __cpp(rt_systick)  
  3.         B       Sys_Switch  


也就是说想增加系统节拍定时器中断处理也要在这里实现。在Blinky.c中将如下中断代码注释即可:

// 系统TIC
void SysTick_Handler(void)
{
  msTicks++;      
}
注释为:

// ϵͳTIC
//void SysTick_Handler(void)
//{
//  msTicks++;      
//}

即可解决



你可能感兴趣的:(EFM32学习笔记)