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.

How to compile PACKED data structures ?

Other Parts Discussed in Thread: OMAP-L138

During an otherwise successful compile/link, I'm getting the following warning:

#36-D #warn The packed attribute is not supported by this version of the TI ARM CGT.  Please upgrade to version 5.x or use an alternate toolchain instead. 

It instructs me to upgrade "to version 5.x", but I'm already using CCS version 5.1.1.00031.  So I'm confused by that instruction. 

Is this a "warning", as in "Go ahead and run the executable because it compiled/linked fine, but the debugger won't properly display the packed data structures."?  Or is this a warning, as in "Don't run the executable file, because it will crash."? Or does the warning mean something else?  I need advice on how to proceed. 

I see some posts (from back in September) saying the solution for the "packed attribute" issue is to use a different toolchain, namely CodeSourcery.  Is that still the recommended solution?  (Side question: Will TI have the solution built into CCS in the near future?)

(Note: The compiler warning is generated intentionally by the header file, usblib.h, from the USB library in the StarterWare package.)

Thanks for your help.

 

  • Walter,

    When it says 5.x it means the compiler version.  In CCSv5.1.1 I believe we have the 4.9.1 compiler.  I am going to move this to the compiler forum.  The team there would know more about what happens when that warning is displayed and can comment on the 5.0 compiler release date.

    Regards,

    John

  • Walter Snafu said:
    is this a warning, as in "Don't run the executable file, because it will crash."?

    Well, it won't work properly, that's for sure.  FWIW, I cannot say that with final authority.  Someone from the StarterWare team would have to say that.  But I'm familiar with packed structure support, and I'm very confident in that prediction.

    The TI ARM compiler has supported packed structures for a while now.  This page talks about gcc extensions, packed structures being one of them.  That's where you can find out which versions of the compiler work for your situation.  This page talks about how to obtain newer compiler releases.

    Thanks and regards,

    -George

  • I'm still confused about how to proceed with my StarterWare USB development for the OMAP-L138 (which is an ARM9 plus a C6748 processor). 

    Am I correct on the following 3 points:

    1. The ARM9 processor cannot currently handle the packed structures used in the StarterWare USB package?
    2. The ARM9 processor will NEVER handle the packed structures, no matter what improvements (or extensions) are made to compilers? (Because ARM9 physically cannot handle unaligned accesses.) 
    3. The C6748 can handle the packed structures used in StarterWare, and this provides the ONLY way to do StarterWare USB on the OMAP-L138?

    If the C6748 is the only path forward for doing StarterWare USB, then what compiler will work?  (Which compiler will properly handle the packed data structures for the C6748?)  

     

    ======================= 

    Note: ARM9 is not ARM Cortex. For reference: This page gives the following information:

    • The packed (struct/union) attribute is available on ARM only for architectures which support unaligned access (Cortex) and when the --unaligned_access=on option is in effect.  (Note: that --unaligned_access=on by default for architectures which support unaligned access.)
  • I apologize for the delay.  All of my answers in this post are in reference to support for packed structures.  I don't know anything about StarterWare.

    Walter Snafu said:
    The ARM9 processor cannot currently handle the packed structures used in the StarterWare USB package?

    Mostly correct.  The current TI ARM compiler, when building for ARM9, does not support packed structures.

    Walter Snafu said:
    The ARM9 processor will NEVER handle the packed structures, no matter what improvements (or extensions) are made to compilers?

    Incorrect.  The v5.0.0 release of the TI ARM compiler will support packed structures on ARM9.  It is in beta release now.  General release is planned for this summer.

    Walter Snafu said:
    The C6748 can handle the packed structures

    Mostly correct.  The TI C6000 compiler does support packed structures.

    Thanks and regards,

    -George