• 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基础上进一步进行了封装)。

  • 相关阅读:
    classic problem: select sortjava
    【转】排序算法复习(Java实现)(二): 归并排序,堆排序,桶式排序,基数排序
    【转】排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
    classic problem: 100 horse and 100 dan
    good chocolate
    【转】Java内存模型 http://blog.csdn.net/silentbalanceyh
    http header/ eclipse package path
    design patterns: factory and abstractFactory
    阅读笔记
    提取Dump文件的Callstack,创建windbg的一个扩展应用
  • 原文地址:https://www.cnblogs.com/cute/p/2019936.html
Copyright © 2020-2023  润新知