请问裸机f1c100s+lvgl可以屏幕旋转90°吗,我限制已经实现了lvgl裸机了,屏幕分辨率是1280*720,但是屏幕是竖屏,不知道怎么样才可以改成横屏,屏幕的驱动器本身不支持90°旋转,,lvgl用的是6.1 ,
离线
请问有lvgl8.0+rtt的f1c200s历程吗,我一直搞不定,一直报错 6.1.1已经跑通了
8.0出错如下
\ | /
- RT - Thread Operating System
/ | \ 4.0.1 build Nov 21 2021
2006 - 2019 Copyright by rt-thread team
[SFUD] Find a Winbond flash chip. Size is 16777216 bytes.
[SFUD] gd25qxx flash device is initialize success.
Start...
PERIPH_get_pll_clk:600M
CPU_get_clk:704M
AHB_get_clk:200M
APB_get_clk:100M
[2021-11-21 02:10:23.319]# RECV ASCII>
[Thread]Uart2Rec Created.
[Thread]VirCursor Created.
msh />[Thread]GUIThread Created.
lv_example_switch_1
thrd_LVGL_Loop1
Execption:
r00:0x4046af5a r01:0xe9ec686c r02:0x804bd2dc r03:0x00000000
r04:0x800b0a5c r05:0x800b0368 r06:0x000001df r07:0x000001e0
r08:0x00000000 r09:0x00000000 r10:0x8080393c
fp :0x000001e0 ip :0x000000cd
sp :0x80000594 lr :0x804bd75c pc :0x804bd75c
cpsr:0xa0000013
undefined instruction
thread - GUI_Lvgl stack:
thread pri status sp stack size max used left tick error
-------- --- ------- ---------- ---------- ------ ---------- ---
GUI_Lvgl 11 ready 0x00000044 0x00001000 07% 0x00000012 000
VirCurso 29 suspend 0x0000008c 0x00000800 06% 0x00000014 000
Uart2Rec 10 suspend 0x000000ac 0x00000800 08% 0x00000014 000
tshell 20 suspend 0x00000134 0x00001000 07% 0x0000000a 000
mmcsd_de 22 suspend 0x000000c8 0x00000800 09% 0x00000014 000
tidle0 31 ready 0x00000050 0x00000100 46% 0x0000000e 000
main 10 close
[2021-11-21 02:10:23.380]# RECV ASCII>
0x00000060 0x00000800 26% 0x00000007 000
shutdown...
出错代码在这个地方
while (1)
{
rt_kprintf("thrd_LVGL_Loop1\n");
lv_task_handler();
rt_thread_delay(5);
rt_kprintf("thrd_LVGL_Loop2\n");
}
}
""lv_task_handler();""进入到这里就死了,跟踪进去,是在这个地方死机的
do {
timer_deleted = false;
timer_created = false;
LV_GC_ROOT(_lv_timer_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_timer_ll));
while(LV_GC_ROOT(_lv_timer_act)) {
/*The timer might be deleted if it runs only once ('repeat_count = 1')
*So get next element until the current is surely valid*/
next = _lv_ll_get_next(&LV_GC_ROOT(_lv_timer_ll), LV_GC_ROOT(_lv_timer_act));
if(lv_timer_exec(LV_GC_ROOT(_lv_timer_act))) {
/*If a timer was created or deleted then this or the next item might be corrupted*/
if(timer_created || timer_deleted) {
TIMER_TRACE("Start from the first timer again because a timer was created or deleted");
break;
}
}
LV_GC_ROOT(_lv_timer_act) = next; /*Load the next timer*/
}
这里 if(lv_timer_exec(LV_GC_ROOT(_lv_timer_act)))没返回死机了
离线