x264之c64x+平台移植(二):arm端应用程序编译

5 篇文章 0 订阅
本文档详细介绍了如何将x264编码器移植到C64x+平台的ARM端,并编译运行codec server应用程序。内容包括配置app.cfg,引用必要的xdc模块,设置Engine和SCPY,以及编译过程中对linker.cmd的修改和编译选项的选择。特别强调了编译过程中的一些关键点,如linker.cmd的处理和链接时添加特定库。
摘要由CSDN通过智能技术生成

参考codec server的html文档写app.cfg:


var osalGlobal = xdc.useModule('ti.sdo.ce.osal.Global');
osalGlobal.runtimeEnv = osalGlobal.LINUX;
xdc.useModule('ti.sdo.xdcruntime.linux.Settings');
xdc.useModule('ti.sdo.ce.ipc.dsplink.Ipc');
xdc.useModule('ti.sdo.ce.ipc.dsplink.Processor');//注意这行,漏掉的话会链接失败。
var Engine = xdc.useModule('ti.sdo.ce.Engine');
var myEngine = Engine.createFromServer(
    "x264server",  // Engine name (as referred to in the C app)
    "bin/x264server.xe64P", // path to server exe, relative to its package dir
    "xmu.x264server" // full server package name
);

var SCPY = xdc.useModule('ti.sdo.fc.scpy.SCPY');
var SDMA = xdc.useModule('ti.sdo.linuxutils.sdma.SDMA');

app.bld:

var GCArmv5T = xdc.useModule('gnu.targets.arm.GCArmv5T');
GCArmv5T.LONGNAME = 'bin/arm-none-linux-gnueabi-gcc';
GCArmv5T.platform = "ti.platforms.evm3530";
//GCArmv5T.rootDir = "C:\\Program Files\\CodeSourcery\\Sourcery G++ Lite";
GCArmv5T.rootDir = "/media/work/sdk/Sourcery_G++_Lite";

Build.targets = [

];

运行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/syslink_2_00_02_80/packages;/media/develop/git/x264dsp" "/media/work/sdk/codec_engine_3_21_00_19/xdctools_3_22_02_27/xs" xdc.tools.configuro -o cfg_tmp -t gnu.targets.arm.GCArmv5T -p ti.platforms.evm3530 -b app.bld app.cfg

生成codec server的配置

删除linker.cmd的后面SECTIONS开始至文件尾部分,注意不能用-T linker.cmd编译,否则会莫名其妙地链接失败^_^

最后编译app对应的代码:

/opt/CodeSourcery/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-gcc -o x264app v4l2_x264.o cfg_tmp/linker.cmd -lpthread -ldl -lrt

注意:

1、 linker.cmd与输入文件的顺序,并且不能加"-T"

2、链接时要加上-ldl -lrt。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值