[转载]配置DAVINCI内存在DVEVM步骤--转

来源:互联网 发布:php和java的区别 编辑:程序博客网 时间:2024/05/22 10:51
 
原文地址:配置DAVINCI内存在DVEVM步骤--转作者:木子小白
如何配置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端进行处理(从linux端传到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文档。

原创粉丝点击