这两天在看UC/OS-2,看了任哲老师的书,看完了任务那章,懵懵懂懂的,所以我就把原子哥的战舰版第五十八章UCOSII实验1任务的调度。复制了一下到mini板上(我只有mini板),建立工程、复制相关文件进去,运行报错,虽然改改后点亮了两个LED。但是留下几个困惑如下:
...OBJTest10.axf: Error: L6200E: Symbol SysTick_Handler multiply defined (by delay.o and stm32f10x_it.o).
就是说Symbol SysTick_Handler 在函数stm32f10x_it.c和函数delay.c里面重复定义了。这种错误双击它还不会指向出错地方,不过我复制“Symbol SysTick_Handler ”到主函数某个地方,然后右键-go to defi就找到了,一看它自动跑到stm32f10x_it.c的第135行,发现函数void SysTick_Handler(void)啥也没写,就定义了一个空的放那
void SysTick_Handler(void)
{
}
后来我把这个函数注释掉就ok了。
我的疑问是,1.为什么在stm32f10x_it.c里面会有一些空函数,就比如void SysTick_Handler(void)、void SysTick_Handler(void)等函数。就是定义在那里,然后啥都不写。这样的用意是什么?
2.为什么我的报错明明是说在两处出现重复定义函数,为什么我复制“Symbol SysTick_Handler ”到主函数某个地方,然后右键-go to defi只在跳到stm32f10x_it.c里,按道理应该要出现在两处地方,因为我是在两个地方重复定义的。按理应该是出现那个框框,有2个地方,点一个就跳到stm32f10x_it.c,点另一个就跳到delay.c才对呀? 还有那个PendSV_Handler在函数os_cpuc_a.asm里和在stm32f10x_it.c里重复了,我在stm32f10x_it.c注释掉了,再找它说找不到了。但是那个Symbol SysTick_Handler我在stm32f10x_it.c注释掉,然后再找的时候就自动到delay.c里找到了。是不是.asm的不一样啊?
3.我上面提到的那些报错,怎么在MDK里面一般双击错误会直接跳到错误处,为什么这种错误双击它还不会指向出错地方?非得让我复制到main.c某个地方去右键go to defin……才找得到。。??
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
谢谢回答!
一周热门 更多>