Description
Hi everybody! I’m a newbie here. I’ve tried LVGL on the simulator and it looks amazing, so I’m trying to see if it’s possible to make it run on a Renesas RL78 R5F100LL.
The problem is that I’m stuck during the compilation phase at an error given by the compiler, which reports a lot of “shift count is too large” errors. I’m using IAR Embedded Workbench for RL78.
By looking at the source I can see why, for example if I open the file lvgl/src/core/lv_obj.h
there’s an enumeration which shifts 1s up till 30 position:
enum {
LV_OBJ_FLAG_HIDDEN = (1 << 0), /**< Make the object hidden. (Like it wasn't there at all)*/
LV_OBJ_FLAG_CLICKABLE = (1 << 1), /**< Make the object clickable by the input devices*/
LV_OBJ_FLAG_CLICK_FOCUSABLE = (1 << 2), /**< Add focused state to the object when clicked*/
LV_OBJ_FLAG_CHECKABLE = (1 << 3), /**< Toggle checked state when the object is clicked*/
LV_OBJ_FLAG_SCROLLABLE = (1 << 4), /**< Make the object scrollable*/
LV_OBJ_FLAG_SCROLL_ELASTIC = (1 << 5), /**< Allow scrolling inside but with slower speed*/
LV_OBJ_FLAG_SCROLL_MOMENTUM = (1 << 6), /**< Make the object scroll further when "thrown"*/
LV_OBJ_FLAG_SCROLL_ONE = (1 << 7), /**< Allow scrolling only one snapable children*/
LV_OBJ_FLAG_SCROLL_CHAIN = (1 << 8), /**< Allow propagating the scroll to a parent*/
LV_OBJ_FLAG_SCROLL_ON_FOCUS = (1 << 9), /**< Automatically scroll object to make it visible when focused*/
LV_OBJ_FLAG_SNAPABLE = (1 << 10), /**< If scroll snap is enabled on the parent it can snap to this object*/
LV_OBJ_FLAG_PRESS_LOCK = (1 << 11), /**< Keep the object pressed even if the press slid from the object*/
LV_OBJ_FLAG_EVENT_BUBBLE = (1 << 12), /**< Propagate the events to the parent too*/
LV_OBJ_FLAG_GESTURE_BUBBLE = (1 << 13), /**< Propagate the gestures to the parent*/
LV_OBJ_FLAG_ADV_HITTEST = (1 << 14), /**< Allow performing more accurate hit (click) test. E.g. consider rounded corners.*/
LV_OBJ_FLAG_IGNORE_LAYOUT = (1 << 15), /**< Make the object position-able by the layouts*/
LV_OBJ_FLAG_FLOATING = (1 << 16), /**< Do not scroll the object when the parent scrolls and ignore layout*/
LV_OBJ_FLAG_LAYOUT_1 = (1 << 23), /** Custom flag, free to use by layouts*/
LV_OBJ_FLAG_LAYOUT_2 = (1 << 24), /** Custom flag, free to use by layouts*/
LV_OBJ_FLAG_WIDGET_1 = (1 << 25), /** Custom flag, free to use by widget*/
LV_OBJ_FLAG_WIDGET_2 = (1 << 26), /** Custom flag, free to use by widget*/
LV_OBJ_FLAG_USER_1 = (1 << 27), /** Custom flag, free to use by user*/
LV_OBJ_FLAG_USER_2 = (1 << 28), /** Custom flag, free to use by user*/
LV_OBJ_FLAG_USER_3 = (1 << 29), /** Custom flag, free to use by user*/
LV_OBJ_FLAG_USER_4 = (1 << 30), /** Custom flag, free to use by user*/
};
This code assumes that an int is 32-bit I guess, but the library is advertised to support 16-bit architecture, right?
In the porting documentation there’s no reference about the 16-bit vs 32-bit CPU architecture and I couldn’t find anyone with this problem. Am I missing something?
Thanks
What MCU/Processor/Board and compiler are you using?
Custom PCB board with Renesas RL78 R5F100LL 16-bit MCU
What do you want to achieve?
Porting LVGL and see if it runs on it.
What have you tried so far?
Compile the source using IAR EW RL78.