Tiniux 3.0 / Memory.c / OSMemFree
生活随笔
收集整理的這篇文章主要介紹了
Tiniux 3.0 / Memory.c / OSMemFree
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
---------------------------------------------
-- 時(shí)間:2018-11-14
-- 創(chuàng)建人:Ruo_Xiao
-- 郵箱:xclsoftware@163.com
---------------------------------------------
?
void OSMemFree(void *pMem) {tOSMem_t *ptOSMemTemp = OS_NULL;//待釋放的地址為空則返回if (pMem == OS_NULL) {return;}//待釋放的地址不在堆中則返回if ((uOS8_t *)pMem < (uOS8_t *)gpOSMemBegin || (uOS8_t *)pMem >= (uOS8_t *)gpOSMemEnd) {return;}// protect the heap from concurrent access OSIntLock();//得到該內(nèi)存塊對(duì)應(yīng)的信息塊(tOSMem_t)ptOSMemTemp = (tOSMem_t *)(void *)((uOS8_t *)pMem - SIZEOF_OSMEM_ALIGNED);//該信息塊為1,即:正在使用,才能釋放該內(nèi)存if( ptOSMemTemp->Used==1 ){//釋放!ptOSMemTemp->Used = 0;//若該已經(jīng)釋放的內(nèi)存塊低于gpOSMemLFree,則更新Free指針if (ptOSMemTemp < gpOSMemLFree) {gpOSMemLFree = ptOSMemTemp;}//釋放完內(nèi)存,為了避免內(nèi)存碎片,要進(jìn)行內(nèi)存塊整理。OSMemCombine(ptOSMemTemp); }OSIntUnlock();return; }?
?
(SAW:Game Over!)
總結(jié)
以上是生活随笔為你收集整理的Tiniux 3.0 / Memory.c / OSMemFree的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tiniux 3.0 / Memory.
- 下一篇: VS2010 断点无法命中的解决方案