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.

[参考译文] 编译器/TDA4VM:当 AppUtils_printf()在任务挂钩函数 switchFxn 中调用时,它似乎是系统转储

Guru**** 2589280 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/954727/compiler-tda4vm-it-seems-system-dump-while-the-apputils_printf-is-called-in-the-task-hook-function-switchfxn

器件型号:TDA4VM

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

尊敬的先生:

 我想在 taskHook switchFxn 中检查任务堆栈、并在堆栈使用超过90%时打印警告。

 但是当 在 switchFxn 中调用 AppUtils_printf()时,系统可能会转储。

 我的 PDK: PSDK_RTOS_auto_J7_07_00_00_11

 我不确定这是一个错误。 或者 不应在 switchFxn 中调用 AppUtils_printf()。

  --AppUtils_printf() 在 createFxn 中调用时,我发现这是可以的。

此致、

黄石

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

    您好、黄吉、


    您尝试从哪个内核进行此操作? 如果您从 DSP/R5F 等远程内核打印、则需要首先调用电路板初始化、它将初始化并分配存储器、以便将打印语句存储在存储器中、A72将在 UART 控制台中打印缓冲区的内容。

    此致、
    Shyam

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

    我不熟悉这个系统,但 printf()本身需要大量的堆栈,因此当您使用堆栈报告堆栈处于低状态时,您可能会耗尽堆栈。

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

    Shyam、您好!

    >您从哪个内核尝试此操作?

      MCU1_0。

     只有 mcu1_0正在运行、AppUtils_printf ()通过 UART 输出字符串。

    此致、

    黄石

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

    您好!

    [引用 userid="301692" URL"~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/954727/compiler-tda4vm-it-seems-system-dump-while-the-apputils_printf-is-called-in-the-task-hook-function-switchfxn/3542273 #3542273"]我不熟悉此系统,但 printf()本身需要大量的堆栈,因此当您使用它报告堆栈处于低位时,您可能会耗尽堆栈。

    当堆栈增加到超过特定阈值、然后在主任务中打印时、您能否尝试在挂钩函数中设置一个标志? 你试过这个吗?

    此致、

    Karan