.\output\ucosII.axf: Error: L6218E: Undefined symbol OS_StrLen (referred from os_task.o).

       在移植ucosII的时候出现了这样的一个错误  Error: L6218E:Undefined symbol OS_StrLen (referred from os_task.o).,一般来说,大家都知道这个是由于这个函数没有定义造成的,可能是没有引入.h头文件或.c的源文件造成的,可是由于编译不成功,不知道这个函数是在哪个文件定义的。后来终于发现是在ucos_ii.h的文件里有对这个函数的定义,其定义原型如下

             #if (OS_EVENT_NAME_EN > 0u) || (OS_FLAG_NAME_EN > 0u) || (OS_MEM_NAME_EN > 0u) || (OS_TASK_NAME_EN > 0u)   

                  INT8U         OS_StrLen               (INT8U           *psrc);

           #endif

        哦,原来是要OS_EVENT_NAME_EN、OS_FLAG_NAME_EN、OS_MEM_NAME_EN、OS_TASK_NAME_EN这四个寄存器的值都清零之后,该函数才有定义。而这四个寄存器是在os_cfg.h的文件里定义的,因此只需把里面的#define OS_TASK_NAME_EN           1u 

                                                                                                #define OS_FLAG_NAME_EN           1u

                                                                                                #define OS_MEM_NAME_EN            1u

                                                                                                #define OS_MEM_NAME_EN            1u

变成

                                                                                                #define OS_TASK_NAME_EN           0u 

                                                                                                #define OS_FLAG_NAME_EN          0u

                                                                                                #define OS_MEM_NAME_EN            0u

                                                                                                #define OS_MEM_NAME_EN            0u

即可,就不会再出现上述错误了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值