打印

uCOS STM32 编译问题

[复制链接]
1504|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在STM32上移植的uCOS工程,如果不使用操作系统的功能工程编译OK,运行OK
现想使用uCOS功能在main函数中只要出现系统的函数如OSInit(); 就会出现如下编译错误

但是在程序中OS_TASK_SW_HOOK_EN是这样的#define OS_TASK_SW_HOOK_EN        0
工程结构如下

请教大家了。先行谢过
沙发
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吗?

使用特权

评论回复
5
trumpxp| | 2013-6-11 20:01 | 只看该作者
楼上说的有道理   应该就是这个问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:好好学习,天天向上!

519

主题

4194

帖子

31

粉丝