uCOS STM32 编译问题

[复制链接]
1785|4
 楼主| 拿起书本 发表于 2013-6-5 22:35 | 显示全部楼层 |阅读模式
在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 | 显示全部楼层
楼上说的有道理   应该就是这个问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

519

主题

4194

帖子

31

粉丝
快速回复 在线客服 返回列表 返回顶部