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.
工具/软件:Code Composer Studio
您好!
我的 TM4C123G 代码 工作正常、但当我向代码中添加两个 int 数据类型的新变量时、它们将获得默认值0x84和0x03 、即使我用0x00和0x00初始化它们、并且如果我将声明的位置更改为其他变量 变量工作正常、但另一个值的值会受到影响。 我的代码中包含 I2C、DMA 和 UART 的中断服务例程。
我尝试使变量变得易失性、并在 另一个文件中声明了所有变量、将该文件包含为头文件。 但它们都不起作用
解决该问题的任何方法。
谢谢 Bob、
当我看到.map 文件时、堆栈和数据段位置会相反。 以及如何检查堆栈是否溢出?
最简单的方法是增加.stack 段的大小、看看这是否解决了问题。 右键点击工程并选择"Show Build Settings..." 然后在 Build->ARM Linker->Basic Options 下,更改堆栈大小。 在下面的示例中、我将堆栈大小增加到了512字节。
由于堆栈从上到下使用(当使用堆栈时、地址会减小)、如果堆栈使用最低的 RAM 位置、则在堆栈溢出时、将获得数据中止。 在下图中、我用0xFF 填充了我的512字节堆栈、并运行了一个简单的 PWM 程序。 然后、通过查看存储器浏览器、我可以轻松地看到使用了多少堆栈空间。 在本例中、从0x200001FF 向下到0x200001D8。
不要忘记导致此问题的其他可能的方法、即对数组进行过索引或指针损坏。