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.
1 . 版 本 说 明
使用天漠公司新移植的内核 Linux-2.6.29 for Devkit8000,也可成功运行于 SBC8100 上,但
由于硬件的差异性导致某些硬件丌能正常工作。
DVSDK:DVSDK_3_00 3_00_02_44
2 . 下 载 软 件
软件列表
1. OMAP35x-PSP-SDK-setuplinux-02.01.03.11.bin(Include kernel source code)
2. arm-2008q1-126-arm-none-linux-gnueabi.bin
3. linux-02.01.03.11-devkit8000-2.patch
(http://devkit8000.googlecode.com/files/linux-02.01.03.11-devkit8000-2.patch)
3 . 安 装
1. 安装内核源码:
#./ OMAP35x-PSP-SDK-setuplinux-02.01.03.11.bin
安装目录:/omap3530/dvsdk/OMAP35x-PSP-SDK-02.01.03.11
2. 解压内核源码:
#cd /omap3530/dvsdk/OMAP35x-PSP-SDK-02.01.03.11/src/kernel
#tar zxvf linux-02.01. 03.11.tar.gz
3. 为内核打补丁
将 patch 文件拷贝到内核根目录:
#cp linux-02.01.03.11-devkit8000-2.patch linux-02.01.03.11
打补丁
#cd linux-02.01.03.11
#patch -p1 < linux-02.01.03.11-devkit8000-2.patch
4. 将 SBC8100 光盘自带的 UBOOT 源码拷贝到 src/u-boot 目录,并解压:
#tar jxvf u-boot-1.3.3.tar.bz2
会解压出文件夹”u-boot-1.3.3”,为其改名:
#mv u-boot-1.3.3 u-boot-1.3.3-omap3sbc8100
#cd u-boot-1.3.3-omap3sbc8100
4 . 编 译 U - B O O T
1. 查看 uboot 支持的开发板类型
#cd include/configs
#ls
可以看到很多.h 文件,其中包括 omap3devkit8000.h 和 omap3sbc8100.h,说明同时支持
Devkit8000 和 SBC8100。本次编译将使用 SBC8100 版本。
2. 修改 omap3sbc8100.h
1. 启劢参数
/* for ubifs */
#define CONFIG_BOOTARGS "console=ttyS2,115200n8 ubi.mtd=4
root=ubi0:rootfs rootfstype=ubifs video=omapfb:mode:7inch_LCD mem=88M"
#define CONFIG_BOOTCOMMAND "nand read.i 80300000 280000 300000\;bootm
80300000"
2. IP 设置
#define CONFIG_ETHADDR aa:bb:cc:dd:ee:ff
#define CONFIG_IPADDR 192.168.1.200
#define CONFIG_SERVERIP 192.168.1.108
#define CONFIG_GATEWAYIP 192.168.1.1
#define CONFIG_NETMASK 255.255.255.0
3. 命令行符(可选)
#define V_PROMPT "SBC8100UM # "
3. 修改 Board ID,在 omap3sbc8100.c 文件中
#cd board/omap3sbc8100
#gedit omap3sbc8100.c
找到 int board_init(void),修改如下:
/*****************************************
* Routine: board_init
* Description: Early hardware init.
*****************************************/
int board_init(void)
{
DECLARE_GLOBAL_DATA_PTR;
gpmc_init(); /* in SRAM or SDRAM, finish GPMC */
//gd->bd->bi_arch_number = MACH_TYPE_OMAP3EVM; /* board id for Linux */
gd->bd->bi_arch_number = MACH_TYPE_DEVKIT8000; /* board id for Linux */
gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100); /* boot param addr */
return 0;
}
因为新内核对应的 Board ID 为“MACH_TYPE_DEVKIT8000”,两者必须一致,否则系统将
丌能正常启劢。
4. 编译
#touch build-uboot.sh
#gedit build-uboot.sh
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm distclean
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm
omap3sbc8100_config
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm
#./build-uboot.sh
在根目录下会生产 u-boot.bin 文件,并在 tools 文件夹下生成 mkimage 文件。将 mkimage 拷贝到
arm-2008q1/bin 目录,编译内核时将使用。
升级 toolchain 以后,u-boot 原来的编译选项 'armv7a' 要改成 'armv7-a', 源代码在这个位置
'cpu/omap3/config.mk'。
5 . 编 译 内 核
1. 查看新内核支持的 config 文件:
#cd /linux-02.01.03.11/arch/arm/configs
#ls
可以看到很多 config 文件,包括 omap3_devkit8000_defconfig,感谢天漠。
2. 编辑脚本文件 build_devkit8000_defconfig.sh
#cd /linux-02.01.03.11/
#gedit build_devkit8000_defconfig.sh
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm distclean
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm
omap3_devkit8000_defconfig
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm uImage
3. 执行编译
#./ build_devkit8000_defconfig.sh
将生成新内核映像文件:arch/arm/boot/uImage。
6 . 制 作 文 件 系 统
1. 进入文件系统目录
#cd omap3530/dvsdk/OMAP35x-PSP-SDK-02.01.03.11
#cd image/fs
2. 解压跟文件系统 nfs-base.tar.gz
#mkdir rootfs
#tar zxvf nfs-base.tar.gz –C rootfs
3.制作文件系统
#/omap3530/tools/mkfs.ubifs -r rootfs -m 2048 -e 129024 -c 812 -o ubifs.img
#/omap3530/tools/ubinize -o ubi.img -m 2048 -p 128KiB -s 512
/omap3530/tools/ubinize.cfg
在当前目录会生成新的文件系统映像文件:ubi.img。
nfs参数设置
setenv bootargs video=omapfb:mode:7inch_LCD mem=88M console=ttyS2,115200n8
root=/dev/nfs nfsroot=192.168.1.126:/home/ljm/workdir/filesys
ip=192.168.1.115:192.168.1.126:192.168.1.255:255.255.255.0:devkit8000:eth0:off
setenv bootargs video=omapfb:mode:7inch_LCD mem=88M console=ttyS2,115200n8
root=/dev/nfs nfsroot=192.168.1.116:/home/ljm/workdir/filesys
ip=192.168.1.115:192.168.1.116:192.168.1.255:255.255.255.0:devkit8000:eth0:off
SD参数设置 7寸显示器
setenv bootargs console=ttyS2,115200n8 root=/dev/ram initrd=0x81600000,40M
video=omapfb:mode:7inch_LCD
setenv bootargs console=ttyS2,115200n8 root=/dev/nfs nfsroot=192.192.1.116:
/home/ljm/workdir/filesys
ip=192.192.1.2:192.192.192.117:192.192.192.101:255.255.255.0:devkit8000:eth0:off
7 . 映 像 烧 写
1. MMC/SD 卡方式
1) 将 SBC8100/svn 目录下的 MLO、u-boot.bin、x-
load.bin.ift_for_NAND、 logo4.3.bmp 文件按顺序拷入 SD 卡,并将新生成的 u-
boot.bin 改名为 flash-uboot.bin 并拷入 SD,将新生成的 uImage 和 ubi.img 拷入
SD 卡。文件说明如下:
MLO:能从 SD 卡启劢的 x-loader;
u-boot.bin:从 SD 卡启劢并自劢烧写映像文件的 U-BOOT,烧写对象:x-
load.bin.ift_for_NAND,uImage,ubi.img,logo4.3.bmp;
x-load.bin.ift_for_NAND:能从 NAND Flash 启劢的 x-loader;
logo4.3.bmp:启劢 Logo 文件。
2) 将 SD 卡插入 SBC8100,并选择从 SD 卡启劢,系统会自劢将新的映像文件烧入到 NAND
Flash。如果丌能自劢烧写,请先擦除 NAND Flash 再重新从 SD 卡启劢。
SCB8100 # nand erase //NAND Flash 全部擦除
2. TFTP 方式
将新生成的系统映像文件 u-boot.bin、uImage、ubi.img 拷贝到 tftp 服务器根目
录:/opt/tftpboot,然后启劢开发板 SBC8100,并进入 u-boot 命令行,按顺序执行以下命令:
SCB8100 #tftpboot 80000000 u-boot.bin
SBC8100 # nand ecc hw
SBC8100 # nand erase 0 80000
SBC8100 # nand write.i 80000000 0 $(filesize)
SCB8100 #tftpboot 80000000 uImage
SBC8100 # nand ecc sw
SBC8100 # nand erase 280000 300000
SBC8100 # nand write.i 80000000 280000 $(filesize)
SCB8100 #tftpboot 81000000 ubi.img
SBC8100 # nand ecc sw
SBC8100 # nand erase 680000 7980000
SBC8100 # nand write.i 81000000 680000 $(filesize)
本文档为【OMAP3530开发笔记】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。