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

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

    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


Howto:
    (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.
RootDir:
    |----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.
DSP:
    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.
ARM:
    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.
X86:
    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

相关文章推荐

zero copy architecture in RDK of TI 8168 EVM

1 the RDK overview:     Work is based on EVM: 8168SoC + 5158VideoCapture + 1GB DDR2.     RDK is...

Using the GNU Compiler Collection GCC for ARM

  • 2014年10月14日 23:37
  • 2.99MB
  • 下载

Performance of Using Keys in SELECT with FOR ALL ENTRIES

You would get insight from Performance perspective when not using the Keys in SELECT with FOR ALL EN...

Build opencv libraries for android arm, x86 ubuntu

Build opencv libraries for android arm, x86 ubuntu

在 x86 上面交叉编译 gstreamer for arm(zz)与MIPS平台上的编译(原)

http://hi.baidu.com/gh156884/blog/item/2275abfd3a49961d09244d8c.html 一:准备环境。 1。 首先需要一个交叉编译器。我需要的版本...
  • yuyin86
  • yuyin86
  • 2012年09月18日 22:41
  • 1180

在 x86 上面交叉编译 gstreamer for ARM/MIPS

gstreamer for ARM 一:准备环境。 1。 首先需要一个交叉编译器。如:  /usr/local/arm-linux-gcc-3.4.3/ 安装的路径:/usr/local ...

Android中的so注入(inject)和挂钩(hook) - For both x86 and arm

对于Android for arm上的so注入(inject)和挂钩(hook),网上已有牛人给出了代码-libinject(http://bbs.pediy.com/showthread.php?t...
  • ariesjzj
  • ariesjzj
  • 2013年08月11日 16:27
  • 52701

Kinect开发环境配置:Kinect for Windows SDK + OpenCV2.4.9 + VS2013 + Win8(x86)

假设VS2013已正确安装
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Make a "building all for DSP, ARM, x86" system using C6Run compiler in SDK for TI 8168 EVM
举报原因:
原因补充:

(最多只允许输入30个字)