freertos porting for qspi and canfd
authorPrasad Konnur <prasadkonnur@ti.com>
Tue, 6 Apr 2021 13:33:52 +0000 (19:03 +0530)
committerPrasad Konnur <prasadkonnur@ti.com>
Wed, 7 Apr 2021 11:54:39 +0000 (17:24 +0530)
Signed-off-by: Prasad Konnur <prasadkonnur@ti.com>
packages/ti/drv/canfd/canfd_component.mk
packages/ti/drv/canfd/test/awr294x/mss_canfd_linker.cmd [deleted file]
packages/ti/drv/canfd/test/makefile
packages/ti/drv/canfd/test/src/main_canfd_test.c
packages/ti/drv/canfd/test/tpr12/mss_canfd_linker.cmd [deleted file]
packages/ti/drv/spi/spi_component.mk
packages/ti/drv/spi/test/qspi_flash/makefile
packages/ti/drv/spi/test/qspi_flash/src/main_qspi_flash_test.c

index bff24adf5e023078c621ce095d59db7a20e20c62..a0de91d16fb15b0fc58b386df9ed62efffa4f30c 100644 (file)
@@ -89,7 +89,7 @@ drvcanfd_LIB_LIST = $(canfd_LIB_LIST)
 canfd_EXAMPLE_LIST = 
 
 ifeq ($(SOC),$(filter $(SOC), tpr12 awr294x))
-canfd_EXAMPLE_LIST = canfd_test
+canfd_EXAMPLE_LIST = canfd_test canfd_freertos_test
 endif
 
 drvcanfd_EXAMPLE_LIST = $(canfd_EXAMPLE_LIST)
@@ -153,6 +153,26 @@ export canfd_test_BOARDLIST
 canfd_test_$(SOC)_CORELIST = mcu1_0
 export canfd_test_$(SOC)_CORELIST
 
+canfd_freertos_test_COMP_LIST = canfd_freertos_test
+canfd_freertos_test_RELPATH = ti/drv/canfd/test
+canfd_freertos_test_PATH = $(PDK_CANFD_COMP_PATH)/test
+canfd_freertos_test_BOARD_DEPENDENCY = yes
+canfd_freertos_test_CORE_DEPENDENCY = no
+canfd_freertos_test_XDC_CONFIGURO = yes
+canfd_freertos_test_MAKEFILE = -f makefile IS_FREERTOS=yes
+export canfd_freertos_test_COMP_LIST
+export canfd_freertos_test_BOARD_DEPENDENCY
+export canfd_freertos_test_CORE_DEPENDENCY
+export canfd_freertos_test_XDC_CONFIGURO
+export canfd_freertos_test_MAKEFILE
+canfd_freertos_test_PKG_LIST = canfd_freertos_test
+export canfd_freertos_test_PKG_LIST
+canfd_freertos_test_INCLUDE = $(canfd_freertos_test_PATH)
+canfd_freertos_test_BOARDLIST = $(drvcanfd_BOARDLIST)
+export canfd_freertos_test_BOARDLIST
+canfd_freertos_test_$(SOC)_CORELIST = mcu1_0
+export canfd_freertos_test_$(SOC)_CORELIST
+
 
 
 export drvcanfd_LIB_LIST
diff --git a/packages/ti/drv/canfd/test/awr294x/mss_canfd_linker.cmd b/packages/ti/drv/canfd/test/awr294x/mss_canfd_linker.cmd
deleted file mode 100644 (file)
index 34300b4..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*----------------------------------------------------------------------------*/
-/* r4f_linker.cmd                                                                 */
-/*                                                                            */
-/* (c) Texas Instruments 2016, All rights reserved.                           */
-/*                                                                            */
-
-/* USER CODE BEGIN (0) */
-/* USER CODE END */
-
-
-/*----------------------------------------------------------------------------*/
-/* Linker Settings                                                            */
---retain="*(.intvecs)"
-
-/*----------------------------------------------------------------------------*/
-/* Memory Map                                                                 */
-MEMORY{
-PAGE 0:
-    VECTORS  (X)  : origin=0x00000000 length=0x00000100
-    TCMA_RAM (RX) : origin=0x00000100 length=0x00007F00
-    TCMB_RAM (RW) : origin=0x00080000 length=0x00008000
-    SBL_RESERVED_L2_RAM (RW)   : origin=0x10200000 length=0x00060000
-    L2_RAM_BANK0 (RW) : origin=0x10260000 length=0x00020000
-    L2_RAM_BANK1 (RW) : origin=0x10280000 length=0x00070000
-    L3_RAM (RW)   : origin=0x88000000 length=0x00300000
-    HWA_RAM (RW)  : origin=0x82000000 length=0x00020000
-
-PAGE 1:
-    L3_RAM (RW)   : origin=0x88000000 length=0x00300000
-}
-
-/*----------------------------------------------------------------------------*/
-/* Section Configuration                                                      */
-SECTIONS{
-    .intvecs : {} > VECTORS
-
-    /* Allocate data preferentially in one bank and code (.text) in another,
-       this can improve performance due to simultaneous misses from L1P
-       and L1D caches to L2 SRAM.
-       The linker notation "X >> Y | Z" indicates section X is first allocated in Y
-       and allowed to overflow into Z and can be split from Y to Z.
-       The linker notation "X > Y | Z" indicates section X is first allocated in Y
-       and allowed to overflow into Z and cannot be split from Y to Z. Some sections
-       like bss are not allowed to be split so > notation is used for them
-    */
-    .text    : {} >> TCMA_RAM | L2_RAM_BANK0 | L2_RAM_BANK1
-
-    .const   : {} >> L2_RAM_BANK1 | L2_RAM_BANK0
-    .switch  : {} >> L2_RAM_BANK1 | L2_RAM_BANK0
-    .cio:    : {} >> SBL_RESERVED_L2_RAM | L2_RAM_BANK1 | L2_RAM_BANK0
-    .data:   : {} >> L2_RAM_BANK1 | L2_RAM_BANK0
-
-    .cinit   : {} > L2_RAM_BANK1 | L2_RAM_BANK0
-    .pinit   : {} > L2_RAM_BANK1 | L2_RAM_BANK0
-    .bss     : {} > SBL_RESERVED_L2_RAM | L2_RAM_BANK1 | L2_RAM_BANK0
-    .stack   : {} > TCMB_RAM | SBL_RESERVED_L2_RAM | L2_RAM_BANK1 | L2_RAM_BANK0
-
-    .boot:{
-       *.*(*ti_sysbios_family_arm_MPU*)
-       boot.aer5f*(*.text)
-       *.*(*startup*)
-       *.*(*Startup*)
-       *.*(*Cache*)
-     } > TCMA_RAM | TCMB_RAM
-    .l3ram   : {} > L3_RAM
-}
-/*----------------------------------------------------------------------------*/
-
-
-/*----------------------------------------------------------------------------*/
-/* Section Configuration                                                      */
-/*    systemHeap      : { } > DATA_RAM   */
-/*    .MCPILogBuffer  : { } > DATA_RAM   */
-/*----------------------------------------------------------------------------*/
index 9b7a4e760b0b6195723dcc20927e060458f5c7ad..33b9dbef33325be7a8f683feae5b2b7d492bc3b3 100644 (file)
@@ -1,15 +1,25 @@
 # Makefile for CANFD test app
 include $(PDK_INSTALL_PATH)/ti/build/Rules.make
 
-ifeq ($(IS_BAREMETAL),yes)
-BUILD_OS_TYPE = baremetal
+BUILD_OS_TYPE = tirtos
+ifeq ($(IS_FREERTOS),yes)
+BUILD_OS_TYPE = freertos
+endif
+ifeq ($(BAREMETAL), yes)
+BUILD_OS_TYPE=baremetal
+endif
+
+ifeq ($(BUILD_OS_TYPE),baremetal)
+CANFD_OS_TESTPREFIX=_Baremetal
 CFLAGS_OS_DEFINES =
 LNKFLAGS_LOCAL_mpu1_0  += --entry Entry
 COMP_LIST_COMMON = $(PDK_COMMON_BAREMETAL_COMP)
 EXTERNAL_INTERFACES =
 XDC_CFG_FILE_$(CORE) =
-else
-BUILD_OS_TYPE = tirtos
+endif
+
+ifeq ($(BUILD_OS_TYPE),tirtos)
+CANFD_OS_TESTPREFIX=
 CFLAGS_OS_DEFINES = -DUSE_BIOS
 EXTERNAL_INTERFACES = bios xdc
 COMP_LIST_COMMON = $(PDK_COMMON_TIRTOS_COMP)
@@ -28,6 +38,13 @@ endif
 
 endif
 
+ifeq ($(BUILD_OS_TYPE),freertos)
+CANFD_OS_TESTPREFIX=_freertos
+CFLAGS_OS_DEFINES = -DFREERTOS
+EXTERNAL_INTERFACES = freertos
+COMP_LIST_COMMON = $(PDK_COMMON_FREERTOS_COMP)
+endif
+
 SRCDIR = . src
 INCDIR = . src
 
@@ -36,13 +53,6 @@ SRCDIR += $(SOC)
 INCDIR += $(SOC)
 endif
 
-ifeq ($(BUILD_OS_TYPE), tirtos)
-CANFD_OS_TESTPREFIX=
-else
-CANFD_OS_TESTPREFIX=_Baremetal
-endif
-
-
 # Common source files across all platforms and cores
 SRCS_COMMON += main_canfd_test.c
 
@@ -57,24 +67,8 @@ APP_NAME = canfd$(CANFD_OS_TESTPREFIX)_test
 # Name of the binary if different fmake clrom the default (APP_NAME)_$(BOARD_$(CORE)_<build_profile>
 LOCAL_APP_NAME =  canfd$(CANFD_OS_TESTPREFIX)_$(BOARD)_$(CORE)_test
 
-
 COMP_LIST_COMMON += canfd esm
 
-# Master running on mcu1_0 core, use the common linker command file in build
-ifeq ($(SOC),$(filter $(SOC), tpr12))
-    ifeq ($(CORE),$(filter $(CORE), mcu1_0))
-        EXTERNAL_LNKCMD_FILE_LOCAL =  ./tpr12/mss_canfd_linker.cmd
-    endif
-endif
-
-ifeq ($(SOC),$(filter $(SOC), awr294x))
-    ifeq ($(CORE),$(filter $(CORE), mcu1_0))
-        EXTERNAL_LNKCMD_FILE_LOCAL =  ./awr294x/mss_canfd_linker.cmd
-    endif
-endif
-
-# tpr12 build
-
 PACKAGE_SRCS_COMMON = ../test
 
 CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS) $(CFLAGS_OS_DEFINES)
index ee263562654808ef83312696d2cb242d5091d67d..b070a133a8afc305c372e09940710dc4df6bf455 100644 (file)
  **************************************************************************/
 
 /* Standard Include Files. */
-#include <stdint.h>
-#include <stdlib.h>
-#include <stddef.h>
 #include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* BIOS/XDC Include Files. */
-#include <xdc/std.h>
-#include <xdc/cfg/global.h>
-#include <xdc/runtime/IHeap.h>
-#include <xdc/runtime/System.h>
-#include <xdc/runtime/Error.h>
-#include <xdc/runtime/Memory.h>
-#include <ti/sysbios/BIOS.h>
-#include <ti/sysbios/knl/Task.h>
-#include <ti/sysbios/knl/Event.h>
-#include <ti/sysbios/knl/Semaphore.h>
-#include <ti/sysbios/knl/Clock.h>
-#include <ti/sysbios/heaps/HeapBuf.h>
-#include <ti/sysbios/heaps/HeapMem.h>
-#include <ti/sysbios/knl/Event.h>
-#include <ti/sysbios/family/arm/v7a/Pmu.h>
+
+#include <ti/osal/TaskP.h>
+#include <ti/osal/CycleprofilerP.h>
 
 #include <ti/osal/DebugP.h>
 #include <ti/board/board.h>
 /** \brief VBUSP Frequency in MHz */
 #define VBUSP_FREQ                          (MSS_SYS_VCLK /1000000U)
 
+#define APP_TSK_STACK_MAIN              (16U * 1024U)
+
 /* Global Variables */
 CANFD_Reason            gErrorReason;
 volatile uint32_t       testSelection = 0;
@@ -144,6 +127,8 @@ uint32_t                gTerminate = 0;
 uint32_t                gMCANMode = 2U;
 CANFD_MCANFrameType     testFrameType = CANFD_MCANFrameType_FD;
 
+static uint8_t  gAppTskStackMain[APP_TSK_STACK_MAIN] __attribute__((aligned(32)));
+
 /**
  *  @b Description
  *  @n
@@ -155,16 +140,9 @@ CANFD_MCANFrameType     testFrameType = CANFD_MCANFrameType_FD;
  *  @retval
  *      Not Applicable.
  */
-void Test_benchmarkStart(uint32_t counter)
+uint32_t Test_benchmarkStart(void)
 {
-    /* Initialize counter to count cycles */
-    Pmu_configureCounter(counter, 0x11, FALSE);
-
-    /* Reset PMU counter */
-    Pmu_resetCount(counter);
-
-    /* Start PMU counter */
-    Pmu_startCounter(counter);
+    return CycleprofilerP_getTimeStamp();
 }
 
 /**
@@ -179,13 +157,11 @@ void Test_benchmarkStart(uint32_t counter)
  *  @retval
  *      Current PMU counter value.
  */
-uint32_t Test_benchmarkStop(uint32_t counter)
+uint32_t Test_benchmarkStop(uint32_t startCount)
 {
-    /* Stop PMU counter */
-    Pmu_stopCounter(counter);
+    uint32_t endCount = CycleprofilerP_getTimeStamp();
 
-    /* Read PMU counter */
-    return (Pmu_getCount(counter));
+    return (endCount - startCount);
 }
 
 /**
@@ -242,6 +218,7 @@ static void MCANAppCallback(CANFD_MsgObjHandle handle, CANFD_Reason reason)
     if (reason == CANFD_Reason_RX)
     {
         {
+            uint32_t stratCnt;
             /* Reset the receive buffer */
             memset(&rxData, 0, sizeof (rxData));
             testDataLength = 0;
@@ -249,7 +226,7 @@ static void MCANAppCallback(CANFD_MsgObjHandle handle, CANFD_Reason reason)
             if ((testSelection != MCAN_APP_TEST_EXTERNAL_DATA) && (gRxPkts < MCAN_APP_TEST_MESSAGE_COUNT))
             {
                 /* Reset the counter: */
-                Test_benchmarkStart(0);
+                stratCnt = Test_benchmarkStart();
             }
             retVal = CANFD_getData (handle, &id, &rxFrameType, &rxIdType, &rxDataLength, &rxData[0], &errCode);
             if (retVal < 0)
@@ -267,7 +244,7 @@ static void MCANAppCallback(CANFD_MsgObjHandle handle, CANFD_Reason reason)
             if ((testSelection != MCAN_APP_TEST_EXTERNAL_DATA) && (gRxPkts < MCAN_APP_TEST_MESSAGE_COUNT))
             {
                 /* Stop the counter: */
-                rxTicks[gRxPkts] = Test_benchmarkStop(0);
+                rxTicks[gRxPkts] = Test_benchmarkStop(stratCnt);
 
                 /* Update the receive statistics: */
                 minRxTicks   = (minRxTicks < rxTicks[gRxPkts]) ? minRxTicks : rxTicks[gRxPkts];
@@ -510,8 +487,9 @@ static int32_t mcanLoopbackTest()
 
     while (iterationCount != MCAN_APP_TEST_MESSAGE_COUNT)
     {
+        uint32_t stratCnt;
         /* Reset the counter: */
-        Test_benchmarkStart(0);
+        stratCnt = Test_benchmarkStart();
 
         {
             /* Send data over Tx message object */
@@ -527,7 +505,7 @@ static int32_t mcanLoopbackTest()
             }
         }
         /* Stop the counter: */
-        txTicks[iterationCount] = Test_benchmarkStop(0);
+        txTicks[iterationCount] = Test_benchmarkStop(stratCnt);
 
         /* Update the transmit statistics: */
         minTxTicks   = (minTxTicks < txTicks[iterationCount]) ? minTxTicks : txTicks[iterationCount];
@@ -968,8 +946,9 @@ static int32_t mcanPowerDownTest()
 
     while (iterationCount != MCAN_APP_TEST_MESSAGE_COUNT)
     {
+        uint32_t stratCnt;
         /* Reset the counter: */
-        Test_benchmarkStart(0);
+        stratCnt = Test_benchmarkStart();
 
         {
             /* Send data over Tx message object */
@@ -985,7 +964,7 @@ static int32_t mcanPowerDownTest()
             }
         }
         /* Stop the counter: */
-        txTicks[iterationCount] = Test_benchmarkStop(0);
+        txTicks[iterationCount] = Test_benchmarkStop(stratCnt);
 
         /* Update the transmit statistics: */
         minTxTicks   = (minTxTicks < txTicks[iterationCount]) ? minTxTicks : txTicks[iterationCount];
@@ -1078,8 +1057,9 @@ static int32_t mcanPowerDownTest()
     iterationCount = 0;
     while (iterationCount != MCAN_APP_TEST_MESSAGE_COUNT)
     {
+        uint32_t stratCnt;
         /* Reset the counter: */
-        Test_benchmarkStart(0);
+        stratCnt = Test_benchmarkStart();
 
         {
             /* Send data over Tx message object */
@@ -1095,7 +1075,7 @@ static int32_t mcanPowerDownTest()
             }
         }
         /* Stop the counter: */
-        txTicks[iterationCount] = Test_benchmarkStop(0);
+        txTicks[iterationCount] = Test_benchmarkStop(stratCnt);
 
         /* Update the transmit statistics: */
         minTxTicks   = (minTxTicks < txTicks[iterationCount]) ? minTxTicks : txTicks[iterationCount];
@@ -1293,13 +1273,13 @@ static int32_t mcanTransmitTest()
                 idIndex = 0;
             }
             msgId = txMsgObjectParams.msgIdentifier + idIndex;
-            Task_sleep(100U);
+            TaskP_sleep(100U);
             while(length > MCAN_APP_TEST_DATA_SIZE)
             {
 
                 retVal = CANFD_transmitData (txMsgObjHandle, msgId, CANFD_MCANFrameType_FD, MCAN_APP_TEST_DATA_SIZE, &txData[0], &errCode);
                 length = length - MCAN_APP_TEST_DATA_SIZE;
-                Task_sleep(100);
+                TaskP_sleep(100);
             }
             idIndex++;
         }
@@ -1309,7 +1289,7 @@ static int32_t mcanTransmitTest()
             length = 128U;
             index = 0;
             msgId = txMsgObjectParams.msgIdentifier;
-            Task_sleep(100);
+            TaskP_sleep(100);
             while(length > 8U)
             {
 
@@ -1317,12 +1297,12 @@ static int32_t mcanTransmitTest()
                 length = length - 8U;
                 index = index + 8U;
                 msgId = msgId + 1U;
-                Task_sleep(100U);
+                TaskP_sleep(100U);
             }
             retVal = CANFD_transmitData (txMsgObjHandle, msgId, CANFD_MCANFrameType_CLASSIC, length, &txData[index], &errCode);
 
         }
-        Task_sleep(200U);
+        TaskP_sleep(200U);
         if (retVal < 0)
         {
             gErrMsgLstCnt++;
@@ -1641,7 +1621,7 @@ static int32_t mcanEVM_EVMTest()
 
         /* 8 bits per byte * (data size + header) * Number of packet * VBUS frequency / total ticks */
         throughput = 8.0 * (MCAN_APP_TEST_DATA_SIZE + 16U) * gRxPkts * VBUSP_FREQ / totalRxTicks;
-        printf("Debug: Rx Throughput: %.2f Mbps\n", throughput);
+        UART_printf("Debug: Rx Throughput: %.2f Mbps\n", throughput);
 
         UART_printf("\n\n");
 
@@ -1777,7 +1757,7 @@ static int32_t mcanMultiTransmission()
             {
                 UART_printf ("Error: CANFD transmit data retry failed [Error code %d]\n", errCode);
             }
-            Task_sleep(100);
+            TaskP_sleep(100);
         }
 
         /* Delete the transmit message object */
@@ -1912,7 +1892,7 @@ static int32_t mcanMsgIdRangeTest()
         while (gRxDoneFlag == 0);
         gRxDoneFlag = 0;
 
-        Task_sleep(100);
+        TaskP_sleep(100);
 
         if (gTerminate == 1)
         {
@@ -1983,7 +1963,7 @@ static int32_t mcanMsgIdRangeTest()
  *  @retval
  *      Not Applicable.
  */
-static void Test_initTask(UArg arg0, UArg arg1)
+static void Test_initTask(void* arg0, void* arg1)
 {
     int32_t         retVal = 0;
 
@@ -1991,9 +1971,11 @@ static void Test_initTask(UArg arg0, UArg arg1)
     retVal = PlatformInit();
     if (retVal < 0)
     {
-        BIOS_exit(0);
+        OS_stop();
     }
 
+    CycleprofilerP_init();
+
     while (1)
     {
         UART_printf ("*******************************************************\n");
@@ -2097,7 +2079,7 @@ static void Test_initTask(UArg arg0, UArg arg1)
 
 
     /* Exit BIOS */
-    BIOS_exit(0);
+    OS_stop();
 
     return;
 }
@@ -2112,18 +2094,20 @@ static void Test_initTask(UArg arg0, UArg arg1)
  */
 int32_t main (void)
 {
-    Task_Params     taskParams;
+    TaskP_Params taskParams;
 
     /* Initialize the ESM: Dont clear errors as TI RTOS does it */
     ESM_init(0U, 0U);
 
     /* Initialize the Task Parameters. */
-    Task_Params_init(&taskParams);
-    taskParams.stackSize = 6U*1024U;
-    Task_create(Test_initTask, &taskParams, NULL);
+    TaskP_Params_init(&taskParams);
+    taskParams.stack        = gAppTskStackMain;
+    taskParams.stacksize    = sizeof (gAppTskStackMain);
+
+    TaskP_create(Test_initTask, &taskParams);
+
+    OS_start();
 
-    /* Start BIOS */
-    BIOS_start();
     return 0;
 }
 
diff --git a/packages/ti/drv/canfd/test/tpr12/mss_canfd_linker.cmd b/packages/ti/drv/canfd/test/tpr12/mss_canfd_linker.cmd
deleted file mode 100644 (file)
index 291fde6..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*----------------------------------------------------------------------------*/
-/* r4f_linker.cmd                                                                 */
-/*                                                                            */
-/* (c) Texas Instruments 2016, All rights reserved.                           */
-/*                                                                            */
-
-/* USER CODE BEGIN (0) */
-/* USER CODE END */
-
-
-/*----------------------------------------------------------------------------*/
-/* Linker Settings                                                            */
---retain="*(.intvecs)"
-
-/*----------------------------------------------------------------------------*/
-/* Memory Map                                                                 */
-MEMORY{
-PAGE 0:
-    VECTORS  (X)  : origin=0x00000000 length=0x00000100
-    TCMA_RAM (RX) : origin=0x00000100 length=0x00007F00
-    TCMB_RAM (RW) : origin=0x00080000 length=0x00008000
-    SBL_RESERVED_L2_RAM (RW)   : origin=0x10200000 length=0x00060000
-    L2_RAM_BANK0 (RW) : origin=0x10260000 length=0x00020000
-    L2_RAM_BANK1 (RW) : origin=0x10280000 length=0x00070000
-    L3_RAM (RW)   : origin=0x88000000 length=0x00300000
-    HWA_RAM (RW)  : origin=0x82000000 length=0x00020000
-
-PAGE 1:
-    L3_RAM (RW)   : origin=0x88000000 length=0x00300000
-}
-
-/*----------------------------------------------------------------------------*/
-/* Section Configuration                                                      */
-SECTIONS{
-    .intvecs : {} > VECTORS
-    
-    /* Allocate data preferentially in one bank and code (.text) in another,
-       this can improve performance due to simultaneous misses from L1P
-       and L1D caches to L2 SRAM.
-       The linker notation "X >> Y | Z" indicates section X is first allocated in Y
-       and allowed to overflow into Z and can be split from Y to Z.
-       The linker notation "X > Y | Z" indicates section X is first allocated in Y
-       and allowed to overflow into Z and cannot be split from Y to Z. Some sections
-       like bss are not allowed to be split so > notation is used for them 
-    */
-    .text    : {} >> TCMA_RAM | L2_RAM_BANK0 | L2_RAM_BANK1
-    
-    .const   : {} >> L2_RAM_BANK1 | L2_RAM_BANK0
-    .switch  : {} >> L2_RAM_BANK1 | L2_RAM_BANK0
-    .cio:    : {} >> SBL_RESERVED_L2_RAM | L2_RAM_BANK1 | L2_RAM_BANK0
-    .data:   : {} >> L2_RAM_BANK1 | L2_RAM_BANK0
-    
-    .cinit   : {} > L2_RAM_BANK1 | L2_RAM_BANK0
-    .pinit   : {} > L2_RAM_BANK1 | L2_RAM_BANK0
-    .bss     : {} > SBL_RESERVED_L2_RAM | L2_RAM_BANK1 | L2_RAM_BANK0
-    .stack   : {} > TCMB_RAM | SBL_RESERVED_L2_RAM | L2_RAM_BANK1 | L2_RAM_BANK0
-
-    .boot:{
-       *.*(*ti_sysbios_family_arm_MPU*)
-       boot.aer5f*(*.text)
-       *.*(*startup*)
-       *.*(*Startup*)
-       *.*(*Cache*)
-     } > TCMA_RAM | TCMB_RAM
-    .l3ram   : {} > L3_RAM
-}
-/*----------------------------------------------------------------------------*/
-
-
-/*----------------------------------------------------------------------------*/
-/* Section Configuration                                                      */
-/*    systemHeap      : { } > DATA_RAM   */
-/*    .MCPILogBuffer  : { } > DATA_RAM   */
-/*----------------------------------------------------------------------------*/
-
index e165fd7731d1cbca8ba45dc48063c3d45c84e792..9abba65d8e1191c82f48b4fb0490d6ae4a8c7424 100755 (executable)
@@ -129,7 +129,7 @@ spi_EXAMPLE_LIST += MCSPI_Baremetal_Master_TestApp MCSPI_Baremetal_Slave_TestApp
 spi_EXAMPLE_LIST += MCSPI_Master_TestApp MCSPI_Slave_TestApp
 spi_EXAMPLE_LIST += MCSPI_Baremetal_Master_Dma_TestApp MCSPI_Baremetal_Slave_Dma_TestApp
 spi_EXAMPLE_LIST += MCSPI_Master_Dma_TestApp MCSPI_Slave_Dma_TestApp
-spi_EXAMPLE_LIST += OSPI_Baremetal_Flash_TestApp  OSPI_Baremetal_Flash_Dma_TestApp OSPI_Flash_TestApp OSPI_Flash_Dma_TestApp OSPI_Baremetal_Flash_Cache_TestApp  OSPI_Baremetal_Flash_Dma_Cache_TestApp OSPI_Flash_Cache_TestApp OSPI_Flash_Dma_Cache_TestApp OSPI_Flash_SMP_TestApp OSPI_Flash_Dma_SMP_TestApp QSPI_Baremetal_Flash_TestApp QSPI_Flash_TestApp QSPI_Baremetal_Flash_Dma_TestApp QSPI_Flash_Dma_TestApp QSPI_FileFlashWrite_Dma_TestApp
+spi_EXAMPLE_LIST += OSPI_Baremetal_Flash_TestApp  OSPI_Baremetal_Flash_Dma_TestApp OSPI_Flash_TestApp OSPI_Flash_Dma_TestApp OSPI_Baremetal_Flash_Cache_TestApp  OSPI_Baremetal_Flash_Dma_Cache_TestApp OSPI_Flash_Cache_TestApp OSPI_Flash_Dma_Cache_TestApp OSPI_Flash_SMP_TestApp OSPI_Flash_Dma_SMP_TestApp QSPI_Baremetal_Flash_TestApp QSPI_Flash_TestApp QSPI_Freertos_Flash_TestApp QSPI_Baremetal_Flash_Dma_TestApp QSPI_Flash_Dma_TestApp QSPI_Freertos_Flash_Dma_TestApp QSPI_FileFlashWrite_Dma_TestApp
 drvspi_EXAMPLE_LIST = $(spi_EXAMPLE_LIST)
 
 #
@@ -852,6 +852,25 @@ QSPI_Flash_TestApp_BOARDLIST = tpr12_evm tpr12_qt awr294x_evm
 export QSPI_Flash_TestApp_BOARDLIST
 QSPI_Flash_TestApp_$(SOC)_CORELIST = $(drvspi_$(SOC)_CORELIST)
 
+# QSPI Flash Freertos Test app
+QSPI_Freertos_Flash_TestApp_COMP_LIST = QSPI_Freertos_Flash_TestApp
+QSPI_Freertos_Flash_TestApp_RELPATH = ti/drv/spi/test/qspi_flash
+QSPI_Freertos_Flash_TestApp_PATH = $(PDK_SPI_COMP_PATH)/test/qspi_flash
+QSPI_Freertos_Flash_TestApp_BOARD_DEPENDENCY = yes
+QSPI_Freertos_Flash_TestApp_CORE_DEPENDENCY = yes
+QSPI_Freertos_Flash_TestApp_XDC_CONFIGURO = yes
+QSPI_Freertos_Flash_TestApp_MAKEFILE = -f makefile IS_FREERTOS=yes
+export QSPI_Freertos_Flash_TestApp_COMP_LIST
+export QSPI_Freertos_Flash_TestApp_BOARD_DEPENDENCY
+export QSPI_Freertos_Flash_TestApp_CORE_DEPENDENCY
+export QSPI_Freertos_Flash_TestApp_XDC_CONFIGURO
+export QSPI_Freertos_Flash_TestApp_MAKEFILE
+QSPI_Freertos_Flash_TestApp_PKG_LIST = QSPI_Freertos_Flash_TestApp
+QSPI_Freertos_Flash_TestApp_INCLUDE = $(QSPI_Freertos_Flash_TestApp_PATH)
+QSPI_Freertos_Flash_TestApp_BOARDLIST = tpr12_evm tpr12_qt awr294x_evm
+export QSPI_Freertos_Flash_TestApp_BOARDLIST
+QSPI_Freertos_Flash_TestApp_$(SOC)_CORELIST = $(drvspi_$(SOC)_CORELIST)
+
 # QSPI Baremetal dma Flash Test app
 QSPI_Baremetal_Flash_Dma_TestApp_COMP_LIST = QSPI_Baremetal_Flash_Dma_TestApp
 QSPI_Baremetal_Flash_Dma_TestApp_RELPATH = ti/drv/spi/test/qspi_flash
@@ -888,6 +907,25 @@ QSPI_Flash_Dma_TestApp_BOARDLIST = tpr12_evm tpr12_qt awr294x_evm
 export QSPI_Flash_Dma_TestApp_BOARDLIST
 QSPI_Flash_Dma_TestApp_$(SOC)_CORELIST = $(drvspi_$(SOC)_CORELIST)
 
+# QSPI Freertos dma Flash Test app
+QSPI_Freertos_Flash_Dma_TestApp_COMP_LIST = QSPI_Freertos_Flash_Dma_TestApp
+QSPI_Freertos_Flash_Dma_TestApp_RELPATH = ti/drv/spi/test/qspi_flash
+QSPI_Freertos_Flash_Dma_TestApp_PATH = $(PDK_SPI_COMP_PATH)/test/qspi_flash
+QSPI_Freertos_Flash_Dma_TestApp_BOARD_DEPENDENCY = yes
+QSPI_Freertos_Flash_Dma_TestApp_CORE_DEPENDENCY = yes
+QSPI_Freertos_Flash_Dma_TestApp_XDC_CONFIGURO = yes
+QSPI_Freertos_Flash_Dma_TestApp_MAKEFILE = -f makefile IS_FREERTOS=yes DMA=enable
+export QSPI_Freertos_Flash_Dma_TestApp_COMP_LIST
+export QSPI_Freertos_Flash_Dma_TestApp_BOARD_DEPENDENCY
+export QSPI_Freertos_Flash_Dma_TestApp_CORE_DEPENDENCY
+export QSPI_Freertos_Flash_Dma_TestApp_XDC_CONFIGURO
+export QSPI_Freertos_Flash_Dma_TestApp_MAKEFILE
+QSPI_Freertos_Flash_Dma_TestApp_PKG_LIST = QSPI_Freertos_Flash_Dma_TestApp
+QSPI_Freertos_Flash_Dma_TestApp_INCLUDE = $(QSPI_Freertos_Flash_Dma_TestApp_PATH)
+QSPI_Freertos_Flash_Dma_TestApp_BOARDLIST = tpr12_evm tpr12_qt awr294x_evm
+export QSPI_Freertos_Flash_Dma_TestApp_BOARDLIST
+QSPI_Freertos_Flash_Dma_TestApp_$(SOC)_CORELIST = $(drvspi_$(SOC)_CORELIST)
+
 # QSPI dma File Flash Write Test app. 
 # This app allows us to write files to flash device using CCS.
 # This is temporary till we got correct uniflash support in TPR12.
index b48fc28dc072cee9dca68d884994c3e2e234cc56..f3f5aa85fbe7fec41df234246e1c19be455345db 100644 (file)
@@ -1,16 +1,26 @@
 # Makefile for SPI unit test app
 include $(PDK_INSTALL_PATH)/ti/build/Rules.make
 
-ifeq ($(IS_BAREMETAL),yes)
-BUILD_OS_TYPE = baremetal
+BUILD_OS_TYPE = tirtos
+ifeq ($(IS_FREERTOS),yes)
+BUILD_OS_TYPE = freertos
+endif
+ifeq ($(BAREMETAL), yes)
+BUILD_OS_TYPE=baremetal
+endif
+
+ifeq ($(BUILD_OS_TYPE),baremetal)
+QSPI_OS_TESTPREFIX=_Baremetal
 CFLAGS_OS_DEFINES =
 LNKFLAGS_LOCAL_mpu1_0  += --entry Entry
 COMP_LIST_COMMON = $(PDK_COMMON_BAREMETAL_COMP)
 EXTERNAL_INTERFACES =
 XDC_CFG_FILE_mpu1_0 =
 XDC_CFG_FILE_mcu1_0 =
-else
-BUILD_OS_TYPE = tirtos
+endif
+
+ifeq ($(BUILD_OS_TYPE),tirtos)
+QSPI_OS_TESTPREFIX=
 CFLAGS_OS_DEFINES = -DUSE_BIOS
 EXTERNAL_INTERFACES = bios xdc
 COMP_LIST_COMMON    = $(PDK_COMMON_TIRTOS_COMP) 
@@ -19,7 +29,13 @@ ifeq ($(SOC),$(filter $(SOC), tpr12 awr294x))
 # Enable XDC build for application by providing XDC CFG File per core
 XDC_CFG_FILE_mcu1_0 = $(PDK_INSTALL_PATH)/ti/build/$(SOC)/sysbios_r5f.cfg
 endif
+endif
 
+ifeq ($(BUILD_OS_TYPE),freertos)
+QSPI_OS_TESTPREFIX=_Freertos
+CFLAGS_OS_DEFINES = -DFREERTOS
+EXTERNAL_INTERFACES = freertos
+COMP_LIST_COMMON    = $(PDK_COMMON_FREERTOS_COMP)
 endif
 
 SRCDIR = . src src/Flash_S25FL
@@ -28,14 +44,6 @@ INCDIR = . src src/Flash_S25FL
 # Common source files across all platforms and cores
 SRCS_COMMON += main_qspi_flash_test.c S25FL.c
 
-ifeq ($(BUILD_OS_TYPE), tirtos)
-QSPI_OS_TESTPREFIX=
-else
-QSPI_OS_TESTPREFIX=_Baremetal
-endif
-
-
-
 # List all the external components/interfaces, whose interface header files
 # need to be included for this component
 INCLUDE_EXTERNAL_INTERFACES = pdk $(EXTERNAL_INTERFACES)
index 1cb54b7aecdc2891c55146adb22bab5eab32eeeb..e636b61e8471e02179d6a1cd55d920f1322ade8b 100644 (file)
  *
  */
 
-
-#ifdef USE_BIOS
-/* XDCtools Header files */
-#include <xdc/std.h>
-#include <xdc/cfg/global.h>
-#include <xdc/runtime/System.h>
-#include <stdio.h>
-#include <ti/sysbios/knl/Task.h>
-
-/* BIOS Header files */
-#include <ti/sysbios/BIOS.h>
-#include <xdc/runtime/Error.h>
-#endif /* #ifdef USE_BIOS */
+#include <ti/osal/TaskP.h>
 
 /* TI-RTOS Header files */
 #include <ti/csl/soc.h>
 #define QSPI_TEST_ID_MMAP         1   /* Memory map with DMA disabled mode test */
 #define QSPI_TEST_ID_MMAP_DMA     2   /* Memory map with DMA enabled mode test */
 
+#if defined (USE_BIOS) || defined (FREERTOS)
+#define APP_TSK_STACK_MAIN              (16U * 1024U)
+#endif
 
 /* Define the SPI test interface */
 typedef struct QSPI_Tests_s
@@ -149,6 +140,10 @@ static EDMA3_RM_Handle QSPIApp_edmaInit(void);
  ************************** Global Variables **************************
  **********************************************************************/
 
+#if defined (USE_BIOS) || defined (FREERTOS)
+static uint8_t  gAppTskStackMain[APP_TSK_STACK_MAIN] __attribute__((aligned(32)));
+#endif
+
 /* Buffer containing the known data that needs to be written to flash */
 #if (defined(_TMS320C6X) || defined (__TI_ARM_V7M4__))
 #pragma DATA_ALIGN (txBuf, 128)
@@ -457,8 +452,8 @@ QSPI_Tests qspi_tests[] =
 /*
  *  ======== test function ========
  */
-#ifdef USE_BIOS
-void spi_test(UArg arg0, UArg arg1)
+#if defined (USE_BIOS) || defined (FREERTOS)
+void spi_test(void* arg0, void* arg1)
 #else
 void spi_test()
 #endif
@@ -509,18 +504,15 @@ int main(void)
     /* Call board init functions */
     Board_initCfg boardCfg;
 
-#if defined (SOC_AM335x) || defined (SOC_AM437x) || defined (SOC_TPR12) || defined (SOC_AWR294X)
-#ifdef USE_BIOS
-    Task_Handle task;
-    Error_Block eb;
+#if defined (USE_BIOS) || defined (FREERTOS)
+    TaskP_Params taskParams;
 
-    Error_init(&eb);
-    task = Task_create(spi_test, NULL, &eb);
-    if (task == NULL) {
-        System_printf("Task_create() failed!\n");
-        BIOS_exit(0);
-    }
-#endif
+    /* Initialize the Task Parameters. */
+    TaskP_Params_init(&taskParams);
+    taskParams.stack        = gAppTskStackMain;
+    taskParams.stacksize    = sizeof (gAppTskStackMain);
+
+    TaskP_create(spi_test, &taskParams);
 #endif
 
     boardCfg = BOARD_INIT_PINMUX_CONFIG |
@@ -532,9 +524,8 @@ int main(void)
     QSPI_board_crossbarInit();
 #endif
 
-#ifdef USE_BIOS
-    /* Start BIOS */
-    BIOS_start();
+#if defined (USE_BIOS) || defined (FREERTOS)
+    OS_start();
 #else
     spi_test();
 #endif