mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-08-17 23:55:04 +00:00
- Auto-select widgets in Launcher and apps with toolbars on devices without touch. - Improved USB HID input reliability, cleanup - Updated PSRAM settings to improve boot stability on supported devices. - Prevented duplicate Wi-Fi event subscriptions during screen rebuilds. - Updated docs - Fixes in WifiManage and WifiConnect - Reduced main task stack size - Moved USB HID stack size to PSRAM when available - app_manager_find_manifest() now returns a copy instead of a pointer
1.1 KiB
1.1 KiB
Architecture: Device/Driver/Module System (kernel layer, C API)
The kernel uses a Linux-inspired device model:
- Module (
struct Module): loadable unit that registers drivers, hardware and symbols. Lifecycle:module_construct→module_add→module_start. Each device board and platform is a module. - Driver (
struct Driver): binds to devices viacompatiblestrings (like devicetree). Hasstart_device/stop_devicecallbacks and anapipointer for type-specific operations. - Device (
struct Device): represents hardware. Lifecycle:device_construct→device_add→device_start. Has a parent-child tree, driver binding, and locking. - DeviceType (
struct DeviceType): enables discovering devices by category (e.g.DISPLAY_TYPE,TOUCH_TYPE,UART_CONTROLLER_TYPE).
Devices are defined via devicetree .dts files in each Devices/<id>/ folder. A custom devicetree compiler (Buildscripts/DevicetreeCompiler/compile.py) generates C code from these files. Each device folder also has a devicetree.yaml specifying dependencies and the .dts file.