📄 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 + -