Merge branch 'bugfix/move_ringbuf_lib_to_iram' into 'master'

esp_ringbuf: fix default placement from flash to IRAM

See merge request idf/esp-idf!3452
This commit is contained in:
Ivan Grokhotkov 2018-10-18 22:57:46 +08:00
commit c76f71cd5f
5 changed files with 26 additions and 2 deletions

View file

@ -153,6 +153,7 @@ SECTIONS
/* Code marked as runnning out of IRAM */
_iram_text_start = ABSOLUTE(.);
*(.iram1 .iram1.*)
*libesp_ringbuf.a:(.literal .text .literal.* .text.*)
*libfreertos.a:(.literal .text .literal.* .text.*)
*libheap.a:multi_heap.*(.literal .text .literal.* .text.*)
*libheap.a:multi_heap_poisoning.*(.literal .text .literal.* .text.*)

View file

@ -6,6 +6,7 @@
#include "freertos/semphr.h"
#include "freertos/ringbuf.h"
#include "driver/timer.h"
#include "esp_spi_flash.h"
#include "unity.h"
//Definitions used in multiple test cases
@ -604,3 +605,22 @@ TEST_CASE("Test ring buffer SMP", "[freertos]")
vSemaphoreDelete(rx_done);
vSemaphoreDelete(tasks_done);
}
static IRAM_ATTR __attribute__((noinline)) bool iram_ringbuf_test()
{
bool result = true;
spi_flash_guard_get()->start(); // Disables flash cache
RingbufHandle_t handle = xRingbufferCreate(CONT_DATA_TEST_BUFF_LEN, RINGBUF_TYPE_NOSPLIT);
result = result && (handle != NULL);
xRingbufferGetMaxItemSize(handle);
vRingbufferDelete(handle);
spi_flash_guard_get()->end(); // Re-enables flash cache
return result;
}
TEST_CASE("Test ringbuffer functions work with flash cache disabled", "[freertos]")
{
TEST_ASSERT( iram_ringbuf_test() );
}

View file

@ -6,4 +6,4 @@ COMPONENT_ADD_LDFLAGS += -Wl,--undefined=uxTopUsedPriority
COMPONENT_ADD_INCLUDEDIRS := include
COMPONENT_PRIV_INCLUDEDIRS := include/freertos
tasks.o event_groups.o timers.o queue.o ringbuf.o: CFLAGS += -D_ESP_FREERTOS_INTERNAL
tasks.o event_groups.o timers.o queue.o: CFLAGS += -D_ESP_FREERTOS_INTERNAL

View file

@ -1,3 +1,3 @@
TEST_EXCLUDE_COMPONENTS=libsodium bt app_update
TEST_EXCLUDE_COMPONENTS=libsodium bt app_update driver esp32 spi_flash
CONFIG_SPIRAM_SUPPORT=y
CONFIG_SPIRAM_BANKSWITCH_ENABLE=n

View file

@ -0,0 +1,3 @@
TEST_COMPONENTS=driver esp32 spi_flash
CONFIG_SPIRAM_SUPPORT=y
CONFIG_SPIRAM_BANKSWITCH_ENABLE=n