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.

[参考译文] FreeRTOS 堆_4.c

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1262578/freertos-heap_4-c

您好!

我正在使用 MCU_PLUS_SDK_243x。

在一个文件中  C:\ti\mcu_plus_sdk_am243x_08_06_00_43\source\kernel\freertos\freertos-kernel\MemMang\heap_4.c  

我找到一个函数 、其中有一个未定义的变量-  ucHeap

static void prvHeapInit ( void )/* privacy_function */
{

/*确保堆在正确对齐的边界上开始。 */
uxAddress =(size_t) ucHeap

链接器提示  '。 /heap_4.c:350:对"ucHeap"的`未定义

这个变量是什么?

哪个值更适合分配给它?

谢谢。

Eli

 

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

    尊敬的 Eli:

    ucHeap 由用户应用程序或 heap_4.c 中的 FreeRTOS 定义:

    /*为堆分配内存空间。 */
    #if ( configAPPLICATION_alloced_heap == 1 )

    /*应用程序编写人员已定义用于 RTOS 的数组
    *堆-也许这样它可以被放置在一个特殊段或地址中。 */
    extern uint8_t ucHeap [ configTOTAL_HEAP_SIZE ];
    #else
    特权数据静态 uint8_t ucHeap [ configTOTAL_HEAP_SIZE ];
    #endif /* configAPPLICATION_alloced_heap */

    在 MCU+ SDK 中、configAPPLICATION_ALLOCATED_HEAP 始终定义为0、因此应在 heap_4.c 中定义 ucHeap。

    此致、

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

    尊敬的 Ming:

    我只需添加   uint8_t ucHeap [ configTOTAL_HEAP_SIZE ]; 在 heap_4.c 内?

    谢谢。

    Eli

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

    尊敬的 Eli:

    因为在 MCU+ SDK 中、configAPPLICATION_alloced_heap 始终定义为0、因此 ucHeap 应已在 heap_4.c 中定义:

    特权数据静态 uint8_t ucHeap [ configTOTAL_HEAP_SIZE ];

    如果您仍获得" 公司名称: /heap_4.c:350:对 μ`ucHeap "的未定义引用、请确保您的 configAPPLICATION_alloced_heap 未定义为1。

    发生此错误时、您要构建哪个示例?

    此致、

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

    尊敬的 Ming:

    您之前的回答非常有帮助-它现在工作!

    谢谢。

    Eli