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/TMS320F2808: Advisory Memory: Flash and OTP Prefetch Buffer Overflow

Part Number: TMS320F2808


Tool/software: TI C/C++ Compiler

In SPRZ171R - latest Silicon Errata for TMS320F2808 there is "Advisory Memory: Flash and OTP Prefetch Buffer Overflow"

A workaround is stated to be "Use the compiler switch -me to force the compiler to generate SB/B instructions instead of SBF/BF instructions."

I cannot find this switch in the compiler reference SPRZ171R or SPRU514S.

What should I do?

(I also cannot find the compiler manual via the product page for TMS320F2808, which seems odd, though I have previously-downloaded copies),

Regards, Giles

  • Later edit ... This post turns out to be incorrect.  Please ignore it.  More details are in later posts.

    The equivalent long from of the option -me is --no_fast_branch.  It is no longer documented, but the the C28x compiler still accepts it.  It is valid to use it to avoid problems documented in the silicon errata.

    Thanks and regards,

    -George

  • Giles,

    For compiler versions before 15.12.0.LTS:

    • The -me, or --no_fast_branch switch, should be used to disable SBF/BF instruction generation  as stated by the advisory.

    For compiler versions after 15.12.0.LTS, 

    • Only functions running from RAM will include the SBF/BF instructions.    You can specify which functions will run from RAM by using the the --ramfunc=on option or by __attribute__((ramfunc))
    • This satisfies the silicon bug (i.e. no SBF/BF running from flash memory).

    The documentation will be updated to clarify this.  Please let us know if this resolves your question.

    Regards

    Lori

  • Lori,

    That's Good.  I look out for updated document.

    Thanks, Giles