From c734081a2acdae6e650599c4c50b9bc9c3f1c1c5 Mon Sep 17 00:00:00 2001 From: Ken Van Hoeylandt Date: Fri, 2 Jan 2026 21:25:36 +0100 Subject: [PATCH] Fixes --- Devices/unphone/Source/UnPhoneFeatures.cpp | 12 ++-- LICENSE.md | 2 +- TactilityC/Source/symbols/freertos.cpp | 71 +++++++++++++++++++++- 3 files changed, 78 insertions(+), 7 deletions(-) diff --git a/Devices/unphone/Source/UnPhoneFeatures.cpp b/Devices/unphone/Source/UnPhoneFeatures.cpp index ad473ae6..186d58e2 100644 --- a/Devices/unphone/Source/UnPhoneFeatures.cpp +++ b/Devices/unphone/Source/UnPhoneFeatures.cpp @@ -1,11 +1,12 @@ #include "UnPhoneFeatures.h" -#include #include +#include #include #include #include +#include #include namespace pin { @@ -36,8 +37,7 @@ static void IRAM_ATTR navButtonInterruptHandler(void* args) { xQueueSendFromISR(interruptQueue, &pinNumber, NULL); } -static int32_t buttonHandlingThreadMain(void* context) { - auto* interrupted = (bool*)context; +static int32_t buttonHandlingThreadMain(const bool* interrupted) { int pinNumber; while (!*interrupted) { if (xQueueReceive(interruptQueue, &pinNumber, portMAX_DELAY)) { @@ -99,7 +99,11 @@ bool UnPhoneFeatures::initNavButtons() { buttonHandlingThread.setName("unphone_buttons"); buttonHandlingThread.setPriority(tt::Thread::Priority::High); buttonHandlingThread.setStackSize(3072); - buttonHandlingThread.setCallback(buttonHandlingThreadMain, &buttonHandlingThreadInterruptRequest); + buttonHandlingThread.setMainFunction( + [this] { + return buttonHandlingThreadMain(&this->buttonHandlingThreadInterruptRequest); + } + ); buttonHandlingThread.start(); uint64_t pin_mask = diff --git a/LICENSE.md b/LICENSE.md index a3d02695..6021f367 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -7,7 +7,7 @@ The Tactility logo copyrights are owned by Ken Van Hoeylandt. Firmwares built from [the original repository](https://github.com/ByteWelder/Tactility) can be redistributed with the Tactility logo. For other usages, [contact me](https://kenvanhoeylandt.net). -Third party projects that were included in Tactility retain their licenses. +Third-party projects that were included in Tactility retain their licenses. # Tactility: Secondary License diff --git a/TactilityC/Source/symbols/freertos.cpp b/TactilityC/Source/symbols/freertos.cpp index b494b1cc..3d067a8a 100644 --- a/TactilityC/Source/symbols/freertos.cpp +++ b/TactilityC/Source/symbols/freertos.cpp @@ -8,14 +8,81 @@ #include const esp_elfsym freertos_symbols[] = { + // Task + ESP_ELFSYM_EXPORT(vTaskDelay), ESP_ELFSYM_EXPORT(vTaskDelete), + ESP_ELFSYM_EXPORT(vTaskDeleteWithCaps), + ESP_ELFSYM_EXPORT(vTaskSetTimeOutState), + ESP_ELFSYM_EXPORT(vTaskPrioritySet), + ESP_ELFSYM_EXPORT(vTaskSetTaskNumber), + ESP_ELFSYM_EXPORT(vTaskSetThreadLocalStoragePointer), + ESP_ELFSYM_EXPORT(vTaskSetThreadLocalStoragePointerAndDelCallback), + ESP_ELFSYM_EXPORT(vTaskGetInfo), ESP_ELFSYM_EXPORT(xTaskCreate), + ESP_ELFSYM_EXPORT(xTaskAbortDelay), + ESP_ELFSYM_EXPORT(xTaskCheckForTimeOut), ESP_ELFSYM_EXPORT(xTaskCreatePinnedToCore), + ESP_ELFSYM_EXPORT(xTaskCreateStatic), + ESP_ELFSYM_EXPORT(xTaskCreateStaticPinnedToCore), + ESP_ELFSYM_EXPORT(xTaskCreateWithCaps), + ESP_ELFSYM_EXPORT(xTaskDelayUntil), + ESP_ELFSYM_EXPORT(xTaskGenericNotify), + ESP_ELFSYM_EXPORT(xTaskGenericNotifyFromISR), + ESP_ELFSYM_EXPORT(xTaskCreatePinnedToCore), + ESP_ELFSYM_EXPORT(pvTaskGetThreadLocalStoragePointer), + ESP_ELFSYM_EXPORT(pvTaskIncrementMutexHeldCount), + ESP_ELFSYM_EXPORT(vTaskSetTaskNumber), + ESP_ELFSYM_EXPORT(vTaskSetThreadLocalStoragePointer), + ESP_ELFSYM_EXPORT(vTaskSetThreadLocalStoragePointerAndDelCallback), + ESP_ELFSYM_EXPORT(vTaskSetTimeOutState), + ESP_ELFSYM_EXPORT(vTaskPrioritySet), + ESP_ELFSYM_EXPORT(uxTaskGetStackHighWaterMark), + ESP_ELFSYM_EXPORT(uxTaskGetNumberOfTasks), + ESP_ELFSYM_EXPORT(uxTaskGetTaskNumber), + ESP_ELFSYM_EXPORT(uxTaskPriorityGet), + ESP_ELFSYM_EXPORT(uxTaskPriorityGetFromISR), + // EventGroup ESP_ELFSYM_EXPORT(xEventGroupCreate), + ESP_ELFSYM_EXPORT(xEventGroupCreateWithCaps), + ESP_ELFSYM_EXPORT(xEventGroupCreateStatic), ESP_ELFSYM_EXPORT(xEventGroupClearBits), - ESP_ELFSYM_EXPORT(xEventGroupSetBits), - ESP_ELFSYM_EXPORT(xEventGroupWaitBits), + ESP_ELFSYM_EXPORT(xEventGroupClearBitsFromISR), ESP_ELFSYM_EXPORT(vEventGroupDelete), + ESP_ELFSYM_EXPORT(xEventGroupGetStaticBuffer), + ESP_ELFSYM_EXPORT(xEventGroupGetBitsFromISR), + ESP_ELFSYM_EXPORT(xEventGroupSetBits), + ESP_ELFSYM_EXPORT(xEventGroupSetBitsFromISR), + ESP_ELFSYM_EXPORT(xEventGroupSync), + ESP_ELFSYM_EXPORT(xEventGroupWaitBits), + // Queue + ESP_ELFSYM_EXPORT(xQueueGenericCreate), + ESP_ELFSYM_EXPORT(xQueueGenericCreateStatic), + ESP_ELFSYM_EXPORT(xQueueGenericReset), + ESP_ELFSYM_EXPORT(xQueueGenericSend), + ESP_ELFSYM_EXPORT(xQueueGenericSendFromISR), + ESP_ELFSYM_EXPORT(vQueueDelete), + ESP_ELFSYM_EXPORT(vQueueDeleteWithCaps), + ESP_ELFSYM_EXPORT(vQueueSetQueueNumber), + ESP_ELFSYM_EXPORT(vQueueWaitForMessageRestricted), + ESP_ELFSYM_EXPORT(uxQueueGetQueueNumber), + ESP_ELFSYM_EXPORT(uxQueueMessagesWaiting), + ESP_ELFSYM_EXPORT(uxQueueMessagesWaitingFromISR), + ESP_ELFSYM_EXPORT(uxQueueSpacesAvailable), + // Timer + ESP_ELFSYM_EXPORT(xTimerCreate), + ESP_ELFSYM_EXPORT(xTimerCreateStatic), + ESP_ELFSYM_EXPORT(xTimerGenericCommand), + ESP_ELFSYM_EXPORT(xTimerIsTimerActive), + ESP_ELFSYM_EXPORT(xTimerGetExpiryTime), + ESP_ELFSYM_EXPORT(xTimerPendFunctionCall), + ESP_ELFSYM_EXPORT(xTimerPendFunctionCallFromISR), + ESP_ELFSYM_EXPORT(xTimerGetPeriod), + // portmacro.h + ESP_ELFSYM_EXPORT(xPortInIsrContext), + ESP_ELFSYM_EXPORT(xPortCanYield), + ESP_ELFSYM_EXPORT(xPortGetCoreID), + ESP_ELFSYM_EXPORT(xPortGetTickRateHz), + ESP_ELFSYM_EXPORT(xPortInterruptedFromISRContext), // delimiter ESP_ELFSYM_END };