Description
Currently created on several screens
There is an object for each screen
There are many image objects on the unresponsive screen.
(About 30 )
Screen operating normally: A
Problem screen: B
No response when going from A to B using external button
After that, it works normally when you return to the C screen
However, if I reduce the number of image objects on screen B to 24 and test, screen B responds.
Is it due to insufficient memory?
What MCU/Processor/Board and compiler are you using?
- TI(AM57xx)
What LVGL version are you using?
- 6.0
What do you want to achieve?
- Normal operation between each screen
What have you tried so far?
- When first started, all screens and objects are created and started.
I did not hide the screen and objects
I thought that was the problem, so I made the screen and something to hide
But I get a memory error.
error message
Data abort exception at USER tUser(82767EB0)
DFSR: 00000005, Read, Translation Section, Domain: 0000
FAR: 0000001C
PC: 801134B4 LR: 80032ABC SP: 82769054
PSR: 00000013(nzcvqjeaift IT: 0 GE:3 SVC32)
R00: 00000000 00000001 80CF8AFC 00000010 8071C0A8
R05: 00000002 00000000 00000000 00000000 00000000
R10: 00000000 00000000 80CF8BA0 82769054 80032ABC
Backtrace:
#01 00000000 lv_obj_set_hidden() + 0
Code to reproduce
/You code here/
/*create screen*/
scr_1 = lv_obj_create(NULL,NULL);
scr_2 = lv_obj_create(NULL,NULL);
....
scr_10 = lv_obj_create(NULL,NULL);
/*create img*/
img1 = lv_img_create(scr_1,NULL);
img2 = lv_img_create(scr_2,NULL);
...
img10 = lv_img_create(scr_10,NULL);
/*Create object for each screen*/
test_label1 = lv_label_create(scr_1,NULL);
test_label2 = lv_label_create(scr_1,NULL);
test_label3 = lv_label_create(scr_1,NULL);
....
test_img1 = lv_img_create(scr_1,NULL);
test_img2 = lv_img_create(scr_1,NULL);
test_img3 = lv_img_create(scr_1,NULL);
switch(button){
case 1 : lv_scr_load(scr_1);
/*Object loading function required for each screen*/
lv_scr1_sub();
break;
case 2 : lv_scr_load(scr_2);
/*Object loading function required for each screen*/
lv_scr2_sub();
break;
.....
case 10 : lv_scr_load(scr_10);
/*Object loading function required for each screen*/
lv_scr10_sub();
break;
}