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.

[参考译文] CCS/gcc -如何在 MSP430-elf-gcc 中增加堆大小

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/991020/ccs-gcc---how-to-increase-heap-size-in-msp430-elf-gcc

您好!

我正在尝试在我的 MSP430上运行此机器学习示例-https://github.com/phdschooltpc/msp430-xor

我想使用 MSP430-elf-gcc 而不是 ccs.本示例中的编译器选项之一是:

--heap_size=1500#用于动态内存分配 

如何在 MSP430-elf-gcc 中使用 Makefile 设置相同的文件? 当我使用 gcc 在没有增加堆大小的情况下进行编译时、我会得到一个堆栈和堆冲突错误。

谢谢、  
Archie S

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

    我避免了动态内存分配、因为它通常只是嵌入式应用程序中出现问题的根源。 在 gcc 中、堆通常从 BSS 的末尾开始、没有结束、因此没有大小。 实际上、一旦到达堆栈、它就会耗尽空间。 因为堆中分配了内存后、堆栈大小可能会有所不同。

    因此、您必须查看堆空间的大小(几乎总是在 SRAM 中、但在某些器件上可能在 FRAM 中)、变量(.data 和.bss)消耗的空间量以及堆栈所需的空间量。

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

    David、谢谢。 有关 CCS 和 gcc 的相关问题。

    我有一个在 CCS 中正确编译而没有错误的示例、而当我尝试使用 gcc 编译相同的示例时、我收到一个错误消息、表示.text 段不适合 ROM。 链接的描述文件似乎具有类似的设置。 您是否遇到/解决了此问题?

    此致、
    Archie S

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

    如果您使用的器件存储器高于0x10000、请尝试使用-mlarge 选项进行编译。 (20位地址)请务必读取 slau646。

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

    谢谢、只有大型模型是不够的。 我必须选择代码区域才能正确编译。 在执行期间、使用-mlarge - mcode-region=任一选项时、代码不能正确执行。

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

    我必须更改几个特定于应用的参数才能使其正确执行。