文章目录
一、前言
内存池剩下几个重要的API做一下实验,看看使用的效果。
STM32工程:
链接:https://pan.baidu.com/s/1K304cQ0cb_XgeB7K1N1jlw
提取码:4f50
二、实验目的
打印以下函数的返回值:
- osMemoryPoolGetCapacity
- osMemoryPoolGetBlockSize
- osMemoryPoolGetCount
- osMemoryPoolGetSpace
最后,在系统运行约10S后,删除内存池。
三、API
3.1、osMemoryPoolGetCapacity
/* 使用案例1 */
uint32_t get_Capacity;
get_Capacity = osMemoryPoolGetCapacity(mpID_MemPool); /* 获取内存池一共有多少个内存块 */
printf("Get capacity is %d.\r\n",get_Capacity); /* 打印信息 */
3.2、osMemoryPoolGetBlockSize
/* 使用案例1 */
uint32_t get_Block_Size;
get_Block_Size = osMemoryPoolGetBlockSize(mpID_MemPool); /* 获取内存池的每一个内存块的大小(单位byte) */
printf("Get block size is %d.\r\n",get_Block_Size); /* 打印信息 */
3.3、osMemoryPoolGetCount
/* 使用案例1 */
uint32_t get_Count;
get_Count = osMemoryPoolGetCount(mpID_MemPool); /* 获取内存池里已经被使用的内存块的数量 */
printf("Get count is %d.\r\n",get_Count); /* 打印信息 */
3.4、osMemoryPoolGetSpace
/* 使用案例1 */
uint32_t get_Space;
get_Space = osMemoryPoolGetSpace(mpID_MemPool); /* 获取内存池剩下有多少个内存块可以使用 */
printf("Get space is %d.\r\n",get_Space); /* 打印信息 */
3.5、osMemoryPoolDelete
/* 使用案例1 */
status = osMemoryPoolDelete(mpID_MemPool); /* 删除内存池 */
if(status == osOK)
printf("Memory pool has been deleted.\r\n"); /* 打印信息 */
四、代码
4.1、main.h
4.2、main.c
五、Event Recorder调试
5.1、Debug(printf) Viewer