3634|6

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

51单片机移植uC/OS-II编译出错 [复制链接]

本人在编译uC/OS-II的时候,出现了一个比较难缠的编译错误,望高手指点!
先看OS_CPU.H文件,该头文件包含与cpu有关的定义

  1. typedef unsigned char  INT8U;         //无符号8位数
复制代码


OS_CFG.H文件,是uC/OS-II的配置文件

  1. #define OS_MAX_EVENTS             2
  2. #define OS_Q_EN                   1
  3. #define OS_MAX_QS                 2
  4. #define OS_MBOX_EN                1
  5. #define OS_SEM_EN                 1
  6. #define OS_MUTEX_EN               1
复制代码


uCOS_II.H文件


  1. #define  OS_EVENT_EN       (((OS_Q_EN > 0) && (OS_MAX_QS > 0))|| (OS_MBOX_EN > 0) || (OS_SEM_EN > 0) || (OS_MUTEX_EN > 0))

  2. #if (OS_EVENT_EN > 0) && (OS_MAX_EVENTS > 0)
  3. typedef struct {
  4.     INT8U   OSEventType;                   /* Type of event control block (see OS_EVENT_TYPE_???)      */
  5.     INT8U   OSEventGrp;                    /* Group corresponding to tasks waiting for event to occur  */
  6.     INT16U  OSEventCnt;                    /* Semaphore Count (not used if other EVENT type)           */
  7.     void   *OSEventPtr;                    /* Pointer to message or queue structure                    */
  8.     INT8U   OSEventTbl[OS_EVENT_TBL_SIZE]; /* List of tasks waiting for event to occur                 */
  9. } OS_EVENT;
  10. #endif

  11. #if OS_MBOX_EN > 0
  12. typedef struct {
  13.     void   *OSMsg;                         /* Pointer to message in mailbox                            */
  14.     INT8U   OSEventTbl[OS_EVENT_TBL_SIZE]; /* List of tasks waiting for event to occur                 */
  15.     INT8U   OSEventGrp;                    /* Group corresponding to tasks waiting for event to occur  */
  16. } OS_MBOX_DATA;
  17. #endif

  18. #if OS_MBOX_QUERY_EN > 0
  19. [color=#FF0000]INT8U         OSMboxQuery(OS_EVENT *pevent, OS_MBOX_DATA *pdata);[/color]
  20. #endif
复制代码


INCLUDES.H文件,包含所有的头文件

  1. #include   
  2. #include   
  3. #include   
复制代码


APP.C文件:应用程序

  1. #include

  2. #define  TASK_STK_SIZE                 512       /* Size of each task's stacks (# of WORDs)            */

  3. OS_STK           TaskStartStk[TASK_STK_SIZE];

  4. void   TaskStart(void *data);                         /* Function prototypes of Startup task           */

  5. void main (void)
  6. {
  7.     OSInit();                                              /* Initialize uC/OS-II                      */
  8.     OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
  9.     OSStart();                                             /* Start multitasking                       */
  10. }
  11. void TaskStart (void *data)
  12. {
  13. }
复制代码


注意:限于篇幅,只贴出了与错误有关的代码!

编译时UCOS_II.H的INT8U OSMboxQuery(OS_EVENT *pevent, OS_MBOX_DATA *pdata);出现:..\SOURCE\UCOS_II.H(547): error C141: syntax error near ')'错误,本人不解,望高手指点,感激不尽!

最新回复

呵呵,谢谢,正解,当时没有注意,已经解决了~~  详情 回复 发表于 2009-12-18 13:03
点赞 关注

回复
举报

77

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
OS_MBOX_QUERY_EN ....这个符号定义了没有?
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
   51有必要移植系统吗。学习了,第一次看到。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 
很诡异.........
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 
pdata........是C51关键字......改个名字就OK了..........
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

6
 
LS正解 你是照书上移植的吗 书上写了要改名字的啊
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 4 楼 great_bug 的回复:
pdata........是C51关键字......改个名字就OK了..........


呵呵,谢谢,正解,当时没有注意,已经解决了~~
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表