OMAP353x EVM 调试video_copy

http://zhuairlunjj.blog.163.com/blog/static/80050945201153112020382/

最后一步出错:

root@omap3evm:/opt/video_copy# ./app_remote.xv5T
@0x000a660f:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.si<1>Start address is covered by existing entry, can not create TLB entry for address: [0x86300000] size: [0x10000]
Start address is covered by existing entry, can not create TLB entry for address: [0x86300000] size: [0x100000]
nglecpu - main> ti.sdo.ce.exampl<1> DSP_init status [0x80008050]
 DSP_init status [0x80008050]
es.apps.video_copy.singlecpu
@0x000a67d9:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Application started.
app: error: can't open engine video_copy
@0x000af77f:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - app done.

原因:

http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/29486.aspx

For OMAP EVM Rev G with 256MB TI forgot to update the tcf file and stayed with the old one for 128MB.

It took me few days to find it since I didn't got any answer in this forum :-( ....

Yehuda.

在DVEVM上,内存是256M,所以Codec中的例程都是按照256M内存进行配置的。而在,其他一些具体应用中,目标板的内存不一定为256M。所以,内存配置是Davinci开发板上一项重要的技术。

解决:
1.先把内存调为128M
setenv bootargs mem=128M console=ttyS0,115200n8 root=/dev/mmcblk0p2 rootfstype=ext3 rootwait
savenv
2.更改loadmodules.sh

# 0x80000000    99 MB   Linux
# 0x86300000    16 MB   CMEM
# 0x87300000    13 MB   CODEC SERVER


# Allocate 16MBB for CMEM
insmod cmemk.ko phys_start=0x86300000 phys_end=0x87300000 pools=1x5250000,1x1429
改为
# 0x80000000    128 MB   Linux
# 0x86300000    16 MB   CMEM
# 0x87300000    13 MB   CODEC SERVER


# Allocate 16MBB for CMEM
insmod cmemk.ko phys_start=0x88000000 phys_end=0x89000000 pools=1x5250000,1x1429
3. ./loadmodules.sh
<6>CMEMK module: built on Feb 18 2012 at 14:04:39
CMEMK module: built on Feb 18 2012 at 14:04:39
<6>  Reference Linux version 2.6.29
  Reference Linux version 2.6.29
<6>  File /home/nzm/dvsdk_3_00_02_44/linuxutils_2_24_02/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
  File /home/nzm/dvsdk_3_00_02_44/linuxutils_2_24_02/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
ioremap_nocache(0x88000000, 16777216)=0xcd000000
ioremap_nocache(0x88000000, 16777216)=0xcd000000
<6>allocated heap buffer 0xcd000000 of size 0x22000
allocated heap buffer 0xcd000000 of size 0x22000
<6>cmem initialized 7 pools between 0x88000000 and 0x89000000
cmem initialized 7 pools between 0x88000000 and 0x89000000
<1>DSPLINK Module (1.61.03) created on Date: Feb 18 2012 Time: 14:02:24
DSPLINK Module (1.61.03) created on Date: Feb 18 2012 Time: 14:02:24
<6>SDMAK module: built on Feb 18 2012 at 14:04:40
SDMAK module: built on Feb 18 2012 at 14:04:40
<6>  Reference Linux version 2.6.29
  Reference Linux version 2.6.29
<6>  File /home/nzm/dvsdk_3_00_02_44/linuxutils_2_24_02/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.c
  File /home/nzm/dvsdk_3_00_02_44/linuxutils_2_24_02/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.c

4.
root@omap3evm:/opt/video_copy# ./app_remote.xv5T
@0x00048e1a:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - main> ti.sdo.ce.examples.apps.video_copy.singlecpu
@0x00048fe4:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Application started.
@0x000539a5:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Processing frame 0...
@0x00053b8d:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Encoder frame 0 process returned - 0x0)
@0x00053cdd:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Decoder frame 0 process returned - 0x0)
@0x00053df0:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Processing frame 1...
@0x00053f3f:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Encoder frame 1 process returned - 0x0)
@0x0005408f:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Decoder frame 1 process returned - 0x0)
@0x00054146:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Processing frame 2...
@0x00054277:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Encoder frame 2 process returned - 0x0)
@0x00054404:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Decoder frame 2 process returned - 0x0)
@0x000544bb:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Processing frame 3...
@0x0005460b:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Encoder frame 3 process returned - 0x0)
@0x0005473c:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Decoder frame 3 process returned - 0x0)
@0x000547f3:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - 4 frames encoded/decoded
@0x0005a00c:[T:0x4001d210] ti.sdo.ce.examples.apps.video_copy.singlecpu - app done.

OMAP3530开发环境搭建

1.      版本说明

DVSDK: DVSDK_3_00 3_00_02_44

PSP: OMAP35x-PSP-SDK-02.01.03.11

Kernel: Linux arago 2.6.29-rc3-omap1

2.      下载软件

         软件列表

1.        dvsdk_setuplinux_3_00_02_44.bin

2.        OMAP35x-PSP-SDK-setuplinux-02.01.03.11.bin

3.        cs1omap3530_setuplinux_1_00_01-44.bin

4.        bios_setuplinux_5_33_06.bin

5.        xdctools_setuplinux_3_15_01_59.bin

6.        TI-C6x-CGT-v6.0.16.1.bin

7.        arm-2008q1-126-arm-none-linux-gnueabi.bin

 

下载网址:

http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_3_00/3_00_02_44/index_FDS.html

3.      安装

1.      安装TI DVSDK:dvsdk_setuplinux_3_00_02_44.bin

目录:/omap3530/dvsdk

安装之后会生成dvsdk_3_00_02_24文件夹,下面包含很多文件夹,包含几乎整个davinci架构的代码。

 

2.      安装其他组件

bios_setuplinux_5_33_06.bin

cs1omap3530_setuplinux_1_00_01-44.bin

xdctools_setuplinux_3_15_01_59.bin

OMAP35x-PSP-SDK-setuplinux-02.01.03.11.bin

目录:/omap3530/dvsdk/dvsdk_3_00_02_24

 

3.      安装Linux下DSP的交叉编译工具链: TI-C6x-CGT-v6.0.16.1.bin

目录:/omap3530/TI/

 

4.      安装ARM交叉编译工具链:arm-2008q1-126-arm-none-linux-gnueabi.bin

目录:/omap3530/CodeSourcery/arm-2008q1

并设置环境变量:

export PATH=/omap3530/CodeSourcery/arm-2008q1:$PATH

(如果想要每次开机启动环境变量都生效,请将上句加入/etc/profile文件的末尾)

4.      配置

1.      /omap3530/dvsdk/ dvsdk_3_00_02_44/Rule.make

将其中的变量路径按实际安装情况修改,例如:

                     # Define target platform.

PLATFORM=omap3530

                 

# The installation directory of the DVSDK.

DVSDK_INSTALL_DIR=/omap3530/dvsdk/dvsdk_3_00_02_44

                       

# For backwards compatibility

DVEVM_INSTALL_DIR=$(DVSDK_INSTALL_DIR)

                        

# Where DSP/BIOS is installed.

BIOS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/bios_5_33_00_06

 

       2./omap3530/dvsdk/dvsdk_3_01_00_04/codec_engine_2_25_00_01/examples/xdcpath.mak

1)        设置平台、系统和程序类型

                            DEVICES  := OMAP3530

GPPOS := LINUX_GCC

PROGRAMS := APP_CLIENT DSP_SERVER

 

2)        设置变量安装路径

                     # (Mandatory) Specify where various components are installed.

CE_INSTALL_DIR :=

/omap3530/dvsdk/dvsdk_3_00_02_44/codec_engine_2_24

XDC_INSTALL_DIR :=

/omap3530/dvsdk/dvsdk_3_00_02_44/xdctools_3_15_01_59

BIOS_INSTALL_DIR :=

/omap3530/dvsdk/dvsdk_3_00_02_44/bios_5_33_06

DSPLINK_INSTALL_DIR :=

/omap3530/dvsdk/dvsdk_3_00_02_44/dsplink_1_61_03/packages

 

USE_CETOOLS_IF_EXISTS := 1

XDAIS_INSTALL_DIR :=

/omap3530/dvsdk/dvsdk_3_00_02_44/xdais_6_24

FC_INSTALL_DIR :=

/omap3530/dvsdk/dvsdk_3_00_02_44/framework_components_2_24

CMEM_INSTALL_DIR :=

/omap3530/dvsdk/dvsdk_3_00_02_44/linuxutils_2_24_02

 

WINCEUTILS_INSTALL_DIR:=

/omap3530/dvsdk/dvsdk_3_00_02_44/winceutils_1_00

BIOSUTILS_INSTALL_DIR :=

/omap3530/dvsdk/dvsdk_3_00_02_44/biosutils_1_01_00

EDMA3_LLD_INSTALL_DIR :=

 /omap3530/dvsdk/dvsdk_3_00_02_44/edma3_lld_01_10_00_01

LPM_INSTALL_DIR :=

/omap3530/dvsdk/dvsdk_3_00_02_44/local_power_manager_1_24

 

CGTOOLS_V5T := /omap3530/CodeSourcery/arm-2008q1

CC_V5T := bin/arm-none-linux-gnueabi-gcc

CGTARGET := gnu.targets.arm.GCArmv5T

 

CGTOOLS_C64P := /omap3530/dvsdk/TI/cg6x_6_0_16

#CC_C64P      := bin/cl6x

 

在文件末尾加上XDC_PATH的补充,否则编译会报错!!!

                            # XDC_PATH is complete. Any other components you could add as

XDC_PATH := $(XDC_PATH);$(LPM_INSTALL_DIR)/packages

                             (can't locate the package 'ti.bios.power' along the path:...)

 

5.      编译

1.        进入目录CE例程目录

#cd /omap3530/dvsdk/dvsdk_3_00_02_44/codec_engine_2_24/examples/ti/sdo/ce/examples/

              可以看到主要的关键的三个目录,apps,codecs,servers,分别放着应用程序代码,算法代码,算法服务器代码。

 

2.        编译server,选择all_codecs

                     #cd servers/all_codecs

#make clean

#make

编译完后会在bin/ti_platforms_evm3530/ 下生成来两个.x64P程序:

       all_pm.x64P  all.x64P

              (如果编译出错,大多数是前面配置Rule.make,和xdcpaht.mak出错,可以根据错误提示更改过来)

 

3.        编译应用app,选择video_copy

                     #cd apps/video_copy

#make clean

#make  

编译完后会在在bin/ti_platforms_evm3530/ 下生成来一个.xv5T程序:

app_remote.xv5T

这是应用在arm端,算法在dsp端的程序。

6.      执行

1.        将下列文件拷贝到开发板同一目录下,例如/home/root

算法服务器:all.64P

应用程序:app_remote.xv5T

内核驱动:cmemk.ko, dsplinkk.ko, lpm_omap3530.ko

内核加载脚本:loadmodules.sh unloadmodules.sh

 

2.        加载内核驱动

#./ loadmodules.sh

CMEMK module: built on Apr 21 2010 at 00:22:22

  Reference Linux version 2.6.29

  File /omap3530/dvsdk/dvsdk_3_00_02_44/linuxutils_2_24_02/packages/ti/sdo/linux

utils/cmem/src/module/cmemk.c

ioremap_nocache(0x85000000, 16777216)=0xca000000

allocated heap buffer 0xca000000 of size 0xcac000

cmem initialized 3 pools between 0x85000000 and 0x86000000

DSPLINK Module (1.61.03) created on Date: Apr 21 2010 Time: 03:48:32

如果出错,可能是驱动版本和当前内核版本不匹配,需要重新编译驱动,并重新编译server和app。

 

3.        执行应用程序

# ./app_remote.xv5T

@0x000f0053:[T:0x4001d000] ti.sdo.ce.examples.apps.video_copy.singlecpu - main> ti.sdo.ce.examples.apps.video_copy.singlecpu

@0x000f025a:[T:0x4001d000] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Application started.

@0x000fbfa8:[T:0x4001d000] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Processing frame 0...

@0x000fc116:[T:0x4001d000] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Encoder frame 0 process returned - 0x0)

@0x000fc247:[T:0x4001d000] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Decoder frame 0 process returned - 0x0)

@0x000fc378:[T:0x4001d000] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Processing frame 1...

@0x000fc48b:[T:0x4001d000] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Encoder frame 1 process returned - 0x0)

@0x000fc57f:[T:0x4001d000] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Decoder frame 1 process returned - 0x0)

…………………

@0x00497a45:[T:0x4001d000] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Processing frame 127...

@0x00497b1b:[T:0x4001d000] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Encoder frame 127 process returned - 0x0)

@0x00497c0f:[T:0x4001d000] ti.sdo.ce.examples.apps.video_copy.singlecpu - App-> Decoder frame 127 process returned - 0x0)

@0x00497ca7:[T:0x4001d000] ti.sdo.ce.examples.apps.video_copy.singlecpu - 128 frames encoded/decoded

@0x0049986e:[T:0x4001d000] ti.sdo.ce.examples.apps.video_copy.singlecpu - app done.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: ads129x evm是一款用于生物电信号检测和放大的开发板,接线是非常重要的步骤,正确的接线可以确保设备的正常工作。下面是ads129x evm的接线说明: 1. 电源接线:将电源引线接到适当的电源上,确保电流和电压符合设备要求,同时注意电源的极性,以避免损坏设备。 2. 生物电信号接线:将生物电信号源(如心电信号)的引线连接到ads129x evm的相应通道输入接口上。注意将正负极正确连接,以确保准确的信号采集。 3. 地线接线:将设备和任何外部电路的地线相连,以确保电路间的共地。 4. 控制信号接线:根据需要,将控制信号(如采样频率、滤波器设置等)接到ads129x evm的相应引脚上。这些控制信号通常是通过GPIO(通用输入输出)引脚实现的。 5. 数据接线:将ads129x evm的数据输出引脚连接到相应的数据处理设备(如微控制器、计算机等),以实现数据的采集和处理。 在进行接线时,需要注意以下几点: 1. 确保接线正确无误:反复检查每个接线的连接,确保引脚的接触良好,避免接触不良造成数据不准确或设备故障。 2. 避免干扰:将生物电信号引线与其他高频信号线(如电源线、通信线等)保持距离,避免相互干扰。 3. 好的接地:确保设备和外部电路的地线连接良好,避免地线电阻过大导致干扰信号。 4. 使用正确的线缆:选择符合设备要求的线缆,如屏蔽线缆可以减少干扰。 总之,ads129x evm的接线是确保设备正常工作的重要环节,正确的接线可以保证生物电信号的准确采集和放大,从而为后续的数据处理和分析提供可靠的基础。 ### 回答2: ADS129x EVM(Evaluation Module)是一种用于评估和验证ADS129x系列生物电信号放大器的开发板。它提供了一个方便的平台,供用户测试和评估这些放大器的性能和功能。 首先,我们需要将ADS129x EVM与主机连接。这可以通过USB接口或JTAG接口实现,具体取决于用户的需求。如果使用USB接口,则将EVM的USB端口连接到计算机的USB端口。如果使用JTAG接口,则将EVM的JTAG端口连接到JTAG编程器上,并将编程器连接到计算机。 接下来,我们需要将ADS129x EVM与待测信号源连接。这可以通过引脚连接或者连接到导联线上实现。ADS129x EVM通常配备了一些连接引脚,用于接收来自生物信号源的信号。用户需要将待测信号源的输出信号与相应的ADS129x引脚连接起来。如果使用导联线,用户可以将导联线的一端连接到ADS129x EVM的导联线输入端口,然后将另一端连接到待测信号源。 在完成连接后,用户可以使用相应的软件界面来配置和控制ADS129x EVM。这些软件界面通常提供了一些配置选项,如增益、滤波器设置、采样率等。用户可以根据需要进行相应的设置,并可以通过软件界面监测和记录生物信号的数据。 最后,当不再需要使用ADS129x EVM时,用户应该先断开所有的电源和信号连接,然后将设备安全地关闭。这样可以确保设备的安全,并延长其使用寿命。 总之,ADS129x EVM提供了一个便捷的方式来评估和验证ADS129x系列生物电信号放大器的性能和功能。通过正确的接线和配置,用户可以快速开始测试和评估生物信号放大器的性能。 ### 回答3: ADS129x是一种用于生物医学应用的多通道生物电信号测量芯片。它支持心电图(ECG)和电生理信号(EEG、EMG等)的冷电极和乾电极测量。 ADS129x EVM(评估板)是一种用于评估和调试ADS129x芯片的开发板。在进行信号测量前,我们需要正确接线以确保准确和稳定的信号测量。 首先,我们需要连接电源。ADS129x可以使用3.3V到5V的电源电压。我们可以通过连接适当的电源线将电源连接到评估板上。请注意,电源电压必须在ADS129x的工作范围内。 其次,我们需要连接电极。连接电极与ADS129x的电极输入端。在ADS129x EVM上,存在多个电极引脚,可以同时连接多个电极。我们需要确保正确地连接电极,并遵循正确的电极布置和放置原则。 接下来,我们可以连接一些外部组件,如滤波器、放大器和开关。这些组件可以帮助我们进一步处理和增强从ADS129x获取的信号。 最后,我们可以通过连接数据接口(如SPI或I2C)将ADS129x EVM连接到我们的计算机或其他数据采集设备。这将使我们能够通过计算机控制和读取从电极测量到的生物电信号。 在进行ADS129x EVM接线时,请务必参考相关文档和规格书。正确的接线可以确保电路的正常运行,并获得良好的生物电信号测量结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值