您的位置:首页 > Web前端

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

2014-11-02 16:19 811 查看
       在移植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

即可,就不会再出现上述错误了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐