STM32
直播中

杨云

7年用户 792经验值
私信 关注
[问答]

h750+STEMWIN+FreeRTOS调用绘图函数绘制位图进入HardFault的原因?

如题,在工程中需要调用GUI_DrawBitmap()、GUI_DrawBitmapEx()等函数绘制图片,当位图尺寸小的时候可以正常显示,但是位图尺寸超过一定尺寸就进入HardFault故障(这里窗口界面尺寸是大过图片尺寸的),有怀疑是线程内存不够,加大后还是存在;怀疑是EMWIN配置时给的内存不够,加大后还是存在;但是同一个位图文件用GUI_DrawBitmapEx()函数缩小一定比例后时可以显示的,超过一定比例就又不能显示;现在没有方向了,希望各位大佬给点意见指导一下!

回帖(1)

陈杰

2024-4-9 18:03:17
这个问题可能有多个原因导致,以下是可能的解决方法:

1. 内存不足:确保你的系统有足够的内存来存储位图数据。你可以尝试增加内存分配给EMWIN和FreeRTOS的大小。确保你的系统内存配置与你的应用程序需求相匹配。

2. 栈溢出:检查你的线程栈的大小,并确保它足够大来处理绘制位图时所需的堆栈空间。如果栈溢出,可能会导致HardFault错误。你可以尝试增加线程栈的大小。

3. 图形库版本兼容性:确保你的EMWIN和FreeRTOS在版本上是兼容的,并且正确配置和初始化。某些版本之间的兼容性问题可能导致错误。

4. 位图文件错误:确认你的位图文件没有损坏或格式不正确。尝试使用其他位图文件来检查问题是否是特定于某个文件的。

5. 其他硬件或外设问题:如果你的系统还涉及其他硬件或外设,例如显示器或存储器,确认它们的连接和配置是正确的,并与EMWIN和FreeRTOS的要求相匹配。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分