DM6446 内存分配详解

本文详细介绍了DM6446评估板的内存分配,包括Linux供ARM使用的内存、CMEM连续内存分配模块以及DDR内存等。内容涉及如何通过设置启动参数和调用CMEM API来管理内存,以及DSP服务器中DDRALGHEAP、DDR、DSPLINKMEM和CTRLRESET的内存分配。同时提到了修改DSP Link Memory Map的方法和相关TI资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发平台:DVEVM 1.2/DVSDK 1.2/SEED DM6446开发板

 

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

以表格方式表述的DM644x Default Memory Map(参见<DVEVM>/codec_engine_1_10_01/docs/sprue67b.pdf)

 

以图形方式表述的DM644x Default Memory Map

 

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 : Contiguous Memory Allocator

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

使用insmod命令安装cmemk.ko驱动模块时指定CMEM起止物理地址,例如:

参见<DVEVM>/codec_engine_1_10_01/examples/apps/system_files/davinci/loadmodules.sh。

 

3、DDRALGHEAP、DDR、DSPLINKMEM、CTRLRESET

这些段均在DSP server源代码中的*.tcf文件中指定。

 

参见<DVEVM>/codec_engine_1_10_01/examples/servers/all_codecs/all.tcf。(在*.tcf文件中也管理了L1&L2 Cache的分配。)

当需要修改DSP Link Memory Map时,DSP Link v1.3(v1.4及以上版本不需要重新编译)需要修改<DVEVM>/dsplink_1_30_08_02/packages/dsplink/config/all/CFG_Davinci.TXT文件并重新编译DSP Link,然后修改DSP server的*.tcf文件并重新编译DSP server。

 

 

附TI网站的相关链接:

Changing the DVEVM memory map 

Changing DSPLink Memory Map

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值