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.

[参考译文] TMS320F28235:"函数调用不会返回问题"通过更改 F28235器件上的参数数据类型来解决

Guru**** 2535360 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/735892/tms320f28235-function-call-will-not-return-problem-solved-by-changing-parameter-data-type-on-f28235-devices

器件型号:TMS320F28235
主题中讨论的其他器件:C2000WARE

您好专家、

我的客户已对问题进行了进一步测试。 它们连接 F28235器件引导、该引导加载了固件、但闪存中存在问题。 加载符号后、他们会发现传递到函数中的频率和周期参数提供了错误的值、这会导致寄存器配置错误。

它们 会将这些变量声明为不起作用进行测试。

2.读回函数调用中的频率和周期

3、频率回读的值错误

PS:这仅在引导加载的程序中发生。 如果它们将 float 更改为 uint32、问题将得到解决。

他们对此问题进行调查、以了解其产品中的任何潜在风险。

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好专家、
    此帖子是否分配了任何人?
    期待您的回复。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Sheldon、

    此帖子先前分配错误。 我刚刚重新分配给了软件团队。 请在一天之内收到回复。

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

    参考 C2000Ware 中的 CPU 计时器示例。 该示例中有类似的设置、可供参考。 我将复制引导加载程序专家、以评论引导加载程序中存在的这一问题。

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

    您能否提供您正在讨论的引导 ROM 代码(路径/文件名)? 我看不到使用 CPU 计时器的 F28235引导。

    \libraries\boot_rom\F2823x\v2_0\rom_sources\F2833x_boot_ROM

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

    您好、Manoj、

    我没有清楚地提到它。

    它们的代码有两个部分。 其中一个部分位于 FLASHA 中、它们在其中创建自己的引导应用程序。 在此引导应用程序中、它们执行的操作包括 使用 CUP 计时器的 ISR 馈入外部看门狗计时器、以及当软件或硬件触发时、通过 上机的串行端口提取数据、验证这些数据并将其编程到 FLASHH 中以更新用户应用程序。 另一个是我刚才提到的、用户应用程序代码位于 FLASHH 中。

    现在、问题发生在 FLASHA 中的代码中、现象是 CPU 定时器 ISR 未被触发。 我们发现、像我在这篇文章中提到的那样、传递到 CPU 定时器启动函数的数据出错。 但是、在以下情况下不会导致此问题:

    案例1:调试器对.out 文件进行编程、该文件将擦除 FLASHA 和 FLASHH

    CASE2:在 CPU 定时器的启动函数中将参数数据类型从"float"更改为"UINT32"

     

    现在、字段端正在研究"期间"为什么正常、而"频率"获得一种 DEN 值(似乎仍是声明中的原始值)

     

    谢谢!

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

    您在本主题上是否取得了任何进展?

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

    Ozino,í a

    这个问题总是在 CPU 定时器配置函数调用的两个参数中的一个上发生。 您使用"浮动"传递的任何数据。 我要求他们将 CCS 和代码生成工具更新到最新版本、然后尝试一下。

    谢谢

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

    今天我们有一些有趣的新发现。
    我们注释如下:
    temp =(long) fred * period;
    PRD.all = temp;
    并使用以下内容:
    PRD.ALL = 150*1000;
    一切都正常、不会通过函数传递参数。 您对此有什么想法吗?
    我已要求他们试用该项目的最新编译器、现在等待他们的结果。
    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ozino、

    今天我们有一些有趣的新发现。
    我们注释如下:
    temp =(long) fred * period;
    PRD.all = temp;
    并使用以下内容:
    PRD.ALL = 150*1000;
    一切都正常、不会通过函数传递参数。 您对此有什么想法吗?
    我已要求他们试用该项目的最新编译器、现在等待他们的结果。
    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Sheldon、

    我对奇怪的行为没有任何想法。 让我知道编译器测试的运行方式。

    此致、
    Ozino