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函数调用相关推荐

  1. TI DAVINCI开发原理(总共5部分)

    2011-06-03 11:14:17|  分类: TI 达芬奇视频处 |  标签: |字号大中小  订阅 DAVINCI开发原理之一----ARM端开发环境的建立(DVEVM) 1. 对DAVINC ...

  2. Davinci DM6446开发攻略——LINUX GPIO驱动源码移植

    一.             DM6446 GPIO的介绍 说到LINUX 驱动移植,没有移植过的朋友,或刚刚进入LINUX领域的朋友,最好去看看<LINUX 设备驱动程序>第三版,有个理 ...

  3. Davinci DM6446 Codec Engine双核通信环境的搭建

    根据前几篇文章,一个DM6446的系统已经架构完成.但是有很多人都喜欢TI的机制,毕竟双核软件开发对很多工程师来说是非常麻烦的事情,既然TI提供开发套件和开发包,那么直接做OEM就可以了,底层的东西不 ...

  4. 基于TI Davinci架构的双核嵌入式应用处理器OMAPL138开发入门(TI达芬奇双核开发资料 [

    基于TI Davinci架构的双核嵌入式应用处理器OMAPL138开发入门 一.简介 TI的达芬奇架构嵌入式应用处理器使用DSP与ARM结合的非对称多核结构,当然现在也有管脚全兼容的单核.本文要介绍的 ...

  5. 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 ...

  6. davinci平台Uboot移植

    一.DM36X的BOOT过程介绍 DM36x的BOOT过程和DM6446.DM6467完全是一样的,因为都是ARM926EJS架构,里边都有一个RBL,这RBL在芯片出厂的时候都烧写在ROM里,芯片上 ...

  7. DAVINCI DM36x开发攻略——U-BOOT-2010.12及UBL移植

    从盛夏走到深秋,我们继续DAVINCI DM365-DM368的开发.说来惭愧,人家51CTO热情支持本博客,而本人却一直没有像其他博客之星一样频繁更新博客,心里确实说不过去.管理公司确实很累,有更急 ...

  8. DAVINCI DM365-DM368开发攻略—U-boot-2010.12-rc2-psp03.01.01.39及UBL的移植

    从盛夏走到深秋,我们继续DAVINCI DM365-DM368的开发.说来惭愧,人家51CTO热情支持本博客,而本人却一直没有像其他博客之星一样频繁更新博客,心里确实说不过去.管理公司确实很累,有更急 ...

  9. TI Davinci 五年七宗罪

    FROM:https://www.cnblogs.com/fpga/archive/2012/09/16/2687822.html 引言: 芯片是产业链上游重要的一个环节,一颗小小的芯片具有极高的技术 ...

最新文章

  1. TextBox灵异事件之背后神秘的深度灵异事件真相揭秘
  2. 2015年8月7日15:18:54工作
  3. 莫凡机器学习课程笔记
  4. DOM-13 【实战】输入及状态改变事件、京东搜索框
  5. python时间倒计时显示屏厂家_python 实现倒计时功能(gui界面)
  6. 用python绘制心形_python小趣味_520绘制一个心形.
  7. MQTT协议之发布订阅
  8. 装饰画必备素材——装饰设计师,填充不用愁!
  9. 打包vue项目时报错:Expected indentation of 6 spaces but found 10
  10. 加密 数字_数字卢布不会具有BTC这样的加密资产的优势
  11. @PropertiesSource注解读取配置文件中的数据
  12. 14.5【结构体指针编程】小科同学学习了数组和结构体,认真进行编程练习,顺利完成了老师布置的20道课外编程题后,他想起了科比20年的职业生涯数据。
  13. java valuewidget_Flutter开发之常用Widget
  14. VMBox CentOS安装记录
  15. 递归 (一): 递归思想与 C++ 中的递归函数及两个递归应用示例 (斐波那契, 汉诺塔)
  16. comsol学习中心:定义与材料选择
  17. Android中的多线程
  18. 慕课学习史上最全零基础入门HTML5和CSS笔记
  19. java回顾:MyBatis参数、sql片段、动态sql、高级查询
  20. SAP 发票金额容差与供应商容差

热门文章

  1. 使用CodeFirst创建并更新数据库
  2. 大三实验室 经验总结
  3. 2017年苹果公司开发者账号申请-公司邓白氏编码
  4. 文艺平衡树 Splay 学习笔记(1)
  5. python-json
  6. 每隔10秒钟打印一个“Helloworld”
  7. App WebView实例化
  8. XDOJ-1073-Nunchakus_求一个集合能否分裂成两个和相等的集合(dp、背包问题)
  9. ichat在线客服jQuery插件(可能是历史上最灵活的)
  10. 还原virtual函数的本质-----C++