




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、xilentz的网络文摘博客园 首页 新随笔 联系 订阅 管理 随笔 - 204 文章 - 0 评论 - 10 trackbacks - 0 ucos_ii.h/*
2、0; uc/os-ii*
3、 the real-time kernel*
4、160; (c) copyright 1992-2002, jean j. labrosse, weston, fl* &
5、#160; all rights reserved* file : ucos_ii.h* by : jean j. labrosse*/ /* &
6、#160; miscellaneous*/ #define os_version 252 /*
7、version of uc/os-ii (vx.yy mult. by 100) */ #ifdef os_globals#define os_ext#else#define os_ext extern#endif #ifndef false#define false
8、0; 0#endif #ifndef true#define true 1#endif #define os_prio_self 0xff
9、60; /* indicate self priority */ #if os_task_stat_en > 0#define os_n_
10、sys_tasks 2 /* number of system tasks
11、; */#else#define os_n_sys_tasks 1#endif #define os_stat_prio (os_lowest_prio - 1) /* statistic task pr
12、iority */#define os_idle_prio (os_lowest_prio) /* idle
13、 task priority */ #define os_event_tbl_size (os_lowest_prio) / 8 + 1) /* size of event table
14、0; */#define os_rdy_tbl_size (os_lowest_prio) / 8 + 1) /* size of ready table &
15、#160; */ #define os_task_idle_id 65535 /* i.d. numbers for idle and stat tasks
16、 */#define os_task_stat_id 65534 #define os_event_en (os_q_en > 0) && (os_max_qs > 0) | (os_mbox_en > 0) | (os_sem_en > 0) | (os_mutex_en > 0)/能使队列代码产生&&申请队列控制块最大数不为零|能使邮箱代码产生|/能使
17、信号量代码产生|能使互斥量代码产生 /*$page*/ /* task status (bit definition for ostcbstat)*/#define os_stat_rdy
18、160; 0x00 /* ready to run
19、; */#define os_stat_sem 0x01 /* pending on semaphore
20、160; */#define os_stat_mbox 0x02 /* pending on mailbox
21、 */#define os_stat_q
22、0; 0x04 /* pending on queue
23、60; */#define os_stat_suspend 0x08 /* task is suspended
24、; */#define os_stat_mutex 0x10 /* pending on mutual exclusion semaphore &
25、#160; */#define os_stat_flag 0x20 /* pending on event flag group
26、160; */ /*
27、160; os_event types*/#define os_event_type_unused 0#define os_event_type_mbox 1#define os_event_type_q 2#def
28、ine os_event_type_sem 3#define os_event_type_mutex 4#define os_event_type_flag 5 /* &
29、#160; event flags*/#define os_flag_wait_clr_all 0 /* wait fo
30、r all the bits specified to be clr (i.e. 0) */ #define os_flag_wait_clr_and 0 #define os_flag_wait_clr_any 1 /* wait for any of the bits specified to be clr
31、 (i.e. 0) */#define os_flag_wait_clr_or 1 #define os_flag_wait_set_all 2 /* wait for all the bits specified to be set (i.e. 1) */ #define&
32、#160; os_flag_wait_set_and 2 #define os_flag_wait_set_any 3 /* wait for any of the bits specified to be set (i.e. 1) */#define os_flag_wait_set_or
33、0; 3 #define os_flag_consume 0x80 /* consume the flags if condition(s) satisfied */ #define os_flag_clr
34、; 0#define os_flag_set 1 /* possible values for 'opt' argument of ossemdel(), osmboxdel(), osqdel() and os
35、mutexdel()*/#define os_del_no_pend 0#define os_del_always 1 /*
36、0; os?postopt() options* these #defines are used to establish the options for osmboxpostopt() and osqpostopt().*/#define os_post_opt_none &
37、#160; 0x00 /* post to highest priority task waiting */#define os_post_opt_broadcast 0x01 /* broa
38、dcast message to all tasks waiting */ #define os_post_opt_front 0x02 /* post to highest priority task waiting
39、; */ /*
40、; task options (see ostaskcreateext() */#define os_task_opt_stk_chk 0x0001 /* enable stack checking for the task */#defi
41、ne os_task_opt_stk_clr 0x0002 /* clear the stack when the task is create */#define os_task_opt_save_fp 0x0004
42、; /* save the contents of any floating-point registers */ /*
43、 error codes*/#define os_no_err 0 #define os_err_event_type 1#define os_err_pend_isr
44、 2#define os_err_post_null_ptr 3#define os_err_pevent_null 4#define os_err_post_isr 5#define os_err_query_is
45、r 6#define os_err_invalid_opt 7#define os_err_task_waiting 8 #define os_timeout 10#d
46、efine os_task_not_exist 11 #define os_mbox_full 20 #define os_q_full 30 #define os_prio_exist
47、60; 40#define os_prio_err 41#define os_prio_invalid 42 #define os_sem_ovf
48、; 50 #define os_task_del_err 60#define os_task_del_idle 61#define os_task_del_req 62#define os_t
49、ask_del_isr 63 #define os_no_more_tcb 70 #define os_time_not_dly 80#define os_time_invalid_minutes 81#define os_time_invalid_s
50、econds 82#define os_time_invalid_milli 83#define os_time_zero_dly 84 #define os_task_suspend_prio 90#define os_task_suspend_idle 91 #define os_task_resume_prio
51、60; 100#define os_task_not_suspended 101 #define os_mem_invalid_part 110#define os_mem_invalid_blks 111#define os_mem_invalid_size 112#define os_mem_no_free_blks 113#define os_mem_full
52、160; 114#define os_mem_invalid_pblk 115#define os_mem_invalid_pmem 116#define os_mem_invalid_pdata 117#define os_mem_invalid_addr 118 #define os_err_n
53、ot_mutex_owner 120 #define os_task_opt_err 130 #define os_err_del_isr 140#define os_err_create_isr 141 #define os_flag_invalid_pgrp 150#de
54、fine os_flag_err_wait_type 151#define os_flag_err_not_rdy 152#define os_flag_invalid_opt 153#define os_flag_grp_depleted 154 /*$page*/ /* &
55、#160; event control block*/ #if (os_event_en > 0) && (os_max_events > 0)typedef struct int8u oseven
56、ttype; /* type of event control block (see os_event_type_?) */
57、0; /事件控制块类型(见os_event_type) int8u oseventgrp;
58、60; /* group corresponding to tasks waiting for event to occur */ &
59、#160; /事件群体响应去等待任务事件发生 int16u oseventcnt; /* semaphore count (not used if other event type)
60、; */ /
61、信号量,在其它事件中不用 void *oseventptr; /* pointer to message or queue structure &
62、#160; */ /消息或者队列结构指针
63、0; int8u oseventtblos_event_tbl_size; /* list of tasks waiting for event to occur */
64、 /任务列表等待事件发生 os_event;#endif /*
65、; event flags control block*/ #if (os_version >= 251) && (os_flag_en > 0) && (os_max_flags > 0)typedef struct
66、60; /* event flag group &
67、#160; */ int8u osflagtype; /* should be set to os_event_type_flag &
68、#160; */ void *osflagwaitlist; /* pointer to first node of task waiting on event fla
69、g */ os_flags osflagflags; /* 8, 16 or 32 bit flags
70、60; */ os_flag_grp; typedef struct &
71、#160; /* event flag wait list node */ void
72、 *osflagnodenext; /* pointer to next node in wait list */ void
73、0; *osflagnodeprev; /* pointer to previous node in wait list */ void
74、0; *osflagnodetcb; /* pointer to tcb of waiting task */
75、0; void *osflagnodeflaggrp; /* pointer to event flag group
76、160; */ os_flags osflagnodeflags; /* event flag to wait on &
77、#160; */ int8u osflagnodewaittype; /* type of wait:
78、160; */
79、; /* os_flag_wait_and
80、60; */
81、 /* os_flag_wait_all
82、0; */ /*
83、0; os_flag_wait_or */
84、60; /* os_flag_wait_any &
85、#160; */ os_flag_node;#endif /*
86、; message mailbox data*/ #if os_mbox_en > 0typedef struct void *osmsg;
87、0; /* pointer to message in mailbox */
88、0; int8u oseventtblos_event_tbl_size; /* list of tasks waiting for event to occur */ int8u oseventgrp;
89、 /* group corresponding to tasks waiting for event to occur */ os_mbox_data;#endif /*
90、; memory partition data structures*/ #if (os_mem_en > 0) && (os_max_mem_part > 0)typedef struct
91、0; /* memory control block */ void
92、160; *osmemaddr; /* pointer to beginning of memory partition */ vo
93、id *osmemfreelist; /* pointer to list of free memory blocks */
94、0; int32u osmemblksize; /* size (in bytes) of each block of memory */ in
95、t32u osmemnblks; /* total number of blocks in this partition */ in
96、t32u osmemnfree; /* number of memory blocks remaining in this partition */ os_mem; typedef struct void *osaddr;
97、160; /* pointer to the beginning address of the memory partition */ void *osfreelist;
98、; /* pointer to the beginning of the free list of memory blocks */ int32u osblksize; /* size (in bytes) of each memory block
99、160; */ int32u osnblks; /* total number of
100、 blocks in the partition */ int32u osnfree;
101、; /* number of memory blocks free */ int32u osnused;
102、160; /* number of memory blocks used
103、 */ os_mem_data;#endif /*$page*/ /* mutual exclusion semaphore data*/ #if os_mutex_en >
104、 0typedef struct int8u oseventtblos_event_tbl_size; /* list of tasks waiting for event to occur */ int8u oseventgrp;
105、60; /* group corresponding to tasks waiting for event to occur */ int8u osvalue;
106、0; /* mutex value (0 = used, 1 = available) */ int8u osownerprio; &
107、#160; /* mutex owner's task priority or 0xff if no owner */ int8u osmutexpip;
108、60; /* priority inheritance priority or 0xff if no owner */ os_mutex_data;#endif /* &
109、#160; message queue data*/ #if os_q_en > 0typedef struct os_q /* queue control block
110、160; */ struct os_q *osqptr;
111、160; /* link to next queue control block in list of free blocks */ void *osqstart; /* pointer to
112、 start of queue data */ void *osqend;
113、; /* pointer to end of queue data */ void&
114、#160; *osqin; /* pointer to where next message will be inserted in the q */ void *os
115、qout; /* pointer to where next message will be extracted from the q */ int16u osqsize;
116、0; /* size of queue (maximum number of entries) */ int16u osqentries;
117、60; /* current number of entries in the queue */ os_q; typedef struct void *osmsg; &
118、#160; /* pointer to next message to be extracted from queue */ int16u osnmsgs;
119、 /* number of messages in message queue */ int16u osqsize;
120、160; /* size of message queue &
121、#160; */ int8u oseventtblos_event_tbl_size; /* list of tasks waiting for event to occur */ int8u
122、 oseventgrp; /* group corresponding to tasks waiting for event to occur */ os_q_data;#endif /*
123、160; semaphore data*/ #if os_sem_en > 0typedef struct int16u oscnt; &
124、#160; /* semaphore count
125、 */ int8u oseventtblos_event_tbl_size; /* list of tasks waiting for event to occur */ int8u oseventgrp;
126、; /* group corresponding to tasks waiting for event to occur */ os_sem_data;#endif /*
127、; task stack data*/ #if os_task_create_ext_en > 0typedef struct int32u osfree;
128、160; /* number of free bytes on the stack */ int
129、32u osused; /* number of bytes used on the stack
130、 */ os_stk_data;#endif /*$page*/ /* task control block*/ typedef struct os_tcb os_stk &
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年速冻丸类制品合作协议书
- 智慧城市发展背景下智能交通系统的战略规划
- 2025年紫外固化材料项目发展计划
- 创新教育心理学方法激发学生内在动力
- 情绪心理学与课堂氛围的营造
- 医疗培训中的教育政策与效果评估研究
- 以数据为支撑的学生行为心理分析实践
- 在线教育在商业领域的广泛应用及未来前景
- 混合式学习模式在医学教学中的实践应用研究
- 中职教育课件
- 全员安全生产责任制度建立
- 2025贵州省专业技术人员继续教育公需科目考试题库(2025公需课课程)
- GB 27954-2020 黏膜消毒剂通用要求
- 中考《红星照耀中国》各篇章练习题及答案(1-12)
- (完整版)ECRS培训课件
- 外轮理货工作英语
- 华中师范大学辅导员队伍建设实施办法
- kr法脱硫工艺介绍
- 新生儿沐浴室医院感染管理制度
- 初中记叙文阅读训练十五篇含答案
- 【003-2量化标准】卫生专业技术人员履职考核记录评价
评论
0/150
提交评论