2.4.1 动态内存
概述
动态内存管理模块,提供了一套动态管理系统内存的机制,支持用户动态的申请、释放不定长内存块。
API讲解
编程实例
1、在tos_config.h中,配置动态内存组件开关TOS_CFG_MMHEAP_EN:
#define TOS_CFG_MMHEAP_EN 1u
2、在tos_config.h中,配置动态内存池大小:
#define TOS_CFG_MMHEAP_POOL_SIZE 0x2000
3、编写main.c示例代码:
#include "tos.h" #include "mcu_init.h" #define STK_SIZE_TASK_DEMO 512 k_stack_t stack_task_demo[STK_SIZE_TASK_DEMO]; k_task_t task_demo; extern void entry_task_demo(void *arg); void entry_task_demo(void *arg) { void *p = K_NULL, *p_aligned = K_NULL; int i = 0; while (K_TRUE) { if (i == 1) { p = tos_mmheap_alloc(0x30); if (p) { printf("alloc: %x\n", (cpu_addr_t)p); } } else if (i == 2) { if (p) { printf("free: %x\n&#