srallo.h

来自「简单的动态分配函数」· C头文件 代码 · 共 57 行

H
57
字号
#ifndef _SRALLO_H_
#define _SRALLO_H_


#define	MAX_HEAP_SIZE			200

#define _MAX_HEAP_SIZE  		(MAX_HEAP_SIZE - 1U)


#define _MAX_SEGMENT_DATA_SIZE	127U
#define _MAX_SEGMENT_SIZE   	(_MAX_SEGMENT_DATA_SIZE + 1U)

#define ENTER_CRITICAL()
#define EXIT_CRITICAL()
#define TRUE				1
#define FALSE				0


typedef  unsigned char      UINT8;
typedef  unsigned short     UINT16;
typedef  unsigned long		UINT32;
typedef  signed char		INT8;
typedef  signed short		INT16;
typedef  signed long		INT32;
typedef  unsigned char		BOOL;

/*********************************************************************
 * Segment header data type
 ********************************************************************/
typedef struct
{
    UINT8 count:7;
    UINT8 alloc:1;
}BITS;

typedef union
{
    UINT8 byte;
    BITS          bits;
}SALLOC;

extern UINT8 *SRAMalloc(UINT8 nBytes);

extern void SRAMfree(UINT8 *pSRAM);

extern void SRAMInitHeap(void);

#define	MEMALLOC_GET_SIZE(v)			(v & 0xfffffffc)
#define MEMALLOC_SET_SIZE(v, s)			v = (s + 3) & 0xfffffffc
#define MEMALLOC_SET_SIZE_ALLOC(v, s)	v = ((s + 3) & 0xfffffffc) | 0x1

#define MEMALLOC_SET_ALLOC(v)		v |= 0x1
#define MEMALLOC_CLR_ALLOC(v)		v &= 0xfffffffe
#define MEMALLOC_GET_ALLOC(v)		(v & 0x1)

#endif

⌨️ 快捷键说明

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