首页 OMAP3530开发笔记

OMAP3530开发笔记

举报
开通vip

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. ...

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. 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,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_812347
暂无简介~
格式:pdf
大小:255KB
软件:PDF阅读器
页数:0
分类:互联网
上传时间:2013-12-25
浏览量:24