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.

TivaWare_C_Series-2.1.2.111 bug report

Hello TI,

I would like to report a (minor) bug in TivaWare.  In "epi.h" within the "driverlib" directory, there are work-arounds for some EPI issues.  The work-arounds involve assembly language, so are qualified by tool chain.  After the "#ifdef rvmdk" (for Keil) there are 6 attempts to inline some code by use of "inline" - this should be "__inline" as required by the Keil tool chain.  Adding the two underscores allows error-free compilation.

Regards,

Dave

  • Greetings Dave,

    Thanks for so noting - yet is that (type) of miscue limited to (only) epi.h? It seems worthwhile to search the entire "driverlib" to see if those (missing) underscores have "cousins" w/in other files - does it not?

  • Hello Dave,

    Thank you for reporting the issue. We will add it to the bug fix record for the next release.

    Regards
    Amit
  • Hello Dave,

    I just compiled the driverlib by loading the driverlib project in Keil uVision v5.10.0.2

    The epi.c compiled as is.

    Regards
    Amit
  • Hi Amit,

    Thank you for checking this.  From the documentation accompanying uVision v5.18.0.0 (section 9.8):

    "The __inline keyword suggests to the compiler that it compiles a C or C++ function inline, if it is sensible to do so.

    The semantics of __inline are exactly the same as those of the inline keyword. However, inline is not available in C90."

    I had successfully compiled the code in question on 2/24/2015, using Compiler v5.05 (uVision v???) - the current version compiler is V5.06 update 1 (build 61), as bundled in Keil uVision 5.18.0.0.  Perhaps the C90 exclusion on the "inline" form is now applied more strictly?

    I anticipate this problem occurring more frequently as uVision users upgrade to the latest version, so I hope you will keep the issue open for consideration.

    Regards,

    Dave

  • Hello Dave,

    Point noted. We will need to see how to ensure that both older and newer versions can be supported.

    Regards
    Amit
  • Hi Amit,

    There's good news: the "__inline" form has worked as long as I can remember, possibly back to uVision v3.24 when we first licensed it. I do not expect any of your users will have problems with the new form (and now I've jinxed us!)

    Regards,
    Dave
  • SourceTwo said:
    Perhaps the C90 exclusion on the "inline" form is now applied more strictly?

    Perhaps. AFAIK inline was introduced in C99 (and if you use it verify the usage is correct).

    Another possibility is if you have a C/C++ compiler the source was compiled as C++ previously. I do believe the usage of the keyword is slightly different between the two standards (and also earlier extensions in some C compilers), thus my caution above.

    Robert

  • Hello Dave

    I checked : Adding the --c99 allows the compiler to parse it while changing it to --c90 causes it to fail. So if you can change the option to --c99, it should compile and link correctly.

    Regards
    Amit
  • Thank you Amit!