?? os_mem.h
字號:
/*********************************************************************************************************
** Small RTOS(51)
** The Real-Time Kernel(For Keil c51)
**
** (c) Copyright 2002-2003, chenmingji
** All Rights Reserved
**
** V1.20.0
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: OS_mem.h
**創 建 人: 陳明計
**最后修改日期: 2003年8月3日
**描 述: 內存動態分配模塊的頭文件,可以在非Small RTOS(51)下使用。在Small RTOS(51)
** 下必須配置為支持重入棧。
**--------------歷史版本信息----------------------------------------------------------------------------
** 創建人: 陳明計
** 版 本: V1.20.0
** 日 期: 2003年8月3日
** 描 述: 原始版本
**
**------------------------------------------------------------------------------------------------------
**--------------當前版本修訂------------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef EN_OS_MEM_CHK
#define EN_OS_MEM_CHK 1
#endif
#if EN_OS_MEM_CHK > 1
#ifndef EN_UserMemChkErr
#define EN_UserMemChkErr 1
#endif
#endif
/* 分配給用戶的內存塊的頭 */
struct _UsingMem
{
#if EN_OS_MEM_CHK > 0
unsigned int HeadChk; /* 校驗字,內存回收時檢查內存塊是否有效 */
#endif
unsigned int Size; /* 內存塊所占空間大小 */
#if EN_OS_MEM_CHK > 0
unsigned int EndChk; /* 校驗字,內存回收時檢查內存塊是否有效 */
#endif
};
/* 自由內存塊的頭,所有自由內存塊組成雙向鏈表 */
struct _FreeMem
{
struct _FreeMem xdata *Next; /* 指向下一個自由內存塊,無則為NULL */
struct _FreeMem xdata *Last; /* 指向上一個自由內存塊,無則為NULL */
unsigned int Size; /* 自由內存塊所占空間大小 */
};
#ifndef IN_OS_MEM
extern uint8 OSMemInit(void xdata *Addr, unsigned int MemSize);
/*********************************************************************************************************
** 函數名稱: OSMemInit
** 功能描述: 初始化動態內存分配模塊。
** 輸 入: Addr: 指向空閑空間起始位置的指針
** MemSize: 空閑空間的大小
** 輸 出: TRUE: 成功
** FALSE: 失敗
** 全局變量: 無
** 調用模塊: 無
********************************************************************************************************/
extern void xdata *OSMemNew(unsigned int Size) reentrant;
/*********************************************************************************************************
** 函數名稱: OSMemNew
** 功能描述: 分配內存。
** 輸 入: Size: 所需內存的大小
** 輸 出: 指向已分配的內存開始的地址的指針,NULL為失敗。
** 全局變量: 無
** 調用模塊: 無
********************************************************************************************************/
extern void OSMemFree(void xdata *Addr) reentrant;
/*********************************************************************************************************
** 函數名稱: OSMemFree
** 功能描述: 把由OSMemNew分配的空間歸還給系統
** 輸 入: Addr: 由指OSMemNew返回的指針
** 輸 出: 無
** 全局變量: 無
** 調用模塊: 無
********************************************************************************************************/
#endif
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -