소스 검색

esp_ringbuf: add kconfig opt to move ringbuffer functions into flash

Alex Lisitsyn 5 년 전
부모
커밋
8bde6b8fca
4개의 변경된 파일31개의 추가작업 그리고 4개의 파일을 삭제
  1. 29 0
      components/esp_ringbuf/linker.lf
  2. 1 1
      components/esp_ringbuf/test/test_ringbuf.c
  3. 0 2
      components/freertos/linker.lf
  4. 1 1
      tools/unit-test-app/configs/freertos_flash

+ 29 - 0
components/esp_ringbuf/linker.lf

@@ -2,3 +2,32 @@
 archive: libesp_ringbuf.a
 entries:
     * (noflash_text)
+    if FREERTOS_PLACE_FUNCTIONS_INTO_FLASH = y:
+        ringbuf: prvGetCurMaxSizeNoSplit (default)
+        ringbuf: prvGetCurMaxSizeAllowSplit (default)
+        ringbuf: prvGetCurMaxSizeByteBuf (default)
+        ringbuf: prvReturnItemByteBuf (default)
+        ringbuf: prvGetItemByteBuf (default)
+        ringbuf: prvCheckItemFitsByteBuffer (default)
+        ringbuf: prvReturnItemDefault (default)
+        ringbuf: prvGetItemDefault (default)
+        ringbuf: prvAcquireItemNoSplit (default)
+        ringbuf: prvSendItemDoneNoSplit (default)
+        ringbuf: prvCheckItemFitsDefault (default)
+        ringbuf: prvCopyItemByteBuf (default)
+        ringbuf: prvCopyItemAllowSplit (default)
+        ringbuf: prvCopyItemNoSplit (default)
+        ringbuf: prvInitializeNewRingbuffer (default)
+        ringbuf: prvReceiveGeneric (default)
+        ringbuf: xRingbufferCreate (default)
+        ringbuf: xRingbufferCreateStatic (default)
+        ringbuf: xRingbufferSend (default)
+        ringbuf: xRingbufferReceive (default)
+        ringbuf: xRingbufferReceiveSplit (default)
+        ringbuf: xRingbufferReceiveUpTo (default)
+        ringbuf: vRingbufferReturnItem (default)
+        ringbuf: vRingbufferDelete (default)
+        ringbuf: xRingbufferAddToQueueSetRead (default)
+        ringbuf: xRingbufferCanRead (default)
+        ringbuf: xRingbufferRemoveFromQueueSetRead (default)
+        ringbuf: vRingbufferGetInfo (default)

+ 1 - 1
components/esp_ringbuf/test/test_ringbuf.c

@@ -678,8 +678,8 @@ static IRAM_ATTR __attribute__((noinline)) bool iram_ringbuf_test(void)
     result = result && (handle != NULL);
     spi_flash_guard_get()->start(); // Disables flash cache
     xRingbufferGetMaxItemSize(handle);
-    vRingbufferDelete(handle);
     spi_flash_guard_get()->end(); // Re-enables flash cache
+    vRingbufferDelete(handle);
 
     return result;
 }

+ 0 - 2
components/freertos/linker.lf

@@ -18,7 +18,6 @@ entries:
         tasks: prvInitialiseTaskLists (default)
         tasks: prvDeleteTCB (default)
         tasks: prvCheckTasksWaitingTermination (default)
-        tasks: prvAddCurrentTaskToDelayedList (default)
         tasks: prvIdleTask (default)
         tasks: prvAddNewTaskToReadyList (default)
         tasks: xTaskCreateStaticPinnedToCore (default)
@@ -84,7 +83,6 @@ entries:
         event_groups: xEventGroupSetBits (default)
         event_groups: xEventGroupSync (default)
         event_groups: vEventGroupDelete (default)
-        queue: prvIsQueueEmpty (default)
         queue: prvIsQueueFull (default)
         queue: prvInitialiseNewQueue (default)
         queue: prvInitialiseMutex (default)

+ 1 - 1
tools/unit-test-app/configs/freertos_flash

@@ -1,2 +1,2 @@
-TEST_COMPONENTS=freertos driver spi_flash
+TEST_COMPONENTS=freertos driver spi_flash esp_ringbuf
 CONFIG_FREERTOS_TASK_FUNCTIONS_INTO_FLASH=y