21ic电子技术开发论坛

标题: uCOS STM32 编译问题 [打印本页]

作者: 拿起书本    时间: 2013-6-5 22:35
标题: uCOS STM32 编译问题
在STM32上移植的uCOS工程,如果不使用操作系统的功能工程编译OK,运行OK
现想使用uCOS功能在main函数中只要出现系统的函数如OSInit(); 就会出现如下编译错误
1.jpg
但是在程序中OS_TASK_SW_HOOK_EN是这样的#define OS_TASK_SW_HOOK_EN        0
工程结构如下
2.jpg
请教大家了。先行谢过
作者: huangfeng33    时间: 2013-6-6 19:54
楼主看看是不是函数没有实现?或者没有使能编译 ?
作者: jxmzzr    时间: 2013-6-7 11:01
定义OS_TASK_SW_HOOK_EN为1   或

删掉os_cpu_a.s文件中与OSTaskSwHook相关的语句,即

IMPORT OSTaskSwHook

还有几处
   LDR  RO, =OSTaskSwHook
   MOV LR, PC
   BX R0

原来没出错是因为你没有用OS中的函数,所以链接时所有OS的函数都被忽略了,

现在你用来OS中的函数,这个OS函数所有使用的函数链接时都会链接进来,由于你使用的os_cpu_a.s里引用了

OSTaskSwHook而且没有用宏控制相关代码,所以你禁止OSTaskSwHook
作者: tianli1980    时间: 2013-6-11 15:32
#define OS_TASK_SW_HOOK_EN        1u   /*     Include code for OSTaskSwHook()                          */

这个不应该非0吗?
作者: trumpxp    时间: 2013-6-11 20:01
楼上说的有道理   应该就是这个问题




欢迎光临 21ic电子技术开发论坛 (https://bbs.21ic.com/) Powered by Discuz! X3.5