zoukankan      html  css  js  c++  java
  • cmem模块,cmemk

    cmem模块,cmemk 收藏

    http://blog.csdn.net/lanmanck/archive/2010/08/21/5829141.aspx

    怀疑之前amlogic抄袭这个

    模块cmemk.ko为ARM和DSP通信提供连续的内存,装载的格式为:

    insmod cmemk.ko pools=4x30000,2x500000 phys_start=0x0 phys_end=0x3000000 pools_1=4x65536 phys_start_1=0x80000000 phys_end_1=0x80010000

    表明在内存0x0~0x2ffffff上开辟了两个内存池,第一个由4个30000字节得缓存组成,第二个由2个500000字节的缓存组成。在内存 0x80000000~0x8000ffff上开辟了一个由4个65536字节缓存组成的内存池。(注:低版本的cmem只支持一块内存)

    按照Davinci内存的划分,cmem的内存空间位于linux内存和DSP算法使用的内存之间,在dvsdk2.0中cmem内存空间为 118~128M(低版本的dvsdk为120~128M,不过低版本的dvsdk的DSP server程序128M之后的很大一块也没有使用,cmem大一点也没事,不过2.0中DSP server程序内存使用从128M开始)

    dvsdk2.0中,cmem模块目录为:

    [root@localhost cmem]# pwd
    /opt/dvsdk_2_00_00_22/linuxutils_2_23_01/packages/ti/sdo/linuxutils/cmem

    [root@localhost cmem]# tree
    .
    |-- CMEM.xdc
    |-- Makefile
    |-- Rules.make
    |-- apps
    | |-- Makefile
    | |-- apitest
    | | |-- Makefile
    | | `-- apitest.c
    | |-- insmod_rmmod
    | | |-- Makefile
    | | |-- insmod_rmmod.sh
    | | `-- insmod_rmmod_omapL137.sh
    | |-- multi_process
    | | |-- Makefile
    | | `-- multi_process.c
    | `-- translate
    | |-- Makefile
    | `-- translate.c
    |-- include
    | `-- cmem.h
    |-- lib
    | `-- cmem.a470MV
    |-- package
    | |-- build.cfg
    | |-- package.bld.xml
    | |-- package.defs.h
    | |-- package.doc.xml
    | |-- package.ext.xml
    | |-- package.rel.dot
    | |-- package.rel.xml
    | |-- package_ti.sdo.linuxutils.cmem.c
    | |-- ti.sdo.linuxutils.cmem.ccs
    | `-- ti.sdo.linuxutils.cmem.sch
    |-- package.xdc
    |-- package.xs
    |-- readme.txt
    `-- src
    |-- Makefile
    |-- interface
    | |-- Makefile
    | |-- cmem.c
    | |-- cmem.h
    | `-- release
    | `-- cmem.o470MV
    `-- module
    |-- Makefile
    |-- Module.symvers
    |-- cmemk.c
    |-- cmemk.ko
    |-- cmemk.mod.c
    |-- cmemk.mod.o
    `-- cmemk.o

    12 directories, 40 files
    [root@localhost cmem]#

    cmem提供的接口在demo中没有出现,而是被中间件进行了封装。dvsdk1.3中内存的分配使用了CE中OSAL包中Memory模块的 Memory_contigAlloc()函数,dvsdk2.0的demo使用了DMAI模块(在CE基础上进一步进行了封装)。

  • 相关阅读:
    python 0.1
    写博
    ubuntu 下tomcat配置
    ubuntu Ulipad 配置
    git windows中文乱码 以及关键字加亮
    ubuntu windows mysql 中文乱码解决
    struts2 tomcat下生成文件保存指定的目录
    [你必须知道的.NET] 第二回:对抽象编程:接口和抽象类
    [你必须知道的.NET] 第三回:历史纠葛:特性和属性
    [你必须知道的.NET] 第一回:恩怨情仇:is和as
  • 原文地址:https://www.cnblogs.com/cute/p/2019936.html
Copyright © 2011-2022 走看看