Make a "building all for DSP, ARM, x86" system using C6Run compiler in SDK for TI 8168 EVM

原创 2012年03月13日 16:16:32

    Let user deploy and test their program fast on TI8168, So the building system would output following binaris from one copy of C source code: binaries for x86, ARM, and DSP on TI8168.

                           graphic 1: using scenario of the building system

    (1)Get following compiler installed: gcc, gcc-arm(cross compiler), c6runlib-cc(c6run compiler for building binaries running on DSP and wrapper the function on ARM). Remember when you installed it, add them to enviroment variable.

    (2)Orgnize the source code. Following is what I designed.
    |----Bin: All obj file and bin goes here.
    |----DataDir: All data that would not be involed to building process but running stage comes here.
    |----ExtDynLib: externel dynamilc libraries that need to link for ARM and X86 besides standard libraries.
    |----ExtStatLib: externel static libraries need to be linked for ARM and X86.
    |----SrcHead: because all the codes runing on DSP, would be archieved into a static library used by gcc and gcc-arm at compiling stage(saying compiling stage is from the view of gcc, indeed the c6run tools have done linkings inside for binaries on DSP and wrapped the function gcc saw to calling to syslink), the header files for this library should goes here.
    |----SrcLib: this directory holds c codes that would be archived into a library, for the output binary of DSP Version, the codes running on DSP.
    |----SrcExec: this is the source code never touches DSP, they will runing on ARM or X86.

    (3) Writing the Makefile.
    I did not using libtool which making things more complicated, it looks quite likely a normal one for gcc such as compiling flag settings. What special is taking care about the building process for DSP and linking them with binaries on ARM. Following is what my Makefile does.
    c6run compile the codes in /SrcLib --> c6run archive them into temp_dsp.lib --> try gcc-arm compile codes in /SrcExec into .o --> linking temp_dsp.lib with *.o before and external library in /ExtDynLib and /ExtStatLib -> store it as /bin/output_dsp.bin.
    Note: temp_dsp.lib is a wrapped library containing codes with DSP initialization,
communication in syslink framework, binary on DSP, so you will find it have much bigger size than temp_arm.lib.
    gcc-arm compile the codes in /SrcLib --> gcc-arm archive them into temp_arm.lib --> try gcc-arm compile codes in /SrcExec into .o --> linking temp_arm.lib with *.o before and external library in /ExtDynLib and /ExtStatLib -> store it as /bin/output_arm.bin.
    the same with ARM building process, just change the name to _x86, and using gcc,
output is /bin/output_x86.bin.

4) what we got:
   #: APPNAME = test make
   In /Bin I got: test_dsp.bin, test_arm.bin, test_x86.bin, test_dsp.lib, test_arm.lib, test_x86.lib. I can directly runing them on x86, TI8168 pure ARM, TI8168 ARM with DSP to validate the logic and CPU consuming rate. The binaries would be "downloaded" to DSP from ARM, when you runing test

TI8168 DSP算法开发流程

一、DM8168及本文简介     2010年,TI推出的最新媒体处理器TMS320DM8168作为一款多通道高清SOC系统芯片,集成了1GHz主频Cortex-A8 ARM核与lGHz主频C6...
  • jiawenquan
  • jiawenquan
  • 2014年03月05日 10:18
  • 3980

【DSP开发】【并行计算-CUDA开发】TI OpenCL v01.01.xx

TI OpenCL v01.01.xx TI OpenCL™ Runtime Documentation Contents: IntroductionOpenCL 1.1 Refere...
  • LG1259156776
  • LG1259156776
  • 2016年09月29日 20:21
  • 983

TI ARM和DSP双核平台的一个编译例程

一个适用于TI ARM与DSP双核平台的makefile。该makefile示意了如何同时编译出ARM平台和DSP平台的执行文件,以便于比较ARM核和DSP核在进行运算时表现出来的性能差异。 mak...
  • wuyuwei45
  • wuyuwei45
  • 2013年05月07日 14:48
  • 800

libsvm的make或者mex不成功(No supported compiler or SDK was found)

我们在进行机器学习或者数据挖掘的时候,我们总会用到svm的模型进行数据的挖掘和分析,但是我们使用SVM后,它只能二类的分类直接使用效果更好,但是我们往往是多类的分类。 那么我们就会采用libsvm工...
  • zhaomengszu
  • zhaomengszu
  • 2017年02月17日 10:22
  • 5454

Android Studio 虚拟机设置/启动失败之consider using a system image...

昨天使用Android Studio虚拟机发现所有虚拟机的状态都变为不可用,右下角提示       consider using a system image with Google APIs to...
  • u014763322
  • u014763322
  • 2016年03月02日 11:47
  • 7637


  • yhguo2008
  • yhguo2008
  • 2016年04月18日 20:56
  • 568


DM8168硬件平台简介                               概述          本模块以Ti TMS320DM8168 Davinci数字媒体处理器为核心,该处理器此...
  • shanghaiqianlun
  • shanghaiqianlun
  • 2011年11月08日 19:50
  • 17559

DM8168添加DSP音频编解码算法--集成现有voice或audio codec

介绍如何集成音频算法到dm816x dvr_rdk ezsdk
  • guo8113
  • guo8113
  • 2014年11月05日 12:09
  • 2783


  • guo8113
  • guo8113
  • 2014年04月16日 13:51
  • 5027

TI ARM+DSP异构多核通信机制

本文介绍了TI的ARM+C6000 DSP异构多核平台(如Davinci系列,OMAP3系列,OMAP-L系列)的通信机制,包括Codec Engine、IUNIVERSAL API、C6Accel、...
  • yuyin86
  • yuyin86
  • 2013年09月06日 13:35
  • 2870
您举报文章:Make a "building all for DSP, ARM, x86" system using C6Run compiler in SDK for TI 8168 EVM