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