⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_def.h

📁 EventOS操作系统核心源码
💻 H
字号:
#include    "..\arm\os_cpu.h"

/*********************************************************************************************************
*                                                EventOS
*                                          The Real-Time Kernel
*
*                            (c) Copyright 2007-2050, Jianzhong Shen
*                                           All Rights Reserved
* File : OS_DEF.H
*********************************************************************************************************
*/
/******************************* OS ERROR CODE  ***************************************/
#define OS_NO_ERR                0
#define OS_NO_EVENT              0
#define OS_SYS_MAXDLY            1000

#define OS_ERR_CODE              0xF8
#define OS_PARM_INVALID          0xF7
#define OS_TIMEOUT               0xF6

#define OS_INVALID_ID            0xF5
#define OS_EVT_BUFFULL           0xF4
#define OS_ERR_NOEVENT           0xF3

#define OS_TSK_ACTIVE            0x80
#define OS_TSK_READY             0x40
#define OS_TSK_OVER              0x20
#define OS_TSK_SEM               0x10
#define OS_TSK_RUN               0x00

#define OS_EVT_ONTASK            0x01         //任务启动事件

#define OS_EVT_TIMEOUT           0x10
#define OS_EVT_TICK              0x11
#define OS_EVT_SEC               0x12
#define OS_EVT_MIN               0x13

#define OS_EVT_KEYDN             0x18
#define OS_EVT_KEYUP             0x19
#define OS_EVT_CURSORDN          0x1C
#define OS_EVT_CURSORUP          0x1D
#define OS_EVT_CURSORDB          0x1E
#define OS_EVT_CSRMOVE           0x1F

#define OS_EVT_STARTUP           0x20         //操作系统启动初始事件
#define OS_EVT_STACHG            0x21         //系统外设状态变化事件
#define OS_EVT_SENSOR_ERR        0x22         //外接传感器故障事件
#define OS_EVT_STOP_ERR          0x23         //设备停机事件 
#define OS_EVT_HALT_ERR          0x24         //设备急停事件
#define OS_EVT_DEV_ERR           0x25         //控制器外设故障事件

/************************  EVENT MANAGMENT CONTROL BLOCK *******************************/
typedef struct {
      INT8U   OSEventID;          /* Message ID or Semaphore ID  */
      INT8U   nTaskID;            /* The task id that actives to this message */ 
      INT16U  ParamL;             /* Frist paramter for this message  */
      INT32U  ParamM;             /* Second paramter for this message */
} OS_EVENT;

/************************  MESSAGE MANAGMENT CONTROL BLOCK *****************************/
typedef struct {
      INT8U   OSMsgID;            /* ID of message control block  */
      void   *FstProc;            /* Pointer to frist message process function */
      void  (*DefProc)(INT16U, INT32U);  /* pointer to System defulat process    */
      void   *pNextMsg;            /* Pointer to next message   */
} OS_MSG;

/*************************   TASK CONTROL BLOCK **************************************/
typedef struct {
    void   (*pTskProg)(INT16U, INT32U);     /* Task program pointer        */
    INT8U    TaskID;              /* Task ID (0..65535)               */
    INT8U    bStatus;             /* Task status     */
    INT8U    nTskPrio;            /* Task priority (0 == highest, 63 == lowest)   */
    INT8U    NoUse;
    INT16U   nDelayCnt;           /* Max Run time for this event  */ 
    INT8U   *pTskName;            /* Pointer to user definable data for TCB extension  */
    void    *pTcbNext;            /* Pointer to next TCB in the TCB list   */
} OS_TCB;

typedef struct {
    void   (*pFuncProc)(INT16U, INT32U); /* Pointer to message process of this task    */
    INT8U    TaskID;             /* ID code for task    */
    INT8U    bStatus;            /* Be set when the process into SemCtrl wait */
    INT8U    nTskPrio;           /* Task priority (0 == highest, 63 == lowest) */
    INT8U    NoUse;
    INT16U   nDelayCnt;          /* Max Run time for this event  */ 
    void    *pNextMsgP;          /* printer to next task process   */
} MSGPROC;

typedef struct {
    OS_STK  *pStkPtr;            /* Pointer to current top of stack   */
    OS_TCB  *pOS_Tcb;
    INT16U   nStkSize;           /* Size of semphere stack (in number of stack elements) */
    INT8U    TaskID;             /* ID code for task    */
    INT8U    nTskPrio;           /* Task priority (0 == highest, 63 == lowest) */
    INT16U   nDelayCnt;          /* Max Wait time for event  */ 
    void    *pNextSemP;          /* printer to next task process   */
} SEMPROC;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -