forked from espressif/esp-idf
Merge branch 'feature/esp_ringbuf_place_functions_in_flash_v5.0' into 'release/v5.0'
esp_ringbuf: Added functions to linker.lf file which can be placed in Flash (v5.0) See merge request espressif/esp-idf!23101
This commit is contained in:
@@ -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
|
||||
|
@@ -8,6 +8,7 @@ entries:
|
||||
ringbuf: prvGetCurMaxSizeByteBuf (default)
|
||||
ringbuf: prvInitializeNewRingbuffer (default)
|
||||
ringbuf: prvReceiveGeneric (default)
|
||||
ringbuf: prvGetFreeSize (default)
|
||||
ringbuf: vRingbufferDelete (default)
|
||||
ringbuf: vRingbufferGetInfo (default)
|
||||
ringbuf: vRingbufferReturnItem (default)
|
||||
@@ -15,11 +16,17 @@ entries:
|
||||
ringbuf: xRingbufferCanRead (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)
|
||||
@@ -32,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)
|
||||
|
@@ -1019,6 +1019,7 @@ TEST_CASE("Test static ring buffer SMP", "[esp_ringbuf]")
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH && !CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH
|
||||
/* -------------------------- Test ring buffer IRAM ------------------------- */
|
||||
|
||||
static IRAM_ATTR __attribute__((noinline)) bool iram_ringbuf_test(void)
|
||||
@@ -1044,3 +1045,4 @@ TEST_CASE("Test ringbuffer functions work with flash cache disabled", "[esp_ring
|
||||
{
|
||||
TEST_ASSERT( iram_ringbuf_test() );
|
||||
}
|
||||
#endif /* !CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH && !CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH */
|
||||
|
Reference in New Issue
Block a user