原创 OMAP3530开发笔记之一:开发环境搭建

2010-4-27 09:55 8975 4 7 分类: MCU/ 嵌入式

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 DVSDKdvsdk_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.      安装LinuxDSP的交叉编译工具链: 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



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



 



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.

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户189070 2011-2-12 14:50

CGTOOLS_C64P := /omap3530/dvsdk/TI/cg6x_6_0_16 #CC_C64P := bin/cl6x 请问一下,此处设置是否出错呀,我编译出错提示找不到cg6x_6_0_16

用户1370002 2010-12-10 21:32

你好,我也正在搞OMAP3530EVM这个平台,OMAP的资料相对其他要少点,而且单干比较有难度,所以很希望能和你交流,我的QQ:646329340

用户209908 2010-6-8 15:21

请问一下,内核驱动和内核加载脚本是在哪个地方找到的呢?还得重新编译内核吗?
相关推荐阅读
用户146729 2010-04-27 10:07
OMAP3530开发笔记之二:新内核编译
1.     版本说明使用天漠公司新移植的内核Linux-2.6.29 forDevkit8000,也可成功运行于SBC8100上,但由于硬件的差异性导致某些硬件不能正常工作。DVSDK:DVSDK_...
用户146729 2010-01-22 17:10
Keil:STARTUP.A51详解及如何使能可重入函数
$NOMOD51       ;Ax51宏汇编器控制命令:禁止预定义的8051;------------------------------------------------------------...
用户146729 2010-01-22 17:09
Timer Signal Action Handler is not Interrupt!
下面这段程序是Timer定时2秒发送向本进程发送信号,进程收到信号后执行对应的信号处理函数: act.sa_handler = prompt_info;#include <sys/time.h&...
用户146729 2010-01-22 17:09
Linux下串口编程实例,实现0~255数据自环测试。
#include     <stdio.h>      /*标准输入输出定义*/#include     <stdlib.h>     /*标准函数库定义*/#include ...
用户146729 2010-01-22 17:08
父子进程PID的区别
父进程执行fork()之后会返回两次,对于子进程,得到的是0(但0不代表子进程的PID);而对于父进程,得到却是子进程的pid。这样根据得到不同的pid,就可以执行不同的程序。并且子进程继承了父进程的...
EE直播间
更多
我要评论
3
4
关闭 站长推荐上一条 /3 下一条