0

我不幸被要求使用 CrossWorks 为 STM32F4 开发板进行开发,而我遇到了一个只有在使用 CrossWorks 构建和运行项目时才会出现的问题。

我正在使用 LwIP 创建一个 UDP 服务器,当我使用 TrueSTUDIO 时它工作得很好。但是,当我在 CrossWorks 下运行它时,ethernetif_input() 中出现了一个硬故障,它在数据包准备好读取时调用。它失败的具体点是它在数据包缓冲区之间移动数据包信息时调用 memcpy() 。

我不知道发生了什么变化——它是完全相同的代码,为相同的目标而构建,但它在 CrossWorks 中中断了。我希望有人能深入了解这个问题的任何部分……如果您对此有任何想法,那就太好了。

谢谢,如果您需要我的任何详细信息,请告诉我!

4

1 回答 1

0

事实证明,CrossWorks 自动将堆和堆栈大小设置得太小。默认值为 128 字节,我的程序超出了它,导致了硬故障。我把它撞了,我们都很好。

于 2012-11-12T03:09:58.500 回答