Memory 读存储器故障
当我通过调试器运行代码时,经过一系列步骤后,它最终会丢失并无序执行命令。我不确定堆栈是否溢出或是什么 这是我经常遇到的错误: MSP430:读取第0页0xffe2e处长度为0x1d2的内存块时出错:参数无效 有什么建议吗?我简要地阅读了关于不处理某些中断可能出现的问题 另外,我试图用一个特定的值填充我的RAM,这样我就可以判断堆栈是否溢出,关于如何用0x1234值填充整个RAM有什么建议吗Memory 读存储器故障,memory,stack-overflow,interrupt-handling,msp430,Memory,Stack Overflow,Interrupt Handling,Msp430,当我通过调试器运行代码时,经过一系列步骤后,它最终会丢失并无序执行命令。我不确定堆栈是否溢出或是什么 这是我经常遇到的错误: MSP430:读取第0页0xffe2e处长度为0x1d2的内存块时出错:参数无效 有什么建议吗?我简要地阅读了关于不处理某些中断可能出现的问题 另外,我试图用一个特定的值填充我的RAM,这样我就可以判断堆栈是否溢出,关于如何用0x1234值填充整个RAM有什么建议吗 谢谢 您使用的是什么调试器和编译器?我发现msp430 gcc和msp430 gdb/gdbproxy可能
谢谢 您使用的是什么调试器和编译器?我发现msp430 gcc和msp430 gdb/gdbproxy可能会与启用的gcc优化非常混淆。然而,有时在没有打开它们的情况下发出损坏的代码(实际上,这是一个高质量的产品) 填充内存的最简单方法是修改crt0.s启动文件并自己链接它。当内存设置为0时,可以在那里更改模式
你正在使用哪种设备?在16位设备上,0xffe2e在处理器的地址空间之外,可能是一个数组索引或类似的索引变为负数。在使用code composer studio和TI的USBFET程序员时,我也看到了这个错误,尽管我还没有找到一个明确的原因 假设您正在使用CCS,以下是一些提示: 1) 捕获ACCV(UNMI)和VMA(SYSNMI)中断,并在处理程序中设置断点。如果其中一个跳闸,检查堆栈,寻找触发中断的线索 2) 如果您有任何重新启用中断(GIE位)的中断处理程序,请确保它们不会被重复触发 3) 我在逐步优化代码时看到了这个错误(令人费解);因此,关闭优化可能会有所帮助 如果您使用的是CodeComposer studio,作为初始化RAM的替代方法,您可以在堆栈溢出上设置断点。此外,对于暂停的调试会话,CCS允许您使用通过“内存”子窗口选择的任何值填充部分内存。