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.

[参考译文] RTOS/AM5728:任务中的浮点寄存器损坏

Guru**** 2595805 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/584385/rtos-am5728-floating-point-registers-corruption-in-task

器件型号:AM5728

工具/软件:TI-RTOS

您好!

我正在将 FreeRTOS/AM437x 应用程序移植到 TI-RTOS/AM5728、并且遇到了在浮点运算后在任务中使用浮点单元导致异常的问题。 例如、在将 UART_printf 的第一个字符写入串行端口后(大概是在发生中断/上下文切换时)、执行简单的浮点加法和 UART_printf 将导致未处理的异常。

我是否需要在任务中设置一个标志以告知它我将使用浮点值?

是否需要在某处设置一个标志、以确保中断处理程序在上下文切换中保存/恢复 FP 寄存器?

还有什么可能导致这种情况的事情、我可能会做错??!

我已经尝试使用 BIOS_6_46_01_38/xdctools 3_32_01_22以及 BIOS_6_50_00_10/xdctools_3_50_01_12、但效果相同。

我已经(我认为)启用 MMU、并且引导加载程序(在 ti-RTOS 应用程序之前运行)正在启用 VFP/NEON。

谢谢、Kieran。

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

    回答我的问题时、如果其他人遇到这种情况、这似乎是由简单的堆栈大小/对齐问题引起的。 增大任务堆栈大小并对齐到8个字节可以解决该问题。

    很抱歉听到噪音、

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