forked from Elron_dev/elbear_arduino_bsp
- добавлена поддержка платы ELBEAR ACE-NANO; - добавлена поддержка плат ELSOMIK OEM и SE; - добавлена возможность работы в режиме отладки для всех плат, входящих в состав пакета. Доступно для версии ArduinoIDE 2 и выше; - добавлена поддержка библиотеки FreeRTOS; - добавлена поддержка библиотеки IRremote; - добавлена поддержка библиотеки OneWire; - добавлена поддержка аппаратного I2C0 для плат START-MIK32 и ELSOMIK. Для работы с ним доступен экземпляр класса Wire1; - добавлена поддержка аппаратного SPI0 для всех плат, входящих в пакет. Для работы с ним доступен экземпляр класса SPI1; - увеличено быстродействие функций digitalWrite, digitalRead; - исправлены известные ошибки. Co-authored-by: KlassenTS <klassen@elron.tech> Co-committed-by: KlassenTS <klassen@elron.tech>
125 lines
4.7 KiB
C
125 lines
4.7 KiB
C
/*
|
|
* Copyright (C) 2023, Syntacore Ltd.
|
|
* All Rights Reserved.
|
|
*/
|
|
|
|
#ifndef FREERTOS_CONFIG_H
|
|
#define FREERTOS_CONFIG_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#include "mcu32_memory_map.h"
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
/*-----------------------------------------------------------
|
|
* 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 https://www.freertos.org/a00110.html.
|
|
*----------------------------------------------------------*/
|
|
|
|
#define configMTIME_BASE_ADDRESS (SCR1_TIMER_BASE_ADDRESS + 0x8) // from scr1 core docs
|
|
#define configMTIMECMP_BASE_ADDRESS (SCR1_TIMER_BASE_ADDRESS + 0x10) // from scr1 core docs
|
|
|
|
/* Delay definition - here, the user can choose which delay implementation is required.
|
|
* The default is to change nothing. */
|
|
|
|
#define configUSE_PREEMPTION 1
|
|
#define configCPU_CLOCK_HZ ( ( uint32_t ) F_CPU ) // This F_CPU variable set by the environment
|
|
#define configTICK_RATE_HZ ( ( TickType_t ) 100 )
|
|
#define configMAX_PRIORITIES 4
|
|
#define configMINIMAL_STACK_SIZE 128
|
|
#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 0
|
|
#define configUSE_QUEUE_SETS 0
|
|
#define configUSE_TIME_SLICING 1
|
|
#define configUSE_APPLICATION_TASK_TAG 0
|
|
#define configUSE_PORT_DELAY 0
|
|
/* Set the stack depth type to be uint16_t, otherwise it defaults to StackType_t */
|
|
#define configSTACK_DEPTH_TYPE uint16_t
|
|
|
|
/* Memory allocation related definitions. */
|
|
#define configSUPPORT_DYNAMIC_ALLOCATION 1
|
|
#define configSUPPORT_STATIC_ALLOCATION 0
|
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) 5*1024 )
|
|
/* don't define to reuse the stack allocated in the linker script via __freertos_irq_stack_top variable*/
|
|
// #define configISR_STACK_SIZE_WORDS 128
|
|
|
|
/* Hook function related definitions. */
|
|
#define configUSE_IDLE_HOOK 1
|
|
#define configUSE_TICK_HOOK 0
|
|
#define configCHECK_FOR_STACK_OVERFLOW 1
|
|
#define configUSE_MALLOC_FAILED_HOOK 1
|
|
|
|
/* Run time and task stats gathering related definitions. */
|
|
#define configUSE_TRACE_FACILITY 0
|
|
|
|
/* Software timer related definitions. */
|
|
#define configUSE_TIMERS 1
|
|
#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES-1 )
|
|
#define configTIMER_TASK_STACK_DEPTH 92
|
|
#define configTIMER_QUEUE_LENGTH 10
|
|
|
|
/* Set the following definitions to 1 to include the API function, or zero
|
|
to exclude the API function. */
|
|
|
|
/* Set the following INCLUDE_* constants to 1 to incldue the named API function,
|
|
* or 0 to exclude the named API function. Most linkers will remove unused
|
|
* functions even when the constant is 1. */
|
|
#define INCLUDE_vTaskPrioritySet 1
|
|
#define INCLUDE_uxTaskPriorityGet 1
|
|
#define INCLUDE_vTaskDelete 1
|
|
#define INCLUDE_vTaskSuspend 1
|
|
#define INCLUDE_xTaskResumeFromISR 1
|
|
#define INCLUDE_xTaskDelayUntil 1
|
|
#define INCLUDE_vTaskDelay 1
|
|
#define INCLUDE_xTaskGetSchedulerState 0
|
|
#define INCLUDE_xTaskGetCurrentTaskHandle 1
|
|
#define INCLUDE_uxTaskGetStackHighWaterMark 1
|
|
#define INCLUDE_xTaskGetIdleTaskHandle 0
|
|
#define INCLUDE_eTaskGetState 0
|
|
#define INCLUDE_xEventGroupSetBitFromISR 1
|
|
#define INCLUDE_xTimerPendFunctionCall 0
|
|
#define INCLUDE_xTaskAbortDelay 0
|
|
#define INCLUDE_xTaskGetHandle 0
|
|
|
|
#define configMAX(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a > _b ? _a : _b; })
|
|
#define configMIN(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a < _b ? _a : _b; })
|
|
|
|
/**
|
|
* configASSERT macro: https://www.freertos.org/a00110.html#configASSERT
|
|
*/
|
|
#ifndef configASSERT
|
|
#define configDEFAULT_ASSERT 0
|
|
#else
|
|
/**
|
|
* Enable configASSERT macro if it is defined.
|
|
*/
|
|
#ifndef configDEFAULT_ASSERT
|
|
#define configDEFAULT_ASSERT 1
|
|
#endif
|
|
|
|
/**
|
|
* Define a hook method for configASSERT macro if configASSERT is enabled.
|
|
*/
|
|
#if configDEFAULT_ASSERT == 1
|
|
extern void vApplicationAssertHook();
|
|
#define configASSERT( x ) if (( x ) == 0) { vApplicationAssertHook(); }
|
|
#endif
|
|
#endif
|
|
|
|
#endif /* FREERTOS_CONFIG_H */
|