d3439f6f45
- Disable BlueTooth driver by default, to ensure it doesn't allocate memory - Update BlueTooth settings app behaviour to make sure it starts/stops the devices - Disable SPI RAM usage for ST7789 as it broke App Hub - Reduce T-Display and T-Deck display buffers from 1/3rd to 1/10th of resolution - Enabled dynamic buffers for MbedTLS to optimize memory - TLS 1.3 did not work with dynamic buffers: downgrade to 1.2 for now - WiFi is now enabled from the Boot app callback to the WiFi service, instead of the WiFi service start() function. This avoids a lockup when WiFi is started by the service while the Boot app is updating the WiFi settings.
TactilityKernel
TactilityKernel is the core component of the Tactility project, providing a hardware abstraction layer (HAL) and essential kernel services for embedded systems.
Features
- Device and Driver Model: A flexible system for managing hardware devices and their corresponding drivers.
- Peripheral Support: Standard interfaces for common peripherals:
- GPIO (General Purpose Input/Output)
- I2C (Inter-Integrated Circuit)
- I2S (Inter-IC Sound)
- SPI (Serial Peripheral Interface)
- UART (Universal Asynchronous Receiver-Transmitter)
- Concurrency Primitives: Built-in support for multi-threaded environments, including:
- Threads and Dispatchers
- Mutexes and Recursive Mutexes
- Event Groups
- Timers
- Module System: Support for loadable modules that can export symbols and provide runtime-extensible functionality.
- Device Tree Integration: Utilizes a devicetree-like system for hardware configuration and initialization.
- Cross-Platform: Designed to run on both embedded platforms (such as ESP32) and desktop environments (Linux) for simulation and testing.