Implement support for ESP32 C6 and P4 SOCs (#421)

- Implement generic ESP32 devices
- Updated GitHub Actions to first build the SDKs. These are now based on the generic device implementations and the build act as a filter before compiling the dozens of other devices. It should save on resources when boards fail to compile.
- Adapted code to C6 and P4 differences, heavily borrowed from from https://github.com/ByteWelder/Tactility/pull/394 written by @marciogranzotto, with some changes of my own
- Updated `device.py` to make the `[display]` section optional
This commit is contained in:
Ken Van Hoeylandt
2025-11-24 19:28:07 +01:00
committed by GitHub
parent fec8033fd7
commit b565d56029
33 changed files with 279 additions and 72 deletions
+15 -1
View File
@@ -1,3 +1,7 @@
#ifdef ESP_PLATFORM
#include <sdkconfig.h>
#endif
#include <Tactility/Tactility.h>
#include <Tactility/TactilityConfig.h>
@@ -38,6 +42,8 @@ namespace service {
namespace sdcard { extern const ServiceManifest manifest; }
#ifdef ESP_PLATFORM
namespace development { extern const ServiceManifest manifest; }
#endif
#ifdef CONFIG_ESP_WIFI_ENABLED
namespace espnow { extern const ServiceManifest manifest; }
#endif
// Secondary (UI)
@@ -64,7 +70,9 @@ namespace app {
namespace applist { extern const AppManifest manifest; }
namespace appsettings { extern const AppManifest manifest; }
namespace boot { extern const AppManifest manifest; }
#ifdef CONFIG_ESP_WIFI_ENABLED
namespace chat { extern const AppManifest manifest; }
#endif
namespace development { extern const AppManifest manifest; }
namespace display { extern const AppManifest manifest; }
namespace files { extern const AppManifest manifest; }
@@ -135,8 +143,11 @@ static void registerInternalApps() {
addAppManifest(app::screenshot::manifest);
#endif
#ifdef ESP_PLATFORM
#ifdef CONFIG_ESP_WIFI_ENABLED
addAppManifest(app::chat::manifest);
#endif
#ifdef ESP_PLATFORM
addAppManifest(app::crashdiagnostics::manifest);
addAppManifest(app::development::manifest);
#endif
@@ -231,6 +242,9 @@ static void registerAndStartPrimaryServices() {
addService(service::wifi::manifest);
#ifdef ESP_PLATFORM
addService(service::development::manifest);
#endif
#ifdef CONFIG_ESP_WIFI_ENABLED
addService(service::espnow::manifest);
#endif
}