Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using latest LVGL 9.2 has non working Dave2D #15

Open
FloHomi opened this issue Sep 5, 2024 · 7 comments
Open

Using latest LVGL 9.2 has non working Dave2D #15

FloHomi opened this issue Sep 5, 2024 · 7 comments

Comments

@FloHomi
Copy link

FloHomi commented Sep 5, 2024

Hi,
I would like to use LVGL 9.2 with the RA8D1.
The LVGL version, used in this project, works somewhat okay. But some bugs and and missing features are leading to the wish to be able to ugrade the LVGL version.
The problem is, that I am not able to, due to massive amounts of errors that occure.
I simply replaced the LVGL folder with the 9.2 one. Is that wrong, and or does it need to be done way differently?
Thank you for your help!
Florian

@kisvegabor
Copy link
Member

Hi,

Please copy the errors here.

@FloHomi
Copy link
Author

FloHomi commented Sep 6, 2024

Yeah Sorry,
I managed to eliminate most of them by now. I think by updating the lv_config.h file.
It does still throw these errors:

C:/Users/USER/AppData/Local/Programs/Renesas/RA/e2studio_v2024-04_fsp_v5.3.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld.exe: ./Library/lvgl/src/osal/lv_freertos.o: in function lv_freertos_task_switch_in': C:/Projects/.../Code/Library/lvgl/src/osal/lv_freertos.c:392: multiple definition of lv_freertos_task_switch_in'; ./src/LVGL_thread_entry.o:C:\Projects\Hobby 7 Zoll Display\SW\Hobby_7zoll_Display\Code\IDE\e2studio\Debug/../src/LVGL_thread_entry.c:30: first defined here
C:/Users/USER/AppData/Local/Programs/Renesas/RA/e2studio_v2024-04_fsp_v5.3.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld.exe: ./Library/lvgl/src/osal/lv_freertos.o: in function lv_freertos_task_switch_out': C:/Projects/.../Code/Library/lvgl/src/osal/lv_freertos.c:400: multiple definition of lv_freertos_task_switch_out'; ./src/LVGL_thread_entry.o:C:\Projects\Hobby 7 Zoll Display\SW\Hobby_7zoll_Display\Code\IDE\e2studio\Debug/../src/LVGL_thread_entry.c:44: first defined here
C:/Users/USER/AppData/Local/Programs/Renesas/RA/e2studio_v2024-04_fsp_v5.3.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld.exe: ./Library/lvgl/src/osal/lv_freertos.o: in function lv_os_get_idle_percent': C:/Projects/.../Code/Library/lvgl/src/osal/lv_freertos.c:407: multiple definition of lv_os_get_idle_percent'; ./src/LVGL_thread_entry.o:C:\Projects\Hobby 7 Zoll Display\SW\Hobby_7zoll_Display\Code\IDE\e2studio\Debug/../src/LVGL_thread_entry.c:58: first defined here
C:/Users/USER/AppData/Local/Programs/Renesas/RA/e2studio_v2024-04_fsp_v5.3.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld.exe: ./Library/lvgl/src/osal/lv_freertos.o: in function prvMutexInit': C:/Projects/.../Code/Library/lvgl/src/osal/lv_freertos.c:438:(.text.prvMutexInit+0x8): undefined reference to xSemaphoreCreateRecursiveMutex'

I uncommented the lv_freertos_task_switch_in, lv_freertos_task_switch_out, lv_os_get_idle_percent in LVGL_Thread_entry.

and that left me with only the mutex one, which I do not understand enought...
after setting it for testing to NULL, it does not create any more errors. Not sure if the project will run thou.

pxMutex->xMutex = NULL;//xSemaphoreCreateRecursiveMutex();

Best regards
Florian

@FloHomi
Copy link
Author

FloHomi commented Sep 6, 2024

Oh I forgot, that I disabled #define LV_USE_DRAW_DAVE2D 1
If it is set to 1, it throws 450 errors, hard to tell what the start of them is...

some of them:
'lv_draw_dave2d_draw_letter_cb' undeclared (first use in this function) in lv_draw_dave2d_label.c
field 'base_unit' has incomplete type in lv_draw_dave2d.h
invalid use of incomplete typedef 'lv_draw_task_t' in lv_draw_dave2d.c

@FloHomi
Copy link
Author

FloHomi commented Sep 6, 2024

Yeah Sorry, I managed to eliminate most of them by now. I think by updating the lv_config.h file. It does still throw these errors:

C:/Users/USER/AppData/Local/Programs/Renesas/RA/e2studio_v2024-04_fsp_v5.3.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld.exe: ./Library/lvgl/src/osal/lv_freertos.o: in function lv_freertos_task_switch_in': C:/Projects/.../Code/Library/lvgl/src/osal/lv_freertos.c:392: multiple definition of lv_freertos_task_switch_in'; ./src/LVGL_thread_entry.o:C:\Projects\Hobby 7 Zoll Display\SW\Hobby_7zoll_Display\Code\IDE\e2studio\Debug/../src/LVGL_thread_entry.c:30: first defined here C:/Users/USER/AppData/Local/Programs/Renesas/RA/e2studio_v2024-04_fsp_v5.3.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld.exe: ./Library/lvgl/src/osal/lv_freertos.o: in function lv_freertos_task_switch_out': C:/Projects/.../Code/Library/lvgl/src/osal/lv_freertos.c:400: multiple definition of lv_freertos_task_switch_out'; ./src/LVGL_thread_entry.o:C:\Projects\Hobby 7 Zoll Display\SW\Hobby_7zoll_Display\Code\IDE\e2studio\Debug/../src/LVGL_thread_entry.c:44: first defined here C:/Users/USER/AppData/Local/Programs/Renesas/RA/e2studio_v2024-04_fsp_v5.3.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld.exe: ./Library/lvgl/src/osal/lv_freertos.o: in function lv_os_get_idle_percent': C:/Projects/.../Code/Library/lvgl/src/osal/lv_freertos.c:407: multiple definition of lv_os_get_idle_percent'; ./src/LVGL_thread_entry.o:C:\Projects\Hobby 7 Zoll Display\SW\Hobby_7zoll_Display\Code\IDE\e2studio\Debug/../src/LVGL_thread_entry.c:58: first defined here C:/Users/USER/AppData/Local/Programs/Renesas/RA/e2studio_v2024-04_fsp_v5.3.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld.exe: ./Library/lvgl/src/osal/lv_freertos.o: in function prvMutexInit': C:/Projects/.../Code/Library/lvgl/src/osal/lv_freertos.c:438:(.text.prvMutexInit+0x8): undefined reference to xSemaphoreCreateRecursiveMutex'

I uncommented the lv_freertos_task_switch_in, lv_freertos_task_switch_out, lv_os_get_idle_percent in LVGL_Thread_entry.

and that left me with only the mutex one, which I do not understand enought... after setting it for testing to NULL, it does not create any more errors. Not sure if the project will run thou.

pxMutex->xMutex = NULL;//xSemaphoreCreateRecursiveMutex();

Best regards Florian

That was because I missed that in lv_config.h os needs to be NONE
#define LV_USE_OS LV_OS_NONE

Non the less, the dave 2d problem remains.

@FloHomi FloHomi changed the title Use latest LVGL 9.2 has endless errors Using latest LVGL 9.2 has non working Dave2D Sep 11, 2024
@kisvegabor
Copy link
Member

I've just fixed these in master. Could you check if you still see any error? FreeRTOS should work too.

@FloHomi
Copy link
Author

FloHomi commented Sep 17, 2024

FreeRTOS now works! Thanks as always :)
#define LV_USE_DRAW_DAVE2D 1 still throws lots of errors. Maybe there is a missing settings in lv_config.h on my side?...
I set LV_USE_DRAW_SW 0 and DAVE2D 1 to test if that is a problem, but then I get:

C:/Projects/ 7 Zoll Display/SW/_7zoll_Display/Code/Library/LVGL/src/draw/sw/lv_draw_sw_mask_private.h:39:5: error: unknown type name 'lv_draw_sw_mask_type_t'
39 | lv_draw_sw_mask_type_t type;
| ^~~~~~~~~~~~~~~~~~~~~~
C:/Projects/ 7 Zoll Display/SW/_7zoll_Display/Code/Library/LVGL/src/draw/sw/lv_draw_sw_mask_private.h:54:9: error: unknown type name 'lv_draw_sw_mask_line_side_t'
54 | lv_draw_sw_mask_line_side_t side : 2;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Building file: C:/Projects/ 7 Zoll Display/SW/_7zoll_Display/Code/Library/LVGL/src/widgets/property/lv_keyboard_properties.c
Building file: C:/Projects/ 7 Zoll Display/SW/_7zoll_Display/Code/Library/LVGL/src/widgets/property/lv_obj_properties.c
C:/Projects/ 7 Zoll Display/SW/_7zoll_Display/Code/Library/LVGL/src/draw/sw/lv_draw_sw_mask_private.h:133:85: error: 'LV_DRAW_SW_CIRCLE_CACHE_SIZE' undeclared here (not in a function)
133 | typedef lv_draw_sw_mask_radius_circle_dsc_t lv_draw_sw_mask_radius_circle_dsc_arr_t[LV_DRAW_SW_CIRCLE_CACHE_SIZE];

If both are enabled I get the 450 errors.

image

Did you try to enable Dave2D? because it is set to 0 in the current master.

I am sorry to not be able to solve it myself, but I am more of a HW guy and SW is not my strongest point, especially such big things as the LVGL code.

@kisvegabor
Copy link
Member

Ah, sorry. Just pushed a fix.

FYI, In my test for some reason DAVE2D worked only in DIRCET_MODE.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants