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

📄 os_mem.h

📁 带时钟功能温度和湿度测量的仪器
💻 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 + -