DaVinci的Buffer_Handle和BufTab Cmem函数调用
DaVinci的dvsdk里面,所有的内存用的都是CMEM,而比较上层的一个封装就是BufTab和Buffer_Handle了
每个Tab可以控制好多块内存块。
具体到内存块有两种,一种是创建的时候指定他的大小啊,物理地址啥的。另外一种就是仅仅创建出这个
结构的一个实例,而物理地址啊啥的都留空,等到回头用的时候,用指针搞定。
第一类,对应的配置里面有一个叫reference的变量,配成false的话,创建的时候就直接创建出来内存块
了,reference这点BufTab和Buffer_Handle的创建配置是一样的。
第二类,reference配置成true,这样的话,创建之后,指针没有指向,而需要后面重新指定。指定的时
候,要用Buffer_setUserPtr,同时还要设一下大小,Buffer_setNumBytesUsed,同时用这两个,不然程
序会down掉的。
我试验了,使用CMEM手动分配物理空间,用reference=TRUE的配置,声明一个Buffer_handle的结构,使
用cmem函数直接申请空间,然后再配置Buffer_handle的指针。
CMEM_AllocParams cmem_params;
Int8 *ptr_area_fifo;
cmem_params.type = CMEM_POOL;
cmem_params.flags = CMEM_NONCACHED;
for(loop_num = 0; loop_num < fifo_total; loop_num++) {
ptr_area_fifo = (Int8 *)CMEM_alloc(bufSize, &cmem_params);
//hBufTab is created while its reference=TRUE.
hDstBuf = BufTab_getBuf(hBufTab, loop_num);
Buffer_setNumBytesUsed(hDstBuf, bufSize);
if (Buffer_setUserPtr(hDstBuf, ptr_area_fifo) < 0) {
printf("error while set prt into bufTab, id=%d\n", loop_num);
}
}
DaVinci的Buffer_Handle和BufTab Cmem函数调用相关推荐
- TI DAVINCI开发原理(总共5部分)
2011-06-03 11:14:17| 分类: TI 达芬奇视频处 | 标签: |字号大中小 订阅 DAVINCI开发原理之一----ARM端开发环境的建立(DVEVM) 1. 对DAVINC ...
- Davinci DM6446开发攻略——LINUX GPIO驱动源码移植
一. DM6446 GPIO的介绍 说到LINUX 驱动移植,没有移植过的朋友,或刚刚进入LINUX领域的朋友,最好去看看<LINUX 设备驱动程序>第三版,有个理 ...
- Davinci DM6446 Codec Engine双核通信环境的搭建
根据前几篇文章,一个DM6446的系统已经架构完成.但是有很多人都喜欢TI的机制,毕竟双核软件开发对很多工程师来说是非常麻烦的事情,既然TI提供开发套件和开发包,那么直接做OEM就可以了,底层的东西不 ...
- 基于TI Davinci架构的双核嵌入式应用处理器OMAPL138开发入门(TI达芬奇双核开发资料 [
基于TI Davinci架构的双核嵌入式应用处理器OMAPL138开发入门 一.简介 TI的达芬奇架构嵌入式应用处理器使用DSP与ARM结合的非对称多核结构,当然现在也有管脚全兼容的单核.本文要介绍的 ...
- DAVINCI DM365-DM368开发攻略—U-boot-2010.12-rc2-psp03.01.01.39及UBL的移植 .
转载:http://blog.csdn.net/olei_oleitao/article/details/7919307 一.DM36X的BOOT过程介绍 DM36x的BOOT过程和DM6446.DM ...
- davinci平台Uboot移植
一.DM36X的BOOT过程介绍 DM36x的BOOT过程和DM6446.DM6467完全是一样的,因为都是ARM926EJS架构,里边都有一个RBL,这RBL在芯片出厂的时候都烧写在ROM里,芯片上 ...
- DAVINCI DM36x开发攻略——U-BOOT-2010.12及UBL移植
从盛夏走到深秋,我们继续DAVINCI DM365-DM368的开发.说来惭愧,人家51CTO热情支持本博客,而本人却一直没有像其他博客之星一样频繁更新博客,心里确实说不过去.管理公司确实很累,有更急 ...
- DAVINCI DM365-DM368开发攻略—U-boot-2010.12-rc2-psp03.01.01.39及UBL的移植
从盛夏走到深秋,我们继续DAVINCI DM365-DM368的开发.说来惭愧,人家51CTO热情支持本博客,而本人却一直没有像其他博客之星一样频繁更新博客,心里确实说不过去.管理公司确实很累,有更急 ...
- TI Davinci 五年七宗罪
FROM:https://www.cnblogs.com/fpga/archive/2012/09/16/2687822.html 引言: 芯片是产业链上游重要的一个环节,一颗小小的芯片具有极高的技术 ...
最新文章
- TextBox灵异事件之背后神秘的深度灵异事件真相揭秘
- 2015年8月7日15:18:54工作
- 莫凡机器学习课程笔记
- DOM-13 【实战】输入及状态改变事件、京东搜索框
- python时间倒计时显示屏厂家_python 实现倒计时功能(gui界面)
- 用python绘制心形_python小趣味_520绘制一个心形.
- MQTT协议之发布订阅
- 装饰画必备素材——装饰设计师,填充不用愁!
- 打包vue项目时报错:Expected indentation of 6 spaces but found 10
- 加密 数字_数字卢布不会具有BTC这样的加密资产的优势
- @PropertiesSource注解读取配置文件中的数据
- 14.5【结构体指针编程】小科同学学习了数组和结构体,认真进行编程练习,顺利完成了老师布置的20道课外编程题后,他想起了科比20年的职业生涯数据。
- java valuewidget_Flutter开发之常用Widget
- VMBox CentOS安装记录
- 递归 (一): 递归思想与 C++ 中的递归函数及两个递归应用示例 (斐波那契, 汉诺塔)
- comsol学习中心:定义与材料选择
- Android中的多线程
- 慕课学习史上最全零基础入门HTML5和CSS笔记
- java回顾:MyBatis参数、sql片段、动态sql、高级查询
- SAP 发票金额容差与供应商容差