summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-08-26 13:45:24 +1000
committerjacqueline <me@jacqueline.id.au>2024-08-26 13:45:24 +1000
commit275ade5d13f8e49e89ed14c7acff6644f5c644a1 (patch)
treebf52d67f5e9d2b5fc271790946a47f6d2e211fa4
parent360cc5342eafdaa0a5176675cc27f083f1d9dd77 (diff)
downloadtangara-fw-275ade5d13f8e49e89ed14c7acff6644f5c644a1.tar.gz
Move some hot driver functions into iram
We've got the space for it now! Also turn SW radio coexistence off whilst we're here; the docs recommend this if you only use Bluetooth(R)
-rw-r--r--sdkconfig.common10
-rw-r--r--src/drivers/display.cpp9
2 files changed, 12 insertions, 7 deletions
diff --git a/sdkconfig.common b/sdkconfig.common
index d852af6b..c41586c6 100644
--- a/sdkconfig.common
+++ b/sdkconfig.common
@@ -9,22 +9,23 @@ CONFIG_COMPILER_OPTIMIZATION_PERF=y
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y
CONFIG_COMPILER_STACK_CHECK_MODE_NORM=y
CONFIG_BT_ENABLED=y
+CONFIG_BT_BTC_TASK_STACK_SIZE=4096
CONFIG_BT_BLUEDROID_PINNED_TO_CORE_1=y
CONFIG_BT_CLASSIC_ENABLED=y
CONFIG_BT_A2DP_ENABLE=y
# CONFIG_BT_BLE_ENABLED is not set
CONFIG_BT_STACK_NO_LOG=y
CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY=y
-CONFIG_BT_BTC_TASK_STACK_SIZE=4096
CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=y
-CONFIG_SPI_MASTER_IN_IRAM=y
-# CONFIG_SPI_SLAVE_ISR_IN_IRAM is not set
# CONFIG_TWAI_ERRATA_FIX_BUS_OFF_REC is not set
# CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST is not set
# CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID is not set
# CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT is not set
# CONFIG_TWAI_ERRATA_FIX_LISTEN_ONLY_DOM is not set
+# CONFIG_ESP_COEX_SW_COEXIST_ENABLE is not set
CONFIG_GPIO_CTRL_FUNC_IN_IRAM=y
+CONFIG_SPI_MASTER_IN_IRAM=y
+# CONFIG_SPI_SLAVE_ISR_IN_IRAM is not set
# CONFIG_ETH_USE_ESP32_EMAC is not set
# CONFIG_ETH_USE_SPI_ETHERNET is not set
# CONFIG_ESP_EVENT_POST_FROM_ISR is not set
@@ -42,7 +43,6 @@ CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY=y
# CONFIG_SPIRAM_BANKSWITCH_ENABLE is not set
CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y
CONFIG_SPIRAM_OCCUPY_HSPI_HOST=y
-CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH=y
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP_SYSTEM_ESP32_SRAM1_REGION_AS_IRAM=y
CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096
@@ -73,6 +73,7 @@ CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN=512
# CONFIG_MQTT_PROTOCOL_311 is not set
# CONFIG_MQTT_TRANSPORT_SSL is not set
# CONFIG_MQTT_TRANSPORT_WEBSOCKET is not set
+# CONFIG_OPENTHREAD_RX_ON_WHEN_IDLE is not set
# CONFIG_SPIFFS_CACHE is not set
CONFIG_SPIFFS_OBJ_NAME_LEN=64
CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION=y
@@ -83,7 +84,6 @@ CONFIG_LV_ATTRIBUTE_MEM_ALIGN_SIZE=16
CONFIG_LV_FONT_DEFAULT_UNSCII_8=y
CONFIG_LV_FONT_FMT_TXT_LARGE=y
CONFIG_LV_USE_FONT_COMPRESSED=y
-CONFIG_LV_TXT_BREAK_CHARS=" ,.;:-_)]}"
# CONFIG_LV_USE_THEME_DEFAULT is not set
CONFIG_LV_USE_QRCODE=y
# CONFIG_LV_BUILD_EXAMPLES is not set
diff --git a/src/drivers/display.cpp b/src/drivers/display.cpp
index efc9df93..7321f20b 100644
--- a/src/drivers/display.cpp
+++ b/src/drivers/display.cpp
@@ -242,6 +242,7 @@ void Display::SendInitialisationSequence(const uint8_t* data) {
spi_device_release_bus(handle_);
}
+IRAM_ATTR
void Display::SendCommandWithData(uint8_t command,
const uint8_t* data,
size_t length) {
@@ -249,17 +250,20 @@ void Display::SendCommandWithData(uint8_t command,
SendData(data, length);
}
+IRAM_ATTR
void Display::SendCmd(const uint8_t* data, size_t length) {
SendTransaction(COMMAND, data, length);
}
+IRAM_ATTR
void Display::SendData(const uint8_t* data, size_t length) {
SendTransaction(DATA, data, length);
}
+IRAM_ATTR
void Display::SendTransaction(TransactionType type,
- const uint8_t* data,
- size_t length) {
+ const uint8_t* data,
+ size_t length) {
// TODO(jacqueline): What's sending this?
if (length == 0) {
return;
@@ -290,6 +294,7 @@ void Display::SendTransaction(TransactionType type,
ESP_ERROR_CHECK(spi_device_transmit(handle_, &sTransaction));
}
+IRAM_ATTR
void Display::OnLvglFlush(const lv_area_t* area, uint8_t* color_map) {
// Swap the pixel byte order first, since we don't want to do this whilst
// holding the SPI bus lock.