Do not publish any SDK functions, macros, defines and includes. Define only what's needed in LT's public headers (like Arduino.h
). Everything else is taken from sdk_extern.h
or WVariant.h
(TODO decide whether to keep WV public / make both private / get rid of WV and use sdk_extern only). Private headers are included by LT's .cpp units (maybe a dedicated private header that would include sdk_extern + Arduino.h).
Developers wanting to use SDK functions need to include them.
Explicit is better than implicit.
- consider moving to C++17 (GNU)? or any newer than C++11
- wrap all memory management functions (malloc, calloc, free, memset, etc.) and their vendor SDK counterparts to use FreeRTOS instead
- pretty much done for ambz and ambz2, Beken is yet left to do (
os_malloc()
etc.)
- pretty much done for ambz and ambz2, Beken is yet left to do (
- remove all network protocol client/server implementations from SDKs (mDNS, HTTP, DNS, etc.)
- BL602
- RTL8710A
- RTL8720C
- RTL8720D
- W600 and/or W800
- LN8825
- BK7231Q
- host-native family
- write OpenOCD flashers, using uf2ota library + FAL for partitions (in ltchiptool repository)
- write Contributor's Guide
- export LT cores in an Arduino IDE-compatible format (automatically - GitHub Actions)
- consider using precompiled SDK blobs for improved build speed (especially on e.g. Raspberry Pi)
- configuration of RX/TX pins
- SoftwareSerial library - receiving + Beken family
- implement Wire on BK, refactor the API and class
- watchdog API
Preferences
library- test/fix IPv6 on different families
- what is
PowerManagement
at all? probably useless -> remove
- fix WiFi on BK7231N, test other functionality
- fix SSL (mbedTLS)
- I2C (Wire)
- SPI
- BLE
- take all stdio functions from stdio.h
- rewrite most of Wiring (it was copied from
ambd_arduino
, and is ugly)