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.

[参考译文] TMS320F280037C:CLA 变量在上电时复位

Guru**** 2530320 points
Other Parts Discussed in Thread: TMS320F280037C

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1370307/tms320f280037c-cla-variables-are-resetted-on-power-on

器件型号:TMS320F280037C

工具与软件:

我想通过 CAN 发送一组变量值以用于监控。 其中一些变量在 CLA 至 CPU RAM 中声明。 我正在尝试通过 CAN 接口将这些变量从 CPU 发送到另一个 CAN 节点(上电时)。

当代码在调试会话中运行时、这些变量的最新值将在观察窗口中更新。 但它在上电复位时对所有参数显示为零。  

我试图将这些值复制到 CPU 侧温度变量中并使用这些温度变量来发送 CAN 消息、仍然是一样的。  

为什么它在上电复位时不起作用?

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

    尊敬的 Ashwini:

    我有几个澄清问题:

    1. 将哪个 LSRAM 分配给 CLA?
    2. 您提到的变量是否在 CLA 至 CPU 消息 RAM 中声明?
    3. 变量的数据类型是什么?
    4. 当您在调试期间看到变量更新时、是从 CLA 还是从 C28x 的角度来看?
    5. 您是否最初看到所有功能都正确、然后在后续下电上电后读数为零?

    应注意的一点是、在 F28003x 上、CLA 无法访问 CAN 外设。 这意味着它无法访问其任何寄存器。 这听起来并不像你 要做的,但我只是想提到这一点。

    此致、

    Delaney

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

    尊敬的 Delaney:  

    您将哪个 LSRAM 分配给 CLA?

    LSRAM0用作共享数据存储器。  

    您所引用的变量是否在 CLA 到 CPU 消息 RAM 中声明?

     有。  

    变量的数据类型是什么?

    大多数为 float32_t 类型

    当您在调试过程中看到变量更新时、是从 CLA 还是从 C28x 的角度来看?

    C28x 角度

    您最初是否看到所有正确功能、然后在后续下电上电后读数为零?

    有。

    CLA 无权访问 CAN 外设。 这意味着它无法访问其任何寄存器。

    好的。 但我正在尝试通过 CAN 传输 CLA 变量(与 CPU 共享)数据。  

    我将这些变量复制到 temperory CPU 变量中、并通过 CAN 发送 temperory CPU 变量。

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

    尊敬的 Ashwini:

    在发生错误的情况下、如果你切换到调试器的 CLA 视图、它显示了写入消息 RAM 的正确值吗?

    您是否也要从闪存或 RAM 运行 C28x 代码?

    此致、

    Delaney

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

    尊敬的 Delaney:  

    感谢您的回复!

    如果切换到调试器的 CLA 视图、调试器中是否显示了写入消息 RAM 的正确值?

    是、它会显示正确的值

    您是否正在从闪存或 RAM 运行 C28x 代码?

    从 RAM 获取闪存以及 CLA 和 CLA。

    此致、  

    -阿什维尼

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

    尊敬的 Ashwini:

    我认为您的设置没有问题。 您是否以任何方式修改了链接器 cmd 文件(来自示例链接器 CMD 文件)?

      如果您想看看、此处链接的线程似乎也有一些类似的问题。  

    此致、

    Delaney

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

    器件型号:TMS320F280037C

    工具与软件:

    我们使用 CLA 来控制 EPWM1和 EPWM2模块的 PWM 信号、这些信号由 CPU 初始化。 代码在调试模式下工作、但在我们执行上电复位时  

    不管用。 CLA 从闪存加载、但写入 RAM、CPU 被写入并从闪存加载。 为该文件附加链接文件。  

    e2e.ti.com/.../1731.28003x_5F00_app_5F00_generic_5F00_flash_5F00_lnk.zip

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

    尊敬的 Ashwini:

    您的主 CPU 代码中是否有以下行用于在运行时将数据从闪存复制到 RAM?

    此致、

    Delaney

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

    大家好、dalaney:

    您的主 CPU 代码中是否有以下几行代码用于在运行时将数据从闪存复制到 RAM?

    是的、在 CLA 初始化函数中  

    此致、

    Ashwini

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

    尊敬的 Ashwini:

    我看到有两个线程未决、所以我将它们加入到了这里。 您用来将程序从闪存复制到 RAM 的代码看起来正常。 请查看我之前的回复:

    [报价 userid="573616" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1370307/tms320f280037c-cla-variables-are-resetted-on-power-on/5241177 #5241177"]

    我认为您的设置没有问题。 您是否以任何方式修改了链接器 cmd 文件(来自示例链接器 CMD 文件)?

      如果您想看看、此处链接的线程似乎也有一些类似的问题。  

    [报价]

    此致、

    Delaney

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

    尊敬的 Delaney:

     我已经检查了您共享的已赞主题帖。 但仍然无法找到问题的原因。

    您是否以任何方式修改了链接器 cmd 文件(来自示例链接器 CMD 文件)

    是的、我修改了它。   

    1.开始地址  

    2.用于主应用程序的闪存 Banck 扇区3至15。

    3.闪存存储体扇区3至15 ,用于(新更新代码)下载的应用程序。

    4. RAM 的1至6段用于 CLA 编程。

    附加两个链接器 cmd 文件:  

    28003x_gneric_flash_lnk ->示例链接器 CMD 文件。

    28003x_app_flash_lnk ->已修改、当前正在使用 cmd 文件

    e2e.ti.com/.../28003x_5F00_generic_5F00_flash_5F00_lnk.zipe2e.ti.com/.../28003x_5F00_app_5F00_flash_5F00_lnk.zip 

    e2e.ti.com/.../6470.device.ce2e.ti.com/.../1104.device.he2e.ti.com/.../1104.board.c

    此致、

    Ashwini

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

    尊敬的 Ashwini:

    我认为您在链接器 cmd 中所做的更改不会导致任何问题。 从 CLA 的角度来看、我觉得您的配置没有任何问题。 我将循环让 SYSCTRL 复位专家获取他们的输入。

    此致、

    Delaney

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

    尊敬的 Delaney:  

    我正在等待进一步的答复。 如果需要更多详细信息、请告诉我。

    谢谢。此致、

    Ashwini  

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

    尊敬的 Ashwini:

    我已经咨询了 SYSCTRL 专家、正在等待回复。 我认为目前不需要任何进一步的信息。 当我得到他们的回复时、我会让您知道。  

    此致、

    Delaney

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

    尊敬的 Ashwini:

    您如何执行该 POR? 是否确保将器件保持在复位状态足够长的时间(根据数据表规格)?

    以下是 SYSCTRL 专家的回复:

    POR 事件之后、所有 RAM 都应清零。 如果在此过程中过早读取这些变量、则它们可能无法正确显示。

    此致、

    Delaney  

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

    尊敬的 Delaney:  

    您如何执行此 POR? [报价]

    它通过在5 - 10秒后关闭微控制器电源并将其上电来实现。  

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

    尊敬的 Delaney:

    上电复位对这两个问题都有效:  

    1. CLA 不工作。

    CLA 变量被重新写入。

    在 引导加载程序代码中、LS1 RAM 至 LS6 RAM 段配置为 CLA 程序存储器。

    更改已完成

    LS1 RAM 至 LS6 RAM 段  分配至 CPU 专用存储器

    2.删除了引导加载程序中链接器命令文件中的以下行(删除了 CLA 相关行)  

    .text:load = flash_BANK0_SEC3_4_5_6_7_8_9_10、
          运行= RAMLS7
          对齐(8)
    .scratchpad :> RAMLS0
    在更改这两个问题之后。  
    您能否详细说明导致问题的原因。
    谢谢、此致、
    Ashwini
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ashwini:

    我目前不在办公室、但当我在6月25日(星期二)回来时、我会对此进行调查。 由此给您带来的不便、我深表歉意。

    此致、

    Delaney

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

    尊敬的 Ashwini:

    只是为了澄清、您是否认为您能够解决与您列出的"更改已完成"相关的开机重置问题? 您能否说明哪些是工作案例和非工作案例、我将调查原因?

    此致、

    Delaney