Chinaunix首页 | 论坛 | 博客
  • 博客访问: 118693
  • 博文数量: 42
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -5
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-08 22:58
文章分类

全部博文(42)

文章存档

2012年(4)

2011年(11)

2010年(20)

2009年(7)

分类: LINUX

2009-03-17 13:01:59

何配置DAVINCI内存
2008-06-16 11:48

如何配置DAVINCI内存


在DVEVM上,内存是256M,所以Codec中的例程都是按照256M内存进行配置的。而在,其他一些具体应用中,目标板的内存不一定为256M。所以,内存配置是Davinci开发板上一项重要的技术。 
笔者公司的开发板是128M,根据相关的文档,重新配置,编译了程序。在128M开发板上成功运行了Video_copy例程。具体步骤如下: 
DDR内存是ARM和DSP共享的,从Ox80000000到0x90000000。内存分为了如下几部分: 
1:Linux Partition:在ARM linux是按照4KB进行分页。这部分内存由linux独自使用,由于有虚拟内存,所以开发者不能直接操作内存。 
2:CMEM: Contiguous Memory Allocator。用于ARM和DSP之间共享内存。由于linux上内存采用了虚拟机制,分配的内存可能不是连续的;而DSP端内存没有虚拟内存机制一块内存在物理上是连续的。因此,如果直接将一块内存作为参数传递给DSP端进行处理,就得不到正确的结果。因此CMEM就是解决这个问题而出现的。通过CMEM可以开辟连续的内存,用于ARM和DSP端共享内存。 
3:The DDRALGHEAP and DDR Sections:用于CODEC动态开辟内存 
4: DDR(DDR2在codec engine1.2):用于存放DSP端代码端和静态数据。 
5:The DSPLINKMEM Section:用于DSPlink, 
6:RESET_VECTOR:用于DSP RESET vector.必须128直接,起始地址必须是整数M. 
因此:总内存=DSP server内存+CMEM+linux内存。后面,是笔者内存的具体配置: 
具体步骤: 
一 
DSPlink 1.3需要从新编译才能够运行。编译步骤如下: 
1进入/dsplink_1_30_*/packages/dsplink目录 
2打开config/all/CFG_Davinci.TXT 文件 
3按照图进行修改。 
4.修改 Linux/davinci_mvlpro4.0.mk 中 
BASE_BUILDOS: 你的linux内核位置,以 "/lsp/ti-davinci"结尾. 
BASE_CGTOOLS: 你的ARM端工具位置. 以 " arm/v5t_le/bin"结尾。 
5设置环境变量: 
export DSPLINK='你DSPlink位置' 
6.编译 
gmake -C gpp/src 
gmake -C dsp/src 
7.拷贝到目标板dsplinkk.ko 
gpp/export/BIN/Linux/Davinci/RELEASE/dsplinkk.ko 

二、 
重新编译Codec server 
1.进 examples/servers/video_copy 目录 
2. 拷贝copy ../all_codecs/all.tcf to 到examples/servers/video_copy 目录 video_copy.tcf. 
3.修改video_copy.tcf文件,参照上图 
4.编译, 
gmake clean 
gmake 
5。拷贝video_copy.x64p到目标板文件系统上。 
三、 
拷贝应用程序 
1,进入examples/apps/video_copy/dualcpu/ 目录 
2. 拷贝 app.out 可执行文件到目标板文件系统.(如果是DSPLink 1.40需要重新编译) 
3. 拷贝 in.dat 到目标板文件系统 
4. 拷贝cmemk.ko 到目标板文件系统.(位于你DVEVM安装目录下) 
5. 拷贝loadmodules.sh 到目标板文件系统。 
6. 修改loadmodules.sh 。 
insmod dsplinkk.ko。后面不要参数。 
insmod cmemk.ko。按照图上进行修改。 
四、 
运行程序 
1.修改目标板的启动参数: 
setenv bootargs console=ttyS0,115200n8 root=/dev/nfs mem=64M..你其他参数.. 
2.重新启动 
3.执行./loadmodules.sh 
4.执行./app.out. 
如果一切正确显示成功。不清楚的地方参考SPRAAQ6.pdf文档。 
阅读(2067) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~