从函数 STM32F051C6 返回时出现问题(硬故障)
Trouble returning from functions STM32F051C6 (Hard fault)
所以我已经被这个问题困扰了一段时间。在我的代码末尾,每当我调用一个函数时,它就不能再 return 到主函数并导致硬故障错误。我使用断点检查它是否到达了函数的末尾。
如果我将函数中的代码复制到主函数中,它可以正常工作,但会降低代码的可读性和重复性。
知道为什么会发生这种情况以及解决方法。
我正在使用 STM32F051C6 并在 Eclipse 中用 c 编程。
听起来你的堆栈溢出了。通常堆栈大小在您的链接器文件中定义,请尝试增加它。
检查会很容易填满堆栈的递归函数调用。
这也可能是内存问题,例如不知不觉地覆盖了您的堆栈。检查函数内部的数组和指针访问不能 return.
所以我已经被这个问题困扰了一段时间。在我的代码末尾,每当我调用一个函数时,它就不能再 return 到主函数并导致硬故障错误。我使用断点检查它是否到达了函数的末尾。
如果我将函数中的代码复制到主函数中,它可以正常工作,但会降低代码的可读性和重复性。
知道为什么会发生这种情况以及解决方法。
我正在使用 STM32F051C6 并在 Eclipse 中用 c 编程。
听起来你的堆栈溢出了。通常堆栈大小在您的链接器文件中定义,请尝试增加它。
检查会很容易填满堆栈的递归函数调用。
这也可能是内存问题,例如不知不觉地覆盖了您的堆栈。检查函数内部的数组和指针访问不能 return.