Merge branch 'communication_Uart' into feature/Multi-Splitflap

# Conflicts:
#	ADIS_tinyK22_SplitFlap/source/application.c
#	ADIS_tinyK22_SplitFlap/source/platform.c
main
Jonas Arnold 4 years ago
commit b68aedad30
  1. 89
      ADIS_tinyK22_SplitFlap/.cproject
  2. 8
      ADIS_tinyK22_SplitFlap/ADIS_tinyK22_SplitFlap.mex
  3. 7
      ADIS_tinyK22_SplitFlap/board/clock_config.c
  4. 2
      ADIS_tinyK22_SplitFlap/board/pin_mux.c
  5. 2283
      ADIS_tinyK22_SplitFlap/drivers/fsl_lpuart.c
  6. 1064
      ADIS_tinyK22_SplitFlap/drivers/fsl_lpuart.h
  7. 7
      ADIS_tinyK22_SplitFlap/source/IncludeMcuLibConfig.h
  8. 35
      ADIS_tinyK22_SplitFlap/source/application.c
  9. 2
      ADIS_tinyK22_SplitFlap/source/main.c
  10. 17
      ADIS_tinyK22_SplitFlap/source/platform.c
  11. 156
      ADIS_tinyK22_SplitFlap/source/shell.c
  12. 72
      ADIS_tinyK22_SplitFlap/source/shell.h

@ -105,6 +105,7 @@
<listOptionValue builtIn="false" value="__USE_CMSIS"/>
<listOptionValue builtIn="false" value="DEBUG"/>
<listOptionValue builtIn="false" value="__NEWLIB__"/>
<listOptionValue builtIn="false" value="SDK_OS_FREE_RTOS"/>
</option>
<option id="com.crt.advproject.gcc.fpu.1162476593" name="Floating point" superClass="com.crt.advproject.gcc.fpu" useByScannerDiscovery="true" value="com.crt.advproject.gcc.fpu.fpv4.hard" valueType="enumerated"/>
<option id="com.crt.advproject.gcc.thumb.512416703" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" useByScannerDiscovery="false" value="true" valueType="boolean"/>
@ -123,15 +124,7 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/component/uart}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/component/lists}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/board}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/board}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/source}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/drivers}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/device}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/CMSIS}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/component/serial_manager}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/utilities}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/component/uart}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/component/lists}&quot;"/>
<listOptionValue builtIn="false" value="${MCULIB}/"/>
<listOptionValue builtIn="false" value="${MCULIB}/config"/>
<listOptionValue builtIn="false" value="${MCULIB}/config/fonts"/>
@ -210,8 +203,33 @@
<option id="com.crt.advproject.gas.arch.59322756" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm4" valueType="enumerated"/>
<option id="gnu.both.asm.option.flags.crt.538274977" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -D__NEWLIB__" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.both.asm.option.include.paths.1038992328" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/drivers}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/device}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/CMSIS}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/component/serial_manager}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/utilities}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/component/uart}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/component/lists}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/board}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/freertos/freertos_kernel/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/freertos/freertos_kernel/portable/GCC/ARM_CM4F}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/source}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${MCULIB}/&quot;"/>
<listOptionValue builtIn="false" value="&quot;${MCULIB}/config&quot;"/>
<listOptionValue builtIn="false" value="&quot;${MCULIB}/config/fonts&quot;"/>
<listOptionValue builtIn="false" value="&quot;${MCULIB}/fonts&quot;"/>
<listOptionValue builtIn="false" value="&quot;${MCULIB}/src&quot;"/>
<listOptionValue builtIn="false" value="&quot;${MCULIB}/FreeRTOS/Source/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${MCULIB}/FreeRTOS/Source/portable/GCC/ARM_CM4F&quot;"/>
<listOptionValue builtIn="false" value="&quot;${MCULIB}/SEGGER_RTT&quot;"/>
<listOptionValue builtIn="false" value="&quot;${MCULIB}/SEGGER_Sysview&quot;"/>
<listOptionValue builtIn="false" value="&quot;${MCULIB}/TraceRecorder&quot;"/>
<listOptionValue builtIn="false" value="&quot;${MCULIB}/TraceRecorder/config&quot;"/>
<listOptionValue builtIn="false" value="&quot;${MCULIB}/TraceRecorder/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${MCULIB}/TraceRecorder/streamports/Jlink_RTT/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${MCULIB}/HD44780&quot;"/>
<listOptionValue builtIn="false" value="&quot;${MCULIB}/FatFS&quot;"/>
<listOptionValue builtIn="false" value="&quot;${MCULIB}/FatFS/source&quot;"/>
</option>
<option id="gnu.both.asm.option.warnings.nowarn.2107355947" name="Suppress warnings (-W)" superClass="gnu.both.asm.option.warnings.nowarn"/>
<option id="gnu.both.asm.option.version.1901879634" name="Announce version (-v)" superClass="gnu.both.asm.option.version"/>
@ -463,6 +481,7 @@
<listOptionValue builtIn="false" value="__USE_CMSIS"/>
<listOptionValue builtIn="false" value="NDEBUG"/>
<listOptionValue builtIn="false" value="__NEWLIB__"/>
<listOptionValue builtIn="false" value="SDK_OS_FREE_RTOS"/>
</option>
<option id="gnu.c.compiler.option.preprocessor.undef.symbol.1092760296" name="Undefined symbols (-U)" superClass="gnu.c.compiler.option.preprocessor.undef.symbol" useByScannerDiscovery="false"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.2049780101" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
@ -474,15 +493,25 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/component/uart}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/component/lists}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/board}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/board}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/freertos/freertos_kernel/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/freertos/freertos_kernel/portable/GCC/ARM_CM4F}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/source}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/drivers}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/device}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/CMSIS}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/component/serial_manager}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/utilities}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/component/uart}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/component/lists}&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/config&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/config/fonts&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/fonts&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/src&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/FreeRTOS/Source/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/FreeRTOS/Source/portable/GCC/ARM_CM4F&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/SEGGER_RTT&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/SEGGER_Sysview&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/TraceRecorder&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/TraceRecorder/config&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/TraceRecorder/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/TraceRecorder/streamports/Jlink_RTT/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/HD44780&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/FatFS&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/FatFS/source&quot;"/>
</option>
<option id="gnu.c.compiler.option.include.files.1847403210" name="Include files (-include)" superClass="gnu.c.compiler.option.include.files" useByScannerDiscovery="false"/>
<option id="gnu.c.compiler.option.optimization.flags.115821318" name="Other optimization flags" superClass="gnu.c.compiler.option.optimization.flags" useByScannerDiscovery="false" value="-fno-common" valueType="string"/>
@ -541,8 +570,33 @@
<option id="com.crt.advproject.gas.arch.1053219152" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm4" valueType="enumerated"/>
<option id="gnu.both.asm.option.flags.crt.289110214" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -D__NEWLIB__" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.both.asm.option.include.paths.1130502917" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/drivers}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/device}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/CMSIS}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/component/serial_manager}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/utilities}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/component/uart}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/component/lists}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/board}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/freertos/freertos_kernel/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/freertos/freertos_kernel/portable/GCC/ARM_CM4F}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/source}&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/config&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/config/fonts&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/fonts&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/src&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/FreeRTOS/Source/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/FreeRTOS/Source/portable/GCC/ARM_CM4F&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/SEGGER_RTT&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/SEGGER_Sysview&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/TraceRecorder&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/TraceRecorder/config&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/TraceRecorder/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/TraceRecorder/streamports/Jlink_RTT/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/HD44780&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/FatFS&quot;"/>
<listOptionValue builtIn="false" value="&quot;../Debug/${MCULIB}/FatFS/source&quot;"/>
</option>
<option id="gnu.both.asm.option.warnings.nowarn.449849235" name="Suppress warnings (-W)" superClass="gnu.both.asm.option.warnings.nowarn"/>
<option id="gnu.both.asm.option.version.1751918560" name="Announce version (-v)" superClass="gnu.both.asm.option.version"/>
@ -677,6 +731,7 @@
</folderInfo>
<sourceEntries>
<entry flags="LOCAL|VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="CMSIS"/>
<entry excluding="FreeRTOS/Source/portable/GCC/RISC-V|FreeRTOS/Source/portable/GCC/ARM_CM33|TraceRecorder|SEGGER_Sysview|minIni|LittlevGL|littleFS|HD44780|fonts|FatFS" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="McuLib"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="board"/>
<entry flags="LOCAL|VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="component"/>
<entry flags="LOCAL|VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="device"/>
@ -712,7 +767,7 @@
<storageModule moduleId="com.nxp.mcuxpresso.core.datamodels">
<sdkName>SDK_2.x_MK22FN512xxx12</sdkName>
<sdkVersion>2.12.0</sdkVersion>
<sdkComponents>middleware.baremetal.MK22F51212;platform.drivers.smc.MK22F51212;platform.drivers.port.MK22F51212;platform.drivers.dspi.MK22F51212;platform.drivers.adc16.MK22F51212;platform.drivers.uart.MK22F51212;platform.drivers.clock.MK22F51212;platform.drivers.rtc.MK22F51212;platform.drivers.common.MK22F51212;platform.drivers.i2c.MK22F51212;platform.drivers.gpio.MK22F51212;device.MK22F51212_system.MK22F51212;device.MK22F51212_CMSIS.MK22F51212;CMSIS_Include_core_cm.MK22F51212;platform.utilities.assert.MK22F51212;component.serial_manager_uart.MK22F51212;utility.debug_console.MK22F51212;component.serial_manager.MK22F51212;component.uart_adapter.MK22F51212;component.lists.MK22F51212;project_template.MK22F51212.MK22F51212;device.MK22F51212_startup.MK22F51212;platform.drivers.sim.MK22F51212;</sdkComponents>
<sdkComponents>platform.drivers.smc.MK22F51212;platform.drivers.port.MK22F51212;platform.drivers.dspi.MK22F51212;platform.drivers.adc16.MK22F51212;platform.drivers.uart.MK22F51212;platform.drivers.clock.MK22F51212;platform.drivers.rtc.MK22F51212;platform.drivers.common.MK22F51212;platform.drivers.i2c.MK22F51212;platform.drivers.gpio.MK22F51212;device.MK22F51212_system.MK22F51212;device.MK22F51212_CMSIS.MK22F51212;CMSIS_Include_core_cm.MK22F51212;platform.utilities.assert.MK22F51212;component.serial_manager_uart.MK22F51212;utility.debug_console.MK22F51212;component.serial_manager.MK22F51212;component.uart_adapter.MK22F51212;component.lists.MK22F51212;project_template.MK22F51212.MK22F51212;device.MK22F51212_startup.MK22F51212;platform.drivers.sim.MK22F51212;middleware.freertos-kernel.MK22F51212;platform.drivers.lpuart.MK22F51212;</sdkComponents>
<package>MK22FN512VLH12</package>
<core>cm4</core>
<coreId>core0_MK22FN512xxx12</coreId>

@ -26,6 +26,8 @@
<processor_version>12.0.0</processor_version>
<pin_labels>
<pin_label 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_label 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_label 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"/>
</pin_labels>
</pins_profile>
<functions_list>
@ -73,11 +75,15 @@
<clock_output id="Flash_clock.outFreq" value="10.48576 MHz" locked="false" accuracy=""/>
<clock_output id="FlexBus_clock.outFreq" value="10.48576 MHz" locked="false" accuracy=""/>
<clock_output id="LPO_clock.outFreq" value="1 kHz" locked="false" accuracy=""/>
<clock_output id="LPUARTCLK.outFreq" value="20.97152 MHz" locked="false" accuracy=""/>
<clock_output id="MCGFFCLK.outFreq" value="32.768 kHz" locked="false" accuracy=""/>
<clock_output id="PLLFLLCLK.outFreq" value="20.97152 MHz" locked="false" accuracy=""/>
<clock_output id="System_clock.outFreq" value="20.97152 MHz" locked="false" accuracy=""/>
</clock_outputs>
<clock_settings/>
<clock_settings>
<setting id="LPUARTClkConfig" value="yes" locked="false"/>
<setting id="SIM.LPUARTSRCSEL.sel" value="SIM.PLLFLLSEL" locked="false"/>
</clock_settings>
<called_from_default_init>true</called_from_default_init>
</clock_configuration>
</clock_configurations>

@ -50,6 +50,7 @@ processor_version: 12.0.0
#define MCG_PLL_DISABLE 0U /*!< MCGPLLCLK disabled */
#define OSC_CAP0P 0U /*!< Oscillator 0pF capacitor load */
#define OSC_ER_CLK_DISABLE 0U /*!< Disable external reference clock */
#define SIM_LPUART_CLK_SEL_PLLFLLSEL_CLK 1U /*!< LPUART clock select: PLLFLLSEL output clock */
#define SIM_OSC32KSEL_OSC32KCLK_CLK 0U /*!< OSC32KSEL select: OSC32KCLK clock */
#define SIM_PLLFLLSEL_MCGFLLCLK_CLK 0U /*!< PLLFLL select: MCGFLLCLK clock */
@ -97,9 +98,13 @@ outputs:
- {id: Flash_clock.outFreq, value: 10.48576 MHz}
- {id: FlexBus_clock.outFreq, value: 10.48576 MHz}
- {id: LPO_clock.outFreq, value: 1 kHz}
- {id: LPUARTCLK.outFreq, value: 20.97152 MHz}
- {id: MCGFFCLK.outFreq, value: 32.768 kHz}
- {id: PLLFLLCLK.outFreq, value: 20.97152 MHz}
- {id: System_clock.outFreq, value: 20.97152 MHz}
settings:
- {id: LPUARTClkConfig, value: 'yes'}
- {id: SIM.LPUARTSRCSEL.sel, value: SIM.PLLFLLSEL}
* BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/
/* clang-format on */
@ -165,5 +170,7 @@ void BOARD_BootClockRUN(void)
CLOCK_SetSimConfig(&simConfig_BOARD_BootClockRUN);
/* Set SystemCoreClock variable. */
SystemCoreClock = BOARD_BOOTCLOCKRUN_CORE_CLOCK;
/* Set LPUART clock source. */
CLOCK_SetLpuartClock(SIM_LPUART_CLK_SEL_PLLFLLSEL_CLK);
}

@ -14,6 +14,8 @@ 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 */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -95,6 +95,13 @@ add_compile_options(-include "../config/IncludeMcuLibConfig.h")
#define McuCriticalSection_CONFIG_USE_RTOS_CRITICAL_SECTION (1) /* no native Extensa implementation yet */
#endif
#define McuULN2003_CONFIG_USE_ACCELERATION (1)
/* Mcu log */
#define McuLog_CONFIG_IS_ENABLED (1)
/* Mcu Shell Uart*/
#define McuShell_CONFIG_PROJECT_NAME_STRING "SPLITFLAP"
#define McuLib_CONFIG_CPU_VARIANT McuLib_CONFIG_CPU_VARIANT_NXP_K22FN
#define McuShellUart_CONFIG_UART McuShellUart_CONFIG_UART_K22FN512_LPUART0_C3_C4
#define McuShellUart_CONFIG_UART_GET_CLOCK_FREQ_SELECT kCLOCK_PllFllSelClk
/* ------------------- RTOS ---------------------------*/
#define McuLib_CONFIG_SDK_USE_FREERTOS (1)
/* #define configUSE_SEGGER_SYSTEM_VIEWER_HOOKS (1) */

@ -159,39 +159,4 @@ void configureSplitflaps(void){
/* initialize splitflap 0 */
splitflap0 = SF_Init(&sf0Config, 0);
/* SPLITFLAP 1 */
/* configure the motor */
McuULN2003_Config_t motor1Config;
McuULN2003_GetDefaultConfig(&motor1Config);
motor1Config.hw[0].gpio = STEPPER_MOTOR1_IN1_GPIO;
motor1Config.hw[0].port = STEPPER_MOTOR1_IN1_PORT;
motor1Config.hw[0].pin = STEPPER_MOTOR1_IN1_PIN;
motor1Config.hw[1].gpio = STEPPER_MOTOR1_IN2_GPIO;
motor1Config.hw[1].port = STEPPER_MOTOR1_IN2_PORT;
motor1Config.hw[1].pin = STEPPER_MOTOR1_IN2_PIN;
motor1Config.hw[2].gpio = STEPPER_MOTOR1_IN3_GPIO;
motor1Config.hw[2].port = STEPPER_MOTOR1_IN3_PORT;
motor1Config.hw[2].pin = STEPPER_MOTOR1_IN3_PIN;
motor1Config.hw[3].gpio = STEPPER_MOTOR1_IN4_GPIO;
motor1Config.hw[3].port = STEPPER_MOTOR1_IN4_PORT;
motor1Config.hw[3].pin = STEPPER_MOTOR1_IN4_PIN;
motor1Config.inverted = true;
/* configure magnetic sensor for motor 0 */
McuGPIO_Config_t magSensor1Config;
McuGPIO_GetDefaultConfig(&magSensor1Config);
magSensor1Config.hw.gpio = MAG_MOTOR1_GPIO;
magSensor1Config.hw.port = MAG_MOTOR1_PORT;
magSensor1Config.hw.pin = MAG_MOTOR1_PIN;
magSensor1Config.isInput = true;
magSensor1Config.hw.pull = McuGPIO_PULL_UP;
/* create config instance for splitflap 0 */
SF_Config_t sf1Config;
sf1Config.magSensorConfig = magSensor1Config;
sf1Config.motorConfig = motor1Config;
/* initialize splitflap 1 */
splitflap1 = SF_Init(&sf1Config, 1);
}

@ -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();

@ -13,6 +13,11 @@
#include "McuULN2003.h"
#include "splitflap.h"
#include "McuRTOS.h"
#include "McuRTT.h"
#include "McuShell.h"
#include "shell.h"
#include "McuShellUart.h"
#include "McuLog.h"
void PL_Init(void){
@ -22,10 +27,16 @@ void PL_Init(void){
CLOCK_EnableClock(kCLOCK_PortC);
McuLib_Init();
McuRTOS_Init();
McuWait_Init();
McuGPIO_Init();
McuLED_Init();
McuULN2003_Init();
McuRTT_Init();
McuShell_Init();
McuShellUart_Init();
McuLog_Init();
SHELL_Init();
SF_InitConfig();
McuRTOS_Init();
}
@ -34,9 +45,15 @@ void PL_Init(void){
void PL_Deinit(void){
McuRTOS_Deinit();
SF_DeInitConfig();
SHELL_Deinit();
McuLog_Deinit();
McuShellUart_Deinit();
McuShell_Deinit();
McuRTT_Deinit();
McuULN2003_Deinit();
McuLED_Deinit();
McuGPIO_Deinit();
McuWait_Deinit();
McuRTOS_Deinit();
McuLib_Deinit();
}

@ -0,0 +1,156 @@
/*
* Copyright (c) 2019-2022, Erich Styger
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include "platform.h"
#include "Shell.h"
#include "McuShell.h"
#include "McuRTT.h"
#include "McuArmTools.h"
#include "McuShellUart.h"
#include "McuLog.h"
#include "McuUtility.h"
#define SHELL_CMD_ELEM_SIZE (sizeof(Shell_cmd_s))
static QueueHandle_t shellCmdQueue;
static uint8_t splitFlapId = 0;
static void vQueueShellCmd(Shell_cmd_s shellCmd){
if(xQueueSendToBack(shellCmdQueue, &shellCmd, pdMS_TO_TICKS(100)) != pdPASS){
McuLog_warn("Failed adding shell cmd to queue, maybe full?");
}
}
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*)"<SplitFlapId> (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\r\n", io->stdOut);
McuShell_SendHelpStr((unsigned char*)SHELL_CMD_POWEROFF_RPI, (const unsigned char*)"power of the raspberry pi\r\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;
}
Shell_cmd_s shellCmd = {.shellCmd = Shell_Identify_SF, .value = (uint32_t)splitFlapId};
vQueueShellCmd(shellCmd);
} else if(McuUtility_strcmp((char*)cmd,SHELL_CMD_POWEROFF_RPI) == 0){
// shutown rpi
Shell_cmd_s shellCmd = {.shellCmd = Shell_Powerof_rpi, .value = 0};
vQueueShellCmd(shellCmd);
}
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)},
};
QueueHandle_t SHELL_GetShellCmdQueueHandle() {
return shellCmdQueue;
}
void SHELL_SendChar(unsigned char ch) {
for(int i=0;i<sizeof(ios)/sizeof(ios[0]);i++) {
McuShell_SendCh(ch, ios[i].stdio->stdOut);
}
}
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;i<sizeof(ios)/sizeof(ios[0]);i++) {
McuShell_SendStr(str, ios[i].stdio->stdOut);
}
}
static void ShellTask(void *pv) {
int i;
McuLog_info("Shell task started");
for(i=0;i<sizeof(ios)/sizeof(ios[0]);i++) {
ios[i].buf[0] = '\0';
}
for(;;) {
/* process all I/Os */
for(i=0;i<sizeof(ios)/sizeof(ios[0]);i++) {
(void)McuShell_ReadAndParseWithCommandTable(ios[i].buf, ios[i].bufSize, ios[i].stdio, CmdParserTable);
}
vTaskDelay(pdMS_TO_TICKS(20));
}
}
void SHELL_Init(void) {
if (xTaskCreate(
ShellTask, /* pointer to the task */
"Shell", /* task name for kernel awareness debugging */
800/sizeof(StackType_t), /* task stack size */
(void*)NULL, /* optional task startup argument */
tskIDLE_PRIORITY+2, /* initial priority */
(TaskHandle_t*)NULL /* optional task handle to create */
) != pdPASS)
{
McuLog_fatal("failed creating Shell task");
for(;;){} /* error! probably out of memory */
}
// McuShell_SetStdio(McuRTT_GetStdio()); /* use RTT as the default */
if(McuShell_SetStdio(&McuShellUart_stdio) != ERR_OK){
// couldnt set uart as stdio, try set RTT
McuLog_warn("Failed to choose UART for shell, try RTT");
if(McuShell_SetStdio(McuRTT_GetStdio())!= ERR_OK){ /* use RTT as the default */
//couldnt set rtt!!
McuLog_fatal("failed to set rtt as default for shell");
for(;;){}
}else{
McuLog_info("RTT set for shell");
}
}else{
McuLog_info("UART set for shell");
}
shellCmdQueue = xQueueCreate(SHELL_CMD_QUEUE_LENGTH,SHELL_CMD_ELEM_SIZE);
if(shellCmdQueue == NULL){
McuLog_fatal("failed to create shell cmd queue!");
for(;;){}
}
vQueueAddToRegistry(shellCmdQueue, "Shell CMD Queue");
}
void SHELL_Deinit(void) {}

@ -0,0 +1,72 @@
/*
* Copyright (c) 2021-2022, Erich Styger
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef SHELL_H_
#define SHELL_H_
#include "McuShell.h"
#include "McuRTOS.h"
#define SHELL_CMD_IDENTIFY_SF "Splitflap Number:"
#define SHELL_CMD_POWEROFF_RPI "Shutdown RPI"
#define SHELL_CMD_QUEUE_LENGTH 5
typedef enum ShellCmd {
Shell_Identify_SF,
Shell_Powerof_rpi
}Shell_cmd_t;
typedef struct ShellCmd_s {
Shell_cmd_t shellCmd;
uint32_t value;
}Shell_cmd_s;
#ifdef __cplusplus
extern "C" {
#endif
QueueHandle_t SHELL_GetShellCmdQueueHandle();
/*!
* \brief Send a string to all supported I/Os
* \param str String to send
*/
void SHELL_SendString(const unsigned char *str);
/*!
* \brief Send a character to all supported I/Os
* \param ch Character to send
*/
void SHELL_SendChar(unsigned char ch);
/*!
* \brief Parses a command with a given standard I/O channel
* \param command Command to be parsed
* \param io I/O to be used. If NULL, the standard default I/O will be used
* \param silent If parsing shall be silent or not
* \return Error code, ERR_OK for no error
*/
uint8_t SHELL_ParseCommandIO(const unsigned char *command, McuShell_ConstStdIOType *io, bool silent);
/*!
* \brief Module de-initialization
*/
void SHELL_Deinit(void);
/*!
* \brief Module Initialization
*/
void SHELL_Init(void);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* SHELL_H_ */
Loading…
Cancel
Save