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.

[参考译文] TINA/Spice/TM4C1294NCPDT:正在初始化阵列

Guru**** 2601915 points
Other Parts Discussed in Thread: TINA-TI

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/745474/tina-spice-tm4c1294ncpdt-initializing-arrays

器件型号:TM4C1294NCPDT
主题中讨论的其他器件:TINA-TI

工具/软件:TINA-TI 或 Spice 模型

您好!

我正在使用 Keil c 版本5.26进行编程。 我的代码使用 TivaWare_C_Series-2.1.4.178。 当我声明数组时、如下所示:

uint16_t length = 9+2*Q_add;
uint8_t buffer[length]; 

我运行了 Keil 调试器 c、然后点击"run"、但 Keil 立即停止调试。 我使用 J-link OB STM32负载电路。

相反、我使用以下代码、然后调试器正常运行

uint16_t length = 9+2*Q_add;
uint8_t buffer[100]; 

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

    您的查询实际上是针对 Keil 的、我们不是 Keil 的制造公司、因此遗憾的是、这并不是我们可以帮助解决的主题。 如果问题与 CCS 相关(TI 制造的编译器)、那将是另一个问题、但对于 Keil、我实际上无法评论其中一种方法的工作原理、而另一种方法的工作原理、我本来希望这两种方法都能正常工作。 我建议联系 Keil 支持人员、了解这种情况的原因。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    第一种方法声明可变长度数组(VLA)。

    此手册页指示数组已分配到堆上- http://www.keil.com/support/man/docs/armcc/armcc_chr1359124950297.htm

    因此、故障可能是由于堆不足造成的。

    我不使用 Keil 编译器、但在 TI 编译器中看到了类似的问题、即堆空间不足会导致无法分配 VLA。