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

📄 edl.h

📁 一个小型的嵌入式操作系统内核,可用于多种硬件平台
💻 H
字号:
/**************************************************************************************************
                                      EDL RTOS Kernel
                              (c) Copyright 2005, Wu Jun
                                    All Rights Reserved    
                For further information, please visit http://www.enjoydigitallife.com

* Description:      None
* History:          
    Date                         Remarks
    2005-01-06                   Created initial version
    2005-12-12                   Finished the version 2.01
**************************************************************************************************/


#ifndef EDL_H
#define  EDL_H
#include "datatype.h"




/**************************************************************************************************
* Constants Definitions
**************************************************************************************************/
#define     MSG_PEEK            0x00        /* The message will NOT be removed after being accessed */
#define     MSG_DEQUEUE         0x01        /* The message will be removed after being accessed */
#define     MSG_FIFO            0x00        /* The message is inserted by FIFO( First In First Out )*/
#define     MSG_PRIO            0x02        /* The message is inserted by Priority */

#define     SEM_FIFO            0x00
#define     SEM_PRIO            0x01
#define     SEM_CREATE       0x02
#define     SEM_OPEN           0x04

#define             MU_CREATE              0x01
#define             MU_OPEN                  0x02

#define     ALL_EVENTS        0xFFFFFFFF

#define     TSK_MODE_USR              0x01
#define     TSK_MODE_SYS              0x00

#define             PRIO_INHERIT_PROT       0x00
#define             PRIO_CEILING_PROT                0x01

/**************************************************************************************************
* Task Management Component
**************************************************************************************************/
ERR edl_createTask(void (*tskProc)(void *), void *pdata,U32 prio, U32 stackSize, U32 tskMode, U32 *tskID);
void edl_sleep( U32 sleepTime );
ERR edl_deleteTask( U32 tskID );
ERR edl_suspendTask( U32 tskID );
ERR edl_resumeTask( U32 tskID );
ERR edl_wakeTask( U32 tskID );
/**************************************************************************************************
* Event Management Component
**************************************************************************************************/
ERR edl_sendEvent(U32 tskID, U32 event);
ERR edl_getEvent( U32 timeOut, U32 evMask, U8 waitAll, U32 *event );

/**************************************************************************************************
* Memory Management Component
**************************************************************************************************/
void *edl_trunkAlloc( U32 zone_id, U32 size );
ERR edl_trunkFree( void *addr );
ERR edl_heapCreate( void *start, U32 heapSize, U32 unitSize, U32 maxUnitNbr, U32 *heapID);
ERR edl_heapDelete( U32 heapID );
void *edl_heapAlloc( U32 heapID, U32 size );
ERR edl_heapFree( U32 heapID, void *addr );
void *edl_heapReAlloc( U32 heapID, void *addr, U32 size );


/**************************************************************************************************
* Semaphore Management Component
**************************************************************************************************/
ERR edl_createSem(  S8 *name,U32 flags, U32 count, U32 *semID );
ERR edl_deleteSem( U32 semID );
ERR edl_getSem( U32 semID, U32 timeout );
ERR edl_releaseSem( U32 semID );

/**************************************************************************************************
* Message Management Component
**************************************************************************************************/
ERR edl_sendMsg( U32 desTskID, U8 flags, void *buf, U32 bufLen, U8 block );
ERR edl_getMsg( U32 timeOut, U8 flags, void *buf, U32 bufLen,U32 *msgLen, U32 *srcTskID );


/**************************************************************************************************
* Mutex Management Component
**************************************************************************************************/
ERR edl_createMutex(  S8 *name, U8 flags,U32 protocol, U32 prioCeiling, U32 *muID );
ERR edl_deleteMutex( U32 muID );
ERR edl_getMutex( U32 muID, U32 timeout );
ERR edl_releaseMutex( U32 muID );

#endif /*  EDL_H */

⌨️ 快捷键说明

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