diff --git a/ADIS_tinyK22_SplitFlap/ADIS_tinyK22_SplitFlap.mex b/ADIS_tinyK22_SplitFlap/ADIS_tinyK22_SplitFlap.mex
index 048945d..6b5eeff 100644
--- a/ADIS_tinyK22_SplitFlap/ADIS_tinyK22_SplitFlap.mex
+++ b/ADIS_tinyK22_SplitFlap/ADIS_tinyK22_SplitFlap.mex
@@ -39,39 +39,13 @@
true
-
-
- true
-
-
true
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/ADIS_tinyK22_SplitFlap/board/pin_mux.c b/ADIS_tinyK22_SplitFlap/board/pin_mux.c
index d6c8d5c..1dbb1b5 100644
--- a/ADIS_tinyK22_SplitFlap/board/pin_mux.c
+++ b/ADIS_tinyK22_SplitFlap/board/pin_mux.c
@@ -21,7 +21,6 @@ pin_labels:
/* clang-format on */
#include "fsl_common.h"
-#include "fsl_port.h"
#include "pin_mux.h"
/* FUNCTION ************************************************************************************************************
@@ -40,11 +39,7 @@ void BOARD_InitBootPins(void)
* TEXT BELOW IS USED AS SETTING FOR TOOLS *************************************
BOARD_InitPins:
- options: {callFromInitBoot: 'true', coreID: core0, enableClock: 'true'}
-- pin_list:
- - {pin_num: '46', peripheral: UART1, signal: RX, pin_signal: CMP1_IN1/PTC3/LLWU_P7/SPI0_PCS1/UART1_RX/FTM0_CH2/CLKOUT/I2S0_TX_BCLK/LPUART0_RX, open_drain: enable,
- pull_select: up, pull_enable: enable}
- - {pin_num: '49', peripheral: UART1, signal: TX, pin_signal: PTC4/LLWU_P8/SPI0_PCS0/UART1_TX/FTM0_CH3/FB_AD11/CMP1_OUT/LPUART0_TX, direction: OUTPUT, open_drain: enable,
- pull_select: up, pull_enable: enable}
+- pin_list: []
* BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS ***********
*/
/* clang-format on */
@@ -57,45 +52,6 @@ BOARD_InitPins:
* END ****************************************************************************************************************/
void BOARD_InitPins(void)
{
- /* Port C Clock Gate Control: Clock enabled */
- CLOCK_EnableClock(kCLOCK_PortC);
-
- /* PORTC3 (pin 46) is configured as UART1_RX */
- PORT_SetPinMux(BOARD_INITPINS_UART1_RX_PORT, BOARD_INITPINS_UART1_RX_PIN, kPORT_MuxAlt3);
-
- PORTC->PCR[3] = ((PORTC->PCR[3] &
- /* Mask bits to zero which are setting */
- (~(PORT_PCR_PS_MASK | PORT_PCR_PE_MASK | PORT_PCR_ODE_MASK | PORT_PCR_ISF_MASK)))
-
- /* Pull Select: Internal pullup resistor is enabled on the corresponding pin, if the
- * corresponding PE field is set. */
- | (uint32_t)(kPORT_PullUp)
-
- /* Open Drain Enable: Open drain output is enabled on the corresponding pin, if the pin is
- * configured as a digital output. */
- | PORT_PCR_ODE(kPORT_OpenDrainEnable));
-
- /* PORTC4 (pin 49) is configured as UART1_TX */
- PORT_SetPinMux(BOARD_INITPINS_UART1_TX_PORT, BOARD_INITPINS_UART1_TX_PIN, kPORT_MuxAlt3);
-
- PORTC->PCR[4] = ((PORTC->PCR[4] &
- /* Mask bits to zero which are setting */
- (~(PORT_PCR_PS_MASK | PORT_PCR_PE_MASK | PORT_PCR_ODE_MASK | PORT_PCR_ISF_MASK)))
-
- /* Pull Select: Internal pullup resistor is enabled on the corresponding pin, if the
- * corresponding PE field is set. */
- | (uint32_t)(kPORT_PullUp)
-
- /* Open Drain Enable: Open drain output is enabled on the corresponding pin, if the pin is
- * configured as a digital output. */
- | PORT_PCR_ODE(kPORT_OpenDrainEnable));
-
- SIM->SOPT5 = ((SIM->SOPT5 &
- /* Mask bits to zero which are setting */
- (~(SIM_SOPT5_UART1TXSRC_MASK)))
-
- /* UART 1 transmit data source select: UART1_TX pin. */
- | SIM_SOPT5_UART1TXSRC(SOPT5_UART1TXSRC_UART_TX));
}
/***********************************************************************************************************************
* EOF
diff --git a/ADIS_tinyK22_SplitFlap/board/pin_mux.h b/ADIS_tinyK22_SplitFlap/board/pin_mux.h
index c7d3ba0..598ae8e 100644
--- a/ADIS_tinyK22_SplitFlap/board/pin_mux.h
+++ b/ADIS_tinyK22_SplitFlap/board/pin_mux.h
@@ -25,26 +25,6 @@ extern "C" {
*/
void BOARD_InitBootPins(void);
-#define SOPT5_UART1TXSRC_UART_TX 0x00u /*!<@brief UART 1 transmit data source select: UART1_TX pin */
-
-/*! @name PORTC3 (number 46), UART1_RX
- @{ */
-
-/* Symbols to be used with PORT driver */
-#define BOARD_INITPINS_UART1_RX_PORT PORTC /*!<@brief PORT peripheral base pointer */
-#define BOARD_INITPINS_UART1_RX_PIN 3U /*!<@brief PORT pin number */
-#define BOARD_INITPINS_UART1_RX_PIN_MASK (1U << 3U) /*!<@brief PORT pin mask */
- /* @} */
-
-/*! @name PORTC4 (number 49), UART1_TX
- @{ */
-
-/* Symbols to be used with PORT driver */
-#define BOARD_INITPINS_UART1_TX_PORT PORTC /*!<@brief PORT peripheral base pointer */
-#define BOARD_INITPINS_UART1_TX_PIN 4U /*!<@brief PORT pin number */
-#define BOARD_INITPINS_UART1_TX_PIN_MASK (1U << 4U) /*!<@brief PORT pin mask */
- /* @} */
-
/*!
* @brief Configures pin routing and optionally pin electrical features.
*
diff --git a/ADIS_tinyK22_SplitFlap/source/IncludeMcuLibConfig.h b/ADIS_tinyK22_SplitFlap/source/IncludeMcuLibConfig.h
index d890057..d9a47fb 100644
--- a/ADIS_tinyK22_SplitFlap/source/IncludeMcuLibConfig.h
+++ b/ADIS_tinyK22_SplitFlap/source/IncludeMcuLibConfig.h
@@ -96,7 +96,7 @@ add_compile_options(-include "../config/IncludeMcuLibConfig.h")
#endif
#define McuULN2003_CONFIG_USE_ACCELERATION (1)
/* ------------------- RTOS ---------------------------*/
-#define McuLib_CONFIG_SDK_USE_FREERTOS (0)
+#define McuLib_CONFIG_SDK_USE_FREERTOS (1)
/* #define configUSE_SEGGER_SYSTEM_VIEWER_HOOKS (1) */
/* #define configTOTAL_HEAP_SIZE (24*1024) */
/* #define configUSE_HEAP_SECTION_NAME (1) */
diff --git a/ADIS_tinyK22_SplitFlap/source/communication/uart1.c b/ADIS_tinyK22_SplitFlap/source/communication/uart1.c
deleted file mode 100644
index 3fb9780..0000000
--- a/ADIS_tinyK22_SplitFlap/source/communication/uart1.c
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * uart1.c
- *
- * Created on: 7 Oct 2022
- * Author: simon
- */
-
-
diff --git a/ADIS_tinyK22_SplitFlap/source/communication/uart1.h b/ADIS_tinyK22_SplitFlap/source/communication/uart1.h
deleted file mode 100644
index 108e646..0000000
--- a/ADIS_tinyK22_SplitFlap/source/communication/uart1.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * uart1.h
- *
- * Created on: 7 Oct 2022
- * Author: simon
- */
-
-#ifndef COMMUNICATION_UART1_H_
-#define COMMUNICATION_UART1_H_
-
-
-
-#endif /* COMMUNICATION_UART1_H_ */
diff --git a/ADIS_tinyK22_SplitFlap/source/main.c b/ADIS_tinyK22_SplitFlap/source/main.c
index 789707b..3face7f 100644
--- a/ADIS_tinyK22_SplitFlap/source/main.c
+++ b/ADIS_tinyK22_SplitFlap/source/main.c
@@ -49,7 +49,6 @@
* @brief Application entry point.
*/
int main(void) {
-
/* Init board hardware. */
BOARD_InitBootPins();
BOARD_InitBootClocks();
@@ -62,7 +61,6 @@ int main(void) {
/* init platform */
PRINTF("Initializing Platform...\n");
PL_Init();
-
/* init app */
PRINTF("Initializing App...\n");
App_Init();
diff --git a/ADIS_tinyK22_SplitFlap/source/platform.c b/ADIS_tinyK22_SplitFlap/source/platform.c
index e15e9ce..70a684f 100644
--- a/ADIS_tinyK22_SplitFlap/source/platform.c
+++ b/ADIS_tinyK22_SplitFlap/source/platform.c
@@ -12,6 +12,10 @@
#include "McuGPIO.h"
#include "McuULN2003.h"
#include "splitflap.h"
+#include "McuRTOS.h"
+#include "McuRTT.h"
+#include "McuShell.h"
+#include "shell.h"
void PL_Init(void){
@@ -21,19 +25,27 @@ void PL_Init(void){
CLOCK_EnableClock(kCLOCK_PortC);
McuLib_Init();
+ McuRTOS_Init();
McuWait_Init();
McuGPIO_Init();
McuLED_Init();
McuULN2003_Init();
+ McuRTT_Init();
+ McuShell_Init();
+ SHELL_Init();
SF_InitConfig();
}
void PL_Deinit(void){
SF_DeInitConfig();
+ SHELL_Deinit();
+ McuShell_Deinit();
+ McuRTT_Deinit();
McuULN2003_Deinit();
McuLED_Deinit();
McuGPIO_Deinit();
McuWait_Deinit();
+ McuRTOS_Deinit();
McuLib_Deinit();
}
diff --git a/ADIS_tinyK22_SplitFlap/source/shell.c b/ADIS_tinyK22_SplitFlap/source/shell.c
new file mode 100644
index 0000000..94212e7
--- /dev/null
+++ b/ADIS_tinyK22_SplitFlap/source/shell.c
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 2019-2022, Erich Styger
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include "platform.h"
+#include "Shell.h"
+#include "McuShell.h"
+#include "McuRTOS.h"
+#include "McuRTT.h"
+#include "McuArmTools.h"
+#include "McuShellUart.h"
+#include "McuLog.h"
+#include "McuUtility.h"
+
+static uint8_t splitFlapId = 0;
+static uint8_t ParseCommand(const uint8_t *cmd, bool *handled, McuShell_ConstStdIOType *io){
+ uint8_t size = sizeof(SHELL_CMD_IDENTIFY_SF)-1;
+ if (McuUtility_strcmp((char*)cmd, McuShell_CMD_HELP)==0) {
+ McuShell_SendStr((unsigned char*)"\r\n", io->stdOut);
+ McuShell_SendStr((unsigned char*)McuShell_DASH_LINE, io->stdOut);
+ McuShell_SendStr((unsigned char*)"\r\n", io->stdOut);
+ McuShell_SendHelpStr((unsigned char*)"SplitFlap Help", (const unsigned char*)"Group of SplitFlap commands\r\n", io->stdOut);
+ McuShell_SendHelpStr((unsigned char*)" help", (const unsigned char*)"Print help this message\r\n", io->stdOut);
+ McuShell_SendHelpStr((unsigned char*)SHELL_CMD_IDENTIFY_SF, (const unsigned char*)" (uint8_t)\r\n", io->stdOut);
+ McuShell_SendHelpStr((unsigned char*)" ", (const unsigned char*)"the number printed on the splitflap\r\n", io->stdOut);
+ McuShell_SendHelpStr((unsigned char*)" ", (const unsigned char*)"Splitflap Number:16\n", io->stdOut);
+
+
+ *handled = TRUE;
+ return ERR_OK;
+ } else if(McuUtility_strncmp((char*)cmd, SHELL_CMD_IDENTIFY_SF, size) == 0){
+ *handled = TRUE;
+ cmd += sizeof(SHELL_CMD_IDENTIFY_SF)-1;
+ if(McuUtility_ScanDecimal8uNumber(&cmd, &splitFlapId) != ERR_OK){
+ // Do not save id
+ return ERR_FAILED;
+ }
+ }
+ return ERR_OK;
+
+}
+
+static const McuShell_ParseCommandCallback CmdParserTable[] =
+{
+ ParseCommand,
+ McuShell_ParseCommand,
+ McuRTOS_ParseCommand,
+ NULL /* Sentinel */
+};
+
+typedef struct {
+ McuShell_ConstStdIOType *stdio;
+ unsigned char *buf;
+ size_t bufSize;
+} SHELL_IODesc;
+
+static const SHELL_IODesc ios[] =
+{
+// {&McuShellUart_stdio, McuShellUart_DefaultShellBuffer, sizeof(McuShellUart_DefaultShellBuffer)},
+ {&McuRTT_stdio, McuRTT_DefaultShellBuffer, sizeof(McuRTT_DefaultShellBuffer)},
+// {&USB_CdcStdio, USB_CdcDefaultShellBuffer, sizeof(USB_CdcDefaultShellBuffer)},
+};
+
+void SHELL_SendChar(unsigned char ch) {
+ for(int i=0;istdOut);
+ }
+}
+
+uint8_t SHELL_ParseCommandIO(const unsigned char *command, McuShell_ConstStdIOType *io, bool silent) {
+ if (io==NULL) { /* use a default */
+ io = McuShell_GetStdio();
+ }
+ return McuShell_ParseWithCommandTableExt(command, io, CmdParserTable, silent);
+}
+
+void SHELL_SendString(const unsigned char *str) {
+ for(int i=0;istdOut);
+ }
+}
+
+static void ShellTask(void *pv) {
+ int i;
+
+ McuLog_info("Shell task started");
+ for(i=0;i