分类: LINUX
2009-03-17 13:01:59
如何配置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进入 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文档。 |