---------------------------------------------
-- 时间:2018-11-14
-- 创建人: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();//得到该内存块对应的信息块(tOSMem_t)ptOSMemTemp = (tOSMem_t *)(void *)((uOS8_t *)pMem - SIZEOF_OSMEM_ALIGNED);//该信息块为1,即:正在使用,才能释放该内存if( ptOSMemTemp->Used==1 ){//释放!ptOSMemTemp->Used = 0;//若该已经释放的内存块低于gpOSMemLFree,则更新Free指针if (ptOSMemTemp < gpOSMemLFree) {gpOSMemLFree = ptOSMemTemp;}//释放完内存,为了避免内存碎片,要进行内存块整理。OSMemCombine(ptOSMemTemp);        }OSIntUnlock();return;
}

(SAW:Game Over!)

Tiniux 3.0 / Memory.c / OSMemFree相关推荐

  1. Tiniux 3.0 / Memory.c / OSMemInit

    --------------------------------------------- -- 时间:2018-11-04 -- 创建人:Ruo_Xiao -- 邮箱:xclsoftware@163 ...

  2. Tiniux 3.0 / Memory.c / OSMemMalloc 和 OSMemCalloc

    --------------------------------------------- -- 时间:2018-11-13 -- 创建人:Ruo_Xiao -- 邮箱:xclsoftware@163 ...

  3. SK hynix announces 96GB DDR5 CXL 2.0 memory expansion solution【搬运外媒VedioCardz报道(手工翻译)】

    SK hynix announces 96GB DDR5 CXL 2.0 memory expansion solution (SK海力士发布最新CXL2.0标准的DDR5 96GB内存扩展方案) S ...

  4. android studio dump java heap_Android Studio 3.0 Memory Profiler使用

    Memory Profiler是Android Profiler中的一个组件,Android Profiler是Android Studio3.0用来替换之前Android Monitor的观察工具, ...

  5. Android 10.0系统启动之init进程-[Android取经之路]

    摘要:init进程是linux系统中用户空间的第一个进程,进程号为1.当bootloader启动后,启动kernel,kernel启动完后,在用户空间启动init进程,再通过init进程,来读取ini ...

  6. redis info memory

    参考:http://redis.readthedocs.org/en/latest/server/info.html INFO [section] 以一种易于解释(parse)且易于阅读的格式,返回关 ...

  7. redis-4.0.10集群安装(3台机器,6个node),以及在Spring项目中的集成,redis操作工具类

    1 Redis安装 redis高可用的三种常见的集群方式:redis sentinel .redis cluster(多主机+分布式).redis sharding.接下来主要介绍redis sent ...

  8. Persistent Memory编程简介

    Persistent Memory编程简介 编程 libpmem 持久化函数 libpmemobj 跟对象 root object 例程 事务支持 type safety 线程安全 管理工具 ipmc ...

  9. GCC9.2/Python3.8/Libvirt6.0/QEMU4.2 编译/配置/安装

    文章目录 安装CentOS系统 安装GCC 4.8 安装wget/bzip2 编译安装GCC 9.2 卸载GCC4.8版本 编译安装Python3 获取configure时的设定参数 安装Libvir ...

最新文章

  1. android studio 3.1坑,Android Studio3.1升级遇到的坑
  2. FPGA和DSP间基于SRIO的高速通信系统设计
  3. 对于在git上面拉代码报“error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054“解决方法
  4. Windows支持直接访问Linux子系统文件:你的下一台Linux何必是Linux
  5. python下载mp4
  6. 【转载】创建型-工厂方法模式
  7. PL/SQL编程基本概念
  8. 信息学奥赛一本通 1095:数1的个数 | OpenJudge NOI 1.5 40
  9. FastJson PropertyNamingStrategy 转换成JSON字符串的四种格式配置及源码解析
  10. 我的Spring MVC第一个应用
  11. win7 32位系统安装postmant无法正常启动。启动显示黑屏界面
  12. 【语音隐写】基于matlab DCT+DWT+SVD音频数字水印嵌入提取【含Matlab源码 1408期】
  13. 知识分享:C语言语法总结,初学者可收藏
  14. VIM Is More Than Enough For Programer
  15. Mac系统一键下载网页图片
  16. RxJava 学习笔记(七) --- Filtering 过滤操作
  17. 在CentOS 7.6(1810)下自定义自己的登录欢迎信息(修改motd文件)
  18. 如何利用注册表修改开机启动程序并提高电脑开机速度!
  19. 计算机内部的物理运行机制,许多人具有应用物理、计算机、经济、心理学以及运筹学的背景,因...
  20. Unity 3D做2D坦克大战--敌人自动攻击AI编写

热门文章

  1. DataSource绑定DataTable.Select()显示system.data.DataRow问题解决的方法
  2. Windows Server 2012 R2 VDI系列(一)—环境简介
  3. PHP使用session_set_save_handler陷阱
  4. 遍历 List 之效率
  5. win7系统相关问题故障解决
  6. 中文通用百科知识图谱(CN-DBpedia)
  7. 【网址收藏】Centos7.3离线(rpm方式)安装mysql服务
  8. win10安装docker desktop之后没有ADVANCED选项解决办法
  9. docker安装elasticsearch并进行目录挂载
  10. synchronized的可重入怎么实现的