Files
libretiny/docs/TODO.md
2023-05-24 11:55:07 +02:00

64 lines
1.9 KiB
Markdown

# TODO list
## General
### Environment stability
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.)
- remove all network protocol client/server implementations from SDKs (mDNS, HTTP, DNS, etc.)
### New families
- BL602
- RTL8710A
- RTL8720C
- RTL8720D
- W600 and/or W800
- LN8825
- BK7231Q
- host-native family
### Tools
- write OpenOCD flashers, using uf2ota library + FAL for partitions (in ltchiptool repository)
### Development
- 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)
### Serial
- configuration of RX/TX pins
- SoftwareSerial library - receiving + Beken family
### Other
- 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
## BK7231
- fix WiFi on BK7231N, test other functionality
- fix SSL (mbedTLS)
- I2C (Wire)
- SPI
- BLE
## RTL8710B
- take all stdio functions from stdio.h
- rewrite most of Wiring (it was copied from `ambd_arduino`, and is ugly)