New kernel drivers, filesystem API, and more (#513)

* **New Features**
  * BMI270 6-axis IMU driver added; new unified filesystem abstraction for mounted filesystems.
  * Public Wi‑Fi API surface (no implementation yet)
  * SDMMC driver added (kernel drive$)
  * expanded GPIO interrupt/callback support
* **Improvements**
  * M5Stack Tab5: revamped GPIO/power initialization and IMU integration.
  * LVGL updates including device fontSize configuration.
  * Updated all code related to SD card device/fs handling
  * Rename LilyGO T-HMI S3 to LilyGO T-HMI
* **Bug Fixes**
  * Simplified and consolidated SD card handling and mount discovery.
This commit is contained in:
Ken Van Hoeylandt
2026-03-07 16:13:39 +01:00
committed by GitHub
parent 2de35b2d2d
commit aa7530e515
88 changed files with 2792 additions and 846 deletions
+18 -1
View File
@@ -5,6 +5,19 @@
#include <bits/functexcept.h>
#include <tactility/module.h>
extern "C" {
// std::map / std::set red-black tree non-template helpers.
// We use the mangled names directly (same pattern as string.cpp) to avoid
// ambiguity from the overloaded const/non-const variants in stl_tree.h.
void* _ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(void*);
void* _ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(void*);
void _ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(bool, void*, void*, void*);
}
const esp_elfsym stl_symbols[] = {
// Note: You have to use the mangled names here
{ "_ZSt17__throw_bad_allocv", (void*)&(std::__throw_bad_alloc) },
@@ -12,7 +25,11 @@ const esp_elfsym stl_symbols[] = {
{ "_ZSt25__throw_bad_function_callv", (void*)&(std::__throw_bad_function_call) },
{ "_ZSt20__throw_length_errorPKc", (void*)&(std::__throw_length_error) },
{ "_ZSt19__throw_logic_errorPKc", (void*)&std::__throw_logic_error },
// { "", (void*)&(std::) },
{ "_ZSt24__throw_out_of_range_fmtPKcz", (void*)&std::__throw_out_of_range_fmt },
// std::map / std::set (red-black tree internals)
DEFINE_MODULE_SYMBOL(_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base),
DEFINE_MODULE_SYMBOL(_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base),
DEFINE_MODULE_SYMBOL(_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_),
// delimiter
ESP_ELFSYM_END
};
+26
View File
@@ -33,6 +33,7 @@
#include <cstring>
#include <ctime>
#include <ctype.h>
#include <driver/ledc.h>
#include <getopt.h>
#include <dirent.h>
#include <esp_log.h>
@@ -44,6 +45,7 @@
#include <lwip/sockets.h>
#include <lwip/netdb.h>
#include <lwip/inet.h>
#include <miniz.h>
#include <sys/select.h>
#include <locale.h>
#include <setjmp.h>
@@ -221,6 +223,7 @@ const esp_elfsym main_symbols[] {
ESP_ELFSYM_EXPORT(strtod),
ESP_ELFSYM_EXPORT(strrchr),
ESP_ELFSYM_EXPORT(strtol),
ESP_ELFSYM_EXPORT(strtoul),
ESP_ELFSYM_EXPORT(strcspn),
ESP_ELFSYM_EXPORT(strncat),
ESP_ELFSYM_EXPORT(strpbrk),
@@ -393,6 +396,7 @@ const esp_elfsym main_symbols[] {
ESP_ELFSYM_EXPORT(gpio_config),
ESP_ELFSYM_EXPORT(gpio_get_level),
ESP_ELFSYM_EXPORT(gpio_set_level),
ESP_ELFSYM_EXPORT(gpio_reset_pin),
// driver/i2s_common.h
ESP_ELFSYM_EXPORT(i2s_new_channel),
ESP_ELFSYM_EXPORT(i2s_del_channel),
@@ -409,8 +413,30 @@ const esp_elfsym main_symbols[] {
ESP_ELFSYM_EXPORT(i2s_channel_reconfig_std_clock),
ESP_ELFSYM_EXPORT(i2s_channel_reconfig_std_slot),
ESP_ELFSYM_EXPORT(i2s_channel_reconfig_std_gpio),
// miniz.h
ESP_ELFSYM_EXPORT(tinfl_decompress),
ESP_ELFSYM_EXPORT(tinfl_decompress_mem_to_callback),
ESP_ELFSYM_EXPORT(tinfl_decompress_mem_to_mem),
// ledc
ESP_ELFSYM_EXPORT(ledc_update_duty),
ESP_ELFSYM_EXPORT(ledc_set_freq),
ESP_ELFSYM_EXPORT(ledc_channel_config),
ESP_ELFSYM_EXPORT(ledc_set_duty),
ESP_ELFSYM_EXPORT(ledc_set_fade),
ESP_ELFSYM_EXPORT(ledc_set_fade_with_step),
ESP_ELFSYM_EXPORT(ledc_set_fade_with_time),
ESP_ELFSYM_EXPORT(ledc_set_fade_step_and_start),
ESP_ELFSYM_EXPORT(ledc_set_fade_time_and_start),
ESP_ELFSYM_EXPORT(ledc_set_pin),
ESP_ELFSYM_EXPORT(ledc_timer_config),
ESP_ELFSYM_EXPORT(ledc_timer_pause),
ESP_ELFSYM_EXPORT(ledc_timer_resume),
ESP_ELFSYM_EXPORT(ledc_timer_rst),
// esp_heap_caps.h
ESP_ELFSYM_EXPORT(heap_caps_get_total_size),
ESP_ELFSYM_EXPORT(heap_caps_get_allocated_size),
ESP_ELFSYM_EXPORT(heap_caps_get_free_size),
ESP_ELFSYM_EXPORT(heap_caps_get_largest_free_block),
// delimiter
ESP_ELFSYM_END
};