12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #ifndef _MEMORY_H
- #define _MEMORY_H
- #include "includes.h"
- #include <stdint.h>
- #include <stdlib.h>
- #include <string.h>
- #define AXISRAMSIZE 512 * 1024
- #define SRAM1SIZE 128 * 1024
- #define SRAM2SIZE 128 * 1024
- #define SDRAMSIZE 28 * 1024 * 1024
- typedef struct A_BLOCK_LINK
- {
- struct A_BLOCK_LINK *pxNextFreeBlock;
- size_t xBlockSize;
- } BlockLink_t;
- typedef struct
- {
- volatile uint8_t *pMemory;
- volatile size_t size;
- BlockLink_t pStart;
- BlockLink_t *pEnd;
- volatile size_t Free;
- volatile size_t MinFree;
- } MemoryStruct;
- extern MemoryStruct SRAM0;
- extern MemoryStruct SRAM1;
- extern MemoryStruct SRAM2;
- extern MemoryStruct SDRAM;
- extern void pMemoryInit(MemoryStruct *mem);
- extern void *pMemoryMalloc(MemoryStruct *mem, size_t xWantedSize);
- extern void *pMemoryReMalloc(MemoryStruct *mem1, MemoryStruct *mem2, void *ptr, size_t size);
- extern void pMemoryFree(MemoryStruct *mem, void *pv);
- extern size_t pMemoryGetFreeMemorySize(MemoryStruct *mem);
- extern size_t pMemoryGetMinimumEverFreeMemorySize(MemoryStruct *mem);
- #endif
|