📄 kds.h
字号:
/*********************************************************************
* Copyright (c) 2011-2012,李士伟
* All rights reserved.
*文 件 名:kds.h
*描 述:内核数据结构定义
*当前版本:V1.00
*作 者:李士伟
*创建日期:2011.10.15
**********************************************************************/
#ifndef __KDS_H__
#define __KDS_H__
#include <kernel\typedef.h>
/*********************************************************************
*结构体名:struct os_tcb (OS_TCB)
*描 述:任务控制块结构体
**********************************************************************/
typedef struct os_tcb
{
OS_STK *StkPtr; /* 指向栈顶 */
OS_STK *StkBase; /* 指向栈基址,释放任务栈时使用的指针 */
struct os_tcb *Next; /* TCB双向登记链表指针 */
struct os_tcb *Prev;
/* 运行或等待队列 */
struct os_tcb **QHead; /* TCB队列头指针的指针 */
struct os_tcb *QNext; /* TCB队列双向链表指针 */
struct os_tcb *QPrev;
INT32U Delay; /* 延时节拍 */
INT32U Prio; /* 任务优先级 */
INT32U TaskID; /* 任务ID */
INT32U State; /* 任务状态 */
INT32U Event; /* 发生的事件类型 */
void *MsgPtr; /* 消息指针 */
}OS_TCB;
/*********************************************************************
*结构体名:struct os_timer (OS_TIMER)
*描 述:定时器结构体
**********************************************************************/
typedef struct os_timer
{
INT32U State; /* 状态 1,暂停;0,运行 */
INT32U Counter; /* 定时器计数器 */
void (*Action)(void); /* 定时动作函数 */
INT32U Jiffies; /* 定时间隙 */
struct os_timer *Next; /* 下一个定时器指针 */
}OS_TIMER;
/*********************************************************************
*结构体名:struct os_sem (OS_SEM)
*描 述:信号量结构体
**********************************************************************/
typedef struct os_sem
{
INT32U SemCnt; /* 信号量值 */
OS_TCB *WaitQ; /* 等待信号量队列 */
}OS_SEM;
/*********************************************************************
*结构体名:struct os_msg (OS_MSG)
*描 述:消息邮箱结构体
**********************************************************************/
typedef struct os_msg
{
void *MsgPtr; /* 消息指针 */
OS_TCB *WaitQ; /* 等待消息队列 */
}OS_MSGBOX;
/*********************************************************************
*结构体名:struct os_event (OS_EVENT)
*描 述:事件结构体,主要用于设备控制中反馈发生事件类型
* 默认Event == 0 表示没有事件发生
* 用大于0的无符号数表示事件类型
* 系统需严格地将各种不同事件编号,编号与事件是一一对应关系
**********************************************************************/
typedef struct os_event
{
INT32U Event; /* 发生的事件类型 */
OS_TCB *WaitQ; /* 等待事件队列 */
}OS_EVENT;
/*********************************************************************
*结构体名:struct os_mutex (OS_MUTEX)
*描 述:互斥结构体
**********************************************************************/
typedef struct os_mutex
{
INT32U Signal;
OS_TCB *WaitQ;
}OS_MUTEX;
/*********************************************************************
*结构体名:struct os_msgq (OS_MSGQ)
*描 述:消息队列结构体
**********************************************************************/
typedef struct os_msgq
{
INT32U QCount; /* 消息数 */
void **QOut;
void **QIn;
void **QEnd;
void **QStart;
INT32U QSize;
OS_TCB *WaitQ;
}OS_MSGQ;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -