目录
- 一、现象描述
- lvgl 版本
- 二、问题分析
- lvgl 需要的资源
- 新建mcu 工程时默认分配的资源
- 问题解决
一、现象描述
移植完lvgl 之后,能正常显示label
,但是button arc
等复杂的控件都不能正常显示。调用官方的画圆弧demo 时,在多次调用 _lv_blend_fill
函数之后,进入HardFault
。
lvgl 版本
V7.11
二、问题分析
lvgl 需要的资源
新建mcu 工程时默认分配的资源
可以看出默认分配的Heap size
是0x200
(512),远低于 lvgl 要求的最小要求2k
;默认分配的Stack size
也只有 1k,lvgl 最低要求是2k
。
问题解决
出现 HardFault
的原因是函数调用层次比较多,栈资源不足。只增加Stack Size ,不再出现HardFault。
为了程序的稳健性,结合单片机自身的资源,将Stack size
和Heap Size
都设置为10k。