Description
I am porting LVGL 9.0 to my dsPIC33CK project, it was tough to understand the huge library, but I think it was worth it, anyway, I have everything going well and compiled correctly but the screen never has anything displayed, after some digging, I found that when the MCU enters lv_timer_handler(); function, it will never go out, and after some debugging, I discovered that the problem is in the following line inside lv_timer_exec(lv_timer_t * timer) ,
if(timer->timer_cb && original_repeat_count != 0) timer->timer_cb(timer);
What MCU/Processor/Board and compiler are you using?
dsPIC33CK256MP206, MPLAB X V6.2, XC_DSC
16 bit parallel interface, ili9341, 320x240 px
What do you want to achieve?
I wish to display something, it was a long week with no achievements yet
What have you tried so far?
Make the heap bigger
Making the stack bigger
Navigating the very complex code with no evidence of what is happening
Code to reproduce
Here is the log until program stops doing anything useful
[User] (0.000, +0) main: ((Bismillah, a New Fresh Start)) main.c:58
[Info] (0.004, +4) lv_init: begin lv_init.c:139
[Info] (0.001, +1) lv_obj_create: begin lv_obj.c:100
[Trace] (0.005, +4) lv_obj_class_create_obj: Creating object with eac0 class on (nil) parent lv_obj_class.c:48
[Trace] (0.014, +9) lv_obj_class_create_obj: creating a screen lv_obj_class.c:57
[Trace] (0.021, +7) lv_obj_constructor: begin lv_obj.c:320
[Trace] (0.027, +6) lv_obj_constructor: finished lv_obj.c:349
[Info] (0.032, +5) lv_obj_create: begin lv_obj.c:100
[Trace] (0.036, +4) lv_obj_class_create_obj: Creating object with eac0 class on (nil) parent lv_obj_class.c:48
[Trace] (0.046, +10) lv_obj_class_create_obj: creating a screen lv_obj_class.c:57
[Trace] (0.054, +8) lv_obj_constructor: begin lv_obj.c:320
[Trace] (0.059, +5) lv_obj_constructor: finished lv_obj.c:349
[Info] (0.064, +5) lv_obj_create: begin lv_obj.c:100
[Trace] (0.069, +5) lv_obj_class_create_obj: Creating object with eac0 class on (nil) parent lv_obj_class.c:48
[Trace] (0.079, +10) lv_obj_class_create_obj: creating a screen lv_obj_class.c:57
[Trace] (0.086, +7) lv_obj_constructor: begin lv_obj.c:320
[Trace] (0.091, +5) lv_obj_constructor: finished lv_obj.c:349
[Info] (0.097, +6) lv_obj_create: begin lv_obj.c:100
[Trace] (0.101, +4) lv_obj_class_create_obj: Creating object with eac0 class on (nil) parent lv_obj_class.c:48
[Trace] (0.111, +10) lv_obj_class_create_obj: creating a screen lv_obj_class.c:57
[Trace] (0.118, +7) lv_obj_constructor: begin lv_obj.c:320
[Trace] (0.123, +5) lv_obj_constructor: finished lv_obj.c:349
[Info] (0.639, +516) lv_obj_create: begin lv_obj.c:100
[Trace] (0.643, +4) lv_obj_class_create_obj: Creating object with eac0 class on (nil) parent lv_obj_class.c:48
[Trace] (0.652, +9) lv_obj_class_create_obj: creating a screen lv_obj_class.c:57
[Trace] (0.659, +7) lv_obj_constructor: begin lv_obj.c:320
[Trace] (0.665, +6) lv_obj_constructor: finished lv_obj.c:349
[Info] (0.670, +5) lv_button_create: begin lv_button.c:50
[Trace] (0.675, +5) lv_obj_class_create_obj: Creating object with f07a class on 575e parent lv_obj_class.c:48
[Trace] (0.685, +10) lv_obj_class_create_obj: creating normal object lv_obj_class.c:81
[Trace] (0.693, +8) lv_obj_constructor: begin lv_obj.c:320
[Trace] (0.698, +5) lv_obj_constructor: finished lv_obj.c:349
[Trace] (0.703, +5) lv_button_constructor: begin lv_button.c:63
[Trace] (0.709, +6) lv_button_constructor: finished lv_button.c:68
[Info] (0.715, +6) lv_label_create: begin lv_label.c:83
[Trace] (0.720, +5) lv_obj_class_create_obj: Creating object with dbe4 class on 575e parent lv_obj_class.c:48
[Trace] (0.729, +9) lv_obj_class_create_obj: creating normal object lv_obj_class.c:81
[Trace] (0.737, +8) lv_obj_constructor: begin lv_obj.c:320
[Trace] (0.742, +5) lv_obj_constructor: finished lv_obj.c:349
[Trace] (0.747, +5) lv_label_constructor: begin lv_label.c:623
[Trace] (0.753, +6) lv_label_constructor: finished lv_label.c:650
[Info] (0.760, +7) lv_slider_create: begin lv_slider.c:68
[Trace] (0.764, +4) lv_obj_class_create_obj: Creating object with f362 class on 575e parent lv_obj_class.c:48
[Trace] (0.774, +10) lv_obj_class_create_obj: creating normal object lv_obj_class.c:81
[Trace] (0.782, +8) lv_obj_constructor: begin lv_obj.c:320
[Trace] (0.786, +4) lv_obj_constructor: finished lv_obj.c:349
[Trace] (0.792, +6) lv_bar_constructor: begin lv_bar.c:228
[Trace] (0.798, +6) lv_bar_constructor: finished lv_bar.c:249
[Info] (0.803, +5) lv_obj_create: begin lv_obj.c:100
[Trace] (0.807, +4) lv_obj_class_create_obj: Creating object with eac0 class on (nil) parent lv_obj_class.c:48
[Trace] (0.817, +10) lv_obj_class_create_obj: creating a screen lv_obj_class.c:57
[Trace] (0.825, +8) lv_obj_constructor: begin lv_obj.c:320
[Trace] (0.830, +5) lv_obj_constructor: finished lv_obj.c:349
[Trace] (0.835, +5) lv_timer_handler: begin lv_timer.c:65
[Trace] (0.840, +5) lv_timer_exec: calling timer callback: 39a lv_timer.c:298
[Trace] (0.847, +7) _lv_display_refr_timer: begin lv_refr.c:327
[Trace] (0.852, +5) lv_obj_update_layout: Layout update begin lv_obj_pos.c:301
[Trace] (0.862, +10) lv_obj_update_layout: Layout update end lv_obj_pos.c:304
[Trace] (0.867, +5) lv_obj_update_layout: Layout update begin lv_obj_pos.c:301
[Trace] (0.875, +8) lv_obj_update_layout: Layout update end lv_obj_pos.c:304
[Trace] (0.881, +6) lv_obj_update_layout: Layout update begin lv_obj_pos.c:301
[Trace] (0.888, +7) lv_obj_update_layout: Layout update end lv_obj_pos.c:304
[Trace] (0.895, +7) lv_obj_update_layout: Layout update begin lv_obj_pos.c:301
[Trace] (0.902, +7) lv_obj_update_layout: Layout update end lv_obj_pos.c:304
[Trace] (0.908, +6) lv_obj_update_layout: Layout update begin lv_obj_pos.c:301
[Trace] (0.915, +7) lv_obj_update_layout: Layout update end lv_obj_pos.c:304
[Trace] (0.922, +7) wait_for_flushing: begin lv_refr.c:1076
[Trace] (0.928, +6) wait_for_flushing: end lv_refr.c:1090