|
用lvgl的画了16个运动的光球,但是发现运行一段时间就会报内存的错误
- Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.
- Core 1 register dump:
- PC : 0x4016481f PS : 0x00060430 A0 : 0x8016a024 A1 : 0x3f803b30
- 0x4016481f: lv_draw_mask_free_param at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/draw/lv_draw_mask.c:216
- (inlined by) lv_draw_mask_free_param at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/draw/lv_draw_mask.c:210
- A2 : 0x3f803c24 A3 : 0x3f803bbc A4 : 0x3f803c54 A5 : 0x00000001
- A6 : 0x00000000 A7 : 0x3ffc43a8 A8 : 0x00007fff A9 : 0x0000003a
- A10 : 0x00000000 A11 : 0x00000000 A12 : 0x00000000 A13 : 0x3f803bbc
- A14 : 0x3f803bbc A15 : 0x00000000 SAR : 0x0000001d EXCCAUSE: 0x0000001c
- EXCVADDR: 0x0000800f LBEG : 0x40164768 LEND : 0x40164773 LCOUNT : 0x0000001f
- 0x40164768: lv_draw_mask_add at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/draw/lv_draw_mask.c:86
- 0x40164773: lv_draw_mask_add at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/draw/lv_draw_mask.c:91
- Backtrace:0x4016481c:0x3f803b300x4016a021:0x3f803b50 0x400dc4e5:0x3f803cc0 0x400dc7a6:0x3f803d00 0x400dbfda:0x3f803d20 0x4015c2fd:0x3f803d40 0x4015c3cf:0x3f803d60 0x4016238e:0x3f803da0 0x40162373:0x3f803de0 0x401623b8:0x3f803e20 0x40162550:0x3f803e50 0x40162a06:0x3f803ec0 0x40167ebb:0x3f803f20 0x400dbf56:0x3f803f50
- 0x4016481c: lv_draw_mask_free_param at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/draw/lv_draw_mask.c:215
- (inlined by) lv_draw_mask_free_param at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/draw/lv_draw_mask.c:210
- 0x4016a021: lv_draw_sw_arc at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/draw/sw/lv_draw_sw_arc.c:123
- 0x400dc4e5: ball_color_sports at F:\MC\SpaceMan\software\esp32\build/../components/gui_task/src/sport_ball.c:199 (discriminator 3)
- 0x400dc7a6: ball_position_refresh at F:\MC\SpaceMan\software\esp32\build/../components/gui_task/src/sport_ball.c:327
- 0x400dbfda: spectrum_draw_event_cb at F:\MC\SpaceMan\software\esp32\build/../components/gui_task/src/my_music.c:79
- (inlined by) spectrum_draw_event_cb at F:\MC\SpaceMan\software\esp32\build/../components/gui_task/src/my_music.c:59
- 0x4015c2fd: event_send_core at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/core/lv_event.c:467
- 0x4015c3cf: lv_event_send at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/core/lv_event.c:75
- 0x4016238e: lv_refr_obj at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/core/lv_refr.c:188
- 0x40162373: lv_refr_obj at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/core/lv_refr.c:180 (discriminator 3)
- 0x401623b8: lv_refr_obj_and_children at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/core/lv_refr.c:720
- 0x40162550: lv_refr_area_part at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/core/lv_refr.c:652
- 0x40162a06: lv_refr_area at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/core/lv_refr.c:571
- (inlined by) lv_refr_areas at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/core/lv_refr.c:511
- (inlined by) _lv_disp_refr_timer at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/core/lv_refr.c:313
- 0x40167ebb: lv_timer_exec at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/misc/lv_timer.c:313
- (inlined by) lv_timer_handler at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/misc/lv_timer.c:109
- 0x400dbf56: lv_task_handler at F:\MC\SpaceMan\software\esp32\build/../components/lvgl/src/lv_api_map.h:37
- (inlined by) lvgl_task at F:\MC\SpaceMan\software\esp32\build/../components/gui_task/src/taskgui.c:129
复制代码
具体代码如下,看相关的资料也没有发现需要手动释放内存的地方,很是不明白为何出现这个现象?有没有对lvgl熟悉的坛友帮忙解答下?
- //运动的颜色光球
- void ball_color_sports(lv_event_t * e)
- {
- #define BALL_SPEED 2
- lv_obj_t * obj = lv_event_get_target(e);
- lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e);
- lv_draw_arc_dsc_t draw_arc_dsc;
- lv_draw_arc_dsc_init(&draw_arc_dsc);
- draw_arc_dsc.opa = LV_OPA_COVER;
- draw_arc_dsc.width = 8;
- draw_arc_dsc.blend_mode = LV_BLEND_MODE_NORMAL;
- lv_point_t pos;
- for (uint8_t i = 0; i < BALL_CNT; i++)
- {
- pos.x = ball_buff[i].x;
- pos.y = ball_buff[i].y;
- draw_arc_dsc.color = lv_palette_main(COLOR_BALL[i%6]);
- draw_ctx->draw_arc(draw_ctx,&draw_arc_dsc,&pos,8,0,360);
- }
- }
复制代码 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|