update make to use FreeRTOSConfig in family instead of examples
This commit is contained in:
@@ -6,7 +6,6 @@
|
|||||||
# Toolchain
|
# Toolchain
|
||||||
# Can be changed via TOOLCHAIN=gcc|iar or CC=arm-none-eabi-gcc|iccarm|clang
|
# Can be changed via TOOLCHAIN=gcc|iar or CC=arm-none-eabi-gcc|iccarm|clang
|
||||||
#-------------------------------------------------------------
|
#-------------------------------------------------------------
|
||||||
|
|
||||||
ifneq (,$(findstring clang,$(CC)))
|
ifneq (,$(findstring clang,$(CC)))
|
||||||
TOOLCHAIN = clang
|
TOOLCHAIN = clang
|
||||||
else ifneq (,$(findstring iccarm,$(CC)))
|
else ifneq (,$(findstring iccarm,$(CC)))
|
||||||
@@ -65,7 +64,9 @@ BUILD := _build/$(BOARD)
|
|||||||
PROJECT := $(notdir $(CURDIR))
|
PROJECT := $(notdir $(CURDIR))
|
||||||
BIN := $(TOP)/_bin/$(BOARD)/$(notdir $(CURDIR))
|
BIN := $(TOP)/_bin/$(BOARD)/$(notdir $(CURDIR))
|
||||||
|
|
||||||
#-------------- Select the board to build for. ------------
|
#-------------------------------------------------------------
|
||||||
|
# Board / Family
|
||||||
|
#-------------------------------------------------------------
|
||||||
|
|
||||||
# Board without family
|
# Board without family
|
||||||
ifneq ($(wildcard $(TOP)/hw/bsp/$(BOARD)/board.mk),)
|
ifneq ($(wildcard $(TOP)/hw/bsp/$(BOARD)/board.mk),)
|
||||||
@@ -93,7 +94,9 @@ else
|
|||||||
SRC_C += $(subst $(TOP)/,,$(wildcard $(TOP)/$(FAMILY_PATH)/*.c))
|
SRC_C += $(subst $(TOP)/,,$(wildcard $(TOP)/$(FAMILY_PATH)/*.c))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#-------------- Source files and compiler flags --------------
|
#-------------------------------------------------------------
|
||||||
|
# Source files and compiler flags
|
||||||
|
#-------------------------------------------------------------
|
||||||
# tinyusb makefile
|
# tinyusb makefile
|
||||||
include $(TOP)/src/tinyusb.mk
|
include $(TOP)/src/tinyusb.mk
|
||||||
SRC_C += $(TINYUSB_SRC_C)
|
SRC_C += $(TINYUSB_SRC_C)
|
||||||
@@ -148,7 +151,35 @@ endif
|
|||||||
# toolchain specific
|
# toolchain specific
|
||||||
include ${TOP}/examples/build_system/make/toolchain/arm_$(TOOLCHAIN).mk
|
include ${TOP}/examples/build_system/make/toolchain/arm_$(TOOLCHAIN).mk
|
||||||
|
|
||||||
# Handy check parameter function
|
#---------------------- FreeRTOS -----------------------
|
||||||
|
FREERTOS_SRC = lib/FreeRTOS-Kernel
|
||||||
|
FREERTOS_PORTABLE_PATH = $(FREERTOS_SRC)/portable/$(if $(findstring iar,$(TOOLCHAIN)),IAR,GCC)
|
||||||
|
|
||||||
|
ifeq ($(RTOS),freertos)
|
||||||
|
SRC_C += \
|
||||||
|
$(FREERTOS_SRC)/list.c \
|
||||||
|
$(FREERTOS_SRC)/queue.c \
|
||||||
|
$(FREERTOS_SRC)/tasks.c \
|
||||||
|
$(FREERTOS_SRC)/timers.c \
|
||||||
|
$(subst $(TOP)/,,$(wildcard $(TOP)/$(FREERTOS_PORTABLE_SRC)/*.c))
|
||||||
|
|
||||||
|
SRC_S += $(subst $(TOP)/,,$(wildcard $(TOP)/$(FREERTOS_PORTABLE_SRC)/*.s))
|
||||||
|
INC += \
|
||||||
|
$(TOP)/hw/bsp/$(FAMILY)/FreeRTOSConfig \
|
||||||
|
$(TOP)/$(FREERTOS_SRC)/include \
|
||||||
|
$(TOP)/$(FREERTOS_PORTABLE_SRC)
|
||||||
|
|
||||||
|
# Suppress FreeRTOSConfig.h warnings
|
||||||
|
CFLAGS_GCC += -Wno-error=redundant-decls
|
||||||
|
|
||||||
|
# Suppress FreeRTOS source warnings
|
||||||
|
CFLAGS_GCC += -Wno-error=cast-qual
|
||||||
|
|
||||||
|
# FreeRTOS (lto + Os) linker issue
|
||||||
|
LDFLAGS_GCC += -Wl,--undefined=vTaskSwitchContext
|
||||||
|
endif
|
||||||
|
|
||||||
|
#---------------- Helper ----------------
|
||||||
check_defined = \
|
check_defined = \
|
||||||
$(strip $(foreach 1,$1, \
|
$(strip $(foreach 1,$1, \
|
||||||
$(call __check_defined,$1,$(strip $(value 2)))))
|
$(call __check_defined,$1,$(strip $(value 2)))))
|
||||||
|
@@ -1,14 +1,9 @@
|
|||||||
|
RTOS = freertos
|
||||||
include ../../build_system/make/make.mk
|
include ../../build_system/make/make.mk
|
||||||
|
|
||||||
FREERTOS_SRC = lib/FreeRTOS-Kernel
|
|
||||||
FREERTOS_PORTABLE_PATH = $(FREERTOS_SRC)/portable/$(if $(findstring iar,$(TOOLCHAIN)),IAR,GCC)
|
|
||||||
|
|
||||||
INC += \
|
INC += \
|
||||||
src \
|
src \
|
||||||
src/FreeRTOSConfig \
|
|
||||||
$(TOP)/hw \
|
$(TOP)/hw \
|
||||||
$(TOP)/$(FREERTOS_SRC)/include \
|
|
||||||
$(TOP)/$(FREERTOS_PORTABLE_SRC) \
|
|
||||||
|
|
||||||
# Example source
|
# Example source
|
||||||
EXAMPLE_SOURCE = \
|
EXAMPLE_SOURCE = \
|
||||||
@@ -17,21 +12,4 @@ EXAMPLE_SOURCE = \
|
|||||||
|
|
||||||
SRC_C += $(addprefix $(CURRENT_PATH)/, $(EXAMPLE_SOURCE))
|
SRC_C += $(addprefix $(CURRENT_PATH)/, $(EXAMPLE_SOURCE))
|
||||||
|
|
||||||
# FreeRTOS source, all files in port folder
|
|
||||||
SRC_C += \
|
|
||||||
$(FREERTOS_SRC)/list.c \
|
|
||||||
$(FREERTOS_SRC)/queue.c \
|
|
||||||
$(FREERTOS_SRC)/tasks.c \
|
|
||||||
$(FREERTOS_SRC)/timers.c \
|
|
||||||
$(subst $(TOP)/,,$(wildcard $(TOP)/$(FREERTOS_PORTABLE_SRC)/*.c))
|
|
||||||
|
|
||||||
SRC_S += \
|
|
||||||
$(subst $(TOP)/,,$(wildcard $(TOP)/$(FREERTOS_PORTABLE_SRC)/*.s))
|
|
||||||
|
|
||||||
# Suppress FreeRTOS warnings
|
|
||||||
CFLAGS += -Wno-error=cast-qual -Wno-error=redundant-decls
|
|
||||||
|
|
||||||
# FreeRTOS (lto + Os) linker issue
|
|
||||||
LDFLAGS += -Wl,--undefined=vTaskSwitchContext
|
|
||||||
|
|
||||||
include ../../build_system/make/rules.mk
|
include ../../build_system/make/rules.mk
|
||||||
|
@@ -1,191 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.
|
|
||||||
*----------------------------------------------------------*/
|
|
||||||
|
|
||||||
// skip if included from IAR assembler
|
|
||||||
#ifndef __IASMARM__
|
|
||||||
|
|
||||||
// Include MCU header
|
|
||||||
#include "bsp/board_mcu.h"
|
|
||||||
|
|
||||||
#if TUSB_MCU_VENDOR_ESPRESSIF
|
|
||||||
#error "ESP32-Sx should use IDF's FreeRTOSConfig.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// TODO fix later
|
|
||||||
#if CFG_TUSB_MCU == OPT_MCU_MM32F327X
|
|
||||||
extern u32 SystemCoreClock;
|
|
||||||
#else
|
|
||||||
// FIXME cause redundant-decls warnings
|
|
||||||
extern uint32_t SystemCoreClock;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Cortex M23/M33 port configuration. */
|
|
||||||
#define configENABLE_MPU 0
|
|
||||||
#define configENABLE_FPU 1
|
|
||||||
#define configENABLE_TRUSTZONE 0
|
|
||||||
#define configMINIMAL_SECURE_STACK_SIZE ( 1024 )
|
|
||||||
#define configRUN_FREERTOS_SECURE_ONLY 1
|
|
||||||
|
|
||||||
#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 ( configSUPPORT_DYNAMIC_ALLOCATION*4*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 4
|
|
||||||
#define configUSE_QUEUE_SETS 0
|
|
||||||
#define configUSE_TIME_SLICING 0
|
|
||||||
#define configUSE_NEWLIB_REENTRANT 0
|
|
||||||
#define configENABLE_BACKWARD_COMPATIBILITY 1
|
|
||||||
#define configSTACK_ALLOCATION_FROM_SEPARATE_HEAP 0
|
|
||||||
|
|
||||||
#define configSUPPORT_STATIC_ALLOCATION 1
|
|
||||||
#define configSUPPORT_DYNAMIC_ALLOCATION 0
|
|
||||||
|
|
||||||
/* Hook function related definitions. */
|
|
||||||
#define configUSE_IDLE_HOOK 0
|
|
||||||
#define configUSE_TICK_HOOK 0
|
|
||||||
#define configUSE_MALLOC_FAILED_HOOK 0 // cause nested extern warning
|
|
||||||
#define configCHECK_FOR_STACK_OVERFLOW 2
|
|
||||||
#define configCHECK_HANDLER_INSTALLATION 0
|
|
||||||
|
|
||||||
/* 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 (configMAX_PRIORITIES-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
|
|
||||||
|
|
||||||
#ifdef __RX__
|
|
||||||
/* Renesas RX series */
|
|
||||||
#define vSoftwareInterruptISR INT_Excep_ICU_SWINT
|
|
||||||
#define vTickISR INT_Excep_CMT0_CMI0
|
|
||||||
#define configPERIPHERAL_CLOCK_HZ (configCPU_CLOCK_HZ/2)
|
|
||||||
#define configKERNEL_INTERRUPT_PRIORITY 1
|
|
||||||
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 4
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
/* FreeRTOS hooks to NVIC vectors */
|
|
||||||
#define xPortPendSVHandler PendSV_Handler
|
|
||||||
#define xPortSysTickHandler SysTick_Handler
|
|
||||||
#define vPortSVCHandler SVC_Handler
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
// Interrupt nesting behavior configuration.
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
#if defined(__NVIC_PRIO_BITS)
|
|
||||||
// For Cortex-M specific: __NVIC_PRIO_BITS is defined in core_cmx.h
|
|
||||||
#define configPRIO_BITS __NVIC_PRIO_BITS
|
|
||||||
|
|
||||||
#elif defined(__ECLIC_INTCTLBITS)
|
|
||||||
// RISC-V Bumblebee core from nuclei
|
|
||||||
#define configPRIO_BITS __ECLIC_INTCTLBITS
|
|
||||||
|
|
||||||
#elif defined(__IASMARM__)
|
|
||||||
// FIXME: IAR Assembler cannot include mcu header directly to get __NVIC_PRIO_BITS.
|
|
||||||
// Therefore we will hard coded it to minimum value of 2 to get pass ci build.
|
|
||||||
// IAR user must update this to correct value of the target MCU
|
|
||||||
#message "configPRIO_BITS is hard coded to 2 to pass IAR build only. User should update it per MCU"
|
|
||||||
#define configPRIO_BITS 2
|
|
||||||
|
|
||||||
#else
|
|
||||||
#error "FreeRTOS configPRIO_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. */
|
|
||||||
#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
|
|
||||||
|
|
||||||
#endif /* __FREERTOS_CONFIG__H */
|
|
@@ -1,14 +1,9 @@
|
|||||||
|
RTOS = freertos
|
||||||
include ../../build_system/make/make.mk
|
include ../../build_system/make/make.mk
|
||||||
|
|
||||||
FREERTOS_SRC = lib/FreeRTOS-Kernel
|
|
||||||
FREERTOS_PORTABLE_PATH = $(FREERTOS_SRC)/portable/$(if $(findstring iar,$(TOOLCHAIN)),IAR,GCC)
|
|
||||||
|
|
||||||
INC += \
|
INC += \
|
||||||
src \
|
src \
|
||||||
src/FreeRTOSConfig \
|
|
||||||
$(TOP)/hw \
|
$(TOP)/hw \
|
||||||
$(TOP)/$(FREERTOS_SRC)/include \
|
|
||||||
$(TOP)/$(FREERTOS_PORTABLE_SRC) \
|
|
||||||
|
|
||||||
# Example source
|
# Example source
|
||||||
EXAMPLE_SOURCE = \
|
EXAMPLE_SOURCE = \
|
||||||
@@ -17,21 +12,4 @@ EXAMPLE_SOURCE = \
|
|||||||
|
|
||||||
SRC_C += $(addprefix $(CURRENT_PATH)/, $(EXAMPLE_SOURCE))
|
SRC_C += $(addprefix $(CURRENT_PATH)/, $(EXAMPLE_SOURCE))
|
||||||
|
|
||||||
# FreeRTOS source, all files in port folder
|
|
||||||
SRC_C += \
|
|
||||||
$(FREERTOS_SRC)/list.c \
|
|
||||||
$(FREERTOS_SRC)/queue.c \
|
|
||||||
$(FREERTOS_SRC)/tasks.c \
|
|
||||||
$(FREERTOS_SRC)/timers.c \
|
|
||||||
$(subst $(TOP)/,,$(wildcard $(TOP)/$(FREERTOS_PORTABLE_SRC)/*.c))
|
|
||||||
|
|
||||||
SRC_S += \
|
|
||||||
$(subst $(TOP)/,,$(wildcard $(TOP)/$(FREERTOS_PORTABLE_SRC)/*.s))
|
|
||||||
|
|
||||||
# Suppress FreeRTOS warnings
|
|
||||||
CFLAGS += -Wno-error=cast-qual -Wno-error=redundant-decls
|
|
||||||
|
|
||||||
# FreeRTOS (lto + Os) linker issue
|
|
||||||
LDFLAGS += -Wl,--undefined=vTaskSwitchContext
|
|
||||||
|
|
||||||
include ../../build_system/make/rules.mk
|
include ../../build_system/make/rules.mk
|
||||||
|
@@ -1,191 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.
|
|
||||||
*----------------------------------------------------------*/
|
|
||||||
|
|
||||||
// skip if included from IAR assembler
|
|
||||||
#ifndef __IASMARM__
|
|
||||||
|
|
||||||
// Include MCU header
|
|
||||||
#include "bsp/board_mcu.h"
|
|
||||||
|
|
||||||
#if TUSB_MCU_VENDOR_ESPRESSIF
|
|
||||||
#error "ESP32-Sx should use IDF's FreeRTOSConfig.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// TODO fix later
|
|
||||||
#if CFG_TUSB_MCU == OPT_MCU_MM32F327X
|
|
||||||
extern u32 SystemCoreClock;
|
|
||||||
#else
|
|
||||||
// FIXME cause redundant-decls warnings
|
|
||||||
extern uint32_t SystemCoreClock;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Cortex M23/M33 port configuration. */
|
|
||||||
#define configENABLE_MPU 0
|
|
||||||
#define configENABLE_FPU 1
|
|
||||||
#define configENABLE_TRUSTZONE 0
|
|
||||||
#define configMINIMAL_SECURE_STACK_SIZE ( 1024 )
|
|
||||||
#define configRUN_FREERTOS_SECURE_ONLY 1
|
|
||||||
|
|
||||||
#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 ( configSUPPORT_DYNAMIC_ALLOCATION*4*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 4
|
|
||||||
#define configUSE_QUEUE_SETS 0
|
|
||||||
#define configUSE_TIME_SLICING 0
|
|
||||||
#define configUSE_NEWLIB_REENTRANT 0
|
|
||||||
#define configENABLE_BACKWARD_COMPATIBILITY 1
|
|
||||||
#define configSTACK_ALLOCATION_FROM_SEPARATE_HEAP 0
|
|
||||||
|
|
||||||
#define configSUPPORT_STATIC_ALLOCATION 1
|
|
||||||
#define configSUPPORT_DYNAMIC_ALLOCATION 0
|
|
||||||
|
|
||||||
/* Hook function related definitions. */
|
|
||||||
#define configUSE_IDLE_HOOK 0
|
|
||||||
#define configUSE_TICK_HOOK 0
|
|
||||||
#define configUSE_MALLOC_FAILED_HOOK 0 // cause nested extern warning
|
|
||||||
#define configCHECK_FOR_STACK_OVERFLOW 2
|
|
||||||
#define configCHECK_HANDLER_INSTALLATION 0
|
|
||||||
|
|
||||||
/* 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 (configMAX_PRIORITIES-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
|
|
||||||
|
|
||||||
#ifdef __RX__
|
|
||||||
/* Renesas RX series */
|
|
||||||
#define vSoftwareInterruptISR INT_Excep_ICU_SWINT
|
|
||||||
#define vTickISR INT_Excep_CMT0_CMI0
|
|
||||||
#define configPERIPHERAL_CLOCK_HZ (configCPU_CLOCK_HZ/2)
|
|
||||||
#define configKERNEL_INTERRUPT_PRIORITY 1
|
|
||||||
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 4
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
/* FreeRTOS hooks to NVIC vectors */
|
|
||||||
#define xPortPendSVHandler PendSV_Handler
|
|
||||||
#define xPortSysTickHandler SysTick_Handler
|
|
||||||
#define vPortSVCHandler SVC_Handler
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
// Interrupt nesting behavior configuration.
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
#if defined(__NVIC_PRIO_BITS)
|
|
||||||
// For Cortex-M specific: __NVIC_PRIO_BITS is defined in core_cmx.h
|
|
||||||
#define configPRIO_BITS __NVIC_PRIO_BITS
|
|
||||||
|
|
||||||
#elif defined(__ECLIC_INTCTLBITS)
|
|
||||||
// RISC-V Bumblebee core from nuclei
|
|
||||||
#define configPRIO_BITS __ECLIC_INTCTLBITS
|
|
||||||
|
|
||||||
#elif defined(__IASMARM__)
|
|
||||||
// FIXME: IAR Assembler cannot include mcu header directly to get __NVIC_PRIO_BITS.
|
|
||||||
// Therefore we will hard coded it to minimum value of 2 to get pass ci build.
|
|
||||||
// IAR user must update this to correct value of the target MCU
|
|
||||||
#message "configPRIO_BITS is hard coded to 2 to pass IAR build only. User should update it per MCU"
|
|
||||||
#define configPRIO_BITS 2
|
|
||||||
|
|
||||||
#else
|
|
||||||
#error "FreeRTOS configPRIO_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. */
|
|
||||||
#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
|
|
||||||
|
|
||||||
#endif /* __FREERTOS_CONFIG__H */
|
|
@@ -1,14 +1,9 @@
|
|||||||
|
RTOS = freertos
|
||||||
include ../../build_system/make/make.mk
|
include ../../build_system/make/make.mk
|
||||||
|
|
||||||
FREERTOS_SRC = lib/FreeRTOS-Kernel
|
|
||||||
FREERTOS_PORTABLE_PATH = $(FREERTOS_SRC)/portable/$(if $(findstring iar,$(TOOLCHAIN)),IAR,GCC)
|
|
||||||
|
|
||||||
INC += \
|
INC += \
|
||||||
src \
|
src \
|
||||||
src/FreeRTOSConfig \
|
|
||||||
$(TOP)/hw \
|
$(TOP)/hw \
|
||||||
$(TOP)/$(FREERTOS_SRC)/include \
|
|
||||||
$(TOP)/$(FREERTOS_PORTABLE_SRC) \
|
|
||||||
|
|
||||||
# Example source
|
# Example source
|
||||||
EXAMPLE_SOURCE = \
|
EXAMPLE_SOURCE = \
|
||||||
@@ -18,28 +13,4 @@ EXAMPLE_SOURCE = \
|
|||||||
|
|
||||||
SRC_C += $(addprefix $(CURRENT_PATH)/, $(EXAMPLE_SOURCE))
|
SRC_C += $(addprefix $(CURRENT_PATH)/, $(EXAMPLE_SOURCE))
|
||||||
|
|
||||||
# FreeRTOS source, all files in port folder
|
|
||||||
SRC_C += \
|
|
||||||
$(FREERTOS_SRC)/list.c \
|
|
||||||
$(FREERTOS_SRC)/queue.c \
|
|
||||||
$(FREERTOS_SRC)/tasks.c \
|
|
||||||
$(FREERTOS_SRC)/timers.c \
|
|
||||||
$(subst $(TOP)/,,$(wildcard $(TOP)/$(FREERTOS_PORTABLE_SRC)/*.c))
|
|
||||||
|
|
||||||
SRC_S += \
|
|
||||||
$(subst $(TOP)/,,$(wildcard $(TOP)/$(FREERTOS_PORTABLE_SRC)/*.s))
|
|
||||||
|
|
||||||
# include heap manage if configSUPPORT_DYNAMIC_ALLOCATION = 1
|
|
||||||
# SRC_C += $(FREERTOS_SRC)/portable/MemMang/heap_1.c
|
|
||||||
# CFLAGS += -Wno-error=sign-compare
|
|
||||||
|
|
||||||
# Suppress FreeRTOSConfig.h warnings
|
|
||||||
CFLAGS_GCC += -Wno-error=redundant-decls
|
|
||||||
|
|
||||||
# Suppress FreeRTOS source warnings
|
|
||||||
CFLAGS_GCC += -Wno-error=cast-qual
|
|
||||||
|
|
||||||
# FreeRTOS (lto + Os) linker issue
|
|
||||||
LDFLAGS_GCC += -Wl,--undefined=vTaskSwitchContext
|
|
||||||
|
|
||||||
include ../../build_system/make/rules.mk
|
include ../../build_system/make/rules.mk
|
||||||
|
@@ -1,16 +1,9 @@
|
|||||||
DEPS_SUBMODULES += lib/FreeRTOS-Kernel
|
RTOS = freertos
|
||||||
|
|
||||||
include ../../build_system/make/make.mk
|
include ../../build_system/make/make.mk
|
||||||
|
|
||||||
FREERTOS_SRC = lib/FreeRTOS-Kernel
|
|
||||||
FREERTOS_PORTABLE_PATH= $(FREERTOS_SRC)/portable/$(if $(findstring iar,$(TOOLCHAIN)),IAR,GCC)
|
|
||||||
|
|
||||||
INC += \
|
INC += \
|
||||||
src \
|
src \
|
||||||
src/FreeRTOSConfig \
|
|
||||||
$(TOP)/hw \
|
$(TOP)/hw \
|
||||||
$(TOP)/$(FREERTOS_SRC)/include \
|
|
||||||
$(TOP)/$(FREERTOS_PORTABLE_SRC)
|
|
||||||
|
|
||||||
# Example source
|
# Example source
|
||||||
EXAMPLE_SOURCE = \
|
EXAMPLE_SOURCE = \
|
||||||
@@ -19,28 +12,4 @@ EXAMPLE_SOURCE = \
|
|||||||
|
|
||||||
SRC_C += $(addprefix $(CURRENT_PATH)/, $(EXAMPLE_SOURCE))
|
SRC_C += $(addprefix $(CURRENT_PATH)/, $(EXAMPLE_SOURCE))
|
||||||
|
|
||||||
# FreeRTOS source, all files in port folder
|
|
||||||
SRC_C += \
|
|
||||||
$(FREERTOS_SRC)/list.c \
|
|
||||||
$(FREERTOS_SRC)/queue.c \
|
|
||||||
$(FREERTOS_SRC)/tasks.c \
|
|
||||||
$(FREERTOS_SRC)/timers.c \
|
|
||||||
$(subst $(TOP)/,,$(wildcard $(TOP)/$(FREERTOS_PORTABLE_SRC)/*.c))
|
|
||||||
|
|
||||||
SRC_S += \
|
|
||||||
$(subst $(TOP)/,,$(wildcard $(TOP)/$(FREERTOS_PORTABLE_SRC)/*.s))
|
|
||||||
|
|
||||||
# include heap manage if configSUPPORT_DYNAMIC_ALLOCATION = 1
|
|
||||||
# SRC_C += $(FREERTOS_SRC)/portable/MemMang/heap_1.c
|
|
||||||
# CFLAGS += -Wno-error=sign-compare
|
|
||||||
|
|
||||||
# Suppress FreeRTOSConfig.h warnings
|
|
||||||
CFLAGS_GCC += -Wno-error=redundant-decls
|
|
||||||
|
|
||||||
# Suppress FreeRTOS source warnings
|
|
||||||
CFLAGS_GCC += -Wno-error=cast-qual
|
|
||||||
|
|
||||||
# FreeRTOS (lto + Os) linker issue
|
|
||||||
LDFLAGS_GCC += -Wl,--undefined=vTaskSwitchContext
|
|
||||||
|
|
||||||
include ../../build_system/make/rules.mk
|
include ../../build_system/make/rules.mk
|
||||||
|
@@ -1,191 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.
|
|
||||||
*----------------------------------------------------------*/
|
|
||||||
|
|
||||||
// skip if included from IAR assembler
|
|
||||||
#ifndef __IASMARM__
|
|
||||||
|
|
||||||
// Include MCU header
|
|
||||||
#include "bsp/board_mcu.h"
|
|
||||||
|
|
||||||
#if TUSB_MCU_VENDOR_ESPRESSIF
|
|
||||||
#error "ESP32-Sx should use IDF's FreeRTOSConfig.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// TODO fix later
|
|
||||||
#if CFG_TUSB_MCU == OPT_MCU_MM32F327X
|
|
||||||
extern u32 SystemCoreClock;
|
|
||||||
#else
|
|
||||||
// FIXME cause redundant-decls warnings
|
|
||||||
extern uint32_t SystemCoreClock;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Cortex M23/M33 port configuration. */
|
|
||||||
#define configENABLE_MPU 0
|
|
||||||
#define configENABLE_FPU 1
|
|
||||||
#define configENABLE_TRUSTZONE 0
|
|
||||||
#define configMINIMAL_SECURE_STACK_SIZE ( 1024 )
|
|
||||||
#define configRUN_FREERTOS_SECURE_ONLY 1
|
|
||||||
|
|
||||||
#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 ( configSUPPORT_DYNAMIC_ALLOCATION*4*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 4
|
|
||||||
#define configUSE_QUEUE_SETS 0
|
|
||||||
#define configUSE_TIME_SLICING 0
|
|
||||||
#define configUSE_NEWLIB_REENTRANT 0
|
|
||||||
#define configENABLE_BACKWARD_COMPATIBILITY 1
|
|
||||||
#define configSTACK_ALLOCATION_FROM_SEPARATE_HEAP 0
|
|
||||||
|
|
||||||
#define configSUPPORT_STATIC_ALLOCATION 1
|
|
||||||
#define configSUPPORT_DYNAMIC_ALLOCATION 0
|
|
||||||
|
|
||||||
/* Hook function related definitions. */
|
|
||||||
#define configUSE_IDLE_HOOK 0
|
|
||||||
#define configUSE_TICK_HOOK 0
|
|
||||||
#define configUSE_MALLOC_FAILED_HOOK 0 // cause nested extern warning
|
|
||||||
#define configCHECK_FOR_STACK_OVERFLOW 2
|
|
||||||
#define configCHECK_HANDLER_INSTALLATION 0
|
|
||||||
|
|
||||||
/* 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 (configMAX_PRIORITIES-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
|
|
||||||
|
|
||||||
#ifdef __RX__
|
|
||||||
/* Renesas RX series */
|
|
||||||
#define vSoftwareInterruptISR INT_Excep_ICU_SWINT
|
|
||||||
#define vTickISR INT_Excep_CMT0_CMI0
|
|
||||||
#define configPERIPHERAL_CLOCK_HZ (configCPU_CLOCK_HZ/2)
|
|
||||||
#define configKERNEL_INTERRUPT_PRIORITY 1
|
|
||||||
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 4
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
/* FreeRTOS hooks to NVIC vectors */
|
|
||||||
#define xPortPendSVHandler PendSV_Handler
|
|
||||||
#define xPortSysTickHandler SysTick_Handler
|
|
||||||
#define vPortSVCHandler SVC_Handler
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
// Interrupt nesting behavior configuration.
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
#if defined(__NVIC_PRIO_BITS)
|
|
||||||
// For Cortex-M specific: __NVIC_PRIO_BITS is defined in core_cmx.h
|
|
||||||
#define configPRIO_BITS __NVIC_PRIO_BITS
|
|
||||||
|
|
||||||
#elif defined(__ECLIC_INTCTLBITS)
|
|
||||||
// RISC-V Bumblebee core from nuclei
|
|
||||||
#define configPRIO_BITS __ECLIC_INTCTLBITS
|
|
||||||
|
|
||||||
#elif defined(__IASMARM__)
|
|
||||||
// FIXME: IAR Assembler cannot include mcu header directly to get __NVIC_PRIO_BITS.
|
|
||||||
// Therefore we will hard coded it to minimum value of 2 to get pass ci build.
|
|
||||||
// IAR user must update this to correct value of the target MCU
|
|
||||||
#message "configPRIO_BITS is hard coded to 2 to pass IAR build only. User should update it per MCU"
|
|
||||||
#define configPRIO_BITS 2
|
|
||||||
|
|
||||||
#else
|
|
||||||
#error "FreeRTOS configPRIO_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. */
|
|
||||||
#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
|
|
||||||
|
|
||||||
#endif /* __FREERTOS_CONFIG__H */
|
|
@@ -1,14 +1,9 @@
|
|||||||
|
RTOS = freertos
|
||||||
include ../../build_system/make/make.mk
|
include ../../build_system/make/make.mk
|
||||||
|
|
||||||
FREERTOS_SRC = lib/FreeRTOS-Kernel
|
|
||||||
FREERTOS_PORTABLE_PATH = $(FREERTOS_SRC)/portable/$(if $(findstring iar,$(TOOLCHAIN)),IAR,GCC)
|
|
||||||
|
|
||||||
INC += \
|
INC += \
|
||||||
src \
|
src \
|
||||||
$(TOP)/hw \
|
$(TOP)/hw \
|
||||||
${TOP}/${FAMILY_PATH}/FreeRTOSConfig \
|
|
||||||
$(TOP)/$(FREERTOS_SRC)/include \
|
|
||||||
$(TOP)/$(FREERTOS_PORTABLE_SRC) \
|
|
||||||
|
|
||||||
# Example source
|
# Example source
|
||||||
EXAMPLE_SOURCE += \
|
EXAMPLE_SOURCE += \
|
||||||
@@ -17,24 +12,4 @@ EXAMPLE_SOURCE += \
|
|||||||
|
|
||||||
SRC_C += $(addprefix $(CURRENT_PATH)/, $(EXAMPLE_SOURCE))
|
SRC_C += $(addprefix $(CURRENT_PATH)/, $(EXAMPLE_SOURCE))
|
||||||
|
|
||||||
# FreeRTOS source, all files in port folder
|
|
||||||
SRC_C += \
|
|
||||||
$(FREERTOS_SRC)/list.c \
|
|
||||||
$(FREERTOS_SRC)/queue.c \
|
|
||||||
$(FREERTOS_SRC)/tasks.c \
|
|
||||||
$(FREERTOS_SRC)/timers.c \
|
|
||||||
$(subst $(TOP)/,,$(wildcard $(TOP)/$(FREERTOS_PORTABLE_SRC)/*.c))
|
|
||||||
|
|
||||||
SRC_S += \
|
|
||||||
$(subst $(TOP)/,,$(wildcard $(TOP)/$(FREERTOS_PORTABLE_SRC)/*.s))
|
|
||||||
|
|
||||||
# Suppress FreeRTOSConfig.h warnings
|
|
||||||
CFLAGS_GCC += -Wno-error=redundant-decls
|
|
||||||
|
|
||||||
# Suppress FreeRTOS source warnings
|
|
||||||
CFLAGS_GCC += -Wno-error=cast-qual
|
|
||||||
|
|
||||||
# FreeRTOS (lto + Os) linker issue
|
|
||||||
LDFLAGS_GCC += -Wl,--undefined=vTaskSwitchContext
|
|
||||||
|
|
||||||
include ../../build_system/make/rules.mk
|
include ../../build_system/make/rules.mk
|
||||||
|
@@ -1,14 +1,9 @@
|
|||||||
|
RTOS = freertos
|
||||||
include ../../build_system/make/make.mk
|
include ../../build_system/make/make.mk
|
||||||
|
|
||||||
FREERTOS_SRC = lib/FreeRTOS-Kernel
|
|
||||||
FREERTOS_PORTABLE_PATH= $(FREERTOS_SRC)/portable/$(if $(findstring iar,$(TOOLCHAIN)),IAR,GCC)
|
|
||||||
|
|
||||||
INC += \
|
INC += \
|
||||||
src \
|
src \
|
||||||
src/FreeRTOSConfig \
|
|
||||||
$(TOP)/hw \
|
$(TOP)/hw \
|
||||||
$(TOP)/$(FREERTOS_SRC)/include \
|
|
||||||
$(TOP)/$(FREERTOS_PORTABLE_SRC) \
|
|
||||||
|
|
||||||
# Example source
|
# Example source
|
||||||
EXAMPLE_SOURCE = \
|
EXAMPLE_SOURCE = \
|
||||||
@@ -19,15 +14,4 @@ EXAMPLE_SOURCE = \
|
|||||||
|
|
||||||
SRC_C += $(addprefix $(CURRENT_PATH)/, $(EXAMPLE_SOURCE))
|
SRC_C += $(addprefix $(CURRENT_PATH)/, $(EXAMPLE_SOURCE))
|
||||||
|
|
||||||
# FreeRTOS source, all files in port folder
|
|
||||||
SRC_C += \
|
|
||||||
$(FREERTOS_SRC)/list.c \
|
|
||||||
$(FREERTOS_SRC)/queue.c \
|
|
||||||
$(FREERTOS_SRC)/tasks.c \
|
|
||||||
$(FREERTOS_SRC)/timers.c \
|
|
||||||
$(subst $(TOP)/,,$(wildcard $(TOP)/$(FREERTOS_PORTABLE_SRC)/*.c))
|
|
||||||
|
|
||||||
SRC_S += \
|
|
||||||
$(subst $(TOP)/,,$(wildcard $(TOP)/$(FREERTOS_PORTABLE_SRC)/*.s))
|
|
||||||
|
|
||||||
include ../../build_system/make/rules.mk
|
include ../../build_system/make/rules.mk
|
||||||
|
@@ -1,199 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.
|
|
||||||
*----------------------------------------------------------*/
|
|
||||||
|
|
||||||
// skip if included from IAR assembler
|
|
||||||
#ifndef __IASMARM__
|
|
||||||
|
|
||||||
// Include MCU header
|
|
||||||
#include "bsp/board_mcu.h"
|
|
||||||
|
|
||||||
#if TUSB_MCU_VENDOR_ESPRESSIF
|
|
||||||
#error "ESP32-Sx should use IDF's FreeRTOSConfig.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma GCC diagnostic push
|
|
||||||
#pragma GCC diagnostic ignored "-Wredundant-decls"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// TODO fix later
|
|
||||||
// FIXME cause redundant-decls warnings
|
|
||||||
#if CFG_TUSB_MCU == OPT_MCU_MM32F327X
|
|
||||||
extern u32 SystemCoreClock;
|
|
||||||
#else
|
|
||||||
extern uint32_t SystemCoreClock;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma GCC diagnostic pop
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Cortex M23/M33 port configuration. */
|
|
||||||
#define configENABLE_MPU 0
|
|
||||||
#define configENABLE_FPU 1
|
|
||||||
#define configENABLE_TRUSTZONE 0
|
|
||||||
#define configMINIMAL_SECURE_STACK_SIZE ( 1024 )
|
|
||||||
|
|
||||||
#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 ( configSUPPORT_DYNAMIC_ALLOCATION*4*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 4
|
|
||||||
#define configUSE_QUEUE_SETS 0
|
|
||||||
#define configUSE_TIME_SLICING 0
|
|
||||||
#define configUSE_NEWLIB_REENTRANT 0
|
|
||||||
#define configENABLE_BACKWARD_COMPATIBILITY 1
|
|
||||||
#define configSTACK_ALLOCATION_FROM_SEPARATE_HEAP 0
|
|
||||||
|
|
||||||
#define configSUPPORT_STATIC_ALLOCATION 1
|
|
||||||
#define configSUPPORT_DYNAMIC_ALLOCATION 0
|
|
||||||
|
|
||||||
/* Hook function related definitions. */
|
|
||||||
#define configUSE_IDLE_HOOK 0
|
|
||||||
#define configUSE_TICK_HOOK 0
|
|
||||||
#define configUSE_MALLOC_FAILED_HOOK 0 // cause nested extern warning
|
|
||||||
#define configCHECK_FOR_STACK_OVERFLOW 2
|
|
||||||
#define configCHECK_HANDLER_INSTALLATION 0
|
|
||||||
|
|
||||||
/* 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 (configMAX_PRIORITIES-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
|
|
||||||
|
|
||||||
#ifdef __RX__
|
|
||||||
/* Renesas RX series */
|
|
||||||
#define vSoftwareInterruptISR INT_Excep_ICU_SWINT
|
|
||||||
#define vTickISR INT_Excep_CMT0_CMI0
|
|
||||||
#define configPERIPHERAL_CLOCK_HZ (configCPU_CLOCK_HZ/2)
|
|
||||||
#define configKERNEL_INTERRUPT_PRIORITY 1
|
|
||||||
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 4
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
/* FreeRTOS hooks to NVIC vectors */
|
|
||||||
#define xPortPendSVHandler PendSV_Handler
|
|
||||||
#define xPortSysTickHandler SysTick_Handler
|
|
||||||
#define vPortSVCHandler SVC_Handler
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
// Interrupt nesting behavior configuration.
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
#if defined(__NVIC_PRIO_BITS)
|
|
||||||
// For Cortex-M specific: __NVIC_PRIO_BITS is defined in core_cmx.h
|
|
||||||
#define configPRIO_BITS __NVIC_PRIO_BITS
|
|
||||||
|
|
||||||
#elif defined(__ECLIC_INTCTLBITS)
|
|
||||||
// RISC-V Bumblebee core from nuclei
|
|
||||||
#define configPRIO_BITS __ECLIC_INTCTLBITS
|
|
||||||
|
|
||||||
#elif defined(__IASMARM__)
|
|
||||||
// FIXME: IAR Assembler cannot include mcu header directly to get __NVIC_PRIO_BITS.
|
|
||||||
// Therefore we will hard coded it to minimum value of 2 to get pass ci build.
|
|
||||||
// IAR user must update this to correct value of the target MCU
|
|
||||||
#message "configPRIO_BITS is hard coded to 2 to pass IAR build only. User should update it per MCU"
|
|
||||||
#define configPRIO_BITS 2
|
|
||||||
|
|
||||||
#else
|
|
||||||
#error "FreeRTOS configPRIO_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. */
|
|
||||||
#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
|
|
||||||
|
|
||||||
#endif /* __FREERTOS_CONFIG__H */
|
|
Reference in New Issue
Block a user