summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorhathach <[email protected]>2018-11-22 01:04:18 +0700
committerhathach <[email protected]>2018-11-22 01:04:18 +0700
commitd2d833c0abd3a2678720f8c2462fa29406c6fdc4 (patch)
tree47c04741a9ab4fd553229975e8d3e6b253bd5cf2 /examples
parent3fccd24854fd2857aba2cb287fa5712a7b9b76ca (diff)
update freertos ses project
Diffstat (limited to 'examples')
-rw-r--r--examples/device_composite_freertos/ses/nrf5x/FreeRTOSConfig.h167
-rw-r--r--examples/device_composite_freertos/ses/nrf5x/nrf5x.emProject2
-rw-r--r--examples/device_composite_freertos/ses/samd21/samd21.emProject47
-rw-r--r--examples/device_composite_freertos/ses/samd51/samd51.emProject47
-rw-r--r--examples/device_composite_freertos/src/tusb_config.h6
5 files changed, 263 insertions, 6 deletions
diff --git a/examples/device_composite_freertos/ses/nrf5x/FreeRTOSConfig.h b/examples/device_composite_freertos/ses/nrf5x/FreeRTOSConfig.h
new file mode 100644
index 000000000..96de8f8c5
--- /dev/null
+++ b/examples/device_composite_freertos/ses/nrf5x/FreeRTOSConfig.h
@@ -0,0 +1,167 @@
+/*
+ * FreeRTOS Kernel V10.0.0
+ * Copyright (C) 2017 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. If you wish to use our Amazon
+ * FreeRTOS name, please do so in a fair use way that does not cause confusion.
+ *
+ * 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.
+ *----------------------------------------------------------*/
+#include "nrf.h"
+
+
+#define configUSE_PREEMPTION 1
+#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
+#define configCPU_CLOCK_HZ SystemCoreClock
+#define configTICK_RATE_HZ ( 1000 )
+#define configMAX_PRIORITIES ( 5 )
+#define configMINIMAL_STACK_SIZE ( 128 )
+#define configTOTAL_HEAP_SIZE ( 16*1024 )
+#define configMAX_TASK_NAME_LEN 16
+#define configUSE_16_BIT_TICKS 0
+#define configIDLE_SHOULD_YIELD 1
+#define configUSE_MUTEXES 1
+#define configUSE_RECURSIVE_MUTEXES 1
+#define configUSE_COUNTING_SEMAPHORES 1
+#define configQUEUE_REGISTRY_SIZE 2
+#define configUSE_QUEUE_SETS 0
+#define configUSE_TIME_SLICING 0
+#define configUSE_NEWLIB_REENTRANT 0
+#define configENABLE_BACKWARD_COMPATIBILITY 1
+
+#define configSUPPORT_STATIC_ALLOCATION 1
+#define configSUPPORT_DYNAMIC_ALLOCATION 1
+
+/* Hook function related definitions. */
+#define configUSE_IDLE_HOOK 0
+#define configUSE_TICK_HOOK 0
+#define configUSE_MALLOC_FAILED_HOOK 1
+#define configCHECK_FOR_STACK_OVERFLOW 2
+
+/* Run time and task stats gathering related definitions. */
+#define configGENERATE_RUN_TIME_STATS 0
+#define configUSE_TRACE_FACILITY 1 // legacy trace
+#define configUSE_STATS_FORMATTING_FUNCTIONS 0
+
+/* Co-routine definitions. */
+#define configUSE_CO_ROUTINES 0
+#define configMAX_CO_ROUTINE_PRIORITIES 2
+
+/* Software timer related definitions. */
+#define configUSE_TIMERS 1
+#define configTIMER_TASK_PRIORITY 2
+#define configTIMER_QUEUE_LENGTH 32
+#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE
+
+/* Optional functions - most linkers will remove unused functions anyway. */
+#define INCLUDE_vTaskPrioritySet 0
+#define INCLUDE_uxTaskPriorityGet 0
+#define INCLUDE_vTaskDelete 0
+#define INCLUDE_vTaskSuspend 1 // required for queue, semaphore, mutex to be blocked indefinitely with portMAX_DELAY
+#define INCLUDE_xResumeFromISR 0
+#define INCLUDE_vTaskDelayUntil 1
+#define INCLUDE_vTaskDelay 1
+#define INCLUDE_xTaskGetSchedulerState 0
+#define INCLUDE_xTaskGetCurrentTaskHandle 0
+#define INCLUDE_uxTaskGetStackHighWaterMark 0
+#define INCLUDE_xTaskGetIdleTaskHandle 0
+#define INCLUDE_xTimerGetTimerDaemonTaskHandle 0
+#define INCLUDE_pcTaskGetTaskName 0
+#define INCLUDE_eTaskGetState 0
+#define INCLUDE_xEventGroupSetBitFromISR 0
+#define INCLUDE_xTimerPendFunctionCall 0
+
+/* Define to trap errors during development. */
+// Halt CPU (breakpoint) when hitting error, only apply for Cortex M3, M4, M7
+#if defined(__ARM_ARCH_7M__) || defined (__ARM_ARCH_7EM__)
+#define configASSERT(_exp) \
+ do {\
+ if ( !(_exp) ) { \
+ volatile uint32_t* ARM_CM_DHCSR = ((volatile uint32_t*) 0xE000EDF0UL); /* Cortex M CoreDebug->DHCSR */ \
+ if ( (*ARM_CM_DHCSR) & 1UL ) { /* Only halt mcu if debugger is attached */ \
+ taskDISABLE_INTERRUPTS(); \
+ __asm("BKPT #0\n"); \
+ }\
+ }\
+ } while(0)
+#else
+#define configASSERT( x )
+#endif
+
+/* FreeRTOS hooks to NVIC vectors */
+#define xPortPendSVHandler PendSV_Handler
+#define xPortSysTickHandler SysTick_Handler
+#define vPortSVCHandler SVC_Handler
+
+//--------------------------------------------------------------------+
+// Interrupt nesting behavior configuration.
+//--------------------------------------------------------------------+
+/* Cortex-M specific definitions. __NVIC_PRIO_BITS is defined in core_cmx.h */
+#ifdef __NVIC_PRIO_BITS
+ #define configPRIO_BITS __NVIC_PRIO_BITS
+#else
+ #error "This port requires __NVIC_PRIO_BITS to be defined"
+#endif
+
+/* The lowest interrupt priority that can be used in a call to a "set priority"
+function. */
+#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY ((1<<configPRIO_BITS) - 1)
+
+/* The highest interrupt priority that can be used by any interrupt service
+routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL
+INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER
+PRIORITY THAN THIS! (higher priorities are lower numeric values. */
+
+/* SD priority
+ * 0: SD timing critical
+ * 1: SD memory protection
+ * 2: App Highest
+ * 3: App High
+ * 4: SD non-time-critical
+ * 5+ Remaining Application
+ */
+#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 2
+
+/* Interrupt priorities used by the kernel port layer itself. These are generic
+to all Cortex-M ports, and do not rely on any particular library functions. */
+#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
+
+/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!
+See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
+#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
+
+#endif /* __FREERTOS_CONFIG__H */
diff --git a/examples/device_composite_freertos/ses/nrf5x/nrf5x.emProject b/examples/device_composite_freertos/ses/nrf5x/nrf5x.emProject
index 705d0c015..978116988 100644
--- a/examples/device_composite_freertos/ses/nrf5x/nrf5x.emProject
+++ b/examples/device_composite_freertos/ses/nrf5x/nrf5x.emProject
@@ -20,7 +20,7 @@
arm_target_interface_type="SWD"
build_treat_warnings_as_errors="Yes"
c_preprocessor_definitions="NRF52840_XXAA;__nRF_FAMILY;ARM_MATH_CM4;FLASH_PLACEMENT=1;BOARD_PCA10056;CFG_TUSB_MCU=OPT_MCU_NRF5X"
- c_user_include_directories="../../src;$(rootDir)/hw/cmsis/Include;$(rootDir)/hw;$(rootDir)/src;$(nrfxDir)/..;$(nrfxDir);$(nrfxDir)/mdk;$(nrfxDir)/hal;$(nrfxDir)/drivers/include;$(freertosDir)/Source/include;$(freertosDir)/Source/portable/GCC/ARM_CM4F"
+ c_user_include_directories="./;../../src;$(rootDir)/hw/cmsis/Include;$(rootDir)/hw;$(rootDir)/src;$(nrfxDir)/..;$(nrfxDir);$(nrfxDir)/mdk;$(nrfxDir)/hal;$(nrfxDir)/drivers/include;$(freertosDir)/Source/include;$(freertosDir)/Source/portable/GCC/ARM_CM4F"
debug_register_definition_file="nrf52840_Registers.xml"
debug_target_connection="J-Link"
gcc_entry_point="Reset_Handler"
diff --git a/examples/device_composite_freertos/ses/samd21/samd21.emProject b/examples/device_composite_freertos/ses/samd21/samd21.emProject
index 54767199a..cb9cee4f5 100644
--- a/examples/device_composite_freertos/ses/samd21/samd21.emProject
+++ b/examples/device_composite_freertos/ses/samd21/samd21.emProject
@@ -19,7 +19,7 @@
arm_target_interface_type="SWD"
build_treat_warnings_as_errors="Yes"
c_preprocessor_definitions="__SAMD21G18A__;__SAMD21_FAMILY;__SAM_D21_SUBFAMILY;ARM_MATH_CM0PLUS;FLASH_PLACEMENT=1;USE_SIMPLE_ASSERT;CONF_XOSC32K_CONFIG=1;CONF_OSC32K_ENABLE=1;CONF_OSC32K_EN32K=1;CONF_XOSC32K_STARTUP=CONF_XOSC32K_STARTUP_TIME_2000092MCS;CONF_DFLL_ONDEMAND=0;CONF_DFLL_OVERWRITE_CALIBRATION=0;BOARD_METRO_M0_EXPRESS;CFG_TUSB_MCU=OPT_MCU_SAMD21"
- c_user_include_directories="../../src;$(rootDir)/hw/cmsis/Include;$(rootDir)/hw;$(rootDir)/src;$(asf4Dir);$(asf4Dir)/include;$(asf4Dir)/config;$(asf4Dir)/hri;$(asf4Dir)/hal/include;$(asf4Dir)/hal/utils/include;$(asf4Dir)/hpl/port;$(asf4Dir)/hpl/gclk;$(asf4Dir)/hpl/pm"
+ c_user_include_directories="./;../../src;$(rootDir)/hw/cmsis/Include;$(rootDir)/hw;$(rootDir)/src;$(asf4Dir);$(asf4Dir)/include;$(asf4Dir)/config;$(asf4Dir)/hri;$(asf4Dir)/hal/include;$(asf4Dir)/hal/utils/include;$(asf4Dir)/hpl/port;$(asf4Dir)/hpl/gclk;$(asf4Dir)/hpl/pm"
debug_register_definition_file="ATSAMD21G18A_Registers.xml"
debug_target_connection="J-Link"
gcc_entry_point="Reset_Handler"
@@ -27,7 +27,7 @@
linker_memory_map_file="$(ProjectDir)/ATSAMD21G18A_MemoryMap.xml"
linker_section_placement_file="flash_placement.xml"
linker_section_placements_segments="FLASH RX 0x00000000 0x00080000;RAM RWX 0x20000000 0x00030000"
- macros="DeviceFamily=SAMD21;Target=ATSAMD21G18A;Placement=Flash;rootDir=../../../..;asf4Dir=../../../../hw/mcu/microchip/samd/asf4/samd21"
+ macros="DeviceFamily=SAMD21;Target=ATSAMD21G18A;Placement=Flash;rootDir=../../../..;asf4Dir=../../../../hw/mcu/microchip/samd/asf4/samd21;freertosDir=../../../../lib/FreeRTOS"
project_directory=""
project_type="Executable"
target_reset_script="Reset();"
@@ -98,6 +98,49 @@
filter="*.c;*.h"
path="../../../../lib/segger_rtt"
recurse="No" />
+ <folder Name="lib">
+ <folder Name="FreeRTOS">
+ <folder Name="Source">
+ <folder Name="include">
+ <file file_name="../../../../lib/FreeRTOS/Source/include/croutine.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/deprecated_definitions.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/event_groups.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/FreeRTOS.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/list.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/message_buffer.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/mpu_prototypes.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/mpu_wrappers.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/portable.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/projdefs.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/queue.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/semphr.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/stack_macros.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/StackMacros.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/stream_buffer.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/task.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/timers.h" />
+ </folder>
+ <folder Name="portable">
+ <folder Name="Common" />
+ <folder Name="GCC">
+ <folder Name="ARM_CM0">
+ <file file_name="../../../../lib/FreeRTOS/Source/portable/GCC/ARM_CM0/port.c" />
+ <file file_name="../../../../lib/FreeRTOS/Source/portable/GCC/ARM_CM0/portmacro.h" />
+ </folder>
+ </folder>
+ <folder Name="MemMang">
+ <file file_name="../../../../lib/FreeRTOS/Source/portable/MemMang/heap_4.c" />
+ </folder>
+ </folder>
+ <file file_name="../../../../lib/FreeRTOS/Source/list.c" />
+ <file file_name="../../../../lib/FreeRTOS/Source/queue.c" />
+ <file file_name="../../../../lib/FreeRTOS/Source/tasks.c" />
+ <file file_name="../../../../lib/FreeRTOS/Source/timers.c" />
+ </folder>
+ <file file_name="../../../../lib/FreeRTOS/FreeRTOSConfig.h" />
+ <file file_name="../../../../lib/FreeRTOS/freertos_hook.c" />
+ </folder>
+ </folder>
</project>
<configuration Name="Metro M0 Express" />
</solution>
diff --git a/examples/device_composite_freertos/ses/samd51/samd51.emProject b/examples/device_composite_freertos/ses/samd51/samd51.emProject
index 76be9cf5e..222190a90 100644
--- a/examples/device_composite_freertos/ses/samd51/samd51.emProject
+++ b/examples/device_composite_freertos/ses/samd51/samd51.emProject
@@ -20,7 +20,7 @@
arm_target_interface_type="SWD"
build_treat_warnings_as_errors="Yes"
c_preprocessor_definitions="__SAMD51_FAMILY;__SAMD51J19A__;ARM_MATH_CM4;FLASH_PLACEMENT=1;USE_SIMPLE_ASSERT;BOARD_METRO_M4_EXPRESS;CFG_TUSB_MCU=OPT_MCU_SAMD51"
- c_user_include_directories="../../src;$(rootDir)/hw/cmsis/Include;$(rootDir)/hw;$(rootDir)/src;$(asf4Dir);$(asf4Dir)/include;$(asf4Dir)/config;$(asf4Dir)/hri;$(asf4Dir)/hal/include;$(asf4Dir)/hal/utils/include;$(asf4Dir)/hpl/port;$(asf4Dir)/hpl/gclk"
+ c_user_include_directories="./;../../src;$(rootDir)/hw/cmsis/Include;$(rootDir)/hw;$(rootDir)/src;$(asf4Dir);$(asf4Dir)/include;$(asf4Dir)/config;$(asf4Dir)/hri;$(asf4Dir)/hal/include;$(asf4Dir)/hal/utils/include;$(asf4Dir)/hpl/port;$(asf4Dir)/hpl/gclk;$(freertosDir)/Source/include;$(freertosDir)/Source/portable/GCC/ARM_CM4F"
debug_register_definition_file="ATSAMD51J19A_Registers.xml"
debug_target_connection="J-Link"
gcc_entry_point="Reset_Handler"
@@ -28,7 +28,7 @@
linker_memory_map_file="ATSAMD51J19A_MemoryMap.xml"
linker_section_placement_file="flash_placement.xml"
linker_section_placements_segments="FLASH RX 0x00000000 0x00080000;RAM RWX 0x20000000 0x00030000"
- macros="DeviceFamily=SAMD51;Target=ATSAMD51J19A;Placement=Flash;rootDir=../../../..;asf4Dir=../../../../hw/mcu/microchip/samd/asf4/samd51"
+ macros="DeviceFamily=SAMD51;Target=ATSAMD51J19A;Placement=Flash;rootDir=../../../..;asf4Dir=../../../../hw/mcu/microchip/samd/asf4/samd51;freertosDir=../../../../lib/FreeRTOS"
project_directory=""
project_type="Executable"
target_reset_script="Reset();"
@@ -102,6 +102,49 @@
filter="*.c;*.h"
path="../../../../lib/segger_rtt"
recurse="No" />
+ <folder Name="lib">
+ <folder Name="FreeRTOS">
+ <folder Name="Source">
+ <folder Name="include">
+ <file file_name="../../../../lib/FreeRTOS/Source/include/croutine.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/deprecated_definitions.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/event_groups.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/FreeRTOS.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/list.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/message_buffer.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/mpu_prototypes.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/mpu_wrappers.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/portable.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/projdefs.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/queue.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/semphr.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/stack_macros.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/StackMacros.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/stream_buffer.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/task.h" />
+ <file file_name="../../../../lib/FreeRTOS/Source/include/timers.h" />
+ </folder>
+ <folder Name="portable">
+ <folder Name="Common" />
+ <folder Name="GCC">
+ <folder Name="ARM_CM4F">
+ <file file_name="../../../../lib/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" />
+ <file file_name="../../../../lib/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" />
+ </folder>
+ </folder>
+ <folder Name="MemMang">
+ <file file_name="../../../../lib/FreeRTOS/Source/portable/MemMang/heap_4.c" />
+ </folder>
+ </folder>
+ <file file_name="../../../../lib/FreeRTOS/Source/list.c" />
+ <file file_name="../../../../lib/FreeRTOS/Source/queue.c" />
+ <file file_name="../../../../lib/FreeRTOS/Source/tasks.c" />
+ <file file_name="../../../../lib/FreeRTOS/Source/timers.c" />
+ </folder>
+ <file file_name="../../../../lib/FreeRTOS/FreeRTOSConfig.h" />
+ <file file_name="../../../../lib/FreeRTOS/freertos_hook.c" />
+ </folder>
+ </folder>
</project>
<configuration Name="Metro M4 Express" />
</solution>
diff --git a/examples/device_composite_freertos/src/tusb_config.h b/examples/device_composite_freertos/src/tusb_config.h
index 9641f7bde..4c8635fc0 100644
--- a/examples/device_composite_freertos/src/tusb_config.h
+++ b/examples/device_composite_freertos/src/tusb_config.h
@@ -48,7 +48,11 @@
//--------------------------------------------------------------------
// COMMON CONFIGURATION
//--------------------------------------------------------------------
-#define CFG_TUSB_MCU OPT_MCU_NRF5X
+// defined by compiler flags for flexibility
+#ifndef CFG_TUSB_MCU
+ #error CFG_TUSB_MCU should be defined using compiler flags
+#endif
+
#define CFG_TUSB_RHPORT0_MODE OPT_MODE_DEVICE
#define CFG_TUSB_DEBUG 2