Loadmodules.sh解析

来源:互联网 发布:男士西服知乎 编辑:程序博客网 时间:2024/06/06 23:49

Loadmodules.sh解析:

#!/bin/sh

rmmod cmemk 2>/dev/null     //删除cmemk模块,把如果出错的信息发送到无设备状态,

//2表示,标准错误,1表示标准输出即键盘

rmmod irqk 2>/dev/null        //irqk,edmak,dm365mmap的模块现在还不知道确切的含义,//但是它们与编解码有关,只有加载它们,才能正确调用编解码的应用程序,这个程序我理解的事在加载这些模块之前必须先分配缓冲池内存,分配之后才能家在模块,正确运行程序

rmmod edmak 2>/dev/null

rmmod dm365mmap 2>/dev/null

//edma是与用户层连接,链接linux内核edma所用的库函数资源

# Pools configuration

insmod cmemk.ko phys_start=0x85400000 phys_end=0x88000000 \

         pools=1x6651904,1x3670016,18x1548288,1x282624,1x159744,1x49152,1x32768,1x28672,1x16384,3x12288,2x8192,36x4096

        

insmod irqk.ko

insmod edmak.ko

insmod dm365mmap.ko

 

模块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

原创粉丝点击