1)调用OSMemPut(),把内存块放入内存分区中2)必须检查返回的错误代码,以确保调用OSMemPut成功OS_MEMMyPartition;CPU_INT08U*MyDataBlkPtr;voidMyTask(void*p_arg){OS_ERRerr;OSMemPut((OS_MEM*)&MyPartition,(void*)MyDataBlkPtr,(OS_ERR*)&err);if(err==OS_ERR_NONE){/* You properly returned the...
基于我们这里每个块是10k+的大小,所以大多的内存分配都是直接的从header->prev上面分配一块合适的内存,while体应该是很少有机会能执行到。如果header->prev上的空间无法满足我们的请求的时候我们才去寻找一个更合适的空间(代码中while部分),这里我们也有一个类似缓存的设计,当free一块内存块的时候我们并不是立马的归...
内存池策略下,小块内存随连接池销毁而销毁,大块内存可通过特定函数进行提前释放,这样做有效均衡了内存的即时需求与总体资源的合理利用。最后,文中提出了内存池相关的系统设计和编程实践,强调了在实际应用中,内存池的策略和结构是确保高效与稳定内存管理的关键。