iTron3学习笔记(一) System Calls of Memory Pool Management Functions
来源:互联网 发布:淘宝直通车收费标准 编辑:程序博客网 时间:2024/05/16 16:12
iTron3学习笔记(一)
System Calls of Memory Pool Management Functions
1、创建固定内存池(Create Fixed Memory Pool)
说明:在RAM中的固定位置,创建一块内存池。
函数声明:
ER vcre_mpf(ID mpfid,VP start_addr,VP end_addr,INT blfsz)
参数说明:
ID mpfid:创建内存池的ID号
VP start_addr:起始地址
VP end_addr:结束地址
INT blfsz:固定内存池的大小
2、读取内存池中申请固定内存块(Get Fixed-Size Memory Block)
说明:从内存池中申请指定ID的内存地址。
函数声明:
ER get_blf( VP *p_blf, ID mpfid );
参数说明:
VP *p_blf 申请内存指针
ID mpfid 申请内存块ID号
3、释放指定ID号申请的固定内存块(Release Fixed-size Memory Block)
说明:如果在使用后不释放内存块的话,在内存池已满时调用get_blf的任务会进入WAIT状态,直到rel_blf调用后内存池中有空内存块为止。
函数声明:
ER rel_blf(ID mpfid, VP blf)
参数说明:
ID mpfid 释放内存块ID号
VP blf 内存块起始地址指针
4、查看指定ID的内存块状态
函数声明:
ER ref_mpf(T_RMPF *pk_rmpf,ID mpfid)
参数说明:
T_RMPF *pk_rmpf:
ID mpfid
typedef struct pk_rmpf {
BOOL_ID wtsk;//进入WAIT状态的TASKID
INT frbcnt;//内存池中剩余内存块的总数
} T_RMPF;
使用例子:
- #define MPF_ID 1
- #define MPF_BEGINADDR 0x2300000
- #define MPF_SIZE 1000
- ER ret;
- VP p_blk;//内存块地址
- T_RMPF k_rmpf;//内存池状态
- ret = vcre_mpf(MPF_ID, (VP)MPFBeginAddr, (VP)(MPF_BEGINADDR + MPF_SIZE + 8), MPF_SIZE);
- if(ret == E_OK) //创建成功
- {
- ref_mpf(&k_rmpf, MPF_ID);
- if(k_rmpf.frbcnt>0)//判断是否内存池已满
- {
- ret = get_blf(&p_blk, MPF_ID);//读取内存块
- //数据处理....
- ret = rel_blf(MPF_ID, p_plk);//释放申请内存
- }
- }
- else if(ret == E_PAR){} //参数错误
- else if(ret == E_NOEXS){} //指定的mpfid已存在或者不可用(大于最大范围)
- iTron3学习笔记(一) System Calls of Memory Pool Management Functions
- Memory Management Functions
- Memory Management Functions
- Memory Management Functions综述
- FFMPEG学习【libavutil】:Memory Management(一)
- Boost学习笔记 -- memory management
- Ownership of Memory Management
- Memory Management of primary
- 《modern operating system》 chapter 3 MEMORY MANAGEMENT 笔记
- Memory Management Functions--内存管理函数
- Linux System Programming:Memory Management
- 1.11.系统调用和库函数(System Calls and Library Functions)
- What is Linux System Calls and Library Functions?
- What is Linux System Calls and Library Functions?
- What is Linux System Calls and Library Functions?
- 【简记】Operating System—— memory management(part 1)
- FFMPEG学习【libavutil】:Memory Management(二)
- WMI009-WMI学习笔记(九)——System.Management and System.Management.Instrumentation Namespaces(命名空间)
- 走进PIMShell(3)--实现TabNew行为(Behavior)
- Windows编程好书推荐(还是从Van那里转的)
- 最快速度找到内存泄漏
- .NET WinForms中点击窗体右上角的关闭按钮后的事件处理
- 使用C#进行Reflection编程
- iTron3学习笔记(一) System Calls of Memory Pool Management Functions
- SQL Server2005中获取在磁盘上建立目录的权限
- select下拉列选提示选中内容(选中内容太长)
- 国际英文域名com、net注册仅48元/年,CN域名仅1元/年
- UCOS-II 任务管理(经典教程4)
- 常用的表情和含义
- JavaScript与Java的区别
- Observer
- c++ const 约束符