188 lines
11 KiB
C
188 lines
11 KiB
C
/*
|
|
* Copyright (c) 2023-2024 Erich Styger
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
/* header file is included with -include compiler option */
|
|
|
|
#ifndef MCULIB_CONFIG_CONFIG_H_
|
|
#define MCULIB_CONFIG_CONFIG_H_
|
|
|
|
/* ---------------------------------------------------------------------------------------*/
|
|
/* different HW/PCB versions: */
|
|
#define PL_CONFIG_HW_ADIS_ESP_ROBO_SHIELD (1) /* ESP32 shield on K22FX512 robot */
|
|
#define PL_CONFIG_HW_ADIS_PICO_W_CONSOLE_V0_1 (2) /* Pico-W console board with OLED, sensor, nav switch, 1-Jul-2023 */
|
|
#define PL_CONFIG_HW_ADIS_PICO_W_CONSOLE_V0_2 (3) /* same as PL_CONFIG_HW_ADIS_PICO_W_CONSOLE_V0_1, but with added nRF */
|
|
#define PL_CONFIG_HW_ADIS_ESP32_CONSOLE_V0_1 (4) /* ESP32 DevKitC-32E with OLED, wired PCB, sensor, nav switch and RS-485, 5-Jul-2023, obsolete */
|
|
#define PL_CONFIG_HW_ADIS_ESP32_CONSOLE_V0_2 (5) /* ESP32 DevKitC-32E with OLED, green PCB, sensor, nav switch, RS-485, nRF, 14-Jul-2023 */
|
|
#define PL_CONFIG_HW_ADIS_ESP32_CONSOLE_V1_0 (6) /* ESP32 DevKitC-32E with OLED, black PCB, sensor, nav switch, RS-485, nRF, 07-Aug-2023 */
|
|
|
|
/* active PCB/Hardware version */
|
|
#define PL_CONFIG_HW_VERSION (PL_CONFIG_HW_ADIS_PICO_W_CONSOLE_V0_2)
|
|
/* ---------------------------------------------------------------------------------------*/
|
|
/* SDK */
|
|
#define McuLib_CONFIG_CPU_IS_KINETIS (0)
|
|
#define McuLib_CONFIG_CORTEX_M (0) /* RP2040 is a Cortex-M0+ */
|
|
#define McuLib_CONFIG_CPU_IS_RPxxxx (1)
|
|
#define McuLib_CONFIG_CPU_VARIANT McuLib_CONFIG_CPU_VARIANT_RP2040
|
|
#define McuLib_CONFIG_SDK_VERSION_USED McuLib_CONFIG_SDK_RPI_PICO
|
|
/* ---------------------------------------------------------------------- */
|
|
/* FreeRTOS */
|
|
#define McuLib_CONFIG_SDK_USE_FREERTOS (1)
|
|
#define configMINIMAL_STACK_SIZE (500/sizeof(StackType_t))
|
|
#define configTOTAL_HEAP_SIZE (48*1024)
|
|
#define configUSE_TIMERS (1) /* needed for debouncing and TimeDate (timer.c)*/
|
|
#define INCLUDE_xTimerPendFunctionCall (1 && configUSE_TIMERS)
|
|
#define configTIMER_TASK_STACK_DEPTH (1024/sizeof(StackType_t)) /* stack size for Timer Service task */
|
|
#define configTIMER_QUEUE_LENGTH (24)
|
|
#define configUSE_SEGGER_SYSTEM_VIEWER_HOOKS (1)
|
|
#define INCLUDE_vTaskEndScheduler (1)
|
|
#define configUSE_IDLE_HOOK (1)
|
|
#define configUSE_TICK_HOOK (1)
|
|
#define configUSE_MALLOC_FAILED_HOOK (1)
|
|
#define configCHECK_FOR_STACK_OVERFLOW (1)
|
|
/* -------------------------------------------------*/
|
|
/* I2C */
|
|
#define CONFIG_USE_HW_I2C (1) /* if using HW I2C, otherwise use software bit banging */
|
|
#define MCUI2CLIB_CONFIG_I2C_DEVICE i2c0
|
|
#define MCUI2CLIB_CONFIG_SDA_GPIO_PIN 16u
|
|
#define MCUI2CLIB_CONFIG_SCL_GPIO_PIN 17u
|
|
#define MCUI2CLIB_CONFIG_ADD_DELAY_US (0)
|
|
#define MCUI2CLIB_CONFIG_TIMEOUT_BYTE_US (1000)
|
|
/* -------------------------------------------------*/
|
|
/* McuGenericI2C */
|
|
#define McuGenericI2C_CONFIG_USE_ON_ERROR_EVENT (0)
|
|
#define McuGenericI2C_CONFIG_USE_ON_RELEASE_BUS_EVENT (0)
|
|
#define McuGenericI2C_CONFIG_USE_ON_REQUEST_BUS_EVENT (0)
|
|
#define McuGenericI2C_CONFIG_USE_MUTEX (1 && McuLib_CONFIG_SDK_USE_FREERTOS)
|
|
|
|
#if CONFIG_USE_HW_I2C /* implementation in McuI2cLib.c */
|
|
#define McuLib_CONFIG_MCUI2CLIB_ENABLED (1)
|
|
#define McuGenericI2C_CONFIG_INTERFACE_HEADER_FILE "McuI2cLib.h"
|
|
#define McuGenericI2C_CONFIG_RECV_BLOCK McuI2cLib_RecvBlock
|
|
#define McuGenericI2C_CONFIG_SEND_BLOCK McuI2cLib_SendBlock
|
|
#if McuGenericI2C_CONFIG_SUPPORT_STOP_NO_START
|
|
#define McuGenericI2C_CONFIG_SEND_BLOCK_CONTINUE McuI2cLib_SendBlockContinue
|
|
#endif
|
|
#define McuGenericI2C_CONFIG_SEND_STOP McuI2cLib_SendStop
|
|
#define McuGenericI2C_CONFIG_SELECT_SLAVE McuI2cLib_SelectSlave
|
|
#define McuGenericI2C_CONFIG_RECV_BLOCK_CUSTOM_AVAILABLE (0)
|
|
#define McuGenericI2C_CONFIG_RECV_BLOCK_CUSTOM McuI2cLib_RecvBlockCustom
|
|
|
|
#define MCUI2CLIB_CONFIG_ADD_DELAY (0)
|
|
#else
|
|
/* settings for McuGenericSWI2C */
|
|
#define SDA1_CONFIG_PIN_NUMBER (16)
|
|
#define SCL1_CONFIG_PIN_NUMBER (17)
|
|
|
|
#define McuGenericSWI2C_CONFIG_DO_YIELD (0 && McuLib_CONFIG_SDK_USE_FREERTOS) /* because of Yield in GenericSWI2C */
|
|
#define McuGenericSWI2C_CONFIG_DELAY_NS (0)
|
|
#endif
|
|
/* ---------------------------------------------------------------------------------------*/
|
|
/* McuSSD1306 */
|
|
#define McuSSD1306_CONFIG_SSD1306_DRIVER_TYPE (1106)
|
|
#define McuSSD1306_CONFIG_DYNAMIC_DISPLAY_ORIENTATION (0)
|
|
#define McuSSD1306_CONFIG_FIXED_DISPLAY_ORIENTATION McuSSD1306_CONFIG_ORIENTATION_LANDSCAPE
|
|
/* -------------------------------------------------*/
|
|
/* RTT */
|
|
#define McuRTT_CONFIG_RTT_BUFFER_SIZE_DOWN (128)
|
|
#define McuRTT_CONFIG_BLOCKING_SEND (1) /* 0: do not block if buffer full */
|
|
#define McuRTT_CONFIG_BLOCKING_SEND_TIMEOUT_MS (5)
|
|
#define McuRTT_CONFIG_BLOCKING_SEND_WAIT_MS (1)
|
|
#define McuRTT_CONFIG_RTT_BUFFER_SIZE_UP (2*1024)
|
|
/* ---------------------------------------------------------------------- */
|
|
/* McuTimeDate */
|
|
#define McuTimeDate_CONFIG_TICK_TIME_MS (100) /* less timer ticks, default is RTOS tick rate */
|
|
/* ---------------------------------------------------------------------- */
|
|
/* McuShell */
|
|
#define McuShell_CONFIG_PROJECT_NAME_STRING "TSM"
|
|
#define McuShell_CONFIG_PROMPT_STRING "TSM> "
|
|
#define McuShell_CONFIG_MULTI_CMD_ENABLED (1)
|
|
#define McuShell_CONFIG_MULTI_CMD_SIZE (96)
|
|
#define McuShell_CONFIG_DEFAULT_SHELL_BUFFER_SIZE (128)
|
|
/* ---------------------------------------------------------------------- */
|
|
/* McuTimeDate */
|
|
#define McuTimeDate_CONFIG_TICK_TIME_MS (100)
|
|
/* ---------------------------------------------------------------------- */
|
|
/* McuFlash */
|
|
#define McuFlash_CONFIG_IS_ENABLED (1) /* enable for MinINI with Flash FS */
|
|
/* ---------------------------------------------------------------------------------------*/
|
|
/* MinINI */
|
|
#define McuMinINI_CONFIG_FS (McuMinINI_CONFIG_FS_TYPE_FLASH_FS)
|
|
#define McuMinINI_CONFIG_FLASH_NVM_ADDR_START ((XIP_BASE+2048*1024)-(McuMinINI_CONFIG_FLASH_NVM_NOF_BLOCKS*McuMinINI_CONFIG_FLASH_NVM_BLOCK_SIZE)) /* pico has 2 MB Flash, starting from XIP_BASE */
|
|
#define McuMinINI_CONFIG_FLASH_NVM_NOF_BLOCKS (1)
|
|
#define McuMinINI_CONFIG_FLASH_NVM_BLOCK_SIZE (0x1000) /* just use a single block */
|
|
#define McuMinINI_CONFIG_FLASH_NVM_MAX_DATA_SIZE (0x1000) /* must be multiple of 4K */
|
|
#define McuMinINI_CONFIG_BUFFER_SIZE (128) /* maximum line and path length */
|
|
/* ---------------------------------------------------------------------------------------*/
|
|
/* McuUart485 */
|
|
#define McuUart485_CONFIG_USE_RS_485 (1)
|
|
#define McuUart485_CONFIG_USE_MODBUS (McuModbus_CONFIG_IS_ENABLED)
|
|
#define McuUart485_CONFIG_UART_BAUDRATE (115200)
|
|
#define McuUart485_CONFIG_USE_LOGGER (1)
|
|
/* ---------------------------------------------------------------------------------------*/
|
|
/* McuSPI */
|
|
/* RP2040: nRF24L01+ on SPI1, GP12 (MISO), GP11 (MOSI), GP10 (CLK) */
|
|
#define MCUSPI_CONFIG_HW_TEMPLATE MCUSPI_CONFIG_HW_TEMPLATE_RP2040_SPI1
|
|
#define MCUSPI_CONFIG_USE_CS (0) /* do not initialize CS pin */
|
|
#define MCUSPI_CONFIG_TRANSFER_BAUDRATE (8*500000U)
|
|
/* ---------------------------------------------------------------------------------------*/
|
|
/* McuRNF24L01 */
|
|
#define McuNRF24L01_CONFIG_IS_ENABLED (1)
|
|
#define McuNRF24L01_CONFIG_CE_PIN_NUMBER (9)
|
|
#define McuNRF24L01_CONFIG_CSN_PIN_NUMBER (13)
|
|
#define McuNRF24L01_CONFIG_USE_MUTEX (0)
|
|
#define McuNRF24L01_CONFIG_IRQ_PIN_NUMBER (8)
|
|
#define McuNRF24L01_CONFIG_IRQ_PIN_ENABLED (1)
|
|
/* ---------------------------------------------------------------------------------------*/
|
|
/* McuRNET */
|
|
#define McuRNET_CONFIG_IS_ENABLED (1)
|
|
#define RNet_App_CONFIG_DO_SANITY_CHECK (0)
|
|
#define McuRNet_CONFIG_APPLICATION_HEADER_FILE "RNet_AppConfig.h"
|
|
#define RNET_CONFIG_TRANSCEIVER_CHANNEL (120) /* channel, default 81 */
|
|
#define RNET_CONFIG_NRF24_DATA_RATE McuNRF24L01_RF_SETUP_RF_DR_2000
|
|
#define RSTDIO_CONFIG_QUEUE_LENGTH (5*48) /* default is 48 */
|
|
#define RNET_CONFIG_MSG_QUEUE_NOF_RX_ITEMS (32) /* default is 15 */
|
|
#define RNET_CONFIG_MSG_QUEUE_NOF_TX_ITEMS (32) /* default is 15 */
|
|
/* ---------------------------------------------------------------------------------------*/
|
|
/* Unity */
|
|
#if ENABLE_UNIT_TESTS
|
|
#if !__ASSEMBLER__ /* set if file is included by GNU as (assembler). Do not include normal C header files if running the assembler for example to assemble the pico startup code */
|
|
#include "McuUnity.h"
|
|
#define UNITY_OUTPUT_CHAR(a) McuUnity_putc(a)
|
|
#define UNITY_OUTPUT_FLUSH() McuUnity_flush()
|
|
#define UNITY_OUTPUT_START() McuUnity_start()
|
|
#define UNITY_OUTPUT_COMPLETE() McuUnity_complete()
|
|
#define UNITY_OUTPUT_COLOR /* use colored output */
|
|
#endif
|
|
#endif
|
|
/* ---------------------------------------------------------------------------------------*/
|
|
/* McuSemihost */
|
|
#define McuSemihost_CONFIG_IS_ENABLED (1)
|
|
#define McuSemihost_CONFIG_DEBUG_CONNECTION McuSemihost_DEBUG_CONNECTION_SEGGER
|
|
#define McuSemihost_CONFIG_LOG_ENABLED (0)
|
|
#define McuSemihost_CONFIG_RETARGET_STDLIB (0)
|
|
/* ---------------------------------------------------------------------------------------*/
|
|
/* McuRdimon */
|
|
#define McuRdimon_CONFIG_IS_ENABLED (1) /* 1: RdiMon is enabled; 0: RdiMon is disabled*/
|
|
/* ---------------------------------------------------------------------------------------*/
|
|
/* McuCoverage */
|
|
#define McuCoverage_CONFIG_IS_ENABLED (1)
|
|
#define McuCoverage_CONFIG_USE_FREESTANDING (0 && McuCoverage_CONFIG_IS_ENABLED)
|
|
/* ---------------------------------------------------------------------------------------*/
|
|
/* McuLog */
|
|
#define McuLog_CONFIG_IS_ENABLED (1)
|
|
#define McuLog_CONFIG_USE_FILE (0)
|
|
#define McuLog_CONFIG_USE_RTT_CONSOLE (1)
|
|
#define McuLog_CONFIG_NOF_CONSOLE_LOGGER (2) /* RTT and USB CDC */
|
|
#define McuLog_CONFIG_USE_COLOR (0)
|
|
#define McuLog_CONFIG_LOG_TIMESTAMP_DATE (0)
|
|
#define McuLog_CONFIG_LOG_TIMESTAMP_TIME (1)
|
|
/* ---------------------------------------------------------------------------------------*/
|
|
/* McuShellCdcDevice with tinyUSB */
|
|
#define McuShellCdcDevice_CONFIG_IS_ENABLED (1)
|
|
/* ---------------------------------------------------------------------------------------*/
|
|
|
|
#endif /* MCULIB_CONFIG_CONFIG_H_ */
|