准备在beagleboard xm上移植x264,了解到omap3平台的codec engine支持elf,直接试着编译了下,使用默认配置(coff loader)一切ok,但改成elf就无法正常编译codec server.
跟据出错提示"ti.syslink.ipc.rtos.anull"找不到,应是syslink的rtos端没有正常编译,跟踪make发现syslink/packages/makefile文件中omap3的编译命令传参并没检测是否elf.加上检测后终于编译完成。完整的步骤记录:
1、下载安装相关软件包:codesourcery g++,ti c6x编译器,arago psp,codec engine(带cetools版),syslink,sysbios.
1、arago 内核的编译
CROSS_COMPILE=/media/work/sdk/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi- ARCH=arm make omap3_beagle_defconfig
CROSS_COMPILE=/media/work/sdk/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi- ARCH=arm make menuconfig
CROSS_COMPILE=/media/work/sdk/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi- ARCH=arm make uImage
2、修改codec engine,syslink目录下的product.mak,配置好各组件的目录及相关参数。
3、修改syslink/packages/makefile:
SYSLINK_DEVICE=$(DEVICE)
ifeq ("$(LOADER)","ELF")
EXECUTABLE_SUFFIX=xe64P
XDCARGS = \
DEVICE=$(DEVICE) \
CGT_C64P_ELF_DIR=$(CGT_C64P_INSTALL_DIR) \
DEVICE_VARIANT=$(DEVICE)
else
EXECUTABLE_SUFFIX=x64P
XDCARGS = \
DEVICE=$(DEVICE) \
CGT_C64P_DIR=$(CGT_C64P_INSTALL_DIR) \
DEVICE_VARIANT=$(DEVICE)
endif
4、在syslink,codec engine目录下分别进行make clean;make
测试codec生成向导的脚本:
#!/bin/bash
XDC_INSTALL_DIR=/media/work/sdk/codec_engine_3_21_00_19/xdctools_3_22_02_27
CGT_C64P_INSTALL_DIR=/media/work/sdk/codec_engine_3_21_00_19/TI_CGT_C6000_7.3.0
XDCPATH="/media/work/sdk/codec_engine_3_21_00_19/packages;/media/work/sdk/codec_engine_3_21_00_19/cetools/packages;/media/work/sdk/codec_engine_3_21_00_19/bios_6_32_03_43/packages;/media/work/sdk/codec_engine_3_21_00_19/syslink_2_00_02_80/packages;${XDC_INSTALL_DIR}/packages"
${XDC_INSTALL_DIR}/xs ti.sdo.ce.wizards.gencodecpkg --cgtools=${CGT_C64P_INSTALL_DIR}
server生成向导的脚本:
#!/bin/bash
XDC_INSTALL_DIR=/media/work/sdk/codec_engine_3_21_00_19/xdctools_3_22_02_27
XDCPATH="/media/work/sdk/codec_engine_3_21_00_19/packages;/media/work/sdk/codec_engine_3_21_00_19/cetools/packages;/media/work/sdk/codec_engine_3_21_00_19/bios_6_32_03_43/packages;/media/work/sdk/codec_engine_3_21_00_19/syslink_2_00_02_80/packages;${XDC_INSTALL_DIR}/packages;/media/develop/git/x264dsp"
${XDC_INSTALL_DIR}/xs ti.sdo.ce.wizards.genserver
分别到codec,server下make最终生成dsp端可执行文件bin/x264server.xe64P。
不喜欢生成zip的包?修改config.bld的参数可以生成tar.gz的:
Pkg.attrs.archiver = 'tar';
Pkg.attrs.compress = true
下一步就是写个arm端的测试程序了^_^