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)
This commit is contained in:
jacqueline 2024-08-26 13:45:24 +10:00
parent 360cc5342e
commit 275ade5d13
2 changed files with 12 additions and 7 deletions

View file

@ -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

View file

@ -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.