Symbol SysTick_Handler multiply defined

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

片段如下:

  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++;      
//}

即可解决

 

永不止步步 发表于02-22 10:16 浏览65213次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:302217个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号