Merge branch 'feature/esp_ringbuf_place_functions_in_flash' into 'master'

esp_ringbuf: Added functions to linker.lf file which can be placed in Flash

Closes IDF-7136

See merge request espressif/esp-idf!23032
This commit is contained in:
Sudeep Mohanty 2023-04-04 21:17:09 +08:00
commit 9d607c069b
2 changed files with 14 additions and 3 deletions

View File

@ -11,14 +11,15 @@ menu "ESP Ringbuf"
config RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH
bool "Place ISR ringbuf functions into flash"
depends on RINGBUF_PLACE_FUNCTIONS_INTO_FLASH
default n
help
Place non-ISR ringbuf functions (like xRingbufferSendFromISR/xRingbufferReceiveFromISR) into flash.
Place ISR ringbuf functions (like xRingbufferSendFromISR/xRingbufferReceiveFromISR) into flash.
This frees up IRAM, but the functions can no longer be called when the cache is disabled
or from an IRAM interrupt context.
This option is not compatible with ESP-IDF drivers which is configured to run the ISR from an IRAM context,
e.g. CONFIG_UART_ISR_IN_IRAM.
This option is not compatible with ESP-IDF drivers which are configured to
run the ISR from an IRAM context, e.g. CONFIG_UART_ISR_IN_IRAM.
endmenu

View File

@ -8,17 +8,25 @@ entries:
ringbuf: prvGetCurMaxSizeByteBuf (default)
ringbuf: prvInitializeNewRingbuffer (default)
ringbuf: prvReceiveGeneric (default)
ringbuf: prvSendAcquireGeneric (default)
ringbuf: prvGetFreeSize (default)
ringbuf: vRingbufferDelete (default)
ringbuf: vRingbufferGetInfo (default)
ringbuf: vRingbufferReturnItem (default)
ringbuf: xRingbufferAddToQueueSetRead (default)
ringbuf: xRingbufferCreate (default)
ringbuf: xRingbufferCreateStatic (default)
ringbuf: xRingbufferCreateNoSplit (default)
ringbuf: xRingbufferReceive (default)
ringbuf: xRingbufferReceiveSplit (default)
ringbuf: xRingbufferReceiveUpTo (default)
ringbuf: xRingbufferRemoveFromQueueSetRead (default)
ringbuf: xRingbufferSend (default)
ringbuf: xRingbufferSendAcquire (default)
ringbuf: xRingbufferSendComplete (default)
ringbuf: xRingbufferPrintInfo (default)
ringbuf: xRingbufferGetMaxItemSize (default)
ringbuf: xRingbufferGetCurFreeSize (default)
if RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH = y:
ringbuf: prvReturnItemByteBuf (default)
@ -31,7 +39,9 @@ entries:
ringbuf: prvAcquireItemNoSplit (default)
ringbuf: prvCheckItemFitsByteBuffer (default)
ringbuf: prvCheckItemFitsDefault (default)
ringbuf: prvCheckItemAvail (default)
ringbuf: prvSendItemDoneNoSplit (default)
ringbuf: prvReceiveGenericFromISR (default)
ringbuf: xRingbufferSendFromISR (default)
ringbuf: xRingbufferReceiveFromISR (default)
ringbuf: xRingbufferReceiveSplitFromISR (default)