diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/FreeRTOSConfig.h
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/FreeRTOSConfig.h
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/FreeRTOSConfig.h
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/RTOSDemo.ewd
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/RTOSDemo.ewd
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/RTOSDemo.ewd
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/RTOSDemo.ewp
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/RTOSDemo.ewp
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/RTOSDemo.ewp
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/RTOSDemo.ewt b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/RTOSDemo.ewt
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/RTOSDemo.ewt
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/RTOSDemo.ewt
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/RTOSDemo.eww b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/RTOSDemo.eww
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/RTOSDemo.eww
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/RTOSDemo.eww
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/blinky_demo/main_blinky.c b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/blinky_demo/main_blinky.c
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/blinky_demo/main_blinky.c
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/blinky_demo/main_blinky.c
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/full_demo/RegTest.s b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/full_demo/RegTest.s
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/full_demo/RegTest.s
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/full_demo/RegTest.s
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/full_demo/main_full.c b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/full_demo/main_full.c
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/full_demo/main_full.c
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/full_demo/main_full.c
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/main.c b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/main.c
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/main.c
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/main.c
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/settings/RTOSDemo.Debug.cspy.bat b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/settings/RTOSDemo.Debug.cspy.bat
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/settings/RTOSDemo.Debug.cspy.bat
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/settings/RTOSDemo.Debug.cspy.bat
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/settings/RTOSDemo.Debug.cspy.ps1 b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/settings/RTOSDemo.Debug.cspy.ps1
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/settings/RTOSDemo.Debug.cspy.ps1
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/settings/RTOSDemo.Debug.cspy.ps1
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/settings/RTOSDemo.Debug.driver.xcl b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/settings/RTOSDemo.Debug.driver.xcl
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/settings/RTOSDemo.Debug.driver.xcl
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/settings/RTOSDemo.Debug.driver.xcl
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/settings/RTOSDemo.Debug.general.xcl b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/settings/RTOSDemo.Debug.general.xcl
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/settings/RTOSDemo.Debug.general.xcl
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/settings/RTOSDemo.Debug.general.xcl
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/settings/RTOSDemo.dbgdt
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/settings/RTOSDemo.dbgdt
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/settings/RTOSDemo.dbgdt
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/settings/RTOSDemo.dnx b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/settings/RTOSDemo.dnx
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/settings/RTOSDemo.dnx
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/settings/RTOSDemo.dnx
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/settings/RTOSDemo.reggroups b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/settings/RTOSDemo.reggroups
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/settings/RTOSDemo.reggroups
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/settings/RTOSDemo.reggroups
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/settings/RTOSDemo.wsdt
similarity index 100%
rename from FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_IAR/settings/RTOSDemo.wsdt
rename to FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1-RevB_IAR/settings/RTOSDemo.wsdt
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/FreeRTOSConfig.h
deleted file mode 100644
index 71e0bc9c8..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/FreeRTOSConfig.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * FreeRTOS Kernel V10.2.1
- * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * http://www.FreeRTOS.org
- * http://aws.amazon.com/freertos
- *
- * 1 tab == 4 spaces!
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
- * Application specific definitions.
- *
- * These definitions should be adjusted for your particular hardware and
- * application requirements.
- *
- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
- *
- * See http://www.freertos.org/a00110.html.
- *----------------------------------------------------------*/
-
-#define configISR_STACK_SIZE_WORDS ( 200 )
-#define configCLINT_BASE_ADDRESS 0x2000000
-
-#define configUSE_PREEMPTION 1
-#define configUSE_IDLE_HOOK 1
-#define configUSE_TICK_HOOK 1
-#define configCPU_CLOCK_HZ ( ( uint32_t ) ( 32768 ) )
-#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )
-#define configMAX_PRIORITIES ( 5 )
-#define configMINIMAL_STACK_SIZE ( ( uint32_t ) 170 ) /* Can be as low as 60 but some of the demo tasks that use this constant require it to be higher. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 54 * 1024 ) )
-#define configMAX_TASK_NAME_LEN ( 16 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 0
-#define configUSE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 8
-#define configCHECK_FOR_STACK_OVERFLOW 2
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configUSE_MALLOC_FAILED_HOOK 1
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Software timer definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 4
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE )
-
-/* Task priorities. Allow these to be overridden. */
-#ifndef uartPRIMARY_PRIORITY
- #define uartPRIMARY_PRIORITY ( configMAX_PRIORITIES - 3 )
-#endif
-
-/* Set the following definitions to 1 to include the API function, or zero
-to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 1
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_xTaskAbortDelay 1
-#define INCLUDE_xTaskGetHandle 1
-#define INCLUDE_xSemaphoreGetMutexHolder 1
-
-/* Normal assert() semantics without relying on the provision of an assert.h
-header file. */
-#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); __asm volatile( "ebreak" ); for( ;; ); }
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/RTOSDemo.ewd
deleted file mode 100644
index 12fddc009..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/RTOSDemo.ewd
+++ /dev/null
@@ -1,632 +0,0 @@
-
-
- 3
-
- Debug
-
- RISCV
-
- 1
-
- C-SPY
- 1
-
- 0
- 1
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- IJETRISCV
- 2
-
- 0
- 1
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- SIMRISCV
- 1
-
- 0
- 1
- 1
-
-
-
-
-
- $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
- 0
-
-
-
-
- Release
-
- RISCV
-
- 0
-
- C-SPY
- 1
-
- 0
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- IJETRISCV
- 2
-
- 0
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- SIMRISCV
- 1
-
- 0
- 1
- 0
-
-
-
-
-
- $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
- 0
-
-
-
-
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/RTOSDemo.ewp
deleted file mode 100644
index 0bdb38612..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/RTOSDemo.ewp
+++ /dev/null
@@ -1,1871 +0,0 @@
-
-
- 3
-
- Debug
-
- RISCV
-
- 1
-
- General
- 1
-
- 0
- 1
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ICCRISCV
- 1
-
- 6
- 1
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- IASMRISCV
- 1
-
- 0
- 1
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- OBJCOPY
- 1
-
- 0
- 1
- 1
-
-
-
-
-
-
-
-
- CUSTOM
- 3
-
-
-
- 0
-
-
-
- BICOMP
- 0
-
-
-
- BUILDACTION
- 1
-
-
-
-
-
-
- ILINK
- 1
-
- 0
- 1
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- IARCHIVE
- 1
-
- 0
- 1
- 1
-
-
-
-
-
-
- BILINK
- 0
-
-
-
-
- Release
-
- RISCV
-
- 0
-
- General
- 1
-
- 0
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ICCRISCV
- 1
-
- 6
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- IASMRISCV
- 1
-
- 0
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- OBJCOPY
- 1
-
- 0
- 1
- 0
-
-
-
-
-
-
-
-
- CUSTOM
- 3
-
-
-
- 0
-
-
-
- BICOMP
- 0
-
-
-
- BUILDACTION
- 1
-
-
-
-
-
-
- ILINK
- 1
-
- 0
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- IARCHIVE
- 1
-
- 0
- 1
- 0
-
-
-
-
-
-
- BILINK
- 0
-
-
-
-
- blinky_demo
-
- $PROJ_DIR$\main_blinky\main_blinky.c
-
-
-
- FreeRTOS_source
-
- include
-
- $PROJ_DIR$\..\..\Source\include\event_groups.h
-
-
- $PROJ_DIR$\..\..\Source\include\message_buffer.h
-
-
- $PROJ_DIR$\..\..\Source\include\queue.h
-
-
- $PROJ_DIR$\..\..\Source\include\semphr.h
-
-
- $PROJ_DIR$\..\..\Source\include\stream_buffer.h
-
-
- $PROJ_DIR$\..\..\Source\include\task.h
-
-
- $PROJ_DIR$\..\..\Source\include\timers.h
-
-
-
- portable
-
- memmang
-
- $PROJ_DIR$\..\..\Source\portable\MemMang\heap_4.c
-
-
-
- $PROJ_DIR$\..\..\Source\portable\IAR\RISC-V\port.c
-
-
- $PROJ_DIR$\..\..\Source\portable\IAR\RISC-V\portASM.s
-
-
-
- $PROJ_DIR$\..\..\Source\event_groups.c
-
-
- $PROJ_DIR$\..\..\Source\list.c
-
-
- $PROJ_DIR$\..\..\Source\queue.c
-
-
- $PROJ_DIR$\..\..\Source\stream_buffer.c
-
-
- $PROJ_DIR$\..\..\Source\tasks.c
-
-
- $PROJ_DIR$\..\..\Source\timers.c
-
-
-
- full_demo
-
- common
-
- $PROJ_DIR$\..\Common\Minimal\AbortDelay.c
-
-
- $PROJ_DIR$\..\Common\Minimal\blocktim.c
-
-
- $PROJ_DIR$\..\Common\Minimal\countsem.c
-
-
- $PROJ_DIR$\..\Common\Minimal\death.c
-
-
- $PROJ_DIR$\..\Common\Minimal\dynamic.c
-
-
- $PROJ_DIR$\..\Common\Minimal\EventGroupsDemo.c
-
-
- $PROJ_DIR$\..\Common\Minimal\GenQTest.c
-
-
- $PROJ_DIR$\..\Common\Minimal\MessageBufferDemo.c
-
-
- $PROJ_DIR$\..\Common\Minimal\recmutex.c
-
-
- $PROJ_DIR$\..\Common\Minimal\StreamBufferDemo.c
-
-
- $PROJ_DIR$\..\Common\Minimal\StreamBufferInterrupt.c
-
-
- $PROJ_DIR$\..\Common\Minimal\TaskNotify.c
-
-
- $PROJ_DIR$\..\Common\Minimal\TimerDemo.c
-
-
-
- $PROJ_DIR$\full_demo\main_full.c
-
-
- $PROJ_DIR$\full_demo\RegTest.s
-
-
-
- $PROJ_DIR$\FreeRTOSConfig.h
-
-
- $PROJ_DIR$\main.c
-
-
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/RTOSDemo.ewt b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/RTOSDemo.ewt
deleted file mode 100644
index 14b84f924..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/RTOSDemo.ewt
+++ /dev/null
@@ -1,2279 +0,0 @@
-
-
- 3
-
- Debug
-
- RISCV
-
- 1
-
- C-STAT
- 261
-
- 261
-
- 0
-
- 1
- 600
- 1
- 2
- 0
- 1
- 100
-
-
- 1.5.5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Release
-
- RISCV
-
- 0
-
- C-STAT
- 261
-
- 261
-
- 0
-
- 1
- 600
- 1
- 2
- 0
- 1
- 100
-
-
- 1.5.5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- blinky_demo
-
- $PROJ_DIR$\main_blinky\main_blinky.c
-
-
-
- FreeRTOS_source
-
- include
-
- $PROJ_DIR$\..\..\Source\include\event_groups.h
-
-
- $PROJ_DIR$\..\..\Source\include\message_buffer.h
-
-
- $PROJ_DIR$\..\..\Source\include\queue.h
-
-
- $PROJ_DIR$\..\..\Source\include\semphr.h
-
-
- $PROJ_DIR$\..\..\Source\include\stream_buffer.h
-
-
- $PROJ_DIR$\..\..\Source\include\task.h
-
-
- $PROJ_DIR$\..\..\Source\include\timers.h
-
-
-
- portable
-
- memmang
-
- $PROJ_DIR$\..\..\Source\portable\MemMang\heap_4.c
-
-
-
- $PROJ_DIR$\..\..\Source\portable\IAR\RISC-V\port.c
-
-
- $PROJ_DIR$\..\..\Source\portable\IAR\RISC-V\portASM.s
-
-
-
- $PROJ_DIR$\..\..\Source\event_groups.c
-
-
- $PROJ_DIR$\..\..\Source\list.c
-
-
- $PROJ_DIR$\..\..\Source\queue.c
-
-
- $PROJ_DIR$\..\..\Source\stream_buffer.c
-
-
- $PROJ_DIR$\..\..\Source\tasks.c
-
-
- $PROJ_DIR$\..\..\Source\timers.c
-
-
-
- full_demo
-
- common
-
- $PROJ_DIR$\..\Common\Minimal\AbortDelay.c
-
-
- $PROJ_DIR$\..\Common\Minimal\blocktim.c
-
-
- $PROJ_DIR$\..\Common\Minimal\countsem.c
-
-
- $PROJ_DIR$\..\Common\Minimal\death.c
-
-
- $PROJ_DIR$\..\Common\Minimal\dynamic.c
-
-
- $PROJ_DIR$\..\Common\Minimal\EventGroupsDemo.c
-
-
- $PROJ_DIR$\..\Common\Minimal\GenQTest.c
-
-
- $PROJ_DIR$\..\Common\Minimal\MessageBufferDemo.c
-
-
- $PROJ_DIR$\..\Common\Minimal\recmutex.c
-
-
- $PROJ_DIR$\..\Common\Minimal\StreamBufferDemo.c
-
-
- $PROJ_DIR$\..\Common\Minimal\StreamBufferInterrupt.c
-
-
- $PROJ_DIR$\..\Common\Minimal\TaskNotify.c
-
-
- $PROJ_DIR$\..\Common\Minimal\TimerDemo.c
-
-
-
- $PROJ_DIR$\full_demo\main_full.c
-
-
- $PROJ_DIR$\full_demo\RegTest.s
-
-
-
- $PROJ_DIR$\FreeRTOSConfig.h
-
-
- $PROJ_DIR$\main.c
-
-
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/RTOSDemo.eww b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/RTOSDemo.eww
deleted file mode 100644
index 92414519a..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/RTOSDemo.eww
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- $WS_DIR$\RTOSDemo.ewp
-
-
-
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/SiFive_code/riscv_plic0.c b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/SiFive_code/riscv_plic0.c
deleted file mode 100644
index ed9782450..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/SiFive_code/riscv_plic0.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/* Copyright 2018 SiFive, Inc */
-/* SPDX-License-Identifier: Apache-2.0 */
-
-#include
-
-#ifdef METAL_RISCV_PLIC0
-
-#include
-#include
-#include
-#include
-
-unsigned int __metal_plic0_claim_interrupt (struct __metal_driver_riscv_plic0 *plic)
-{
- unsigned long control_base = __metal_driver_sifive_plic0_control_base((struct metal_interrupt *)plic);
- return __METAL_ACCESS_ONCE((__metal_io_u32 *)(control_base +
- METAL_RISCV_PLIC0_CLAIM));
-}
-
-void __metal_plic0_complete_interrupt(struct __metal_driver_riscv_plic0 *plic,
- unsigned int id)
-{
- unsigned long control_base = __metal_driver_sifive_plic0_control_base((struct metal_interrupt *)plic);
- __METAL_ACCESS_ONCE((__metal_io_u32 *)(control_base +
- METAL_RISCV_PLIC0_CLAIM)) = id;
-}
-
-void __metal_plic0_set_threshold(struct __metal_driver_riscv_plic0 *plic,
- unsigned int threshold)
-{
- unsigned long control_base = __metal_driver_sifive_plic0_control_base((struct metal_interrupt *)plic);
- __METAL_ACCESS_ONCE((__metal_io_u32 *)(control_base +
- METAL_RISCV_PLIC0_THRESHOLD)) = threshold;
-}
-
-void __metal_plic0_set_priority(struct __metal_driver_riscv_plic0 *plic,
- int id, unsigned int priority)
-{
- unsigned long control_base = __metal_driver_sifive_plic0_control_base((struct metal_interrupt *)plic);
- int max_priority = __metal_driver_sifive_plic0_max_priority((struct metal_interrupt *)plic);
- if ( (max_priority) && (priority < max_priority) ) {
- __METAL_ACCESS_ONCE((__metal_io_u32 *)(control_base +
- METAL_RISCV_PLIC0_PRIORITY_BASE +
- (id << METAL_PLIC_SOURCE_PRIORITY_SHIFT))) = priority;
- }
-}
-
-void __metal_plic0_enable(struct __metal_driver_riscv_plic0 *plic, int id, int enable)
-{
- unsigned int current;
- unsigned long hartid = __metal_myhart_id();
- unsigned long control_base = __metal_driver_sifive_plic0_control_base((struct metal_interrupt *)plic);
-
- current = __METAL_ACCESS_ONCE((__metal_io_u32 *)(control_base +
- METAL_RISCV_PLIC0_ENABLE_BASE +
- (id >> METAL_PLIC_SOURCE_SHIFT) * 4));
- __METAL_ACCESS_ONCE((__metal_io_u32 *)(control_base +
- METAL_RISCV_PLIC0_ENABLE_BASE +
- ((id >> METAL_PLIC_SOURCE_SHIFT) * 4))) =
- enable ? (current | (1 << (id & METAL_PLIC_SOURCE_MASK)))
- : (current & ~(1 << (id & METAL_PLIC_SOURCE_MASK)));
-}
-
-void __metal_plic0_default_handler (int id, void *priv) {
- metal_shutdown(300);
-}
-
-void __metal_plic0_handler (int id, void *priv)
-{
- struct __metal_driver_riscv_plic0 *plic = priv;
- unsigned int idx = __metal_plic0_claim_interrupt(plic);
- int num_interrupts = __metal_driver_sifive_plic0_num_interrupts((struct metal_interrupt *)plic);
-
- if ( (idx < num_interrupts) && (plic->metal_exint_table[idx]) ) {
- plic->metal_exint_table[idx](idx,
- plic->metal_exdata_table[idx].exint_data);
- }
-
- __metal_plic0_complete_interrupt(plic, idx);
-}
-
-void __metal_driver_riscv_plic0_init (struct metal_interrupt *controller)
-{
- struct __metal_driver_riscv_plic0 *plic = (void *)(controller);
-
- if ( !plic->init_done ) {
- int num_interrupts, line;
- struct metal_interrupt *intc;
-
- for(int parent = 0; parent < __METAL_PLIC_NUM_PARENTS; parent++) {
- num_interrupts = __metal_driver_sifive_plic0_num_interrupts(controller);
- intc = __metal_driver_sifive_plic0_interrupt_parents(controller, parent);
- line = __metal_driver_sifive_plic0_interrupt_lines(controller, parent);
-
- /* Initialize ist parent controller, aka cpu_intc. */
- intc->vtable->interrupt_init(intc);
-
- for (int i = 0; i < num_interrupts; i++) {
- __metal_plic0_enable(plic, i, METAL_DISABLE);
- __metal_plic0_set_priority(plic, i, 0);
- plic->metal_exint_table[i] = NULL;
- plic->metal_exdata_table[i].sub_int = NULL;
- plic->metal_exdata_table[i].exint_data = NULL;
- }
-
- __metal_plic0_set_threshold(plic, 0);
-
- /* Register plic (ext) interrupt with with parent controller */
- intc->vtable->interrupt_register(intc, line, NULL, plic);
- /* Register plic handler for dispatching its device interrupts */
- intc->vtable->interrupt_register(intc, line, __metal_plic0_handler, plic);
- /* Enable plic (ext) interrupt with with parent controller */
- intc->vtable->interrupt_enable(intc, line);
- }
- plic->init_done = 1;
- }
-}
-
-int __metal_driver_riscv_plic0_register (struct metal_interrupt *controller,
- int id, metal_interrupt_handler_t isr,
- void *priv)
-{
- struct __metal_driver_riscv_plic0 *plic = (void *)(controller);
-
- if (id >= __metal_driver_sifive_plic0_num_interrupts(controller)) {
- return -1;
- }
-
- if (isr) {
- __metal_plic0_set_priority(plic ,id, 2);
- plic->metal_exint_table[id] = isr;
- plic->metal_exdata_table[id].exint_data = priv;
- } else {
- __metal_plic0_set_priority(plic, id, 1);
- plic->metal_exint_table[id] = __metal_plic0_default_handler;
- plic->metal_exdata_table[id].sub_int = priv;
- }
-
- return 0;
-}
-
-int __metal_driver_riscv_plic0_enable (struct metal_interrupt *controller, int id)
-{
- struct __metal_driver_riscv_plic0 *plic = (void *)(controller);
-
- if (id >= __metal_driver_sifive_plic0_num_interrupts(controller)) {
- return -1;
- }
-
- __metal_plic0_enable(plic, id, METAL_ENABLE);
- return 0;
-}
-
-int __metal_driver_riscv_plic0_disable (struct metal_interrupt *controller, int id)
-{
- struct __metal_driver_riscv_plic0 *plic = (void *)(controller);
-
- if (id >= __metal_driver_sifive_plic0_num_interrupts(controller)) {
- return -1;
- }
- __metal_plic0_enable(plic, id, METAL_DISABLE);
- return 0;
-}
-
-__METAL_DEFINE_VTABLE(__metal_driver_vtable_riscv_plic0) = {
- .plic_vtable.interrupt_init = __metal_driver_riscv_plic0_init,
- .plic_vtable.interrupt_register = __metal_driver_riscv_plic0_register,
- .plic_vtable.interrupt_enable = __metal_driver_riscv_plic0_enable,
- .plic_vtable.interrupt_disable = __metal_driver_riscv_plic0_disable,
-};
-
-#endif /* METAL_RISCV_PLIC0 */
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/SiFive_code/sifive_uart0.c b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/SiFive_code/sifive_uart0.c
deleted file mode 100644
index 46971ec79..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/SiFive_code/sifive_uart0.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Copyright 2018 SiFive, Inc */
-/* SPDX-License-Identifier: Apache-2.0 */
-
-#include
-
-#ifdef METAL_SIFIVE_UART0
-
-#include
-#include
-
-/* TXDATA Fields */
-#define UART_TXEN (1 << 0)
-#define UART_TXFULL (1 << 31)
-
-/* RXDATA Fields */
-#define UART_RXEN (1 << 0)
-#define UART_RXEMPTY (1 << 31)
-
-/* TXCTRL Fields */
-#define UART_NSTOP (1 << 1)
-#define UART_TXCNT(count) ((0x7 & count) << 16)
-
-/* IP Fields */
-#define UART_TXWM (1 << 0)
-
-#define UART_REG(offset) (((unsigned long)control_base + offset))
-#define UART_REGB(offset) (__METAL_ACCESS_ONCE((__metal_io_u8 *)UART_REG(offset)))
-#define UART_REGW(offset) (__METAL_ACCESS_ONCE((__metal_io_u32 *)UART_REG(offset)))
-
-struct metal_interrupt *
-__metal_driver_sifive_uart0_interrupt_controller(struct metal_uart *uart)
-{
- return __metal_driver_sifive_uart0_interrupt_parent(uart);
-}
-
-int __metal_driver_sifive_uart0_get_interrupt_id(struct metal_uart *uart)
-{
- return (__metal_driver_sifive_uart0_interrupt_line(uart) + METAL_INTERRUPT_ID_GL0);
-}
-
-int __metal_driver_sifive_uart0_putc(struct metal_uart *uart, unsigned char c)
-{
- long control_base = __metal_driver_sifive_uart0_control_base(uart);
-
- while ((UART_REGW(METAL_SIFIVE_UART0_TXDATA) & UART_TXFULL) != 0) { }
- UART_REGW(METAL_SIFIVE_UART0_TXDATA) = c;
- return 0;
-}
-
-int __metal_driver_sifive_uart0_getc(struct metal_uart *uart, unsigned char *c)
-{
- uint32_t ch = UART_RXEMPTY;
- long control_base = __metal_driver_sifive_uart0_control_base(uart);
-
- while (ch & UART_RXEMPTY) {
- ch = UART_REGW(METAL_SIFIVE_UART0_RXDATA);
- }
- *c = ch & 0xff;
- return 0;
-}
-
-int __metal_driver_sifive_uart0_get_baud_rate(struct metal_uart *guart)
-{
- struct __metal_driver_sifive_uart0 *uart = (void *)guart;
- return uart->baud_rate;
-}
-
-int __metal_driver_sifive_uart0_set_baud_rate(struct metal_uart *guart, int baud_rate)
-{
- struct __metal_driver_sifive_uart0 *uart = (void *)guart;
- long control_base = __metal_driver_sifive_uart0_control_base(guart);
- struct metal_clock *clock = __metal_driver_sifive_uart0_clock(guart);
-
- uart->baud_rate = baud_rate;
-
- if (clock != NULL) {
- long clock_rate = clock->vtable->get_rate_hz(clock);
- UART_REGW(METAL_SIFIVE_UART0_DIV) = clock_rate / baud_rate - 1;
- UART_REGW(METAL_SIFIVE_UART0_TXCTRL) |= UART_TXEN;
- UART_REGW(METAL_SIFIVE_UART0_RXCTRL) |= UART_RXEN;
- }
- return 0;
-}
-
-static void pre_rate_change_callback(void *priv)
-{
- struct __metal_driver_sifive_uart0 *uart = priv;
- long control_base = __metal_driver_sifive_uart0_control_base((struct metal_uart *)priv);
- struct metal_clock *clock = __metal_driver_sifive_uart0_clock((struct metal_uart *)priv);
-
- /* Detect when the TXDATA is empty by setting the transmit watermark count
- * to one and waiting until an interrupt is pending */
-
- UART_REGW(METAL_SIFIVE_UART0_TXCTRL) &= ~(UART_TXCNT(0x7));
- UART_REGW(METAL_SIFIVE_UART0_TXCTRL) |= UART_TXCNT(1);
-
- while((UART_REGW(METAL_SIFIVE_UART0_IP) & UART_TXWM) == 0) ;
-
- /* When the TXDATA clears, the UART is still shifting out the last byte.
- * Calculate the time we must drain to finish transmitting and then wait
- * that long. */
-
- long bits_per_symbol = (UART_REGW(METAL_SIFIVE_UART0_TXCTRL) & (1 << 1)) ? 9 : 10;
- long clk_freq = clock->vtable->get_rate_hz(clock);
- long cycles_to_wait = bits_per_symbol * clk_freq / uart->baud_rate;
-
- for(volatile long x = 0; x < cycles_to_wait; x++)
- asm("nop");
-}
-
-static void post_rate_change_callback(void *priv)
-{
- struct __metal_driver_sifive_uart0 *uart = priv;
- metal_uart_set_baud_rate(&uart->uart, uart->baud_rate);
-}
-
-void __metal_driver_sifive_uart0_init(struct metal_uart *guart, int baud_rate)
-{
- struct __metal_driver_sifive_uart0 *uart = (void *)(guart);
- struct metal_clock *clock = __metal_driver_sifive_uart0_clock(guart);
- struct __metal_driver_sifive_gpio0 *pinmux = __metal_driver_sifive_uart0_pinmux(guart);
-
- if(clock != NULL) {
- metal_clock_register_pre_rate_change_callback(clock, &pre_rate_change_callback, guart);
- metal_clock_register_post_rate_change_callback(clock, &post_rate_change_callback, guart);
- }
-
- metal_uart_set_baud_rate(&(uart->uart), baud_rate);
-
- if (pinmux != NULL) {
- long pinmux_output_selector = __metal_driver_sifive_uart0_pinmux_output_selector(guart);
- long pinmux_source_selector = __metal_driver_sifive_uart0_pinmux_source_selector(guart);
- pinmux->gpio.vtable->enable_io(
- (struct metal_gpio *) pinmux,
- pinmux_output_selector,
- pinmux_source_selector
- );
- }
-}
-
-__METAL_DEFINE_VTABLE(__metal_driver_vtable_sifive_uart0) = {
- .uart.init = __metal_driver_sifive_uart0_init,
- .uart.putc = __metal_driver_sifive_uart0_putc,
- .uart.getc = __metal_driver_sifive_uart0_getc,
- .uart.get_baud_rate = __metal_driver_sifive_uart0_get_baud_rate,
- .uart.set_baud_rate = __metal_driver_sifive_uart0_set_baud_rate,
- .uart.controller_interrupt = __metal_driver_sifive_uart0_interrupt_controller,
- .uart.get_interrupt_id = __metal_driver_sifive_uart0_get_interrupt_id,
-};
-
-#endif /* METAL_SIFIVE_UART0 */
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/full_demo/RegTest.s b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/full_demo/RegTest.s
deleted file mode 100644
index 19c820101..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/full_demo/RegTest.s
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * FreeRTOS Kernel V10.2.1
- * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * http://www.FreeRTOS.org
- * http://aws.amazon.com/freertos
- *
- * 1 tab == 4 spaces!
- */
-
- EXTERN ulRegTest1LoopCounter
- EXTERN ulRegTest2LoopCounter
-
- PUBLIC vRegTest1Implementation
- PUBLIC vRegTest2Implementation
-
-/*-----------------------------------------------------------*/
-
- SECTION `.text`:CODE:NOROOT(2)
- CODE
-
-/*
- * The register check tasks are described in the comments at the top of
- * main_full.c.
- */
-
-vRegTest1Implementation:
-
- /* Fill the core registers with known values. */
- li x5, 0x5
- li x6, 0x6
- li x7, 0x7
- li x8, 0x8
- li x9, 0x9
- li x10, 0xa
- li x11, 0xb
- li x12, 0xc
- li x13, 0xd
- li x14, 0xe
- li x15, 0xf
- li x16, 0x10
- li x17, 0x11
- li x18, 0x12
- li x19, 0x13
- li x20, 0x14
- li x21, 0x15
- li x22, 0x16
- li x23, 0x17
- li x24, 0x18
- li x25, 0x19
- li x26, 0x1a
- li x27, 0x1b
- li x28, 0x1c
- li x29, 0x1d
- li x30, 0x1e
-
-reg1_loop:
-
- /* Check each register still contains the expected known value.
- vRegTest1Implementation uses x31 as the temporary, vRegTest2Implementation
- uses x5 as the temporary. */
- li x31, 0x5
- bne x31, x5, reg1_error_loop
- li x31, 0x6
- bne x31, x6, reg1_error_loop
- li x31, 0x7
- bne x31, x7, reg1_error_loop
- li x31, 0x8
- bne x31, x8, reg1_error_loop
- li x31, 0x9
- bne x31, x9, reg1_error_loop
- li x31, 0xa
- bne x31, x10, reg1_error_loop
- li x31, 0xb
- bne x31, x11, reg1_error_loop
- li x31, 0xc
- bne x31, x12, reg1_error_loop
- li x31, 0xd
- bne x31, x13, reg1_error_loop
- li x31, 0xe
- bne x31, x14, reg1_error_loop
- li x31, 0xf
- bne x31, x15, reg1_error_loop
- li x31, 0x10
- bne x31, x16, reg1_error_loop
- li x31, 0x11
- bne x31, x17, reg1_error_loop
- li x31, 0x12
- bne x31, x18, reg1_error_loop
- li x31, 0x13
- bne x31, x19, reg1_error_loop
- li x31, 0x14
- bne x31, x20, reg1_error_loop
- li x31, 0x15
- bne x31, x21, reg1_error_loop
- li x31, 0x16
- bne x31, x22, reg1_error_loop
- li x31, 0x17
- bne x31, x23, reg1_error_loop
- li x31, 0x18
- bne x31, x24, reg1_error_loop
- li x31, 0x19
- bne x31, x25, reg1_error_loop
- li x31, 0x1a
- bne x31, x26, reg1_error_loop
- li x31, 0x1b
- bne x31, x27, reg1_error_loop
- li x31, 0x1c
- bne x31, x28, reg1_error_loop
- li x31, 0x1d
- bne x31, x29, reg1_error_loop
- li x31, 0x1e
- bne x31, x30, reg1_error_loop
-
- /* Everything passed, increment the loop counter. */
- lw x31, ulRegTest1LoopCounter
-//_RB_ lw x30, 0(x31)
- addi x30, x30, 1
- sw x30, 0(x31)
-
- /* Restore clobbered register reading for next loop. */
- li x30, 0x1e
-
- /* Yield to increase code coverage. */
- ecall
-
- /* Start again. */
- jal reg1_loop
-
-reg1_error_loop:
- /* Jump here if a register contains an uxpected value. This stops the loop
- counter being incremented so the check task knows an error was found. */
- jal reg1_error_loop
-
-/*-----------------------------------------------------------*/
-
-vRegTest2Implementation:
-
- /* Fill the core registers with known values. */
- li x6, 0x61
- li x7, 0x71
- li x8, 0x81
- li x9, 0x91
- li x10, 0xa1
- li x11, 0xb1
- li x12, 0xc1
- li x13, 0xd1
- li x14, 0xe1
- li x15, 0xf1
- li x16, 0x20
- li x17, 0x21
- li x18, 0x22
- li x19, 0x23
- li x20, 0x24
- li x21, 0x25
- li x22, 0x26
- li x23, 0x27
- li x24, 0x28
- li x25, 0x29
- li x26, 0x2a
- li x27, 0x2b
- li x28, 0x2c
- li x29, 0x2d
- li x30, 0x2e
- li x31, 0x2f
-
-Reg2_loop:
-
- /* Check each register still contains the expected known value.
- vRegTest2Implementation uses x5 as the temporary, vRegTest1Implementation
- uses x31 as the temporary. */
- li x5, 0x61
- bne x5, x6, reg2_error_loop
- li x5, 0x71
- bne x5, x7, reg2_error_loop
- li x5, 0x81
- bne x5, x8, reg2_error_loop
- li x5, 0x91
- bne x5, x9, reg2_error_loop
- li x5, 0xa1
- bne x5, x10, reg2_error_loop
- li x5, 0xb1
- bne x5, x11, reg2_error_loop
- li x5, 0xc1
- bne x5, x12, reg2_error_loop
- li x5, 0xd1
- bne x5, x13, reg2_error_loop
- li x5, 0xe1
- bne x5, x14, reg2_error_loop
- li x5, 0xf1
- bne x5, x15, reg2_error_loop
- li x5, 0x20
- bne x5, x16, reg2_error_loop
- li x5, 0x21
- bne x5, x17, reg2_error_loop
- li x5, 0x22
- bne x5, x18, reg2_error_loop
- li x5, 0x23
- bne x5, x19, reg2_error_loop
- li x5, 0x24
- bne x5, x20, reg2_error_loop
- li x5, 0x25
- bne x5, x21, reg2_error_loop
- li x5, 0x26
- bne x5, x22, reg2_error_loop
- li x5, 0x27
- bne x5, x23, reg2_error_loop
- li x5, 0x28
- bne x5, x24, reg2_error_loop
- li x5, 0x29
- bne x5, x25, reg2_error_loop
- li x5, 0x2a
- bne x5, x26, reg2_error_loop
- li x5, 0x2b
- bne x5, x27, reg2_error_loop
- li x5, 0x2c
- bne x5, x28, reg2_error_loop
- li x5, 0x2d
- bne x5, x29, reg2_error_loop
- li x5, 0x2e
- bne x5, x30, reg2_error_loop
- li x5, 0x2f
- bne x5, x31, reg2_error_loop
-
- /* Everything passed, increment the loop counter. */
- lw x5, ulRegTest2LoopCounter
-//_RB_ lw x6, 0(x5)
- addi x6, x6, 1
- sw x6, 0(x5)
-
- /* Restore clobbered register reading for next loop. */
- li x6, 0x61
-
- /* Start again. */
- jal Reg2_loop
-
-reg2_error_loop:
- /* Jump here if a register contains an uxpected value. This stops the loop
- counter being incremented so the check task knows an error was found. */
- jal reg2_error_loop
-
-/*-----------------------------------------------------------*/
-
-
-
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/full_demo/main_full.c b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/full_demo/main_full.c
deleted file mode 100644
index 8626d536a..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/full_demo/main_full.c
+++ /dev/null
@@ -1,397 +0,0 @@
-/*
- * FreeRTOS Kernel V10.2.1
- * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * http://www.FreeRTOS.org
- * http://aws.amazon.com/freertos
- *
- * 1 tab == 4 spaces!
- */
-
-/******************************************************************************
- * NOTE 1: This project provides two demo applications. A simple blinky style
- * project, and a more comprehensive test and demo application. The
- * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting in main.c is used to select
- * between the two. See the notes on using mainCREATE_SIMPLE_BLINKY_DEMO_ONLY
- * in main.c. This file implements the comprehensive test and demo version.
- *
- * NOTE 2: This file only contains the source code that is specific to the
- * full demo. Generic functions, such FreeRTOS hook functions, and functions
- * required to configure the hardware, are defined in main.c.
- *
- ******************************************************************************
- *
- * main_full() creates all the demo application tasks and software timers, then
- * starts the scheduler. The web documentation provides more details of the
- * standard demo application tasks, which provide no particular functionality,
- * but do provide a good example of how to use the FreeRTOS API.
- *
- * In addition to the standard demo tasks, the following tasks and tests are
- * defined and/or created within this file:
- *
- * "Reg test" tasks - These fill both the core registers with known values, then
- * check that each register maintains its expected value for the lifetime of the
- * task. Each task uses a different set of values. The reg test tasks execute
- * with a very low priority, so get preempted very frequently. A register
- * containing an unexpected value is indicative of an error in the context
- * switching mechanism.
- *
- * "Check" task - The check executes every three seconds. It checks that all
- * the standard demo tasks, and the register check tasks, are not only still
- * executing, but are executing without reporting any errors. If the check task
- * discovers that a task has either stalled, or reported an error, then it
- * prints an error message to the UART, otherwise it prints "Pass.".
- */
-
-/* Standard includes. */
-#include
-#include
-
-/* Kernel includes. */
-#include "FreeRTOS.h"
-#include "task.h"
-#include "timers.h"
-#include "semphr.h"
-
-
-/* Standard demo application includes. */
-#include "dynamic.h"
-#include "blocktim.h"
-#include "GenQTest.h"
-#include "recmutex.h"
-#include "TimerDemo.h"
-#include "EventGroupsDemo.h"
-#include "TaskNotify.h"
-#include "AbortDelay.h"
-#include "countsem.h"
-#include "death.h"
-#include "MessageBufferDemo.h"
-#include "StreamBufferDemo.h"
-#include "StreamBufferInterrupt.h"
-
-/* Priorities for the demo application tasks. */
-#define mainCHECK_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define mainCREATOR_TASK_PRIORITY ( tskIDLE_PRIORITY + 3UL )
-
-/* The period of the check task, in ms, converted to ticks using the
-pdMS_TO_TICKS() macro. mainNO_ERROR_CHECK_TASK_PERIOD is used if no errors have
-been found, mainERROR_CHECK_TASK_PERIOD is used if an error has been found. */
-#define mainNO_ERROR_CHECK_TASK_PERIOD pdMS_TO_TICKS( 3000UL )
-#define mainERROR_CHECK_TASK_PERIOD pdMS_TO_TICKS( 500UL )
-
-/* Parameters that are passed into the register check tasks solely for the
-purpose of ensuring parameters are passed into tasks correctly. */
-#define mainREG_TEST_TASK_1_PARAMETER ( ( void * ) 0x12345678 )
-#define mainREG_TEST_TASK_2_PARAMETER ( ( void * ) 0x87654321 )
-
-/* The base period used by the timer test tasks. */
-#define mainTIMER_TEST_PERIOD ( 50 )
-
-/* The size of the stack allocated to the check task (as described in the
-comments at the top of this file. */
-#define mainCHECK_TASK_STACK_SIZE_WORDS 100
-
-/* Size of the stacks to allocated for the register check tasks. */
-#define mainREG_TEST_STACK_SIZE_WORDS 70
-
-/*-----------------------------------------------------------*/
-
-/*
- * Called by main() to run the full demo (as opposed to the blinky demo) when
- * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 0.
- */
-void main_full( void );
-
-/*
- * The check task, as described at the top of this file.
- */
-static void prvCheckTask( void *pvParameters );
-
-/*
- * Initialise and start the peripheral timers that are used to exercise external
- * interrupt processing.
- */
-static void prvSetupPeripheralTimers( void );
-
-/*
- * Register check tasks as described at the top of this file. The nature of
- * these files necessitates that they are written in an assembly file, but the
- * entry points are kept in the C file for the convenience of checking the task
- * parameter.
- */
-static void prvRegTestTaskEntry1( void *pvParameters );
-extern void vRegTest1Implementation( void );
-static void prvRegTestTaskEntry2( void *pvParameters );
-extern void vRegTest2Implementation( void );
-
-/*
- * Tick hook used by the full demo, which includes code that interacts with
- * some of the tests.
- */
-void vFullDemoTickHook( void );
-
-/*-----------------------------------------------------------*/
-
-/* The following two variables are used to communicate the status of the
-register check tasks to the check task. If the variables keep incrementing,
-then the register check tasks have not discovered any errors. If a variable
-stops incrementing, then an error has been found. */
-volatile uint32_t ulRegTest1LoopCounter = 0UL, ulRegTest2LoopCounter = 0UL;
-
-/*-----------------------------------------------------------*/
-
-void main_full( void )
-{
- /* Start all the other standard demo/test tasks. They have no particular
- functionality, but do demonstrate how to use the FreeRTOS API and test the
- kernel port. */
- vStartDynamicPriorityTasks();
- vCreateBlockTimeTasks();
- vStartGenericQueueTasks( tskIDLE_PRIORITY );
- vStartRecursiveMutexTasks();
- vStartTimerDemoTask( mainTIMER_TEST_PERIOD );
- vStartEventGroupTasks();
- vStartTaskNotifyTask();
- vCreateAbortDelayTasks();
- vStartCountingSemaphoreTasks();
- vStartMessageBufferTasks( configMINIMAL_STACK_SIZE );
- vStartStreamBufferTasks();
- vStartStreamBufferInterruptDemo();
-
- /* Create the register check tasks, as described at the top of this file.
- Use xTaskCreateStatic() to create a task using only statically allocated
- memory. */
- xTaskCreate( prvRegTestTaskEntry1, /* The function that implements the task. */
- "Reg1", /* The name of the task. */
- mainREG_TEST_STACK_SIZE_WORDS, /* Size of stack to allocate for the task - in words not bytes!. */
- mainREG_TEST_TASK_1_PARAMETER, /* Parameter passed into the task. */
- tskIDLE_PRIORITY, /* Priority of the task. */
- NULL ); /* Can be used to pass out a handle to the created task. */
- xTaskCreate( prvRegTestTaskEntry2, "Reg2", mainREG_TEST_STACK_SIZE_WORDS, mainREG_TEST_TASK_2_PARAMETER, tskIDLE_PRIORITY, NULL );
-
- /* Create the task that performs the 'check' functionality, as described at
- the top of this file. */
- xTaskCreate( prvCheckTask, "Check", mainCHECK_TASK_STACK_SIZE_WORDS, NULL, mainCHECK_TASK_PRIORITY, NULL );
-
- /* The set of tasks created by the following function call have to be
- created last as they keep account of the number of tasks they expect to see
- running. */
- vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY );
-
- /* Start the scheduler. */
- vTaskStartScheduler();
-
- /* If all is well, the scheduler will now be running, and the following
- line will never be reached. If the following line does execute, then
- there was insufficient FreeRTOS heap memory available for the Idle and/or
- timer tasks to be created. See the memory management section on the
- FreeRTOS web site for more details on the FreeRTOS heap
- http://www.freertos.org/a00111.html. */
- for( ;; );
-}
-/*-----------------------------------------------------------*/
-
-static void prvCheckTask( void *pvParameters )
-{
-TickType_t xDelayPeriod = mainNO_ERROR_CHECK_TASK_PERIOD;
-TickType_t xLastExecutionTime;
-uint32_t ulLastRegTest1Value = 0, ulLastRegTest2Value = 0;
-char * const pcPassMessage = ".";
-char * pcStatusMessage = pcPassMessage;
-extern void vSendString( const char * const pcString );
-extern void vToggleLED( void );
-
- /* Just to stop compiler warnings. */
- ( void ) pvParameters;
-
- /* Start with a pass message, after which a '.' character will be printed
- out on each successful loop. */
- vSendString( "Pass" );
-
- /* Initialise xLastExecutionTime so the first call to vTaskDelayUntil()
- works correctly. */
- xLastExecutionTime = xTaskGetTickCount();
-
- /* Cycle for ever, delaying then checking all the other tasks are still
- operating without error. The onboard LED is toggled on each iteration.
- If an error is detected then the delay period is decreased from
- mainNO_ERROR_CHECK_TASK_PERIOD to mainERROR_CHECK_TASK_PERIOD. This has the
- effect of increasing the rate at which the onboard LED toggles, and in so
- doing gives visual feedback of the system status. */
- for( ;; )
- {
- /* Delay until it is time to execute again. */
- vTaskDelayUntil( &xLastExecutionTime, xDelayPeriod );
-
- /* Check all the demo tasks (other than the flash tasks) to ensure
- that they are all still running, and that none have detected an error. */
- if( xAreDynamicPriorityTasksStillRunning() == pdFALSE )
- {
- pcStatusMessage = "ERROR: Dynamic priority demo/tests.\r\n";
- }
-
- if( xAreBlockTimeTestTasksStillRunning() == pdFALSE )
- {
- pcStatusMessage = "ERROR: Block time demo/tests.\r\n";
- }
-
- if( xAreGenericQueueTasksStillRunning() == pdFALSE )
- {
- pcStatusMessage = "ERROR: Generic queue demo/tests.\r\n";
- }
-
- if( xAreRecursiveMutexTasksStillRunning() == pdFALSE )
- {
- pcStatusMessage = "ERROR: Recursive mutex demo/tests.\r\n";
- }
-
- if( xAreTimerDemoTasksStillRunning( ( TickType_t ) xDelayPeriod ) == pdFALSE )
- {
- pcStatusMessage = "ERROR: Timer demo/tests.\r\n";
- }
-
- if( xAreEventGroupTasksStillRunning() == pdFALSE )
- {
- pcStatusMessage = "ERROR: Event group demo/tests.\r\n";
- }
-
- if( xAreTaskNotificationTasksStillRunning() == pdFALSE )
- {
- pcStatusMessage = "ERROR: Task notification demo/tests.\r\n";
- }
-
- if( xAreAbortDelayTestTasksStillRunning() == pdFALSE )
- {
- pcStatusMessage = "ERROR: Abort delay.\r\n";
- }
-
- if( xAreCountingSemaphoreTasksStillRunning() == pdFALSE )
- {
- pcStatusMessage = "ERROR: Counting semaphores.\r\n";
- }
-
- if( xIsCreateTaskStillRunning() == pdFALSE )
- {
- pcStatusMessage = "ERROR: Suicide tasks.\r\n";
- }
-
- if( xAreMessageBufferTasksStillRunning() == pdFALSE )
- {
- pcStatusMessage = "ERROR: Message buffer.\r\n";
- }
-
- if( xAreStreamBufferTasksStillRunning() == pdFALSE )
- {
- pcStatusMessage = "ERROR: Stream buffer.\r\n";
- }
-
- if( xIsInterruptStreamBufferDemoStillRunning() == pdFALSE )
- {
- pcStatusMessage = "ERROR: Stream buffer interrupt.\r\n";
- }
-
- /* Check that the register test 1 task is still running. */
- if( ulLastRegTest1Value == ulRegTest1LoopCounter )
- {
- pcStatusMessage = "ERROR: Register test 1.\r\n";
- }
- ulLastRegTest1Value = ulRegTest1LoopCounter;
-
- /* Check that the register test 2 task is still running. */
- if( ulLastRegTest2Value == ulRegTest2LoopCounter )
- {
- pcStatusMessage = "ERROR: Register test 2.\r\n";
- }
- ulLastRegTest2Value = ulRegTest2LoopCounter;
-
- /* Write the status message to the UART. */
- vSendString( pcStatusMessage );
-
- /* If an error has been found then increase the LED toggle rate by
- increasing the cycle frequency. */
- if( pcStatusMessage != pcPassMessage )
- {
- xDelayPeriod = mainERROR_CHECK_TASK_PERIOD;
- }
- }
-}
-/*-----------------------------------------------------------*/
-
-static void prvRegTestTaskEntry1( void *pvParameters )
-{
- /* Although the regtest task is written in assembler, its entry point is
- written in C for convenience of checking the task parameter is being passed
- in correctly. */
- if( pvParameters == mainREG_TEST_TASK_1_PARAMETER )
- {
- /* Start the part of the test that is written in assembler. */
- vRegTest1Implementation();
- }
-
- /* The following line will only execute if the task parameter is found to
- be incorrect. The check task will detect that the regtest loop counter is
- not being incremented and flag an error. */
- vTaskDelete( NULL );
-}
-/*-----------------------------------------------------------*/
-
-static void prvRegTestTaskEntry2( void *pvParameters )
-{
- /* Although the regtest task is written in assembler, its entry point is
- written in C for convenience of checking the task parameter is being passed
- in correctly. */
- if( pvParameters == mainREG_TEST_TASK_2_PARAMETER )
- {
- /* Start the part of the test that is written in assembler. */
- vRegTest2Implementation();
- }
-
- /* The following line will only execute if the task parameter is found to
- be incorrect. The check task will detect that the regtest loop counter is
- not being incremented and flag an error. */
- vTaskDelete( NULL );
-}
-/*-----------------------------------------------------------*/
-
-void vFullDemoTickHook( void )
-{
- /* The full demo includes a software timer demo/test that requires
- prodding periodically from the tick interrupt. */
- vTimerPeriodicISRTests();
-
- /* Call the periodic event group from ISR demo. */
- vPeriodicEventGroupsProcessing();
-
- /* Use task notifications from an interrupt. */
- xNotifyTaskFromISR();
-
- /* Writes to stream buffer byte by byte to test the stream buffer trigger
- level functionality. */
- vPeriodicStreamBufferProcessing();
-
- /* Writes a string to a string buffer four bytes at a time to demonstrate
- a stream being sent from an interrupt to a task. */
- vBasicStreamBufferSendFromISR();
-
- /* Called from vApplicationTickHook() when the project is configured to
- build the full test/demo applications. */
-}
-/*-----------------------------------------------------------*/
-
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/main.c b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/main.c
deleted file mode 100644
index 797a8267a..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/main.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * FreeRTOS Kernel V10.2.1
- * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * http://www.FreeRTOS.org
- * http://aws.amazon.com/freertos
- *
- * 1 tab == 4 spaces!
- */
-
-/* FreeRTOS kernel includes. */
-#include
-#include
-
-/******************************************************************************
- * This project provides two demo applications. A simple blinky style project,
- * and a more comprehensive test and demo application. The
- * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting (defined in this file) is used to
- * select between the two. The simply blinky demo is implemented and described
- * in main_blinky.c. The more comprehensive test and demo application is
- * implemented and described in main_full.c.
- *
- * This file implements the code that is not demo specific, including the
- * hardware setup and standard FreeRTOS hook functions.
- *
- * ENSURE TO READ THE DOCUMENTATION PAGE FOR THIS PORT AND DEMO APPLICATION ON
- * THE http://www.FreeRTOS.org WEB SITE FOR FULL INFORMATION ON USING THIS DEMO
- * APPLICATION, AND ITS ASSOCIATE FreeRTOS ARCHITECTURE PORT!
- *
- */
-
-/* UART hardware constants. */
-#define mainUART_BASE_ADDRESS ( *( volatile uint32_t * ) 0x20000000UL )
-#define mainUART_TX_DATA 0x00
-#define mainUART_TX_CTRL 0x08
-#define mainUART_RX_CTRL 0x0c
-#define mainUART_CLOCK_DIV 0x18
-#define mainUART_TX_ENABLE_BIT (1UL << 0UL)
-#define mainUART_RX_ENABLE_BIT (1UL << 0UL)
-#define mainUART_TX_FULL_BIT (1UL << 31UL)
-#define mainUART_REGISTER( offset ) ( ( mainUART_BASE_ADDRESS + offset ) )
-#define mainUART_REGISTER_WORD( offset ) ( *( ( uint32_t * ) mainUART_REGISTER( offset ) ) )
-
-
-/* Set mainCREATE_SIMPLE_BLINKY_DEMO_ONLY to one to run the simple blinky demo,
-or 0 to run the more comprehensive test and demo application. */
-#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 0
-
-/*
- * main_blinky() is used when mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 1.
- * main_full() is used when mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 0.
- */
-#if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1
- extern void main_blinky( void );
-#else
- extern void main_full( void );
-#endif /* #if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1 */
-
-/* Prototypes for the standard FreeRTOS callback/hook functions implemented
-within this file. See https://www.freertos.org/a00016.html */
-void vApplicationMallocFailedHook( void );
-void vApplicationIdleHook( void );
-void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName );
-void vApplicationTickHook( void );
-
-/* Prepare hardware to run the demo. */
-static void prvSetupHardware( void );
-
-/* Send a message to the UART initialised in prvSetupHardware. */
-void vSendString( const char * const pcString );
-
-/*-----------------------------------------------------------*/
-
-int main( void )
-{
- prvSetupHardware();
-
- /* The mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting is described at the top
- of this file. */
- #if( mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1 )
- {
- main_blinky();
- }
- #else
- {
- main_full();
- }
- #endif
-}
-/*-----------------------------------------------------------*/
-
-static void prvSetupHardware( void )
-{
-const unsigned long clock_rate = 66000000, baud_rate = 115200;
-
- /* Initialise the UART. */
- mainUART_REGISTER_WORD( mainUART_CLOCK_DIV ) = clock_rate / baud_rate - 1;
- mainUART_REGISTER_WORD( mainUART_TX_CTRL ) |= mainUART_TX_ENABLE_BIT;
- mainUART_REGISTER_WORD( mainUART_RX_CTRL ) |= mainUART_RX_ENABLE_BIT;
-}
-/*-----------------------------------------------------------*/
-
-void vToggleLED( void )
-{
-static uint32_t ulLEDState = 0;
-
- ulLEDState = !ulLEDState;
-}
-/*-----------------------------------------------------------*/
-
-void vSendString( const char * const pcString )
-{
-uint32_t ulIndex = 0;
-
- while( pcString[ ulIndex ] != 0x00 )
- {
- while( ( mainUART_REGISTER_WORD( mainUART_TX_DATA ) & mainUART_TX_FULL_BIT ) != 0UL );
- mainUART_REGISTER_WORD(mainUART_TX_DATA) = pcString[ ulIndex ];
- ulIndex++;
- }
-}
-/*-----------------------------------------------------------*/
-
-void vApplicationMallocFailedHook( void )
-{
- /* vApplicationMallocFailedHook() will only be called if
- configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h. It is a hook
- function that will get called if a call to pvPortMalloc() fails.
- pvPortMalloc() is called internally by the kernel whenever a task, queue,
- timer or semaphore is created. It is also called by various parts of the
- demo application. If heap_1.c or heap_2.c are used, then the size of the
- heap available to pvPortMalloc() is defined by configTOTAL_HEAP_SIZE in
- FreeRTOSConfig.h, and the xPortGetFreeHeapSize() API function can be used
- to query the size of free heap space that remains (although it does not
- provide information on how the remaining heap might be fragmented). */
- taskDISABLE_INTERRUPTS();
- __asm volatile( "ebreak" );
- for( ;; );
-}
-/*-----------------------------------------------------------*/
-
-void vApplicationIdleHook( void )
-{
- /* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set
- to 1 in FreeRTOSConfig.h. It will be called on each iteration of the idle
- task. It is essential that code added to this hook function never attempts
- to block in any way (for example, call xQueueReceive() with a block time
- specified, or call vTaskDelay()). If the application makes use of the
- vTaskDelete() API function (as this demo application does) then it is also
- important that vApplicationIdleHook() is permitted to return to its calling
- function, because it is the responsibility of the idle task to clean up
- memory allocated by the kernel to any task that has since been deleted. */
-}
-/*-----------------------------------------------------------*/
-
-void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName )
-{
- ( void ) pcTaskName;
- ( void ) pxTask;
-
- /* Run time stack overflow checking is performed if
- configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2. This hook
- function is called if a stack overflow is detected. */
- taskDISABLE_INTERRUPTS();
- __asm volatile( "ebreak" );
- for( ;; );
-}
-/*-----------------------------------------------------------*/
-
-void vApplicationTickHook( void )
-{
- /* The tests in the full demo expect some interaction with interrupts. */
- #if( mainCREATE_SIMPLE_BLINKY_DEMO_ONLY != 1 )
- {
- extern void vFullDemoTickHook( void );
- vFullDemoTickHook();
- }
- #endif
-}
-/*-----------------------------------------------------------*/
-
-/* Called from the kernel's port layer to handle device specific external
-interrupts. */
-void vApplicationHandleTrap( uint32_t mcause )
-{
- /* Not implemented yet. */
- configASSERT( mcause == 0 );
-#warning vApplicationHandleTrap not implemented.
-#if 0
-uint32_t ulInterruptNumber;
-typedef void ( * irq_handler_t )( void );
-extern const irq_handler_t isrTable[];
-
- ulInterruptNumber = PLIC->TARGET[ 0 ].CLAIM_COMPLETE;
-
- /* Read handler from table. */
- /* Call handler. */
-
- PLIC->TARGET[ 0 ].CLAIM_COMPLETE = ulInterruptNumber;
-#endif
-}
-
-
-
-
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/main_blinky/main_blinky.c b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/main_blinky/main_blinky.c
deleted file mode 100644
index a1d1edb0b..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/main_blinky/main_blinky.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * FreeRTOS Kernel V10.2.1
- * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * http://www.FreeRTOS.org
- * http://aws.amazon.com/freertos
- *
- * 1 tab == 4 spaces!
- */
-
-/******************************************************************************
- * NOTE 1: This project provides two demo applications. A simple blinky
- * style project, and a more comprehensive test and demo application. The
- * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting in main.c is used to select
- * between the two. See the notes on using mainCREATE_SIMPLE_BLINKY_DEMO_ONLY
- * in main.c. This file implements the simply blinky style version.
- *
- * NOTE 2: This file only contains the source code that is specific to the
- * basic demo. Generic functions, such FreeRTOS hook functions, and functions
- * required to configure the hardware are defined in main.c.
- ******************************************************************************
- *
- * main_blinky() creates one queue, and two tasks. It then starts the
- * scheduler.
- *
- * The Queue Send Task:
- * The queue send task is implemented by the prvQueueSendTask() function in
- * this file. prvQueueSendTask() sits in a loop that causes it to repeatedly
- * block for 1000 milliseconds, before sending the value 100 to the queue that
- * was created within main_blinky(). Once the value is sent, the task loops
- * back around to block for another 1000 milliseconds...and so on.
- *
- * The Queue Receive Task:
- * The queue receive task is implemented by the prvQueueReceiveTask() function
- * in this file. prvQueueReceiveTask() sits in a loop where it repeatedly
- * blocks on attempts to read data from the queue that was created within
- * main_blinky(). When data is received, the task checks the value of the
- * data, and if the value equals the expected 100, writes 'Blink' to the UART
- * (the UART is used in place of the LED to allow easy execution in QEMU). The
- * 'block time' parameter passed to the queue receive function specifies that
- * the task should be held in the Blocked state indefinitely to wait for data to
- * be available on the queue. The queue receive task will only leave the
- * Blocked state when the queue send task writes to the queue. As the queue
- * send task writes to the queue every 1000 milliseconds, the queue receive
- * task leaves the Blocked state every 1000 milliseconds, and therefore toggles
- * the LED every 200 milliseconds.
- */
-
-/* Standard includes. */
-#include
-#include
-
-/* Kernel includes. */
-#include "FreeRTOS.h"
-#include "task.h"
-#include "queue.h"
-
-/* Priorities used by the tasks. */
-#define mainQUEUE_RECEIVE_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 )
-#define mainQUEUE_SEND_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 )
-
-/* The rate at which data is sent to the queue. The 200ms value is converted
-to ticks using the pdMS_TO_TICKS() macro. */
-#define mainQUEUE_SEND_FREQUENCY_MS pdMS_TO_TICKS( 1000 )
-
-/* The maximum number items the queue can hold. The priority of the receiving
-task is above the priority of the sending task, so the receiving task will
-preempt the sending task and remove the queue items each time the sending task
-writes to the queue. Therefore the queue will never have more than one item in
-it at any time, and even with a queue length of 1, the sending task will never
-find the queue full. */
-#define mainQUEUE_LENGTH ( 1 )
-
-/*-----------------------------------------------------------*/
-
-/*
- * Called by main when mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 1 in
- * main.c.
- */
-void main_blinky( void );
-
-/*
- * The tasks as described in the comments at the top of this file.
- */
-static void prvQueueReceiveTask( void *pvParameters );
-static void prvQueueSendTask( void *pvParameters );
-
-/*-----------------------------------------------------------*/
-
-/* The queue used by both tasks. */
-static QueueHandle_t xQueue = NULL;
-
-/*-----------------------------------------------------------*/
-
-void main_blinky( void )
-{
- /* Create the queue. */
- xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( uint32_t ) );
-
- if( xQueue != NULL )
- {
- /* Start the two tasks as described in the comments at the top of this
- file. */
- xTaskCreate( prvQueueReceiveTask, /* The function that implements the task. */
- "Rx", /* The text name assigned to the task - for debug only as it is not used by the kernel. */
- configMINIMAL_STACK_SIZE * 2U, /* The size of the stack to allocate to the task. */
- NULL, /* The parameter passed to the task - not used in this case. */
- mainQUEUE_RECEIVE_TASK_PRIORITY, /* The priority assigned to the task. */
- NULL ); /* The task handle is not required, so NULL is passed. */
-
- xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE * 2U, NULL, mainQUEUE_SEND_TASK_PRIORITY, NULL );
-
- /* Start the tasks and timer running. */
- vTaskStartScheduler();
- }
-
- /* If all is well, the scheduler will now be running, and the following
- line will never be reached. If the following line does execute, then
- there was insufficient FreeRTOS heap memory available for the Idle and/or
- timer tasks to be created. See the memory management section on the
- FreeRTOS web site for more details on the FreeRTOS heap
- http://www.freertos.org/a00111.html. */
- for( ;; );
-}
-/*-----------------------------------------------------------*/
-
-static void prvQueueSendTask( void *pvParameters )
-{
-TickType_t xNextWakeTime;
-const unsigned long ulValueToSend = 100UL;
-BaseType_t xReturned;
-
- /* Remove compiler warning about unused parameter. */
- ( void ) pvParameters;
-
- /* Initialise xNextWakeTime - this only needs to be done once. */
- xNextWakeTime = xTaskGetTickCount();
-
- for( ;; )
- {
- /* Place this task in the blocked state until it is time to run again. */
- vTaskDelayUntil( &xNextWakeTime, mainQUEUE_SEND_FREQUENCY_MS );
-
- /* Send to the queue - causing the queue receive task to unblock and
- toggle the LED. 0 is used as the block time so the sending operation
- will not block - it shouldn't need to block as the queue should always
- be empty at this point in the code. */
- xReturned = xQueueSend( xQueue, &ulValueToSend, 0U );
- configASSERT( xReturned == pdPASS );
- }
-}
-/*-----------------------------------------------------------*/
-
-static void prvQueueReceiveTask( void *pvParameters )
-{
-unsigned long ulReceivedValue;
-const unsigned long ulExpectedValue = 100UL;
-const char * const pcPassMessage = "Blink\r\n";
-const char * const pcFailMessage = "Unexpected value received\r\n";
-extern void vSendString( const char * const pcString );
-extern void vToggleLED( void );
-
- /* Remove compiler warning about unused parameter. */
- ( void ) pvParameters;
-
- for( ;; )
- {
- /* Wait until something arrives in the queue - this task will block
- indefinitely provided INCLUDE_vTaskSuspend is set to 1 in
- FreeRTOSConfig.h. */
- xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY );
-
- /* To get here something must have been received from the queue, but
- is it the expected value? If it is, toggle the LED. */
- if( ulReceivedValue == ulExpectedValue )
- {
- vSendString( pcPassMessage );
- vToggleLED();
- ulReceivedValue = 0U;
- }
- else
- {
- vSendString( pcFailMessage );
- }
- }
-}
-/*-----------------------------------------------------------*/
-
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.Debug.cspy.bat b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.Debug.cspy.bat
deleted file mode 100644
index 1e003ddd2..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.Debug.cspy.bat
+++ /dev/null
@@ -1,40 +0,0 @@
-@REM This batch file has been generated by the IAR Embedded Workbench
-@REM C-SPY Debugger, as an aid to preparing a command line for running
-@REM the cspybat command line utility using the appropriate settings.
-@REM
-@REM Note that this file is generated every time a new debug session
-@REM is initialized, so you may want to move or rename the file before
-@REM making changes.
-@REM
-@REM You can launch cspybat by typing the name of this batch file followed
-@REM by the name of the debug file (usually an ELF/DWARF or UBROF file).
-@REM
-@REM Read about available command line parameters in the C-SPY Debugging
-@REM Guide. Hints about additional command line parameters that may be
-@REM useful in specific cases:
-@REM --download_only Downloads a code image without starting a debug
-@REM session afterwards.
-@REM --silent Omits the sign-on message.
-@REM --timeout Limits the maximum allowed execution time.
-@REM
-
-
-@echo off
-
-if not "%~1" == "" goto debugFile
-
-@echo on
-
-"C:\devtools\IAR Systems\Embedded Workbench 8.3\common\bin\cspybat" -f "C:\Users\ribarry\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RISC-V_RV32_SiFive_IAR\settings\RTOSDemo.Debug.general.xcl" --backend -f "C:\Users\ribarry\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RISC-V_RV32_SiFive_IAR\settings\RTOSDemo.Debug.driver.xcl"
-
-@echo off
-goto end
-
-:debugFile
-
-@echo on
-
-"C:\devtools\IAR Systems\Embedded Workbench 8.3\common\bin\cspybat" -f "C:\Users\ribarry\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RISC-V_RV32_SiFive_IAR\settings\RTOSDemo.Debug.general.xcl" "--debug_file=%~1" --backend -f "C:\Users\ribarry\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RISC-V_RV32_SiFive_IAR\settings\RTOSDemo.Debug.driver.xcl"
-
-@echo off
-:end
\ No newline at end of file
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.Debug.cspy.ps1 b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.Debug.cspy.ps1
deleted file mode 100644
index f4ced075b..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.Debug.cspy.ps1
+++ /dev/null
@@ -1,31 +0,0 @@
-param([String]$debugfile = "");
-
-# This powershell file has been generated by the IAR Embedded Workbench
-# C - SPY Debugger, as an aid to preparing a command line for running
-# the cspybat command line utility using the appropriate settings.
-#
-# Note that this file is generated every time a new debug session
-# is initialized, so you may want to move or rename the file before
-# making changes.
-#
-# You can launch cspybat by typing Powershell.exe -File followed by the name of this batch file, followed
-# by the name of the debug file (usually an ELF / DWARF or UBROF file).
-#
-# Read about available command line parameters in the C - SPY Debugging
-# Guide. Hints about additional command line parameters that may be
-# useful in specific cases :
-# --download_only Downloads a code image without starting a debug
-# session afterwards.
-# --silent Omits the sign - on message.
-# --timeout Limits the maximum allowed execution time.
-#
-
-
-if ($debugfile -eq "")
-{
-& "C:\devtools\IAR Systems\Embedded Workbench 8.3\common\bin\cspybat" -f "C:\Users\ribarry\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RISC-V_RV32_SiFive_IAR\settings\RTOSDemo.Debug.general.xcl" --backend -f "C:\Users\ribarry\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RISC-V_RV32_SiFive_IAR\settings\RTOSDemo.Debug.driver.xcl"
-}
-else
-{
-& "C:\devtools\IAR Systems\Embedded Workbench 8.3\common\bin\cspybat" -f "C:\Users\ribarry\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RISC-V_RV32_SiFive_IAR\settings\RTOSDemo.Debug.general.xcl" --debug_file=$debugfile --backend -f "C:\Users\ribarry\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RISC-V_RV32_SiFive_IAR\settings\RTOSDemo.Debug.driver.xcl"
-}
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.Debug.driver.xcl b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.Debug.driver.xcl
deleted file mode 100644
index c2e69763e..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.Debug.driver.xcl
+++ /dev/null
@@ -1,13 +0,0 @@
-"--core=RV32IMAC"
-
-"-p"
-
-"C:\devtools\IAR Systems\Embedded Workbench 8.3\riscv\config\debugger\SiFive\e31arty35t.ddf"
-
-"-d"
-
-"sim"
-
-
-
-
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.Debug.general.xcl b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.Debug.general.xcl
deleted file mode 100644
index b9d0ead7c..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.Debug.general.xcl
+++ /dev/null
@@ -1,11 +0,0 @@
-"C:\devtools\IAR Systems\Embedded Workbench 8.3\riscv\bin\riscvproc.dll"
-
-"C:\devtools\IAR Systems\Embedded Workbench 8.3\riscv\bin\riscvsim.dll"
-
-"C:\Users\ribarry\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RISC-V_RV32_SiFive_IAR\Debug\Exe\RTOSDemo.out"
-
---plugin="C:\devtools\IAR Systems\Embedded Workbench 8.3\riscv\bin\riscvbat.dll"
-
-
-
-
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.dbgdt b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.dbgdt
deleted file mode 100644
index d009a33ca..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.dbgdt
+++ /dev/null
@@ -1,1097 +0,0 @@
-
-
-
-
- 34048
- 34049
- 34050
- 34051
- 34052
- 34053
- 34054
- 34055
- 34056
- 34057
- 34058
- 34059
- 34060
- 34061
- 34062
- 34063
- 34064
- 34065
- 34066
- 34067
- 34068
- 34069
- 34070
- 34071
- 34072
- 34073
- 34074
- 34075
- 34076
- 34077
- 34078
- 34079
- 34080
- 34081
- 34082
- 34083
- 34084
- 34085
- 34086
- 34087
- 34088
- 34089
- 34090
- 34091
- 34092
- 34093
- 34094
- 34095
- 34096
- 34097
- 34098
- 34099
- 34100
- 34101
- 34102
- 34103
- 34104
- 34105
- 34106
- 34107
- 34108
- 34109
- 34110
-
-
-
-
- - 34390
- - 34323
- - 34398
- - 34400
- - 34397
- - 34320
- - 34321
- - 34324
- - 0
-
-
-
-
- - 57600
- - 57601
- - 57603
- - 33024
- - 0
- - 57607
- - 0
- - 57635
- - 57634
- - 57637
- - 0
- - 57643
- - 57644
- - 0
- - 33090
- - 33057
- - 57636
- - 57640
- - 57641
- - 33026
- - 33065
- - 33063
- - 33064
- - 33053
- - 33054
- - 0
- - 33035
- - 33036
- - 34399
- - 0
- - 33055
- - 33056
- - 33094
- - 0
-
-
-
-
- - Disassembly
- - _I0
-
-
- - 500
- - 20
-
-
- 1
- 1
-
-
- 14
- 21
-
-
- 1
- 1
- 0
- 0
- 1
- 1
- 1
- FD000000240040E10000010000002596000001000000268100000100000000DA000001000000108600001300000029E10000040000001F96000001000000C5860000010000000F810000030000000D800000020000000C8100000100000026DE0000010000002496000001000000568600000100000014810000010000000081000004000000C4860000010000000E810000B500000028DE0000010000005E860000030000001A8600000100000003E100000100000041E100000100000002840000010000001681000001000000058100000800000011860000070000002396000001000000DC8400000100000024810000010000004681000012000000D98400000100000008860000010000000D8100000300000007840000010000000A81000001000000
-
-
- 2A00D6840000D7840000D8840000D9840000DA840000DB840000DC840000DD840000DE840000DF840000E0840000E1840000E2840000E384000024810000FFFFFFFF74860000439200001E920000289200002992000024960000259600001F96000008800000098000000A8000000B8000000C800000158000000A81000001E800000C840000338400007884000011840000008800000188000002880000038800000488000005880000
- 19001386000030000000268100005D000000108600002E000000768600003A0000005992000025000000048100004A000000848600003B0000001D92000015000000098100004C0000005686000034000000259200001D00000044920000230000005E860000360000001F920000200000002D920000220000001486000031000000118600002F0000002396000088000000058100004B000000468100006200000060860000380000005D8600003500000002E100006500000035E10000720000002C92000021000000
-
-
- 0
- 0A0000000A0000006E0000006E000000
- 000000003A030000040600004D030000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 1
-
-
- 34050
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34051
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 4294967295
- 0000000001040000700D0000C2040000
- 00000000E2030000700D0000A3040000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 34052
- 000000001700000022010000C8000000
- 04000000A10200000006000020030000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 1
-
-
- 34062
- 000000001700000022010000C8000000
- 04000000A10200000006000020030000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 1
-
-
- 34064
- 000000001700000022010000C8000000
- 04000000A10200000006000020030000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 34065
- 000000001700000022010000C8000000
- 04000000A10200000006000020030000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 34066
- 000000001700000022010000C8000000
- 04000000A10200000006000020030000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 34087
- 000000001700000022010000C8000000
- 04000000A10200000006000020030000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 34098
- 000000001700000022010000C8000000
- 04000000A10200000006000020030000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 34053
- 000000001700000080020000A8000000
- 00000000000000008002000091000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 34054
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34055
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34056
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 8192
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34057
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 34058
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 34059
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34060
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34061
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34063
- 00000000170000000601000078010000
- AA050000390000007A0700001D030000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 34067
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34068
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34069
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 8192
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34070
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34071
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34072
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34073
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34074
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34075
- 000000001700000022010000D8000000
- 04000000FA0300006C0D000089040000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34076
- 000000001700000022010000D8000000
- 04000000FA0300006C0D000089040000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34077
- 000000001700000022010000D8000000
- 04000000FA0300006C0D000089040000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34078
- 000000001700000022010000D8000000
- 04000000FA0300006C0D000089040000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34079
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34080
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34081
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34082
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34083
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34084
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34085
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34086
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34088
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 34089
- 000000001700000080020000A8000000
- 00000000000000008002000091000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 34090
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34091
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34092
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34093
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34094
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 8192
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34095
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34096
- 0000000017000000AE010000D8000000
- 0000000000000000AE010000C1000000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34097
- 0000000017000000AE010000D8000000
- 0000000000000000AE010000C1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34099
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34100
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34101
- 000000001700000022010000C8000000
- 00000000F20300009C0B0000A3040000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 34102
- 000000001700000022010000C8000000
- 000000003D0300009C0B0000EE030000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 34103
- 000000001700000022010000C8000000
- 00000000880200009C0B000039030000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- - ID
- - Interrupt
- - Next Time
- - Status
- - Timing [cycles]
- - Type
-
-
- - 40
- - 120
- - 80
- - 100
- - 120
- - 120
-
-
-
- 34104
- 00000000170000000601000078010000
- 55040000320000000406000085020000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 1
-
-
-
- - xTickCount
-
-
-
- - Expression
- - Location
- - Type
- - Value
-
-
- - 100
- - 150
- - 100
- - 100
-
-
-
- 34105
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34106
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34107
- 00000000170000000601000078010000
- 00000000000000000601000061010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34108
- 00000000170000000601000078010000
- 00000000320000000601000085020000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 1
-
-
- 0000000048000000000000000010000001000000FFFFFFFFFFFFFFFF06010000320000000A010000850200000100000002000010040000000100000000000000000000003C85000000000000000000000000000000000000010000003C850000010000003C850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000003B85000000000000000000000000000000000000010000003B850000010000003B850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000003A85000000000000000000000000000000000000010000003A850000010000003A850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000398500000000000000000000000000000000000001000000398500000100000039850000000000000040000001000000FFFFFFFFFFFFFFFF5104000032000000550400008502000001000000020000100400000001000000A2FAFFFFB0000000388500000000000000000000000000000000000001000000388500000100000038850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000308500000000000000000000000000000000000001000000308500000100000030850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000002F85000000000000000000000000000000000000010000002F850000010000002F850000000000000020000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000002E85000000000000000000000000000000000000010000002E850000010000002E850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000002C85000000000000000000000000000000000000010000002C850000010000002C850000000000000010000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000002B85000000000000000000000000000000000000010000002B850000010000002B850000000000000010000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000002A85000000000000000000000000000000000000010000002A850000010000002A850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000298500000000000000000000000000000000000001000000298500000100000029850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000288500000000000000000000000000000000000001000000288500000100000028850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000268500000000000000000000000000000000000001000000268500000100000026850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000258500000000000000000000000000000000000001000000258500000100000025850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000248500000000000000000000000000000000000001000000248500000100000024850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000238500000000000000000000000000000000000001000000238500000100000023850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000228500000000000000000000000000000000000001000000228500000100000022850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000218500000000000000000000000000000000000001000000218500000100000021850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000001F85000000000000000000000000000000000000010000001F850000010000001F850000000000000080000000000000FFFFFFFFFFFFFFFF00000000DE030000700D0000E2030000000000000100000004000000010000000000000000000000FFFFFFFF040000001B8500001C8500001D8500001E850000FFFF02000B004354616262656450616E6500800000000000000000000001040000700D0000C204000000000000E2030000700D0000A3040000000000004080004604000000FFFEFF084D0065006D006F007200790020003100000000001B85000001000000FFFFFFFFFFFFFFFFFFFEFF084D0065006D006F007200790020003200000000001C85000001000000FFFFFFFFFFFFFFFFFFFEFF084D0065006D006F007200790020003300000000001D85000001000000FFFFFFFFFFFFFFFFFFFEFF084D0065006D006F007200790020003400000000001E85000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFF1B85000001000000FFFFFFFF1B850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000001A85000000000000000000000000000000000000010000001A850000010000001A850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000198500000000000000000000000000000000000001000000198500000100000019850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000188500000000000000000000000000000000000001000000188500000100000018850000000000000020000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000158500000000000000000000000000000000000001000000158500000100000015850000000000000040000000000000FFFFFFFFFFFFFFFFA605000039000000AA0500001D0300000000000002000000040000000100000065FEFFFFFC0200000F85000000000000000000000000000000000000010000000F850000010000000F850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000000D85000000000000000000000000000000000000010000000D850000010000000D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000A85000000000000000000000000000000000000010000000A850000010000000A850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000098500000000000000000000000000000000000001000000098500000100000009850000000000000020000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000088500000000000000000000000000000000000001000000088500000100000008850000000000000010000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000068500000000000000000000000000000000000001000000068500000100000006850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000058500000000000000000000000000000000000001000000058500000100000005850000000000000080000001000000FFFFFFFFFFFFFFFF00000000850200000406000089020000010000000100001004000000010000000000000000000000FFFFFFFF07000000048500000E85000010850000118500001285000027850000328500000180008000000100000000000000A802000004060000590300000000000089020000040600003A030000000000004080005607000000FFFEFF054200750069006C006400010000000485000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000000E85000001000000FFFFFFFFFFFFFFFFFFFEFF0C4400650063006C00610072006100740069006F006E007300000000001085000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000001185000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000001285000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000002785000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000003285000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFF0485000001000000FFFFFFFF04850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000038500000000000000000000000000000000000001000000038500000100000003850000000000000040000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000200000004000000010000000000000000000000028500000000000000000000000000000000000001000000028500000100000002850000000000000040000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000002000000040000000100000000000000000000003E85000000000000000000000000000000000000010000003E850000010000003E850000000000000000000000000000
-
-
- Debug
- 00200000010000000800FFFF01001100434D4643546F6F6C426172427574746F6E568600000000000031000000FFFEFF000000000000000000000000000100000001000000018013860000000000002D000000FFFEFF00000000000000000000000000010000000100000001805E8600000000000033000000FFFEFF0000000000000000000000000001000000010000000180608600000000000035000000FFFEFF00000000000000000000000000010000000100000001805D8600000000000032000000FFFEFF000000000000000000000000000100000001000000018010860000000000002B000000FFFEFF000000000000000000000000000100000001000000018011860000000004002C000000FFFEFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E14860000000000002E000000FFFEFF205200650073006500740020007400680065002000640065006200750067006700650064002000700072006F006700720061006D000A00520065007300650074000000000000000000000000000100000001000000000000000000000001000000050009802087000000000000FFFFFFFFFFFEFF13440069007300610062006C0065006400200028006E006F0020007200650073006500740029000100000000000000000000000100000001000000000000000000000001000000000009802187000000000000FFFFFFFFFFFEFF0853006F006600740077006100720065000100000000000000000000000100000001000000000000000000000001000000000009802287000000000000FFFFFFFFFFFEFF08480061007200640077006100720065000100000000000000000000000100000001000000000000000000000001000000000009800000000000000400FFFFFFFFFFFEFF000000000000000000000000000100000001000000000000000000000001000000000009801986000000000000FFFFFFFFFFFEFF000100000000000000000000000100000001000000000000000000000001000000000000000000FFFEFF05440065006200750067006A000000
-
-
- 34048
- 0A0000000A0000006E0000006E000000
- 1703000000000000F30300001A000000
- 8192
- 0
- 0
- 106
- 0
-
-
- 1
-
-
- Main
- 00200000010000002100FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000063000000FFFEFF000000000000000000000000000100000001000000018001E100000000000064000000FFFEFF000000000000000000000000000100000001000000018003E100000000000066000000FFFEFF0000000000000000000000000001000000010000000180008100000000000047000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E100000000000069000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004006B000000FFFEFF000000000000000000000000000100000001000000018022E10000000004006A000000FFFEFF000000000000000000000000000100000001000000018025E10000000000006D000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040070000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040071000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0000000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000200FFFEFF0A78005400690063006B0043006F0075006E007400FFFEFF0D73006500740075007000740069006D006500720069006E0074000000000000000000018021810000000004005A000000FFFEFF000000000000000000000000000100000001000000018024E10000000000006C000000FFFEFF000000000000000000000000000100000001000000018028E10000000004006E000000FFFEFF000000000000000000000000000100000001000000018029E10000000000006F000000FFFEFF0000000000000000000000000001000000010000000180028100000000000049000000FFFEFF000000000000000000000000000100000001000000018029810000000000005E000000FFFEFF000000000000000000000000000100000001000000018027810000000000005C000000FFFEFF000000000000000000000000000100000001000000018028810000000000005D000000FFFEFF00000000000000000000000000010000000100000001801D8100000000000056000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040057000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000000004D000000FFFEFF00000000000000000000000000010000000100000001800C810000000000004E000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000062000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001801F8100000000000058000000FFFEFF0000000000000000000000000001000000010000000180208100000000000059000000FFFEFF0000000000000000000000000001000000010000000180468100000000020060000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00FF020000
-
-
- 34049
- 0A0000000A0000006E0000006E000000
- 0000000000000000150300001A000000
- 8192
- 0
- 0
- 767
- 0
-
-
- 1
-
-
-
- - 34001
- - 0
-
-
-
- CMSIS-Pack
- 00200000010000000100FFFF01001100434D4643546F6F6C426172427574746F6ED1840000000000001C000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF0A43004D005300490053002D005000610063006B0018000000
-
-
- 34109
- 0A0000000A0000006E0000006E000000
- F703000000000000250400001A000000
- 8192
- 0
- 0
- 24
- 0
-
-
- 1
-
-
- 34110
- 010000002600000019010000DD010000
- 000000000000000018010000B7010000
- 16384
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
-
-
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.dnx b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.dnx
deleted file mode 100644
index 996c204df..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.dnx
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-
- 0
- 1
- 90
- 1
- 1
- 1
- main
- 0
- 50
-
-
- 1686049390
-
-
- 0
- 1
-
-
- 0
- 0
- 0
-
-
- 0
-
-
- 1
- 1
-
-
- 0
- 1
- 0
- 0
-
-
- 0
-
-
- 1
-
-
- 0
- 0
- 1
- 0
- 1
- 0
-
-
- 0
- 0
- 1
- 0
- 1
-
-
- 1
-
-
- 1
- 0
- 1
- 0
- 1
-
-
- 0
- 1
-
-
- 50000000
- 0
- 1
-
-
- 73866
-
- Hardware
- Software
- 0
- 0
- 0
-
-
- 0
- C:\devtools\IAR Systems\Embedded Workbench 8.3\riscv\config\debugger\SiFive\e31arty35t.ddf
-
-
- 1
-
-
- _ 0
- _ ""
-
-
- _ 0
- _ ""
- _ 0
-
-
- 0
-
-
- 0
- 0
-
-
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.wsdt b/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.wsdt
deleted file mode 100644
index 52371225e..000000000
--- a/FreeRTOS/Demo/RISC-V_RV32_SiFive_IAR/settings/RTOSDemo.wsdt
+++ /dev/null
@@ -1,488 +0,0 @@
-
-
-
-
- RTOSDemo/Debug
-
-
-
-
- 34048
- 34049
- 34050
- 34051
- 34052
- 34053
- 34054
- 34055
- 34056
- 34057
- 34058
- 34059
- 34060
- 34061
- 34062
- 34063
- 34064
- 34065
-
-
-
-
- - 57600
- - 57601
- - 57603
- - 33024
- - 0
- - 57607
- - 0
- - 57635
- - 57634
- - 57637
- - 0
- - 57643
- - 57644
- - 0
- - 33090
- - 33057
- - 57636
- - 57640
- - 57641
- - 33026
- - 33065
- - 33063
- - 33064
- - 33053
- - 33054
- - 0
- - 33035
- - 33037
- - 34399
- - 0
- - 33038
- - 33039
- - 0
-
-
-
-
- 405
- 30
- 30
- 30
-
-
- RTOSDemo
- RTOSDemo/SiFive_code
- RTOSDemo/full_demo
-
-
-
- 14
- 21
-
-
- 1
- 1
- 0
- 0
- 1
- 1
- 1
- F60000002400259600000100000040E1000001000000108600000300000000DA00000100000026810000010000001F9600000100000029E10000050000000F81000004000000C58600000100000026DE0000010000000C810000010000000D80000002000000568600000100000024960000010000001481000001000000008100000400000003E10000010000001A860000010000005E8600000200000028DE0000010000000E810000CB000000C48600000100000041E100000100000023960000010000001186000001000000058100000A0000001681000001000000028400000100000046810000010000002481000002000000DC84000001000000D9840000010000000D8100000300000008860000010000000A810000020000000784000001000000
-
-
- 6900FFFFFFFF0D8400000F8400000884000054840000328100001C8100000984000053840000D6840000D7840000D8840000D9840000DA840000DB840000DC840000DD840000DE840000DF840000248100002AE10000008200001C820000018200006786000014820000158200001A8200001B820000228100002381000040E100000C840000338400007884000008800000098000000A8000000B8000000C800000158000000A81000001E80000479C0000439200001E92000028920000299200002592000024960000259600001F9600001D920000E880000020F1000010F0000000F0000020F0000030F0000060F00000008800000188000002880000038800000488000005880000EA840000EB840000EC840000ED840000EE840000EF840000F0840000F1840000F2840000F3840000F4840000F5840000F6840000F7840000118400007784000007840000808C000044D5000002DE00000BDE00002492000007DE000010E1000011E1000012E1000013E1000014E1000015E1000016E1000017E1000018E1000019E100001AE100001BE100001CE100001DE100001EE100001FE10000
- 4300048400004C00000059920000110000002CE1000043000000268100002D0000001581000025000000048100001C00000023920000000000003184000053000000018100001A00000029E100004100000007E100003B00000000900000570000005F8600003400000004E10000390000000F81000023000000208100002B0000003F8100003100000023E100003D0000000D8000001700000001E10000360000000C81000020000000068400004E0000001982000015000000098100001E000000038400004B00000016820000130000004A81000047000000178100002700000000840000480000002BE100004200000014810000240000000E840000500000003084000052000000449200000F00000028E100004000000000810000190000002F820000160000001F9200000C00000025E100003F00000003E10000380000000E810000220000001F8100002A0000002D9200000E00000022E100003C00000000E10000350000000B8100001F000000058400004D000000D18400000C00000018820000140000002B8000001800000041E1000045000000028400004A000000498100004600000023960000420000001681000026000000058100001D00000010840000510000003284000054000000218100002C000000518400005600000005E100003A0000000A8400004F00000035E100004400000024E100003E00000002E10000370000000D810000210000002C9200000D000000
-
-
- 0
- 0A0000000A0000006E0000006E000000
- 000000003A030000040600004D030000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 1
-
-
- 4294967295
- 00000000250200000406000059030000
- 0000000006020000040600003A030000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 1
-
-
- 34049
- 210100008A03000098080000F0040000
- 040000001E0200000006000020030000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 1
-
-
- 21
- 2548
- 679
- 169
- 2
- C:\Users\ribarry\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RISC-V_simulator_IAR\BuildLog.log
- 0
- -1
-
-
- 34052
- 210100008A03000098080000F0040000
- 040000001E0200000006000020030000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 1198
- 171
- 2054
- 2
-
- 0
- -1
-
-
- 34053
- 210100008A03000098080000F0040000
- 040000001E0200000006000020030000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 1198
- 171
- 2054
- 2
-
- 0
- -1
-
-
- 34054
- 210100008A03000098080000F0040000
- 040000001E0200000006000020030000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 1027
- 171
- 1540
- 684
- 2
-
- 0
- -1
-
-
- 34055
- 210100008A03000098080000F0040000
- 040000001E0200000006000020030000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 666
- 95
- 1141
- 2
-
- 0
- -1
-
-
- 34058
- 210100008A03000098080000F0040000
- 040000001E0200000006000020030000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 2
-
- 0
- -1
-
-
- 34050
- 000000001700000080020000A8000000
- 00000000000000008002000091000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34051
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34056
- 000000001700000022010000C8000000
- 040000001E0200000006000020030000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 1
-
-
- 2
- $WS_DIR/SourceBrowseLog.log
- 0
- -1
-
-
- 34057
- 000000001700000080020000A8000000
- 00000000000000008002000091000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34059
- 00000000170000000601000078010000
- 0000000032000000DD01000002020000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 1
-
-
- 0000000010000000000000000010000001000000FFFFFFFFFFFFFFFFDD01000032000000E101000002020000010000000200001004000000010000000AFFFFFFD70500000B85000000000000000000000000000000000000010000000B850000010000000B850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000098500000000000000000000000000000000000001000000098500000100000009850000000000000080000001000000FFFFFFFFFFFFFFFF00000000020200000406000006020000010000000100001004000000010000000EFDFFFF4E000000FFFFFFFF070000000885000001850000048500000585000006850000078500000A850000FFFF02000B004354616262656450616E650080000001000000000000002502000004060000590300000000000006020000040600003A030000000000004080005607000000FFFEFF1153006F0075007200630065002000420072006F0077007300650020004C006F006700010000000885000001000000FFFFFFFFFFFFFFFFFFFEFF054200750069006C006400010000000185000001000000FFFFFFFFFFFFFFFFFFFEFF0C4400650063006C00610072006100740069006F006E007300000000000485000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000000585000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000000685000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000000785000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000000A85000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFF0885000001000000FFFFFFFF08850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000038500000000000000000000000000000000000001000000038500000100000003850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000028500000000000000000000000000000000000001000000028500000100000002850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000D85000000000000000000000000000000000000010000000D850000010000000D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000C85000000000000000000000000000000000000010000000C850000010000000C850000000000000080000000000000FFFFFFFFFFFFFFFF00000000850200000406000089020000000000000100000004000000010000000000000000000000FFFFFFFF010000000E8500000180008000000000000000000000A802000004060000590300000000000089020000040600003A030000000000004080004601000000FFFEFF094400650062007500670020004C006F006700000000000E85000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFF0E85000001000000FFFFFFFF0E85000002000000FFFF02001200434D756C746950616E654672616D65576E6400010084000000001700000022010000C8000000000000000F85000002000000000000000F85000000000000000000000000000000000000010000000F850000048000010084000000001700000022010000C800000000000000108500000200000000000000108500000000000000000000000000000000000001000000108500000000000000000000
-
-
- Main
- 00200000010000002000FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000035000000FFFEFF000000000000000000000000000100000001000000018001E100000000000036000000FFFEFF000000000000000000000000000100000001000000018003E100000000040038000000FFFEFF0000000000000000000000000001000000010000000180008100000000000019000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000004003B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004003D000000FFFEFF000000000000000000000000000100000001000000018022E10000000004003C000000FFFEFF000000000000000000000000000100000001000000018025E10000000004003F000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040042000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040043000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000400FFFFFFFFFFFEFF0000000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000001D00FFFEFF042E0065006E006400FFFEFF0C70007800430075007200720065006E007400540043004200FFFEFF076D00730074006100740075007300FFFEFF046D00650070006300FFFEFF066D0063006100750073006500FFFEFF095F005F00610072006D00200076006F006C00FFFEFF0D5F005F00610072006D00200076006F006C00610069006C006500FFFEFF0E5F005F00610073006D00200076006F006C006100740069006C006500FFFEFF056D007400760065006300FFFEFF1278005400610073006B0049006E006300720065006D0065006E0074005400690063006B00FFFEFF0870006F0072007400480041004E004400FFFEFF0470006F0072007400FFFEFF0363006C007A00FFFEFF095500530045005F0050004F00520054005F00FFFEFF1F700075006C006C004D0061006300680069006E006500540069006D006500720043006F006D00700061007200650052006500670069007300740065007200FFFEFF055F005F00610073006D00FFFEFF0C780049005300520053007400610063006B0054006F007000FFFEFF1A63006F006E006600690067004900530052005F0053005400410043004B005F00530049005A0045005F0057004F00520044005300FFFEFF1B75007800540069006D006500720049006E006300720065006D0065006E007400730046006F0072004F006E0065005400690063006B00FFFEFF107000720076005300650074007500700048006100720064007700610072006500FFFEFF0955004100520054005F005200450047005700FFFEFF0B55004100520054005F0054005800460055004C004C00FFFEFF164D004500540041004C005F005300490046004900560045005F00550041005200540030005F00440049005600FFFEFF194D004500540041004C005F005300490046004900560045005F00550041005200540030005F00540058004300540052004C00FFFEFF0F7400610073006B00520045005300450054005F0052004500410044005900FFFEFF0855004100520054005F00520045004700FFFEFF18700072007600530065007400750070005000650072006900700068006500720061006C00540069006D00650072007300FFFEFF06650062007200650061006B00FFFEFF0C63006F006E006600690067004100530053004500520054000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018021810000000004002C000000FFFEFF000000000000000000000000000100000001000000018024E10000000004003E000000FFFEFF000000000000000000000000000100000001000000018028E100000000040040000000FFFEFF000000000000000000000000000100000001000000018029E100000000040041000000FFFEFF000000000000000000000000000100000001000000018002810000000004001B000000FFFEFF0000000000000000000000000001000000010000000180298100000000040030000000FFFEFF000000000000000000000000000100000001000000018027810000000004002E000000FFFEFF000000000000000000000000000100000001000000018028810000000004002F000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040028000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040029000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000004001F000000FFFEFF00000000000000000000000000010000000100000001800D8100000000000021000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000034000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800E8100000000000022000000FFFEFF00000000000000000000000000010000000100000001800F8100000000000023000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00E8020000
-
-
- 34048
- 0A0000000A0000006E0000006E000000
- 0000000000000000FE0200001A000000
- 8192
- 0
- 0
- 744
- 0
-
-
- 1
-
-
- 21
- 1494
- 2
-
- 0
- -1
-
-
- 34062
- 000000001700000022010000C8000000
- 000000009D020000040600003A030000
- 4096
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
- 34060
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34061
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 0
- 32767
- 0
-
-
- 0
-
-
-
- 34063
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 1
- 32767
- 0
-
-
- 0
-
-
-
- - Description
- - Interrupt
-
-
- - 250
- - 150
-
-
-
- 34064
- 000000001700000022010000C8000000
- 000000000000000022010000B1000000
- 32768
- 0
- 1
- 32767
- 0
-
-
- 0
-
-
-
- - Description
- - First Activation
- - Hold Time
- - Id
- - Interrupt
- - Probability (%)
- - Repeat Interval
- - Type
- - Variance (%)
-
-
- - 150
- - 70
- - 70
- - 40
- - 100
- - 70
- - 70
- - 100
- - 70
-
-
-
-
- - 34001
- - 0
-
-
-
- CMSIS-Pack
- 00200000010000000100FFFF01001100434D4643546F6F6C426172427574746F6ED1840000000000000C000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF0A43004D005300490053002D005000610063006B0018000000
-
-
- 34065
- 0A0000000A0000006E0000006E000000
- 0303000000000000310300001A000000
- 8192
- 0
- 0
- 24
- 0
-
-
- 1
-
-
-
-
- 010000000300000001000000000000000000000001000000010000000200000000000000010000000100000000000000280000002800000001000000080000000600000001000000FFFEFF332400570053005F0044004900520024005C002E002E005C002E002E005C0053006F0075007200630065005C0070006F0072007400610062006C0065005C004900410052005C0052004900530043002D0056005C0070006F0072007400410053004D002E00730001000000FFFF010014004966436F6E74656E7453746F72616765496D706CFFFEFF00FFFEFFFF2A013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003200350034003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E00310032003300390036003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E00310032003300390036003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF0970006F0072007400410053004D002E00730000000000FFFFFFFFFFFFFFFFFFFEFF1D2400570053005F0044004900520024005C002E002E005C002E002E005C0053006F0075007200630065005C007400610073006B0073002E006300010000000180FFFEFF00FFFEFFFF2D013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0034003300300033003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E003100340035003700330037003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E003100340035003700330037003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF077400610073006B0073002E00630000000000FFFFFFFFFFFFFFFFFFFEFF1D2400570053005F0044004900520024005C002E002E005C002E002E005C0053006F0075007200630065005C00710075006500750065002E006300010000000180FFFEFF00FFFEFFFF2B013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E0032003700340036003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E00390031003300380039003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E00390031003300380039003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF07710075006500750065002E00630000000000FFFFFFFFFFFFFFFFFFFEFF1E2400570053005F0044004900520024005C002E002E005C002E002E005C0053006F0075007200630065005C00740069006D006500720073002E006300010000000180FFFEFF00FFFEFFFF2A013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003700360036003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E00330030003300380039003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E00330030003300380039003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF08740069006D006500720073002E00630000000000FFFFFFFFFFFFFFFFFFFEFF0F2400570053005F0044004900520024005C006D00610069006E002E006300010000000180FFFEFF00FFFEFFFF27013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E00370036003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0033003900370037003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0033003900370037003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF066D00610069006E002E00630000000000FFFFFFFFFFFFFFFFFFFEFF192400570053005F0044004900520024005C004600720065006500520054004F00530043006F006E006600690067002E006800010000000180FFFEFF00FFFEFFFF27013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E00350038003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0034003100340030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0034003100340030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF104600720065006500520054004F00530043006F006E006600690067002E00680000000000FFFFFFFFFFFFFFFFFFFEFF1E2400570053005F0044004900520024005C00660075006C006C005F00640065006D006F005C006D00610069006E005F00660075006C006C002E006300010000000180FFFEFF00FFFEFFFF28013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003100350037003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E0036003900320030003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E0036003900320030003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF0B6D00610069006E005F00660075006C006C002E00630000000000FFFFFFFFFFFFFFFFFFFEFF262400570053005F0044004900520024005C002E002E005C0043006F006D006D006F006E005C004D0069006E0069006D0061006C005C00540069006D0065007200440065006D006F002E006300010000000180FFFEFF00FFFEFFFF2A013C003F0078006D006C002000760065007200730069006F006E003D00220031002E0030002200200065006E0063006F00640069006E0067003D0022005500540046002D00380022003F003E000A003C0052006F006F0074003E000A0020002000200020003C004E0075006D0052006F00770073003E0031003C002F004E0075006D0052006F00770073003E000A0020002000200020003C004E0075006D0043006F006C0073003E0031003C002F004E0075006D0043006F006C0073003E000A0020002000200020003C00580050006F0073003E0030003C002F00580050006F0073003E000A0020002000200020003C00590050006F0073003E0030003C002F00590050006F0073003E000A0020002000200020003C00530065006C00530074006100720074003E0030003C002F00530065006C00530074006100720074003E000A0020002000200020003C00530065006C0045006E0064003E0030003C002F00530065006C0045006E0064003E000A0020002000200020003C00580050006F00730032003E0030003C002F00580050006F00730032003E000A0020002000200020003C00590050006F00730032003E003600380038003C002F00590050006F00730032003E000A0020002000200020003C00530065006C005300740061007200740032003E00320039003300390037003C002F00530065006C005300740061007200740032003E000A0020002000200020003C00530065006C0045006E00640032003E00320039003300390037003C002F00530065006C0045006E00640032003E000A003C002F0052006F006F0074003E000A00FFFEFF0B540069006D0065007200440065006D006F002E00630000000000FFFFFFFFFFFFFFFF0000000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000100000002000000E1010000510000000406000021020000
-
-
-
-