This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Compiler/TDA4VM: the question of the CGT6X's compile parameter

Part Number: TDA4VM

Tool/software: TI C/C++ Compiler

Hi TI

     In my tda4 project,there‘s a problem described as follows:

     compile a c66 lib in  psdk_rtos_auto_j7_06_02_00_21

     if use  bin/ar6x  ru2 xx.lib *.obj     (the cgt6x.mak is like this),the result in this lib is wrong

    but use  bin/ar6x  ru0 xx.lib *.obj,   the result is right

    So, can you tell me some informations about the  parameters of ar6x,especially this 0 and 2 represent what you mean.

Looking forward to reply soon,TKS.

  • % ar6x -h
    TMS320C6x Archiver
    Copyright (c) 1996-2018 Texas Instruments Incorporated

     Syntax : ar6x [arxdt][quvsh][012] archive files ...
              ar6x @command_file

     Commands : (only one may be selected)
        a - Add file                   r - Replace file
        x - Extract file               d - Delete file
        t - Print table of contents

     Options :
        q - Quiet mode - Normal status messages suppressed
        u - Update with newer files (use with 'r' command)
        s - Print symbol table contents
        v - Verbose
        h - This help

     Output format options:
        0 - Original AR format
        1 - TI long-name format (obsolescent)
        2 - POSIX format (default for newly created files)

  • A colleague mentioned that the current linkers can read all three archive output formats, but one archive has to be entirely of the same format. A user can't mix and match output formats in one archive by using the "r" option with an output format number.

    -Todd

  • Nigel Peng said:
     if use  bin/ar6x  ru2 xx.lib *.obj     (the cgt6x.mak is like this),the result in this lib is wrong

    What do you see that makes you think the lib is wrong?  Exactly how do you see it?

    Thanks and regards,

    -George

  • Hi George

         the lib is our c66 optimization code, for example,run a cnn network,when compile use ru0,the output is right,but wrong when use r or ru2 

  • I presume everything about the build is exactly the same, with the exception of the the ar6x command.  That means the object files the linker sees, whether they come from a library or not, are the same.  Therefore, you should get the same program.  

    Please perform the build both ways, and save off the linker map file each time.  Give them descriptive names like works.map and fails.map.  Put them both in a zip file and attach that zip file to your next post.

    Thanks and regards,

    -George