From d299747fb66a723220e4f9b7869c815def486c16 Mon Sep 17 00:00:00 2001 From: Simon Frei Date: Fri, 7 Oct 2022 15:44:29 +0200 Subject: [PATCH 1/4] define UART Pins with config-tool --- .../ADIS_tinyK22_SplitFlap.mex | 30 +++++++++++- ADIS_tinyK22_SplitFlap/board/pin_mux.c | 48 ++++++++++++++++++- ADIS_tinyK22_SplitFlap/board/pin_mux.h | 20 ++++++++ ADIS_tinyK22_SplitFlap/source/application.c | 2 +- .../source/communication/uart1.c | 8 ++++ .../source/communication/uart1.h | 13 +++++ 6 files changed, 118 insertions(+), 3 deletions(-) create mode 100644 ADIS_tinyK22_SplitFlap/source/communication/uart1.c create mode 100644 ADIS_tinyK22_SplitFlap/source/communication/uart1.h diff --git a/ADIS_tinyK22_SplitFlap/ADIS_tinyK22_SplitFlap.mex b/ADIS_tinyK22_SplitFlap/ADIS_tinyK22_SplitFlap.mex index 9d0707e..048945d 100644 --- a/ADIS_tinyK22_SplitFlap/ADIS_tinyK22_SplitFlap.mex +++ b/ADIS_tinyK22_SplitFlap/ADIS_tinyK22_SplitFlap.mex @@ -26,6 +26,8 @@ 12.0.0 + + @@ -37,13 +39,39 @@ true + + + true + + true + + + true + + - + + + + + + + + + + + + + + + + + diff --git a/ADIS_tinyK22_SplitFlap/board/pin_mux.c b/ADIS_tinyK22_SplitFlap/board/pin_mux.c index 7253568..d6c8d5c 100644 --- a/ADIS_tinyK22_SplitFlap/board/pin_mux.c +++ b/ADIS_tinyK22_SplitFlap/board/pin_mux.c @@ -14,11 +14,14 @@ mcu_data: ksdk2_0 processor_version: 12.0.0 pin_labels: - {pin_num: '45', pin_signal: ADC0_SE4b/CMP1_IN0/PTC2/SPI0_PCS2/UART1_CTS_b/FTM0_CH1/FB_AD12/I2S0_TX_FS/LPUART0_CTS_b, label: LED_BLUE, identifier: LED_BLUE} +- {pin_num: '46', pin_signal: CMP1_IN1/PTC3/LLWU_P7/SPI0_PCS1/UART1_RX/FTM0_CH2/CLKOUT/I2S0_TX_BCLK/LPUART0_RX, label: UART1_RX, identifier: UART1_RX} +- {pin_num: '49', pin_signal: PTC4/LLWU_P8/SPI0_PCS0/UART1_TX/FTM0_CH3/FB_AD11/CMP1_OUT/LPUART0_TX, label: UART1_TX, identifier: UART1_TX} * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS *********** */ /* clang-format on */ #include "fsl_common.h" +#include "fsl_port.h" #include "pin_mux.h" /* FUNCTION ************************************************************************************************************ @@ -37,7 +40,11 @@ void BOARD_InitBootPins(void) * TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* BOARD_InitPins: - options: {callFromInitBoot: 'true', coreID: core0, enableClock: 'true'} -- pin_list: [] +- 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} * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS *********** */ /* clang-format on */ @@ -50,6 +57,45 @@ 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 598ae8e..c7d3ba0 100644 --- a/ADIS_tinyK22_SplitFlap/board/pin_mux.h +++ b/ADIS_tinyK22_SplitFlap/board/pin_mux.h @@ -25,6 +25,26 @@ 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/application.c b/ADIS_tinyK22_SplitFlap/source/application.c index e650d6e..47368b6 100644 --- a/ADIS_tinyK22_SplitFlap/source/application.c +++ b/ADIS_tinyK22_SplitFlap/source/application.c @@ -82,7 +82,7 @@ void App_Run(void){ } // go through the following letters - char* letters[] = {"J", "O", "N", "A", "S", "!"}; + char* letters[] = {"S", "E", "N", "D", " ", "N","U","D","E","S","!"}; //char* letters[] = { " ", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", // "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", // "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", diff --git a/ADIS_tinyK22_SplitFlap/source/communication/uart1.c b/ADIS_tinyK22_SplitFlap/source/communication/uart1.c new file mode 100644 index 0000000..3fb9780 --- /dev/null +++ b/ADIS_tinyK22_SplitFlap/source/communication/uart1.c @@ -0,0 +1,8 @@ +/* + * 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 new file mode 100644 index 0000000..108e646 --- /dev/null +++ b/ADIS_tinyK22_SplitFlap/source/communication/uart1.h @@ -0,0 +1,13 @@ +/* + * uart1.h + * + * Created on: 7 Oct 2022 + * Author: simon + */ + +#ifndef COMMUNICATION_UART1_H_ +#define COMMUNICATION_UART1_H_ + + + +#endif /* COMMUNICATION_UART1_H_ */ From 7db0fdf55cf2c57eb43cd06697142794bc57edb3 Mon Sep 17 00:00:00 2001 From: Simon Frei Date: Fri, 7 Oct 2022 15:44:29 +0200 Subject: [PATCH 2/4] define UART Pins with config-tool --- .../ADIS_tinyK22_SplitFlap.mex | 30 +++++++++++- ADIS_tinyK22_SplitFlap/board/pin_mux.c | 48 ++++++++++++++++++- ADIS_tinyK22_SplitFlap/board/pin_mux.h | 20 ++++++++ ADIS_tinyK22_SplitFlap/source/application.c | 2 +- .../source/communication/uart1.c | 8 ++++ .../source/communication/uart1.h | 13 +++++ 6 files changed, 118 insertions(+), 3 deletions(-) create mode 100644 ADIS_tinyK22_SplitFlap/source/communication/uart1.c create mode 100644 ADIS_tinyK22_SplitFlap/source/communication/uart1.h diff --git a/ADIS_tinyK22_SplitFlap/ADIS_tinyK22_SplitFlap.mex b/ADIS_tinyK22_SplitFlap/ADIS_tinyK22_SplitFlap.mex index 9d0707e..048945d 100644 --- a/ADIS_tinyK22_SplitFlap/ADIS_tinyK22_SplitFlap.mex +++ b/ADIS_tinyK22_SplitFlap/ADIS_tinyK22_SplitFlap.mex @@ -26,6 +26,8 @@ 12.0.0 + + @@ -37,13 +39,39 @@ true + + + true + + true + + + true + + - + + + + + + + + + + + + + + + + + diff --git a/ADIS_tinyK22_SplitFlap/board/pin_mux.c b/ADIS_tinyK22_SplitFlap/board/pin_mux.c index 7253568..d6c8d5c 100644 --- a/ADIS_tinyK22_SplitFlap/board/pin_mux.c +++ b/ADIS_tinyK22_SplitFlap/board/pin_mux.c @@ -14,11 +14,14 @@ mcu_data: ksdk2_0 processor_version: 12.0.0 pin_labels: - {pin_num: '45', pin_signal: ADC0_SE4b/CMP1_IN0/PTC2/SPI0_PCS2/UART1_CTS_b/FTM0_CH1/FB_AD12/I2S0_TX_FS/LPUART0_CTS_b, label: LED_BLUE, identifier: LED_BLUE} +- {pin_num: '46', pin_signal: CMP1_IN1/PTC3/LLWU_P7/SPI0_PCS1/UART1_RX/FTM0_CH2/CLKOUT/I2S0_TX_BCLK/LPUART0_RX, label: UART1_RX, identifier: UART1_RX} +- {pin_num: '49', pin_signal: PTC4/LLWU_P8/SPI0_PCS0/UART1_TX/FTM0_CH3/FB_AD11/CMP1_OUT/LPUART0_TX, label: UART1_TX, identifier: UART1_TX} * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS *********** */ /* clang-format on */ #include "fsl_common.h" +#include "fsl_port.h" #include "pin_mux.h" /* FUNCTION ************************************************************************************************************ @@ -37,7 +40,11 @@ void BOARD_InitBootPins(void) * TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* BOARD_InitPins: - options: {callFromInitBoot: 'true', coreID: core0, enableClock: 'true'} -- pin_list: [] +- 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} * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS *********** */ /* clang-format on */ @@ -50,6 +57,45 @@ 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 598ae8e..c7d3ba0 100644 --- a/ADIS_tinyK22_SplitFlap/board/pin_mux.h +++ b/ADIS_tinyK22_SplitFlap/board/pin_mux.h @@ -25,6 +25,26 @@ 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/application.c b/ADIS_tinyK22_SplitFlap/source/application.c index e650d6e..47368b6 100644 --- a/ADIS_tinyK22_SplitFlap/source/application.c +++ b/ADIS_tinyK22_SplitFlap/source/application.c @@ -82,7 +82,7 @@ void App_Run(void){ } // go through the following letters - char* letters[] = {"J", "O", "N", "A", "S", "!"}; + char* letters[] = {"S", "E", "N", "D", " ", "N","U","D","E","S","!"}; //char* letters[] = { " ", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", // "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", // "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", diff --git a/ADIS_tinyK22_SplitFlap/source/communication/uart1.c b/ADIS_tinyK22_SplitFlap/source/communication/uart1.c new file mode 100644 index 0000000..3fb9780 --- /dev/null +++ b/ADIS_tinyK22_SplitFlap/source/communication/uart1.c @@ -0,0 +1,8 @@ +/* + * 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 new file mode 100644 index 0000000..108e646 --- /dev/null +++ b/ADIS_tinyK22_SplitFlap/source/communication/uart1.h @@ -0,0 +1,13 @@ +/* + * uart1.h + * + * Created on: 7 Oct 2022 + * Author: simon + */ + +#ifndef COMMUNICATION_UART1_H_ +#define COMMUNICATION_UART1_H_ + + + +#endif /* COMMUNICATION_UART1_H_ */ From d9f05dcaf5504b2b9878195e8c2f79a2d98683a4 Mon Sep 17 00:00:00 2001 From: Simon Frei Date: Fri, 14 Oct 2022 09:25:19 +0200 Subject: [PATCH 3/4] add shell for communication via uart --- .../ADIS_tinyK22_SplitFlap.mex | 28 +---- ADIS_tinyK22_SplitFlap/board/pin_mux.c | 46 +------ ADIS_tinyK22_SplitFlap/board/pin_mux.h | 20 --- .../source/IncludeMcuLibConfig.h | 2 +- .../source/communication/uart1.c | 8 -- .../source/communication/uart1.h | 13 -- ADIS_tinyK22_SplitFlap/source/main.c | 2 - ADIS_tinyK22_SplitFlap/source/platform.c | 12 ++ ADIS_tinyK22_SplitFlap/source/shell.c | 119 ++++++++++++++++++ ADIS_tinyK22_SplitFlap/source/shell.h | 53 ++++++++ 10 files changed, 187 insertions(+), 116 deletions(-) delete mode 100644 ADIS_tinyK22_SplitFlap/source/communication/uart1.c delete mode 100644 ADIS_tinyK22_SplitFlap/source/communication/uart1.h create mode 100644 ADIS_tinyK22_SplitFlap/source/shell.c create mode 100644 ADIS_tinyK22_SplitFlap/source/shell.h 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 Date: Fri, 14 Oct 2022 15:21:35 +0200 Subject: [PATCH 4/4] Add Shell Uart and queue for shell cmds (not tested) --- ADIS_tinyK22_SplitFlap/.cproject | 91 +- .../ADIS_tinyK22_SplitFlap.mex | 6 +- ADIS_tinyK22_SplitFlap/board/clock_config.c | 7 + ADIS_tinyK22_SplitFlap/drivers/fsl_lpuart.c | 2283 +++++++++++++++++ ADIS_tinyK22_SplitFlap/drivers/fsl_lpuart.h | 1064 ++++++++ .../source/IncludeMcuLibConfig.h | 7 + ADIS_tinyK22_SplitFlap/source/platform.c | 6 + ADIS_tinyK22_SplitFlap/source/shell.c | 53 +- ADIS_tinyK22_SplitFlap/source/shell.h | 19 + 9 files changed, 3510 insertions(+), 26 deletions(-) create mode 100644 ADIS_tinyK22_SplitFlap/drivers/fsl_lpuart.c create mode 100644 ADIS_tinyK22_SplitFlap/drivers/fsl_lpuart.h diff --git a/ADIS_tinyK22_SplitFlap/.cproject b/ADIS_tinyK22_SplitFlap/.cproject index 6f7be2d..ef034ae 100644 --- a/ADIS_tinyK22_SplitFlap/.cproject +++ b/ADIS_tinyK22_SplitFlap/.cproject @@ -105,6 +105,7 @@ +