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.

[参考译文] CC1352P:XDC 运行时错误和程序不适合可用内存。

Guru**** 2581465 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1108176/cc1352p-xdc-runtime-error-and-program-not-fit-into-available-memory

Thread 中讨论的其他器件:SYSBIOS

您好!

     我刚刚根据我的项目要求修改了 pinterrupt 示例。 我可以生成可执行文件、但在调试时、我在内部遇到 XDC_RUNTIME_ERROR 问题。

/*
 *  ======== ti_sysbios_rts_MemAlloc_alloc ========
 */
static Void *ti_sysbios_rts_MemAlloc_alloc(SizeT size)
{
    Header *packet;
    SizeT allocSize;
    xdc_runtime_Error_Block eb;

    allocSize = size + sizeof(Header);

    /*
     * If size is very large and allocSize overflows, the result will be
     * smaller than size. In this case, don't try to allocate.
     */
    if (allocSize < size) {
        return (NULL);
    }

    xdc_runtime_Error_init(&eb);

    packet = (Header *)xdc_runtime_Memory_alloc(NULL, allocSize, 0, &eb);

    if (packet == NULL) {
        return (NULL);
    }

    packet->header.actualBuf = (Ptr)packet;
    packet->header.size = allocSize;

    return (packet + 1);
}

因此,我尝试从正在工作的参考(传感器和收集器示例修改项目)中更改(target).cmd 文件 Heapsize 和程序 stacksize。  #10099-D: 出现程序无法装入可用内存错误。

如何编辑.cmd 文件以分配更多空间?  

如果有人帮助我,那将是巨大的帮助。

此致、

Keerthivasan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="516502" URL"~//support/tools/code-composer-studio 组/ccs/f/code-composer-studio 论坛/1108176/cc1352p-xdc-runtime-error-and-program-not-fit-into available 内存"]如何编辑.cmd 文件以分配更多空间[引用]

    您的意思是什么语法? 也许从这里开始:

    https://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html

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

    是的、Kier 我需要根据我的项目要求增加程序的堆栈和堆大小。

    这样做是否足够了?  

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

    您可能需要阅读特定的编译器手册、但例如、在我的 C2000项目中、第一步是确保在链接器设置中设置适当的大小:

    然后、确保将输出段.stack 和.sysmen 分配到链接器.cmd 文件中足够大的物理范围:

    #if 0
       .esysmem            : > RAMLS2                PAGE = DATA_MEM    /* Malloc not used. */
    #endif
       /* Stack */
       .stack              : > RAMM1                 PAGE = DATA_MEM

    在本例中、我不使用 malloc、因此不需要堆。

    希望这会有所帮助。