dm6446的内存分配(davinci)

工作近1年了,也快过年了,总结下一年来学的知识点。

进入正题:

DM6446评估板带有256MB内存,分为7个Segment,Default Memory Map如下:

涉及到内存分配和调整的地方分3类。

1、linux

       供ARM使用的内存,由ARM Linux管理使用,应用程序无法直接访问这些内存。大小如何设置呢,如下:
Windows超级终端通过串口向开发板设置启动参数bootargs时指定,例如:
# setenv bootargs console=ttvS0,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=$(nfshost):$(rootpath),nolock mem=120M

2、cmem(dsp和arm的数据BUF共享)

       CMEM是一个连续物理存储空间分配模块,使得ARM端linux进程和DSP端算法直接能够共享缓冲区,当应用程序需要在共享缓冲区动态申请一个连续的物理空间时,通过调用CMEM的API可以实现,申请得到的空间可以供DSP端访问,进行算法处理时数据的传递和处理。

大小如何分配呢,如下:
在loadmodule.sh中使得insmod命令安装cmemk.ko驱动模块时指定CMEM起止物理地址,例如:
  • 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字节缓存组成的内存池。

3、dsp端用的内存

DDRALGHEAP、DDR/DSPLINKMEM、CTRLRESET 这些段存在DSP server源代码中的.tcf或*.tci文件中指定。默认分配如下可自行修改:

/*
 * Setup platform-specific memory map:
 */
var mem_ext = [
{
    comment:    "DDRALGHEAP: off-chip memory for dynamic algmem allocation",
    name:       "DDRALGHEAP",
    base:       0x88000000,   // 128MB
    len:        0x07700000,   // 119MB 0x07A00000
    space:      "code/data"
},
{
    comment:    "DDR2: off-chip memory for application code and data",  //通常 算法要调用的lib的代码量太大的话,编译会提示此地 方出错,需分配大

    name:       "DDR2",
    base:       0x8F700000,   // 250MB  0x8FA00000
    len:        0x00700000,   //   7MB  0x00400000
    space:      "code/data"
},
{
    comment:    "DSPLINK: off-chip memory reserved for DSPLINK code and data",
    name:       "DSPLINKMEM",
    base:       0x8FE00000,   // 254MB
    len:        0x00100000,   //   1MB
    space:      "code/data"
},
{
    comment:    "RESET_VECTOR: off-chip memory for the reset vector table",
    name:       "RESET_VECTOR",
    base:       0x8FF00000,   // 255MB
    len:        0x00000080,   // 128 B
    space:      "code/data"
}
];

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值