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.

[参考译文] 编译器/Hercules F021FLASHAPI:使用 IAR Workbench 的 TMS570LS3137的 F021闪存 API

Guru**** 2484615 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/731712/compiler-hercules-f021flashapi-f021-flash-api-for-tms570ls3137-using-iar-workbench

器件型号:Hercules F021FLASHAPI

工具/软件:TI C/C++编译器

您好!

我正在使用 F021闪存 v.2.01 API 和 IAR EWARM 7.10设计引导加载程序。 在文件 CGT.IAR.h 中、有一个软件开关 Big/Little Endian

#if !defined (__little_ENDIAN__)  //是大端字节序编译*/

#if!defined (_big_ENDIAN)

  #define _BIG_ENDIAN          /*大端字节序的 FAPI 通用定义*/

#endif

#endif

#if defined (__little_ENDIAN__)  //是小端字节序编译*/

#if!defined (_lit_ENDIAN)

  #define _little_ENDIAN      /*小端字节序的 FAPI 通用定义*/

#endif

#endif

 

EWARM 开发指南 PDF 指出:

 

_Little _ENDIAN__
说明:反映--endian 选项设置的整数,在时定义为1
字节顺序是小端字节序。 当字节顺序为大端字节序时、该符号定义为0。

因为如果这种行为,小端字节序分支绝对是在 cgt.Iar.h 中执行的,所以文件定义文件“Registers_FMC_LE.h”也包含在大端字节序器件中。 在 F021 API 的未来版本中应解决/更正这种情况

此致、

Lorenz

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在 CGT.IAR.h 中更正的段落是:

    #if (__little_ENDIAN__=0)/*是大端字节序编译*/
    #if!defined (_big_ENDIAN)
    #define _BIG_ENDIAN /*大端字节序的 FAPI 通用定义*/
    #endif
    #endif
    #if (__little_ENDIAN_= 1)/*是小端字节序编译*/
    #if!defined (_lit_ENDIAN)
    #define _LIT_ENDIAN /*小端字节序的 FAPI 通用定义*/
    #endif
    #endif
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Lorenz、

    在 IAR 项目选项中是否正确设置了端模式?

    另一种方法是在预处理器设置中添加定义:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    QJWang、您好!

    您的解决方案也可以正常工作、如果使用了 IAR EWARM 符号__little_ENDIAN_=0、则可以添加额外的符号_BIG_ENDIAN,因此使用了图1中的端模式。
    感谢你的帮助。

    此致
    Lorenz