ucos源码分析------OSMemCreate()
来源:互联网 发布:淘宝卖家入门教程 编辑:程序博客网 时间:2024/06/05 22:58
最近在看ucos内存管理,整理下学到的东西
INT8U *pblk; void **plink;
plink = (void **)addr; /* Create linked list of free memory blocks */ pblk = (INT8U *)addr + blksize; for (i = 0; i < (nblks - 1); i++) { *plink = (void *)pblk; plink = (void **)pblk; pblk = pblk + blksize; }
OSMemCreate()中红色部分比较难以理解,现分析如下:
1. plink = (void **)addr;
addr强制转换为二位指针:addr作为函数的参数,原本是一位指针,addr指向的是内容,不是一个指针,现在需要将addr的内容变成一个指针,这个指针指向内存分区的块地址,强制转换的目的便在于此,告诉编译器addr指向的不再是内容了,是一个地址,即addr指向的内容变了个名字*plink(里面的数据是不变的)。强制转换的结果给plink用来连接内存分区块。
2. pblk = (INT8U *)addr + blksize;
pblk是一个一个一位指针,指向一个内存分区块,该语句的目的是获取内存分区中第二个块的指针。
3. for循环
for循环的目的是将第一个块地址指向第二个块,第二个指向第三个,以此类推。当然,for循环中未处理最后一个块的连接问题,在接下来的代码中会处理。
- ucos源码分析------OSMemCreate()
- ucos源码分析之OSMemCreate()
- ucos源码分析之OSMemCreate()
- ucos中OSMemCreate()函数难点解析
- uCOS OSTaskCreate()函数分析
- ucos-ii分析(1)
- UC/OS-II的内存管理OSMemCreate()分析
- uCOS分析(一) 优先级机制
- uCOS II内核调度分析(转载)
- uCos中优先级分析
- ucos: 内存创建分析
- ucos ii 文件分析
- 学习写一个操作系统(类UCOS和源码)
- 自己写的类UCOS操作系统内核(源码)
- uCOS II就绪表(Ready List)分析(转
- uCOS-II核心算法分析(μCOS-Ⅱ)
- uCOS II就绪表(Ready List)分析
- ucos源码读后总结
- openssl在高性能网络框架中的使用(自定义BIO)
- WIN7通过注册表移动我的文档等系统文件夹默认位置
- USB相关结构体之struct usb_device
- .js文件打开出错问题解决
- 关闭浏览器,和浏览器禁用cookie时Session处理的方法
- ucos源码分析------OSMemCreate()
- mysql用sql语句复制表
- Java学习笔记(持续更新)
- SmartUpload上传组件实现文件的上传和下载功能
- ant+svn+tomcat实现自动构建
- 命名空间
- Segment
- 数据结构 学习笔记之:结构体及其所定义变量的内存分配的问题
- IOS中输入框被软键盘遮挡的解决办法