-
Notifications
You must be signed in to change notification settings - Fork 166
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
Micropython update #2
Conversation
… Update makefile to generate lv_mpy.c automatically under /build dir. Use make all to build
…hread safe. It will be called from mp_lv_task_handler which is called periodically from the same thread Micropython is running. Also - update lvgl submodule
@amirgon I think you should rename the sample |
@embeddedt Renamed. |
Thank you for the update.
It's quite reasonable, great idea!
No problem, it's still an experimental version.
Yes, we will see. After the release let"s open a an issue for
Yes, please! |
@kisvegabor I would like to rename private functions/structs, but I'm not sure which should really be private (never allow user access) and which should still be available for the user in some cases. |
Basically, everything in the header files is public. As I see now only the global symbols (things form the header files) are added to the binding. Before renaming let's merge the current version to see these updates in action. In addition, the renaming might cause conflicts so better to have a "stable base". |
In littlevgl organization, we created separate repos for each project. I will move this one there too once this PR is merged. So first we should merge the updates for |
…rely on lvgl.h instead of including the objects directly. This adds themes to the generated binding
…E_LV_TILEVIEW USE_LV_TABLE USE_LV_SPINBOX USE_LV_CANVAS because there are unimplemented functions there which causes lv_mpy.c (which wrap them) to fail linking
…cropython bindings and lvgl submodule (Micropython bindings was split from lvgl).
asan considers that memcmp(p, q, N) is permitted to access N bytes at each of p and q, even for values of p and q that have a difference earlier. Accessing additional values is frequently done in practice, reading 4 or more bytes from each input at a time for efficiency, so when completing "non_exist<TAB>" in the repl, this causes a diagnostic: ==16938==ERROR: AddressSanitizer: global-buffer-overflow on address 0x555555cd8dc8 at pc 0x7ffff726457b bp 0x7fffffffda20 sp 0x7fff READ of size 9 at 0x555555cd8dc8 thread T0 #0 0x7ffff726457a (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xb857a) lvgl#1 0x555555b0e82a in mp_repl_autocomplete ../../py/repl.c:301 lvgl#2 0x555555c89585 in readline_process_char ../../lib/mp-readline/re lvgl#3 0x555555c8ac6e in readline ../../lib/mp-readline/readline.c:513 lvgl#4 0x555555b8dcbd in do_repl /home/jepler/src/micropython/ports/uni lvgl#5 0x555555b90859 in main_ /home/jepler/src/micropython/ports/unix/ lvgl#6 0x555555b90a3a in main /home/jepler/src/micropython/ports/unix/m lvgl#7 0x7ffff619a09a in __libc_start_main ../csu/libc-start.c:308 lvgl#8 0x55555595fd69 in _start (/home/jepler/src/micropython/ports/uni 0x555555cd8dc8 is located 0 bytes to the right of global variable 'import_str' defined in '../../py/repl.c:285:23' (0x555555cd8dc0) of size 8 'import_str' is ascii string 'import ' Signed-off-by: Jeff Epler <jepler@gmail.com>
@kisvegabor The main things we discussed are implemented here:
gen_mpy.py
, generates the bindings and builds them automatically. The commitedlv_mpy.c
remains as an example, it is not part of the build and doesn't have to be aligned withlv_conf.h
. The actual generatedlv_mpy.c
is generated underbuild
directory.Still open issues:
ll_...
functions). I suggest adding a single underscore to any "private" function or struct.lv_line_set_points
or updating structs such aslv_chart_series_t
). I'll add this in the future, I plan to allow the user pass a native python list and convert it automatically, but I still need to think about it.static inline lv_color_t lv_get_color(int color_id)
. The advantage of using inline functions is that the compiler optimizes them down to a constant when possible, so they cost same as using the color macros directly (same in program-memory, data-ram and performance terms)So - in order to release this on the
v5.3
, what do you need? Should I merge the changes tov5.3
branch and send you a PR to lvgl repo?