Refactor LVGL code into kernel module (#472)

* **New Features**
  * Added a standalone LVGL module and enabled LVGL support in the simulator for richer local UI testing.

* **Refactor**
  * HAL and LVGL split into distinct modules; startup and device attach/detach flows reorganized for clearer lifecycle management.
  * Public APIs tightened with clearer nullability/documentation.

* **Bug Fixes**
  * More consistent LVGL start/stop and device attach/detach behavior for improved stability.
This commit is contained in:
Ken Van Hoeylandt
2026-02-01 22:57:45 +01:00
committed by GitHub
parent 3fe1dc0312
commit 9f721e6655
135 changed files with 1553 additions and 667 deletions
-1
View File
@@ -14,5 +14,4 @@ add_test(NAME TactilityKernelTests COMMAND TactilityKernelTests)
target_link_libraries(TactilityKernelTests PUBLIC
TactilityKernel
PlatformPosix
hal-device
)
+3 -3
View File
@@ -167,10 +167,10 @@ TEST_CASE("device_is_ready should return true only when it is started") {
Driver driver = {
.name = "test_driver",
.compatible = compatible,
.startDevice = nullptr,
.stopDevice = nullptr,
.start_device = nullptr,
.stop_device = nullptr,
.api = nullptr,
.deviceType = nullptr,
.device_type = nullptr,
.owner = &module,
.driver_private = nullptr
};
@@ -33,10 +33,10 @@ static int stop(Device* device) {
static Driver integration_driver = {
.name = "integration_test_driver",
.compatible = (const char*[]) { "integration", nullptr },
.startDevice = start,
.stopDevice = stop,
.start_device = start,
.stop_device = stop,
.api = nullptr,
.deviceType = nullptr,
.device_type = nullptr,
.owner = &module,
.driver_private = nullptr,
};
+6 -6
View File
@@ -35,10 +35,10 @@ TEST_CASE("driver_is_compatible should return true if a compatible value is foun
Driver driver = {
.name = "test_driver",
.compatible = compatible,
.startDevice = nullptr,
.stopDevice = nullptr,
.start_device = nullptr,
.stop_device = nullptr,
.api = nullptr,
.deviceType = nullptr,
.device_type = nullptr,
.owner = &module,
.driver_private = nullptr
};
@@ -52,10 +52,10 @@ TEST_CASE("driver_find should only find a compatible driver when the driver was
Driver driver = {
.name = "test_driver",
.compatible = compatible,
.startDevice = nullptr,
.stopDevice = nullptr,
.start_device = nullptr,
.stop_device = nullptr,
.api = nullptr,
.deviceType = nullptr,
.device_type = nullptr,
.owner = &module,
.driver_private = nullptr
};
-6
View File
@@ -57,9 +57,3 @@ int main(int argc, char** argv) {
return data.result;
}
extern "C" {
// Required for FreeRTOS
void vAssertCalled(unsigned long line, const char* const file) {
__assert_fail("assert failed", file, line, "");
}
}