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.

[参考译文] 编译器/TMS320F28377S:将 CubeSst 协议库(libcsp)移植到 CCS 项目

Guru**** 2456510 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/761354/compiler-tms320f28377s-porting-cubesst-protocol-library-libcsp-to-the-ccs-project

器件型号:TMS320F28377S

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

您好!

我想从  https://github.com/libcsp/libcsp 位置移植 libcsp (源代码) 我想知道在 C2000项目中移植 libcsp 是否可行。

在移植时、我需要记住哪些内容、例如依赖性问题?

谢谢、此致、

Ankit

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

    遗憾的是、我不熟悉此代码、也不知道它以前被移植到 C2000、因此我无法真正评论它的可行性。 您需要自己学习并感受一下。

    我要说的是、将软件移植到 C2000时经常出现的一个问题是 C2000上最小的数据类型是16位。 char 是16位、我们编译器的 stdint.h 不包含 uint8_t、因此请注意代码中的这一点。 这并不意味着如果代码使用8位类型、则无法移植、但您需要注意它并使用结构中的__byte()内在函数和8位字段等技巧来模仿8位字节。

    惠特尼

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

    我遇到了很多与以下内容相关的错误:
    #1167 "struct "
    其中结构为:
    struct __attribute__(__packed__){
    CHAR 接口[CSP_CMP_route_iface_LEN];
    uint32_t TX;
    uint32_t rx;
    uint32_t TX_ERROR;
    uint32_t rx_error;
    uint32_t 压降;
    uint32_t autherr;
    uint32_t 帧;
    uint32_t txbytes;
    uint32_t rxbytes;
    uint32_t IRQ;
    } if_stats;

    我知道它与封装有关。 如何在 C28x 中解决此问题?
    如何在我的 CCS 项目设置中包含 GCC 扩展?

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

    C2000编译器不支持__packed__,因为32位访问始终需要与 C2000上的32位边界对齐。 您需要尝试处理填充。

    本主题中还有一些进一步的讨论:

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/656291?Compiler-TMS320F28335-Alternative-attribute-for-packed-

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢惠普。 如果有任何其他问题、我将创建一个新线程。