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.

[参考译文] CCS/TMS320F28374D:CLA &L2中的 C28x 变量:编译器问题,错误的数据传递->很可能的数据寻呼机问题

Guru**** 2434500 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/786548/ccs-tms320f28374d-cla-c28x-variables-in-l2-compiler-issue-wrong-data-passing----quite-likely-data-pager-issue

器件型号:TMS320F28374D

工具/软件:Code Composer Studio

大家好,  

I m on F28374D,Using CCS8.1 and compiler 18.x LTS。  

基本上 我 使用 L2 存储器中的某个区域,CLA 写入 数据 , C28x 读取 相同的变量 ( 读取和写入属性是固定 的)。  

现在,如果我在     .cla 文件中声明 CLA 变量  , 问题就会清除  :C28x 获得 了错误的值 。

如果我在   诸如  globalvariables.c 的单独文件.c 中声明 CLA 变量 e2e.ti.com/.../ISSUE--in---Strcture-in-L2--exchanging-data-from-CLA.docx  、C28x 会正确读取数据。

在附加中,您将获得屏幕截图和更多详细信息。

您能不能确认 我找到的内容 以及 CLA  (写入)和 C28x (读取)在 L2中使用的结构

此致

卡洛

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

    这可能是因为 CLA 和 C28x 之间数据类型大小的差异。 INT 具有不同的大小。

    请使用 stdint.h 类型。 这将解决您的问题。

    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好 Sal,
    我检查了,但没有,typedef 两面都是正确的。
    我正在脱机向您发送代码。
    如果您使用.cla 或.c 作为我的上一封电子邮件,请仔细检查它是否会导致您的一方出现同样的问题?
    谢谢你
    此致
    卡洛
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    卡洛、

    我需要更多信息。 您应该能够使用我下面的提示/问题自行调试。

    CLA 写入的位置是什么?

    C28x 写入的位置是多少?

    这些全局变量映射在链接器和.map 文件中的什么位置?

    需要在一个位置声明变量并在另一个位置进行外部声明。 每次我使用共享变量时、我总是在.c 文件中的 C28x 端声明它们、并将它们作为 CLA (.cla 文件)的外部变量。

    我不确定、但这可能是编译器的要求。 您应该在.c C28x 源文件中声明您的全局变量。

    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请参阅编译器指南的第10节 :www.ti.com/.../spru514p.pdf

    10.2.2 C 语言限制
    CLA 的 C 语言有多种限制。
    不支持定义和初始化全局/静态数据。
    由于 CLA 代码是在中断驱动的环境中执行的、因此没有 C 系统引导
    序列。 因此、在程序执行期间、必须通过执行全局/静态数据初始化
    C28x 驱动程序代码或 CLA 函数内。
    定义为 const 的变量可全局初始化。 编译器会创建初始化的数据段
    名为.const_CLA 以保存这些变量。

    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好 Sal,
    我需要正式确认:
    这意味着我们不能在.cla 文件中安装全局变量,而只能在.c 文件中安装? “是”还是“否”?
    很抱歉压力、但出于质量原因、客户需要对此进行正式回复
    谢谢你
    此致
    卡洛
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Carlo、

    我已与 Code Gen 团队确认。 您需要声明和初始化在 C28x 端共享的全局数据、在.c 文件中也是如此。

    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好 Sal,
    很棒!
    非常感谢您的大力支持
    此致
    卡洛