Browse Source

Merge pull request #2606 from yangjie11/yj_fix_branch

[bsp][stm32]support PWM1
Bernard Xiong 6 years ago
parent
commit
78f21eb628

+ 11 - 0
bsp/stm32/libraries/HAL_Drivers/config/l4/pwm_config.h

@@ -17,6 +17,17 @@
 extern "C" {
 extern "C" {
 #endif
 #endif
 
 
+#ifdef BSP_USING_PWM1
+#ifndef PWM1_CONFIG
+#define PWM1_CONFIG                             \
+    {                                           \
+       .tim_handle.Instance     = TIM1,         \
+       .name                    = "pwm1",       \
+       .channel                 = 0             \
+    }
+#endif /* PWM1_CONFIG */
+#endif /* BSP_USING_PWM1 */
+
 #ifdef BSP_USING_PWM2
 #ifdef BSP_USING_PWM2
 #ifndef PWM2_CONFIG
 #ifndef PWM2_CONFIG
 #define PWM2_CONFIG                             \
 #define PWM2_CONFIG                             \

+ 12 - 0
bsp/stm32/libraries/HAL_Drivers/drv_pwm.c

@@ -411,6 +411,18 @@ __exit:
 
 
 static void pwm_get_channel(void)
 static void pwm_get_channel(void)
 {
 {
+#ifdef BSP_USING_PWM1_CH1
+    stm32_pwm_obj[PWM1_INDEX].channel |= 1 << 0;
+#endif
+#ifdef BSP_USING_PWM1_CH2
+    stm32_pwm_obj[PWM1_INDEX].channel |= 1 << 1;
+#endif
+#ifdef BSP_USING_PWM1_CH3
+    stm32_pwm_obj[PWM1_INDEX].channel |= 1 << 2;
+#endif
+#ifdef BSP_USING_PWM1_CH4
+    stm32_pwm_obj[PWM1_INDEX].channel |= 1 << 3;
+#endif
 #ifdef BSP_USING_PWM2_CH1
 #ifdef BSP_USING_PWM2_CH1
     stm32_pwm_obj[PWM2_INDEX].channel |= 1 << 0;
     stm32_pwm_obj[PWM2_INDEX].channel |= 1 << 0;
 #endif
 #endif

+ 25 - 8
bsp/stm32/stm32l475-atk-pandora/.config

@@ -7,6 +7,7 @@
 # RT-Thread Kernel
 # RT-Thread Kernel
 #
 #
 CONFIG_RT_NAME_MAX=8
 CONFIG_RT_NAME_MAX=8
+# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 # CONFIG_RT_USING_SMP is not set
 # CONFIG_RT_USING_SMP is not set
 CONFIG_RT_ALIGN_SIZE=4
 CONFIG_RT_ALIGN_SIZE=4
 # CONFIG_RT_THREAD_PRIORITY_8 is not set
 # CONFIG_RT_THREAD_PRIORITY_8 is not set
@@ -63,7 +64,7 @@ CONFIG_RT_USING_DEVICE=y
 CONFIG_RT_USING_CONSOLE=y
 CONFIG_RT_USING_CONSOLE=y
 CONFIG_RT_CONSOLEBUF_SIZE=256
 CONFIG_RT_CONSOLEBUF_SIZE=256
 CONFIG_RT_CONSOLE_DEVICE_NAME="uart1"
 CONFIG_RT_CONSOLE_DEVICE_NAME="uart1"
-CONFIG_RT_VER_NUM=0x40000
+CONFIG_RT_VER_NUM=0x40001
 CONFIG_ARCH_ARM=y
 CONFIG_ARCH_ARM=y
 CONFIG_ARCH_ARM_CORTEX_M=y
 CONFIG_ARCH_ARM_CORTEX_M=y
 CONFIG_ARCH_ARM_CORTEX_M4=y
 CONFIG_ARCH_ARM_CORTEX_M4=y
@@ -111,8 +112,10 @@ CONFIG_FINSH_ARG_MAX=10
 #
 #
 CONFIG_RT_USING_DEVICE_IPC=y
 CONFIG_RT_USING_DEVICE_IPC=y
 CONFIG_RT_PIPE_BUFSZ=512
 CONFIG_RT_PIPE_BUFSZ=512
+# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
 CONFIG_RT_USING_SERIAL=y
 CONFIG_RT_USING_SERIAL=y
 CONFIG_RT_SERIAL_USING_DMA=y
 CONFIG_RT_SERIAL_USING_DMA=y
+CONFIG_RT_SERIAL_RB_BUFSZ=64
 # CONFIG_RT_USING_CAN is not set
 # CONFIG_RT_USING_CAN is not set
 # CONFIG_RT_USING_HWTIMER is not set
 # CONFIG_RT_USING_HWTIMER is not set
 # CONFIG_RT_USING_CPUTIME is not set
 # CONFIG_RT_USING_CPUTIME is not set
@@ -129,6 +132,7 @@ CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_SPI is not set
 # CONFIG_RT_USING_SPI is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_AUDIO is not set
+# CONFIG_RT_USING_SENSOR is not set
 
 
 #
 #
 # Using WiFi
 # Using WiFi
@@ -156,6 +160,11 @@ CONFIG_RT_USING_PIN=y
 #
 #
 # CONFIG_RT_USING_SAL is not set
 # CONFIG_RT_USING_SAL is not set
 
 
+#
+# Network interface device
+#
+# CONFIG_RT_USING_NETDEV is not set
+
 #
 #
 # light weight TCP/IP stack
 # light weight TCP/IP stack
 #
 #
@@ -179,16 +188,9 @@ CONFIG_RT_USING_PIN=y
 #
 #
 # Utilities
 # Utilities
 #
 #
-# CONFIG_RT_USING_LOGTRACE is not set
 # CONFIG_RT_USING_RYM is not set
 # CONFIG_RT_USING_RYM is not set
 # CONFIG_RT_USING_ULOG is not set
 # CONFIG_RT_USING_ULOG is not set
 # CONFIG_RT_USING_UTEST is not set
 # CONFIG_RT_USING_UTEST is not set
-
-#
-# ARM CMSIS
-#
-# CONFIG_RT_USING_CMSIS_OS is not set
-# CONFIG_RT_USING_RTT_CMSIS is not set
 # CONFIG_RT_USING_LWP is not set
 # CONFIG_RT_USING_LWP is not set
 
 
 #
 #
@@ -205,6 +207,7 @@ CONFIG_RT_USING_PIN=y
 # CONFIG_PKG_USING_WEBTERMINAL is not set
 # CONFIG_PKG_USING_WEBTERMINAL is not set
 # CONFIG_PKG_USING_CJSON is not set
 # CONFIG_PKG_USING_CJSON is not set
 # CONFIG_PKG_USING_JSMN is not set
 # CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_LIBMODBUS is not set
 # CONFIG_PKG_USING_LJSON is not set
 # CONFIG_PKG_USING_LJSON is not set
 # CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_NANOPB is not set
 # CONFIG_PKG_USING_NANOPB is not set
@@ -222,6 +225,7 @@ CONFIG_RT_USING_PIN=y
 # Wiced WiFi
 # Wiced WiFi
 #
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
 # CONFIG_PKG_USING_WLAN_WICED is not set
+# CONFIG_PKG_USING_RW007 is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -236,6 +240,8 @@ CONFIG_RT_USING_PIN=y
 # CONFIG_PKG_USING_ALI_IOTKIT is not set
 # CONFIG_PKG_USING_ALI_IOTKIT is not set
 # CONFIG_PKG_USING_AZURE is not set
 # CONFIG_PKG_USING_AZURE is not set
 # CONFIG_PKG_USING_TENCENT_IOTKIT is not set
 # CONFIG_PKG_USING_TENCENT_IOTKIT is not set
+# CONFIG_PKG_USING_NIMBLE is not set
+# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
 
 
 #
 #
 # security packages
 # security packages
@@ -256,6 +262,7 @@ CONFIG_RT_USING_PIN=y
 #
 #
 # CONFIG_PKG_USING_OPENMV is not set
 # CONFIG_PKG_USING_OPENMV is not set
 # CONFIG_PKG_USING_MUPDF is not set
 # CONFIG_PKG_USING_MUPDF is not set
+# CONFIG_PKG_USING_STEMWIN is not set
 
 
 #
 #
 # tools packages
 # tools packages
@@ -267,6 +274,7 @@ CONFIG_RT_USING_PIN=y
 # CONFIG_PKG_USING_RDB is not set
 # CONFIG_PKG_USING_RDB is not set
 # CONFIG_PKG_USING_QRCODE is not set
 # CONFIG_PKG_USING_QRCODE is not set
 # CONFIG_PKG_USING_ULOG_EASYFLASH is not set
 # CONFIG_PKG_USING_ULOG_EASYFLASH is not set
+# CONFIG_PKG_USING_ADBD is not set
 
 
 #
 #
 # system packages
 # system packages
@@ -284,10 +292,12 @@ CONFIG_RT_USING_PIN=y
 # CONFIG_PKG_USING_CMSIS is not set
 # CONFIG_PKG_USING_CMSIS is not set
 # CONFIG_PKG_USING_DFS_YAFFS is not set
 # CONFIG_PKG_USING_DFS_YAFFS is not set
 # CONFIG_PKG_USING_LITTLEFS is not set
 # CONFIG_PKG_USING_LITTLEFS is not set
+# CONFIG_PKG_USING_THREAD_POOL is not set
 
 
 #
 #
 # peripheral libraries and drivers
 # peripheral libraries and drivers
 #
 #
+# CONFIG_PKG_USING_SENSORS_DRIVERS is not set
 # CONFIG_PKG_USING_REALTEK_AMEBA is not set
 # CONFIG_PKG_USING_REALTEK_AMEBA is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_AHT10 is not set
 # CONFIG_PKG_USING_AHT10 is not set
@@ -298,7 +308,13 @@ CONFIG_RT_USING_PIN=y
 # CONFIG_PKG_USING_BUTTON is not set
 # CONFIG_PKG_USING_BUTTON is not set
 # CONFIG_PKG_USING_MPU6XXX is not set
 # CONFIG_PKG_USING_MPU6XXX is not set
 # CONFIG_PKG_USING_PCF8574 is not set
 # CONFIG_PKG_USING_PCF8574 is not set
+# CONFIG_PKG_USING_SX12XX is not set
+# CONFIG_PKG_USING_SIGNAL_LED is not set
+# CONFIG_PKG_USING_WM_LIBRARIES is not set
 # CONFIG_PKG_USING_KENDRYTE_SDK is not set
 # CONFIG_PKG_USING_KENDRYTE_SDK is not set
+# CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_ROSSERIAL is not set
+# CONFIG_PKG_USING_AT24CXX is not set
 
 
 #
 #
 # miscellaneous packages
 # miscellaneous packages
@@ -324,6 +340,7 @@ CONFIG_RT_USING_PIN=y
 # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
 # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
 # CONFIG_PKG_USING_HELLO is not set
 # CONFIG_PKG_USING_HELLO is not set
 # CONFIG_PKG_USING_VI is not set
 # CONFIG_PKG_USING_VI is not set
+# CONFIG_PKG_USING_NNOM is not set
 CONFIG_SOC_FAMILY_STM32=y
 CONFIG_SOC_FAMILY_STM32=y
 CONFIG_SOC_SERIES_STM32L4=y
 CONFIG_SOC_SERIES_STM32L4=y
 
 

File diff suppressed because it is too large
+ 2 - 2
bsp/stm32/stm32l475-atk-pandora/board/CubeMX_Config/.mxproject


+ 2 - 1
bsp/stm32/stm32l475-atk-pandora/board/CubeMX_Config/Inc/stm32l4xx_hal_conf.h

@@ -5,7 +5,7 @@
   ******************************************************************************
   ******************************************************************************
   * @attention
   * @attention
   *
   *
-  * <h2><center>&copy; COPYRIGHT(c) 2018 STMicroelectronics</center></h2>
+  * <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
   *
   *
   * Redistribution and use in source and binary forms, with or without modification,
   * Redistribution and use in source and binary forms, with or without modification,
   * are permitted provided that the following conditions are met:
   * are permitted provided that the following conditions are met:
@@ -94,6 +94,7 @@
 /*#define HAL_WWDG_MODULE_ENABLED   */
 /*#define HAL_WWDG_MODULE_ENABLED   */
 /*#define HAL_EXTI_MODULE_ENABLED   */
 /*#define HAL_EXTI_MODULE_ENABLED   */
 #define HAL_GPIO_MODULE_ENABLED
 #define HAL_GPIO_MODULE_ENABLED
+#define HAL_EXTI_MODULE_ENABLED 
 #define HAL_I2C_MODULE_ENABLED
 #define HAL_I2C_MODULE_ENABLED
 #define HAL_DMA_MODULE_ENABLED
 #define HAL_DMA_MODULE_ENABLED
 #define HAL_RCC_MODULE_ENABLED
 #define HAL_RCC_MODULE_ENABLED

+ 52 - 42
bsp/stm32/stm32l475-atk-pandora/board/CubeMX_Config/STM32L475VE.ioc

@@ -11,11 +11,12 @@ KeepUserPlacement=false
 Mcu.Family=STM32L4
 Mcu.Family=STM32L4
 Mcu.IP0=ADC1
 Mcu.IP0=ADC1
 Mcu.IP1=IWDG
 Mcu.IP1=IWDG
-Mcu.IP10=TIM15
-Mcu.IP11=TIM16
-Mcu.IP12=TIM17
-Mcu.IP13=USART1
-Mcu.IP14=USART2
+Mcu.IP10=TIM4
+Mcu.IP11=TIM15
+Mcu.IP12=TIM16
+Mcu.IP13=TIM17
+Mcu.IP14=USART1
+Mcu.IP15=USART2
 Mcu.IP2=NVIC
 Mcu.IP2=NVIC
 Mcu.IP3=QUADSPI
 Mcu.IP3=QUADSPI
 Mcu.IP4=RCC
 Mcu.IP4=RCC
@@ -23,58 +24,60 @@ Mcu.IP5=RTC
 Mcu.IP6=SPI1
 Mcu.IP6=SPI1
 Mcu.IP7=SPI2
 Mcu.IP7=SPI2
 Mcu.IP8=SYS
 Mcu.IP8=SYS
-Mcu.IP9=TIM4
-Mcu.IPNb=15
+Mcu.IP9=TIM1
+Mcu.IPNb=16
 Mcu.Name=STM32L475V(C-E-G)Tx
 Mcu.Name=STM32L475V(C-E-G)Tx
 Mcu.Package=LQFP100
 Mcu.Package=LQFP100
 Mcu.Pin0=PC14-OSC32_IN (PC14)
 Mcu.Pin0=PC14-OSC32_IN (PC14)
 Mcu.Pin1=PC15-OSC32_OUT (PC15)
 Mcu.Pin1=PC15-OSC32_OUT (PC15)
-Mcu.Pin10=PE10
-Mcu.Pin11=PE11
-Mcu.Pin12=PE12
-Mcu.Pin13=PE13
-Mcu.Pin14=PE14
-Mcu.Pin15=PE15
-Mcu.Pin16=PB13
-Mcu.Pin17=PB14
-Mcu.Pin18=PB15
-Mcu.Pin19=PA9
+Mcu.Pin10=PE9
+Mcu.Pin11=PE10
+Mcu.Pin12=PE11
+Mcu.Pin13=PE12
+Mcu.Pin14=PE13
+Mcu.Pin15=PE14
+Mcu.Pin16=PE15
+Mcu.Pin17=PB13
+Mcu.Pin18=PB14
+Mcu.Pin19=PB15
 Mcu.Pin2=PH0-OSC_IN (PH0)
 Mcu.Pin2=PH0-OSC_IN (PH0)
-Mcu.Pin20=PA10
-Mcu.Pin21=PA13 (JTMS-SWDIO)
-Mcu.Pin22=PA14 (JTCK-SWCLK)
-Mcu.Pin23=PB7
-Mcu.Pin24=PB8
-Mcu.Pin25=VP_IWDG_VS_IWDG
-Mcu.Pin26=VP_RTC_VS_RTC_Activate
-Mcu.Pin27=VP_SYS_VS_Systick
-Mcu.Pin28=VP_TIM4_VS_ClockSourceINT
-Mcu.Pin29=VP_TIM15_VS_ClockSourceINT
+Mcu.Pin20=PA9
+Mcu.Pin21=PA10
+Mcu.Pin22=PA13 (JTMS-SWDIO)
+Mcu.Pin23=PA14 (JTCK-SWCLK)
+Mcu.Pin24=PB7
+Mcu.Pin25=PB8
+Mcu.Pin26=VP_IWDG_VS_IWDG
+Mcu.Pin27=VP_RTC_VS_RTC_Activate
+Mcu.Pin28=VP_SYS_VS_Systick
+Mcu.Pin29=VP_TIM1_VS_ClockSourceINT
 Mcu.Pin3=PH1-OSC_OUT (PH1)
 Mcu.Pin3=PH1-OSC_OUT (PH1)
-Mcu.Pin30=VP_TIM16_VS_ClockSourceINT
-Mcu.Pin31=VP_TIM17_VS_ClockSourceINT
+Mcu.Pin30=VP_TIM4_VS_ClockSourceINT
+Mcu.Pin31=VP_TIM15_VS_ClockSourceINT
+Mcu.Pin32=VP_TIM16_VS_ClockSourceINT
+Mcu.Pin33=VP_TIM17_VS_ClockSourceINT
 Mcu.Pin4=PA2
 Mcu.Pin4=PA2
 Mcu.Pin5=PA3
 Mcu.Pin5=PA3
 Mcu.Pin6=PA5
 Mcu.Pin6=PA5
 Mcu.Pin7=PA6
 Mcu.Pin7=PA6
 Mcu.Pin8=PA7
 Mcu.Pin8=PA7
 Mcu.Pin9=PC5
 Mcu.Pin9=PC5
-Mcu.PinsNb=32
+Mcu.PinsNb=34
 Mcu.ThirdPartyNb=0
 Mcu.ThirdPartyNb=0
 Mcu.UserConstants=
 Mcu.UserConstants=
 Mcu.UserName=STM32L475VETx
 Mcu.UserName=STM32L475VETx
-MxCube.Version=5.0.0
-MxDb.Version=DB.5.0.0
-NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false
-NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false
-NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false
-NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false
-NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false
-NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false
+MxCube.Version=5.1.0
+MxDb.Version=DB.5.0.10
+NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
 NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
 NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
-NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false
-NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false
-NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false
+NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
 PA10.Mode=Asynchronous
 PA10.Mode=Asynchronous
 PA10.Signal=USART1_RX
 PA10.Signal=USART1_RX
 PA13\ (JTMS-SWDIO).Mode=Serial_Wire
 PA13\ (JTMS-SWDIO).Mode=Serial_Wire
@@ -135,6 +138,7 @@ PE14.Signal=QUADSPI_BK1_IO2
 PE15.Locked=true
 PE15.Locked=true
 PE15.Mode=Single Bank
 PE15.Mode=Single Bank
 PE15.Signal=QUADSPI_BK1_IO3
 PE15.Signal=QUADSPI_BK1_IO3
+PE9.Signal=S_TIM1_CH1
 PH0-OSC_IN\ (PH0).Mode=HSE-External-Oscillator
 PH0-OSC_IN\ (PH0).Mode=HSE-External-Oscillator
 PH0-OSC_IN\ (PH0).Signal=RCC_OSC_IN
 PH0-OSC_IN\ (PH0).Signal=RCC_OSC_IN
 PH1-OSC_OUT\ (PH1).Mode=HSE-External-Oscillator
 PH1-OSC_OUT\ (PH1).Mode=HSE-External-Oscillator
@@ -166,7 +170,7 @@ ProjectManager.StackSize=0x400
 ProjectManager.TargetToolchain=MDK-ARM V5
 ProjectManager.TargetToolchain=MDK-ARM V5
 ProjectManager.ToolChainLocation=
 ProjectManager.ToolChainLocation=
 ProjectManager.UnderRoot=false
 ProjectManager.UnderRoot=false
-ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART1_UART_Init-USART1-false-HAL-true,4-MX_USART2_UART_Init-USART2-false-HAL-true,5-MX_QUADSPI_Init-QUADSPI-false-HAL-true,6-MX_SPI1_Init-SPI1-false-HAL-true,7-MX_SPI2_Init-SPI2-false-HAL-true,8-MX_RTC_Init-RTC-false-HAL-true,9-MX_ADC1_Init-ADC1-false-HAL-true,10-MX_IWDG_Init-IWDG-false-HAL-true,11-MX_TIM17_Init-TIM17-false-HAL-true,12-MX_TIM16_Init-TIM16-false-HAL-true,13-MX_TIM15_Init-TIM15-false-HAL-true,14-MX_TIM4_Init-TIM4-false-HAL-true
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART1_UART_Init-USART1-false-HAL-true,4-MX_USART2_UART_Init-USART2-false-HAL-true,5-MX_QUADSPI_Init-QUADSPI-false-HAL-true,6-MX_SPI1_Init-SPI1-false-HAL-true,7-MX_SPI2_Init-SPI2-false-HAL-true,8-MX_RTC_Init-RTC-false-HAL-true,9-MX_ADC1_Init-ADC1-false-HAL-true,10-MX_IWDG_Init-IWDG-false-HAL-true,11-MX_TIM17_Init-TIM17-false-HAL-true,12-MX_TIM16_Init-TIM16-false-HAL-true,13-MX_TIM15_Init-TIM15-false-HAL-true,14-MX_TIM4_Init-TIM4-false-HAL-true,15-MX_TIM1_Init-TIM1-false-HAL-true
 RCC.ADCFreq_Value=32000000
 RCC.ADCFreq_Value=32000000
 RCC.AHBFreq_Value=80000000
 RCC.AHBFreq_Value=80000000
 RCC.APB1Freq_Value=80000000
 RCC.APB1Freq_Value=80000000
@@ -223,6 +227,8 @@ RCC.VCOSAI1OutputFreq_Value=64000000
 RCC.VCOSAI2OutputFreq_Value=64000000
 RCC.VCOSAI2OutputFreq_Value=64000000
 SH.ADCx_IN14.0=ADC1_IN14,IN14-Single-Ended
 SH.ADCx_IN14.0=ADC1_IN14,IN14-Single-Ended
 SH.ADCx_IN14.ConfNb=1
 SH.ADCx_IN14.ConfNb=1
+SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1
+SH.S_TIM1_CH1.ConfNb=1
 SH.S_TIM4_CH2.0=TIM4_CH2,PWM Generation2 CH2
 SH.S_TIM4_CH2.0=TIM4_CH2,PWM Generation2 CH2
 SH.S_TIM4_CH2.ConfNb=1
 SH.S_TIM4_CH2.ConfNb=1
 SH.S_TIM4_CH3.0=TIM4_CH3,PWM Generation3 CH3
 SH.S_TIM4_CH3.0=TIM4_CH3,PWM Generation3 CH3
@@ -237,6 +243,8 @@ SPI2.Direction=SPI_DIRECTION_2LINES
 SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate
 SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate
 SPI2.Mode=SPI_MODE_MASTER
 SPI2.Mode=SPI_MODE_MASTER
 SPI2.VirtualType=VM_MASTER
 SPI2.VirtualType=VM_MASTER
+TIM1.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
+TIM1.IPParameters=Channel-PWM Generation1 CH1
 TIM4.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
 TIM4.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
 TIM4.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
 TIM4.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
 TIM4.IPParameters=Channel-PWM Generation3 CH3,Channel-PWM Generation2 CH2
 TIM4.IPParameters=Channel-PWM Generation3 CH3,Channel-PWM Generation2 CH2
@@ -256,6 +264,8 @@ VP_TIM16_VS_ClockSourceINT.Mode=Enable_Timer
 VP_TIM16_VS_ClockSourceINT.Signal=TIM16_VS_ClockSourceINT
 VP_TIM16_VS_ClockSourceINT.Signal=TIM16_VS_ClockSourceINT
 VP_TIM17_VS_ClockSourceINT.Mode=Enable_Timer
 VP_TIM17_VS_ClockSourceINT.Mode=Enable_Timer
 VP_TIM17_VS_ClockSourceINT.Signal=TIM17_VS_ClockSourceINT
 VP_TIM17_VS_ClockSourceINT.Signal=TIM17_VS_ClockSourceINT
+VP_TIM1_VS_ClockSourceINT.Mode=Internal
+VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT
 VP_TIM4_VS_ClockSourceINT.Mode=Internal
 VP_TIM4_VS_ClockSourceINT.Mode=Internal
 VP_TIM4_VS_ClockSourceINT.Signal=TIM4_VS_ClockSourceINT
 VP_TIM4_VS_ClockSourceINT.Signal=TIM4_VS_ClockSourceINT
 board=custom
 board=custom

+ 91 - 8
bsp/stm32/stm32l475-atk-pandora/board/CubeMX_Config/Src/main.c

@@ -73,6 +73,7 @@ RTC_HandleTypeDef hrtc;
 SPI_HandleTypeDef hspi1;
 SPI_HandleTypeDef hspi1;
 SPI_HandleTypeDef hspi2;
 SPI_HandleTypeDef hspi2;
 
 
+TIM_HandleTypeDef htim1;
 TIM_HandleTypeDef htim4;
 TIM_HandleTypeDef htim4;
 TIM_HandleTypeDef htim15;
 TIM_HandleTypeDef htim15;
 TIM_HandleTypeDef htim16;
 TIM_HandleTypeDef htim16;
@@ -101,6 +102,7 @@ static void MX_TIM17_Init(void);
 static void MX_TIM16_Init(void);
 static void MX_TIM16_Init(void);
 static void MX_TIM15_Init(void);
 static void MX_TIM15_Init(void);
 static void MX_TIM4_Init(void);
 static void MX_TIM4_Init(void);
+static void MX_TIM1_Init(void);
 /* USER CODE BEGIN PFP */
 /* USER CODE BEGIN PFP */
 /* Private function prototypes -----------------------------------------------*/
 /* Private function prototypes -----------------------------------------------*/
 
 
@@ -151,6 +153,7 @@ int main(void)
   MX_TIM16_Init();
   MX_TIM16_Init();
   MX_TIM15_Init();
   MX_TIM15_Init();
   MX_TIM4_Init();
   MX_TIM4_Init();
+  MX_TIM1_Init();
   /* USER CODE BEGIN 2 */
   /* USER CODE BEGIN 2 */
 
 
   /* USER CODE END 2 */
   /* USER CODE END 2 */
@@ -178,11 +181,11 @@ void SystemClock_Config(void)
   RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
   RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
   RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
   RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
 
 
-  /**Configure LSE Drive Capability 
+  /** Configure LSE Drive Capability 
   */
   */
   HAL_PWR_EnableBkUpAccess();
   HAL_PWR_EnableBkUpAccess();
   __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW);
   __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW);
-  /**Initializes the CPU, AHB and APB busses clocks 
+  /** Initializes the CPU, AHB and APB busses clocks 
   */
   */
   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE
   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE
                               |RCC_OSCILLATORTYPE_LSE;
                               |RCC_OSCILLATORTYPE_LSE;
@@ -200,7 +203,7 @@ void SystemClock_Config(void)
   {
   {
     Error_Handler();
     Error_Handler();
   }
   }
-  /**Initializes the CPU, AHB and APB busses clocks 
+  /** Initializes the CPU, AHB and APB busses clocks 
   */
   */
   RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
   RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                               |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
                               |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
@@ -230,7 +233,7 @@ void SystemClock_Config(void)
   {
   {
     Error_Handler();
     Error_Handler();
   }
   }
-  /**Configure the main internal regulator output voltage 
+  /** Configure the main internal regulator output voltage 
   */
   */
   if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK)
   if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK)
   {
   {
@@ -256,7 +259,7 @@ static void MX_ADC1_Init(void)
   /* USER CODE BEGIN ADC1_Init 1 */
   /* USER CODE BEGIN ADC1_Init 1 */
 
 
   /* USER CODE END ADC1_Init 1 */
   /* USER CODE END ADC1_Init 1 */
-  /**Common config 
+  /** Common config 
   */
   */
   hadc1.Instance = ADC1;
   hadc1.Instance = ADC1;
   hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1;
   hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1;
@@ -277,14 +280,14 @@ static void MX_ADC1_Init(void)
   {
   {
     Error_Handler();
     Error_Handler();
   }
   }
-  /**Configure the ADC multi-mode 
+  /** Configure the ADC multi-mode 
   */
   */
   multimode.Mode = ADC_MODE_INDEPENDENT;
   multimode.Mode = ADC_MODE_INDEPENDENT;
   if (HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK)
   if (HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK)
   {
   {
     Error_Handler();
     Error_Handler();
   }
   }
-  /**Configure Regular Channel 
+  /** Configure Regular Channel 
   */
   */
   sConfig.Channel = ADC_CHANNEL_14;
   sConfig.Channel = ADC_CHANNEL_14;
   sConfig.Rank = ADC_REGULAR_RANK_1;
   sConfig.Rank = ADC_REGULAR_RANK_1;
@@ -379,7 +382,7 @@ static void MX_RTC_Init(void)
   /* USER CODE BEGIN RTC_Init 1 */
   /* USER CODE BEGIN RTC_Init 1 */
 
 
   /* USER CODE END RTC_Init 1 */
   /* USER CODE END RTC_Init 1 */
-  /**Initialize RTC Only 
+  /** Initialize RTC Only 
   */
   */
   hrtc.Instance = RTC;
   hrtc.Instance = RTC;
   hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
   hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
@@ -479,6 +482,86 @@ static void MX_SPI2_Init(void)
 
 
 }
 }
 
 
+/**
+  * @brief TIM1 Initialization Function
+  * @param None
+  * @retval None
+  */
+static void MX_TIM1_Init(void)
+{
+
+  /* USER CODE BEGIN TIM1_Init 0 */
+
+  /* USER CODE END TIM1_Init 0 */
+
+  TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+  TIM_MasterConfigTypeDef sMasterConfig = {0};
+  TIM_OC_InitTypeDef sConfigOC = {0};
+  TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};
+
+  /* USER CODE BEGIN TIM1_Init 1 */
+
+  /* USER CODE END TIM1_Init 1 */
+  htim1.Instance = TIM1;
+  htim1.Init.Prescaler = 0;
+  htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+  htim1.Init.Period = 0;
+  htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+  htim1.Init.RepetitionCounter = 0;
+  htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+  if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+  if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  if (HAL_TIM_PWM_Init(&htim1) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+  sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET;
+  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+  if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  sConfigOC.OCMode = TIM_OCMODE_PWM1;
+  sConfigOC.Pulse = 0;
+  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+  sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
+  sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
+  sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
+  sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
+  if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
+  sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
+  sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
+  sBreakDeadTimeConfig.DeadTime = 0;
+  sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
+  sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
+  sBreakDeadTimeConfig.BreakFilter = 0;
+  sBreakDeadTimeConfig.Break2State = TIM_BREAK2_DISABLE;
+  sBreakDeadTimeConfig.Break2Polarity = TIM_BREAK2POLARITY_HIGH;
+  sBreakDeadTimeConfig.Break2Filter = 0;
+  sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
+  if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  /* USER CODE BEGIN TIM1_Init 2 */
+
+  /* USER CODE END TIM1_Init 2 */
+  HAL_TIM_MspPostInit(&htim1);
+
+}
+
 /**
 /**
   * @brief TIM4 Initialization Function
   * @brief TIM4 Initialization Function
   * @param None
   * @param None

+ 44 - 21
bsp/stm32/stm32l475-atk-pandora/board/CubeMX_Config/Src/stm32l4xx_hal_msp.c

@@ -80,7 +80,7 @@
 /* USER CODE END 0 */
 /* USER CODE END 0 */
                         
                         
 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
-                    /**
+                                        /**
   * Initializes the Global MSP.
   * Initializes the Global MSP.
   */
   */
 void HAL_MspInit(void)
 void HAL_MspInit(void)
@@ -107,7 +107,6 @@ void HAL_MspInit(void)
 */
 */
 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
 {
 {
-
   GPIO_InitTypeDef GPIO_InitStruct = {0};
   GPIO_InitTypeDef GPIO_InitStruct = {0};
   if(hadc->Instance==ADC1)
   if(hadc->Instance==ADC1)
   {
   {
@@ -139,10 +138,8 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
 * @param hadc: ADC handle pointer
 * @param hadc: ADC handle pointer
 * @retval None
 * @retval None
 */
 */
-
 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
 {
 {
-
   if(hadc->Instance==ADC1)
   if(hadc->Instance==ADC1)
   {
   {
   /* USER CODE BEGIN ADC1_MspDeInit 0 */
   /* USER CODE BEGIN ADC1_MspDeInit 0 */
@@ -171,7 +168,6 @@ void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
 */
 */
 void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)
 void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)
 {
 {
-
   GPIO_InitTypeDef GPIO_InitStruct = {0};
   GPIO_InitTypeDef GPIO_InitStruct = {0};
   if(hqspi->Instance==QUADSPI)
   if(hqspi->Instance==QUADSPI)
   {
   {
@@ -211,10 +207,8 @@ void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)
 * @param hqspi: QSPI handle pointer
 * @param hqspi: QSPI handle pointer
 * @retval None
 * @retval None
 */
 */
-
 void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)
 void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)
 {
 {
-
   if(hqspi->Instance==QUADSPI)
   if(hqspi->Instance==QUADSPI)
   {
   {
   /* USER CODE BEGIN QUADSPI_MspDeInit 0 */
   /* USER CODE BEGIN QUADSPI_MspDeInit 0 */
@@ -249,7 +243,6 @@ void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)
 */
 */
 void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
 void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
 {
 {
-
   if(hrtc->Instance==RTC)
   if(hrtc->Instance==RTC)
   {
   {
   /* USER CODE BEGIN RTC_MspInit 0 */
   /* USER CODE BEGIN RTC_MspInit 0 */
@@ -270,10 +263,8 @@ void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
 * @param hrtc: RTC handle pointer
 * @param hrtc: RTC handle pointer
 * @retval None
 * @retval None
 */
 */
-
 void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
 void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
 {
 {
-
   if(hrtc->Instance==RTC)
   if(hrtc->Instance==RTC)
   {
   {
   /* USER CODE BEGIN RTC_MspDeInit 0 */
   /* USER CODE BEGIN RTC_MspDeInit 0 */
@@ -296,7 +287,6 @@ void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
 */
 */
 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
 {
 {
-
   GPIO_InitTypeDef GPIO_InitStruct = {0};
   GPIO_InitTypeDef GPIO_InitStruct = {0};
   if(hspi->Instance==SPI1)
   if(hspi->Instance==SPI1)
   {
   {
@@ -357,10 +347,8 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
 * @param hspi: SPI handle pointer
 * @param hspi: SPI handle pointer
 * @retval None
 * @retval None
 */
 */
-
 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
 {
 {
-
   if(hspi->Instance==SPI1)
   if(hspi->Instance==SPI1)
   {
   {
   /* USER CODE BEGIN SPI1_MspDeInit 0 */
   /* USER CODE BEGIN SPI1_MspDeInit 0 */
@@ -410,8 +398,18 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
 */
 */
 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
 {
 {
+  if(htim_base->Instance==TIM1)
+  {
+  /* USER CODE BEGIN TIM1_MspInit 0 */
 
 
-  if(htim_base->Instance==TIM4)
+  /* USER CODE END TIM1_MspInit 0 */
+    /* Peripheral clock enable */
+    __HAL_RCC_TIM1_CLK_ENABLE();
+  /* USER CODE BEGIN TIM1_MspInit 1 */
+
+  /* USER CODE END TIM1_MspInit 1 */
+  }
+  else if(htim_base->Instance==TIM4)
   {
   {
   /* USER CODE BEGIN TIM4_MspInit 0 */
   /* USER CODE BEGIN TIM4_MspInit 0 */
 
 
@@ -460,9 +458,28 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
 
 
 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
 {
 {
-
   GPIO_InitTypeDef GPIO_InitStruct = {0};
   GPIO_InitTypeDef GPIO_InitStruct = {0};
-  if(htim->Instance==TIM4)
+  if(htim->Instance==TIM1)
+  {
+  /* USER CODE BEGIN TIM1_MspPostInit 0 */
+
+  /* USER CODE END TIM1_MspPostInit 0 */
+    __HAL_RCC_GPIOE_CLK_ENABLE();
+    /**TIM1 GPIO Configuration    
+    PE9     ------> TIM1_CH1 
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_9;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+    GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
+    HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN TIM1_MspPostInit 1 */
+
+  /* USER CODE END TIM1_MspPostInit 1 */
+  }
+  else if(htim->Instance==TIM4)
   {
   {
   /* USER CODE BEGIN TIM4_MspPostInit 0 */
   /* USER CODE BEGIN TIM4_MspPostInit 0 */
 
 
@@ -492,11 +509,20 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
 * @param htim_base: TIM_Base handle pointer
 * @param htim_base: TIM_Base handle pointer
 * @retval None
 * @retval None
 */
 */
-
 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
 {
 {
+  if(htim_base->Instance==TIM1)
+  {
+  /* USER CODE BEGIN TIM1_MspDeInit 0 */
+
+  /* USER CODE END TIM1_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_TIM1_CLK_DISABLE();
+  /* USER CODE BEGIN TIM1_MspDeInit 1 */
 
 
-  if(htim_base->Instance==TIM4)
+  /* USER CODE END TIM1_MspDeInit 1 */
+  }
+  else if(htim_base->Instance==TIM4)
   {
   {
   /* USER CODE BEGIN TIM4_MspDeInit 0 */
   /* USER CODE BEGIN TIM4_MspDeInit 0 */
 
 
@@ -551,7 +577,6 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
 */
 */
 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
 {
 {
-
   GPIO_InitTypeDef GPIO_InitStruct = {0};
   GPIO_InitTypeDef GPIO_InitStruct = {0};
   if(huart->Instance==USART1)
   if(huart->Instance==USART1)
   {
   {
@@ -610,10 +635,8 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
 * @param huart: UART handle pointer
 * @param huart: UART handle pointer
 * @retval None
 * @retval None
 */
 */
-
 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
 {
 {
-
   if(huart->Instance==USART1)
   if(huart->Instance==USART1)
   {
   {
   /* USER CODE BEGIN USART1_MspDeInit 0 */
   /* USER CODE BEGIN USART1_MspDeInit 0 */

+ 1 - 0
bsp/stm32/stm32l475-atk-pandora/board/CubeMX_Config/Src/stm32l4xx_it.c

@@ -71,6 +71,7 @@
 /* USER CODE END 0 */
 /* USER CODE END 0 */
 
 
 /* External variables --------------------------------------------------------*/
 /* External variables --------------------------------------------------------*/
+
 /* USER CODE BEGIN EV */
 /* USER CODE BEGIN EV */
 
 
 /* USER CODE END EV */
 /* USER CODE END EV */

+ 8 - 0
bsp/stm32/stm32l475-atk-pandora/board/Kconfig

@@ -186,6 +186,14 @@ menu "On-chip Peripheral Drivers"
         default n
         default n
         select RT_USING_PWM
         select RT_USING_PWM
         if BSP_USING_PWM
         if BSP_USING_PWM
+        menuconfig BSP_USING_PWM1
+            bool "Enable timer1 output pwm"
+            default n
+            if BSP_USING_PWM1
+                config BSP_USING_PWM1_CH1
+                    bool "Enable PWM1 channel1"
+                    default n
+            endif
         menuconfig BSP_USING_PWM4
         menuconfig BSP_USING_PWM4
             bool "Enable timer4 output pwm"
             bool "Enable timer4 output pwm"
             default n
             default n

+ 97 - 206
bsp/stm32/stm32l475-atk-pandora/project.uvprojx

@@ -1,7 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
 <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
 <Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
 <Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
+
   <SchemaVersion>2.1</SchemaVersion>
   <SchemaVersion>2.1</SchemaVersion>
+
   <Header>### uVision Project, (C) Keil Software</Header>
   <Header>### uVision Project, (C) Keil Software</Header>
+
   <Targets>
   <Targets>
     <Target>
     <Target>
       <TargetName>rt-thread</TargetName>
       <TargetName>rt-thread</TargetName>
@@ -16,28 +19,28 @@
           <PackID>Keil.STM32L4xx_DFP.2.0.0</PackID>
           <PackID>Keil.STM32L4xx_DFP.2.0.0</PackID>
           <PackURL>http://www.keil.com/pack</PackURL>
           <PackURL>http://www.keil.com/pack</PackURL>
           <Cpu>IRAM(0x20000000,0x00018000) IRAM2(0x10000000,0x00008000) IROM(0x08000000,0x00080000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE</Cpu>
           <Cpu>IRAM(0x20000000,0x00018000) IRAM2(0x10000000,0x00008000) IROM(0x08000000,0x00080000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE</Cpu>
-          <FlashUtilSpec />
-          <StartupFile />
+          <FlashUtilSpec></FlashUtilSpec>
+          <StartupFile></StartupFile>
           <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_512 -FS08000000 -FL080000 -FP0($$Device:STM32L475VETx$CMSIS\Flash\STM32L4xx_512.FLM))</FlashDriverDll>
           <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_512 -FS08000000 -FL080000 -FP0($$Device:STM32L475VETx$CMSIS\Flash\STM32L4xx_512.FLM))</FlashDriverDll>
           <DeviceId>0</DeviceId>
           <DeviceId>0</DeviceId>
           <RegisterFile>$$Device:STM32L475VETx$Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l4xx.h</RegisterFile>
           <RegisterFile>$$Device:STM32L475VETx$Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l4xx.h</RegisterFile>
-          <MemoryEnv />
-          <Cmp />
-          <Asm />
-          <Linker />
-          <OHString />
-          <InfinionOptionDll />
-          <SLE66CMisc />
-          <SLE66AMisc />
-          <SLE66LinkerMisc />
+          <MemoryEnv></MemoryEnv>
+          <Cmp></Cmp>
+          <Asm></Asm>
+          <Linker></Linker>
+          <OHString></OHString>
+          <InfinionOptionDll></InfinionOptionDll>
+          <SLE66CMisc></SLE66CMisc>
+          <SLE66AMisc></SLE66AMisc>
+          <SLE66LinkerMisc></SLE66LinkerMisc>
           <SFDFile>$$Device:STM32L475VETx$CMSIS\SVD\STM32L4x5.svd</SFDFile>
           <SFDFile>$$Device:STM32L475VETx$CMSIS\SVD\STM32L4x5.svd</SFDFile>
           <bCustSvd>0</bCustSvd>
           <bCustSvd>0</bCustSvd>
           <UseEnv>0</UseEnv>
           <UseEnv>0</UseEnv>
-          <BinPath />
-          <IncludePath />
-          <LibPath />
-          <RegisterFilePath />
-          <DBRegisterFilePath />
+          <BinPath></BinPath>
+          <IncludePath></IncludePath>
+          <LibPath></LibPath>
+          <RegisterFilePath></RegisterFilePath>
+          <DBRegisterFilePath></DBRegisterFilePath>
           <TargetStatus>
           <TargetStatus>
             <Error>0</Error>
             <Error>0</Error>
             <ExitCodeStop>0</ExitCodeStop>
             <ExitCodeStop>0</ExitCodeStop>
@@ -59,8 +62,8 @@
           <BeforeCompile>
           <BeforeCompile>
             <RunUserProg1>0</RunUserProg1>
             <RunUserProg1>0</RunUserProg1>
             <RunUserProg2>0</RunUserProg2>
             <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name />
-            <UserProg2Name />
+            <UserProg1Name></UserProg1Name>
+            <UserProg2Name></UserProg2Name>
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
             <nStopU1X>0</nStopU1X>
             <nStopU1X>0</nStopU1X>
@@ -69,8 +72,8 @@
           <BeforeMake>
           <BeforeMake>
             <RunUserProg1>0</RunUserProg1>
             <RunUserProg1>0</RunUserProg1>
             <RunUserProg2>0</RunUserProg2>
             <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name />
-            <UserProg2Name />
+            <UserProg1Name></UserProg1Name>
+            <UserProg2Name></UserProg2Name>
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
             <nStopB1X>0</nStopB1X>
             <nStopB1X>0</nStopB1X>
@@ -80,14 +83,14 @@
             <RunUserProg1>1</RunUserProg1>
             <RunUserProg1>1</RunUserProg1>
             <RunUserProg2>0</RunUserProg2>
             <RunUserProg2>0</RunUserProg2>
             <UserProg1Name>fromelf --bin !L --output rtthread.bin</UserProg1Name>
             <UserProg1Name>fromelf --bin !L --output rtthread.bin</UserProg1Name>
-            <UserProg2Name />
+            <UserProg2Name></UserProg2Name>
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
             <nStopA1X>0</nStopA1X>
             <nStopA1X>0</nStopA1X>
             <nStopA2X>0</nStopA2X>
             <nStopA2X>0</nStopA2X>
           </AfterMake>
           </AfterMake>
           <SelectedForBatchBuild>0</SelectedForBatchBuild>
           <SelectedForBatchBuild>0</SelectedForBatchBuild>
-          <SVCSIdString />
+          <SVCSIdString></SVCSIdString>
         </TargetCommonOption>
         </TargetCommonOption>
         <CommonProperty>
         <CommonProperty>
           <UseCPPCompiler>0</UseCPPCompiler>
           <UseCPPCompiler>0</UseCPPCompiler>
@@ -101,8 +104,8 @@
           <AssembleAssemblyFile>0</AssembleAssemblyFile>
           <AssembleAssemblyFile>0</AssembleAssemblyFile>
           <PublicsOnly>0</PublicsOnly>
           <PublicsOnly>0</PublicsOnly>
           <StopOnExitCode>3</StopOnExitCode>
           <StopOnExitCode>3</StopOnExitCode>
-          <CustomArgument />
-          <IncludeLibraryModules />
+          <CustomArgument></CustomArgument>
+          <IncludeLibraryModules></IncludeLibraryModules>
           <ComprImg>1</ComprImg>
           <ComprImg>1</ComprImg>
         </CommonProperty>
         </CommonProperty>
         <DllOption>
         <DllOption>
@@ -136,10 +139,10 @@
           <bUseTDR>1</bUseTDR>
           <bUseTDR>1</bUseTDR>
           <Flash2>BIN\UL2CM3.DLL</Flash2>
           <Flash2>BIN\UL2CM3.DLL</Flash2>
           <Flash3>"" ()</Flash3>
           <Flash3>"" ()</Flash3>
-          <Flash4 />
-          <pFcarmOut />
-          <pFcarmGrp />
-          <pFcArmRoot />
+          <Flash4></Flash4>
+          <pFcarmOut></pFcarmOut>
+          <pFcarmGrp></pFcarmGrp>
+          <pFcArmRoot></pFcArmRoot>
           <FcArmLst>0</FcArmLst>
           <FcArmLst>0</FcArmLst>
         </Utilities>
         </Utilities>
         <TargetArmAds>
         <TargetArmAds>
@@ -172,7 +175,7 @@
             <RvctClst>0</RvctClst>
             <RvctClst>0</RvctClst>
             <GenPPlst>0</GenPPlst>
             <GenPPlst>0</GenPPlst>
             <AdsCpuType>"Cortex-M4"</AdsCpuType>
             <AdsCpuType>"Cortex-M4"</AdsCpuType>
-            <RvctDeviceName />
+            <RvctDeviceName></RvctDeviceName>
             <mOS>0</mOS>
             <mOS>0</mOS>
             <uocRom>0</uocRom>
             <uocRom>0</uocRom>
             <uocRam>0</uocRam>
             <uocRam>0</uocRam>
@@ -304,7 +307,7 @@
                 <Size>0x8000</Size>
                 <Size>0x8000</Size>
               </OCR_RVCT10>
               </OCR_RVCT10>
             </OnChipMemories>
             </OnChipMemories>
-            <RvctStartVector />
+            <RvctStartVector></RvctStartVector>
           </ArmAdsMisc>
           </ArmAdsMisc>
           <Cads>
           <Cads>
             <interw>1</interw>
             <interw>1</interw>
@@ -331,10 +334,10 @@
             <v6WtE>0</v6WtE>
             <v6WtE>0</v6WtE>
             <v6Rtti>0</v6Rtti>
             <v6Rtti>0</v6Rtti>
             <VariousControls>
             <VariousControls>
-              <MiscControls />
+              <MiscControls></MiscControls>
               <Define>USE_HAL_DRIVER, STM32L475xx</Define>
               <Define>USE_HAL_DRIVER, STM32L475xx</Define>
-              <Undefine />
-              <IncludePath>.;applications;board;board\CubeMX_Config\Inc;board\ports;..\libraries\HAL_Drivers;..\libraries\HAL_Drivers\config;..\..\..\include;..\..\..\libcpu\arm\cortex-m4;..\..\..\libcpu\arm\common;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\finsh;..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Inc;..\libraries\STM32L4xx_HAL\CMSIS\Device\ST\STM32L4xx\Include;..\libraries\STM32L4xx_HAL\CMSIS\Include</IncludePath>
+              <Undefine></Undefine>
+              <IncludePath>.;..\..\..\include;.;applications;board;board\CubeMX_Config\Inc;board\ports;..\libraries\HAL_Drivers;..\libraries\HAL_Drivers\config;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\finsh;..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Inc;..\libraries\STM32L4xx_HAL\CMSIS\Device\ST\STM32L4xx\Include;..\libraries\STM32L4xx_HAL\CMSIS\Include</IncludePath>
             </VariousControls>
             </VariousControls>
           </Cads>
           </Cads>
           <Aads>
           <Aads>
@@ -349,10 +352,10 @@
             <useXO>0</useXO>
             <useXO>0</useXO>
             <uClangAs>0</uClangAs>
             <uClangAs>0</uClangAs>
             <VariousControls>
             <VariousControls>
-              <MiscControls />
-              <Define />
-              <Undefine />
-              <IncludePath />
+              <MiscControls></MiscControls>
+              <Define></Define>
+              <Undefine></Undefine>
+              <IncludePath></IncludePath>
             </VariousControls>
             </VariousControls>
           </Aads>
           </Aads>
           <LDads>
           <LDads>
@@ -364,72 +367,17 @@
             <useFile>0</useFile>
             <useFile>0</useFile>
             <TextAddressRange>0x08000000</TextAddressRange>
             <TextAddressRange>0x08000000</TextAddressRange>
             <DataAddressRange>0x20000000</DataAddressRange>
             <DataAddressRange>0x20000000</DataAddressRange>
-            <pXoBase />
+            <pXoBase></pXoBase>
             <ScatterFile>.\board\linker_scripts\link.sct</ScatterFile>
             <ScatterFile>.\board\linker_scripts\link.sct</ScatterFile>
-            <IncludeLibs />
-            <IncludeLibsPath />
-            <Misc> --keep *.o(.rti_fn.*)   --keep *.o(FSymTab)</Misc>
-            <LinkerInputFile />
-            <DisabledWarnings />
+            <IncludeLibs></IncludeLibs>
+            <IncludeLibsPath></IncludeLibsPath>
+            <Misc></Misc>
+            <LinkerInputFile></LinkerInputFile>
+            <DisabledWarnings></DisabledWarnings>
           </LDads>
           </LDads>
         </TargetArmAds>
         </TargetArmAds>
       </TargetOption>
       </TargetOption>
       <Groups>
       <Groups>
-        <Group>
-          <GroupName>Applications</GroupName>
-          <Files>
-            <File>
-              <FileName>main.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>applications\main.c</FilePath>
-            </File>
-          </Files>
-        </Group>
-        <Group>
-          <GroupName>Drivers</GroupName>
-          <Files>
-            <File>
-              <FileName>board.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>board\board.c</FilePath>
-            </File>
-          </Files>
-          <Files>
-            <File>
-              <FileName>stm32l4xx_hal_msp.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>board\CubeMX_Config\Src\stm32l4xx_hal_msp.c</FilePath>
-            </File>
-          </Files>
-          <Files>
-            <File>
-              <FileName>startup_stm32l475xx.s</FileName>
-              <FileType>2</FileType>
-              <FilePath>..\libraries\STM32L4xx_HAL\CMSIS\Device\ST\STM32L4xx\Source\Templates\arm\startup_stm32l475xx.s</FilePath>
-            </File>
-          </Files>
-          <Files>
-            <File>
-              <FileName>drv_gpio.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\libraries\HAL_Drivers\drv_gpio.c</FilePath>
-            </File>
-          </Files>
-          <Files>
-            <File>
-              <FileName>drv_usart.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\libraries\HAL_Drivers\drv_usart.c</FilePath>
-            </File>
-          </Files>
-          <Files>
-            <File>
-              <FileName>drv_common.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\libraries\HAL_Drivers\drv_common.c</FilePath>
-            </File>
-          </Files>
-        </Group>
         <Group>
         <Group>
           <GroupName>Kernel</GroupName>
           <GroupName>Kernel</GroupName>
           <Files>
           <Files>
@@ -438,99 +386,71 @@
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\clock.c</FilePath>
               <FilePath>..\..\..\src\clock.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>components.c</FileName>
               <FileName>components.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\components.c</FilePath>
               <FilePath>..\..\..\src\components.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>cpu.c</FileName>
               <FileName>cpu.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\cpu.c</FilePath>
               <FilePath>..\..\..\src\cpu.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>device.c</FileName>
               <FileName>device.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\device.c</FilePath>
               <FilePath>..\..\..\src\device.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>idle.c</FileName>
               <FileName>idle.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\idle.c</FilePath>
               <FilePath>..\..\..\src\idle.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>ipc.c</FileName>
               <FileName>ipc.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\ipc.c</FilePath>
               <FilePath>..\..\..\src\ipc.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>irq.c</FileName>
               <FileName>irq.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\irq.c</FilePath>
               <FilePath>..\..\..\src\irq.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>kservice.c</FileName>
               <FileName>kservice.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\kservice.c</FilePath>
               <FilePath>..\..\..\src\kservice.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>mem.c</FileName>
               <FileName>mem.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\mem.c</FilePath>
               <FilePath>..\..\..\src\mem.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>mempool.c</FileName>
               <FileName>mempool.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\mempool.c</FilePath>
               <FilePath>..\..\..\src\mempool.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>object.c</FileName>
               <FileName>object.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\object.c</FilePath>
               <FilePath>..\..\..\src\object.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>scheduler.c</FileName>
               <FileName>scheduler.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\scheduler.c</FilePath>
               <FilePath>..\..\..\src\scheduler.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>signal.c</FileName>
               <FileName>signal.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\signal.c</FilePath>
               <FilePath>..\..\..\src\signal.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>thread.c</FileName>
               <FileName>thread.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\src\thread.c</FilePath>
               <FilePath>..\..\..\src\thread.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>timer.c</FileName>
               <FileName>timer.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
@@ -539,41 +459,78 @@
           </Files>
           </Files>
         </Group>
         </Group>
         <Group>
         <Group>
-          <GroupName>CORTEX-M4</GroupName>
+          <GroupName>Applications</GroupName>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>cpuport.c</FileName>
+              <FileName>main.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\libcpu\arm\cortex-m4\cpuport.c</FilePath>
+              <FilePath>applications\main.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
+        </Group>
+        <Group>
+          <GroupName>Drivers</GroupName>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>context_rvds.S</FileName>
+              <FileName>board.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>board\board.c</FilePath>
+            </File>
+            <File>
+              <FileName>stm32l4xx_hal_msp.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>board\CubeMX_Config\Src\stm32l4xx_hal_msp.c</FilePath>
+            </File>
+            <File>
+              <FileName>startup_stm32l475xx.s</FileName>
               <FileType>2</FileType>
               <FileType>2</FileType>
-              <FilePath>..\..\..\libcpu\arm\cortex-m4\context_rvds.S</FilePath>
+              <FilePath>..\libraries\STM32L4xx_HAL\CMSIS\Device\ST\STM32L4xx\Source\Templates\arm\startup_stm32l475xx.s</FilePath>
+            </File>
+            <File>
+              <FileName>drv_gpio.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\libraries\HAL_Drivers\drv_gpio.c</FilePath>
+            </File>
+            <File>
+              <FileName>drv_usart.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\libraries\HAL_Drivers\drv_usart.c</FilePath>
+            </File>
+            <File>
+              <FileName>drv_common.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\libraries\HAL_Drivers\drv_common.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
+        </Group>
+        <Group>
+          <GroupName>cpu</GroupName>
           <Files>
           <Files>
             <File>
             <File>
               <FileName>backtrace.c</FileName>
               <FileName>backtrace.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath>
               <FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>div0.c</FileName>
               <FileName>div0.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
               <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>showmem.c</FileName>
               <FileName>showmem.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath>
               <FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath>
             </File>
             </File>
+            <File>
+              <FileName>cpuport.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\libcpu\arm\cortex-m4\cpuport.c</FilePath>
+            </File>
+            <File>
+              <FileName>context_rvds.S</FileName>
+              <FileType>2</FileType>
+              <FilePath>..\..\..\libcpu\arm\cortex-m4\context_rvds.S</FilePath>
+            </File>
           </Files>
           </Files>
         </Group>
         </Group>
         <Group>
         <Group>
@@ -584,57 +541,41 @@
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\drivers\misc\pin.c</FilePath>
               <FilePath>..\..\..\components\drivers\misc\pin.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>serial.c</FileName>
               <FileName>serial.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\drivers\serial\serial.c</FilePath>
               <FilePath>..\..\..\components\drivers\serial\serial.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>completion.c</FileName>
               <FileName>completion.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\drivers\src\completion.c</FilePath>
               <FilePath>..\..\..\components\drivers\src\completion.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>dataqueue.c</FileName>
               <FileName>dataqueue.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\drivers\src\dataqueue.c</FilePath>
               <FilePath>..\..\..\components\drivers\src\dataqueue.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>pipe.c</FileName>
               <FileName>pipe.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\drivers\src\pipe.c</FilePath>
               <FilePath>..\..\..\components\drivers\src\pipe.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>ringblk_buf.c</FileName>
               <FileName>ringblk_buf.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\drivers\src\ringblk_buf.c</FilePath>
               <FilePath>..\..\..\components\drivers\src\ringblk_buf.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>ringbuffer.c</FileName>
               <FileName>ringbuffer.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\drivers\src\ringbuffer.c</FilePath>
               <FilePath>..\..\..\components\drivers\src\ringbuffer.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>waitqueue.c</FileName>
               <FileName>waitqueue.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\drivers\src\waitqueue.c</FilePath>
               <FilePath>..\..\..\components\drivers\src\waitqueue.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>workqueue.c</FileName>
               <FileName>workqueue.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
@@ -650,36 +591,26 @@
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\finsh\shell.c</FilePath>
               <FilePath>..\..\..\components\finsh\shell.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>symbol.c</FileName>
               <FileName>symbol.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\finsh\symbol.c</FilePath>
               <FilePath>..\..\..\components\finsh\symbol.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>cmd.c</FileName>
               <FileName>cmd.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\finsh\cmd.c</FilePath>
               <FilePath>..\..\..\components\finsh\cmd.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>msh.c</FileName>
               <FileName>msh.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\finsh\msh.c</FilePath>
               <FilePath>..\..\..\components\finsh\msh.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>msh_cmd.c</FileName>
               <FileName>msh_cmd.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\..\..\components\finsh\msh_cmd.c</FilePath>
               <FilePath>..\..\..\components\finsh\msh_cmd.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>msh_file.c</FileName>
               <FileName>msh_file.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
@@ -695,148 +626,106 @@
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\CMSIS\Device\ST\STM32L4xx\Source\Templates\system_stm32l4xx.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\CMSIS\Device\ST\STM32L4xx\Source\Templates\system_stm32l4xx.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal.c</FileName>
               <FileName>stm32l4xx_hal.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_comp.c</FileName>
               <FileName>stm32l4xx_hal_comp.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_comp.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_comp.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_cortex.c</FileName>
               <FileName>stm32l4xx_hal_cortex.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_crc.c</FileName>
               <FileName>stm32l4xx_hal_crc.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_crc.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_crc.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_crc_ex.c</FileName>
               <FileName>stm32l4xx_hal_crc_ex.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_crc_ex.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_crc_ex.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_cryp.c</FileName>
               <FileName>stm32l4xx_hal_cryp.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cryp.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cryp.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_cryp_ex.c</FileName>
               <FileName>stm32l4xx_hal_cryp_ex.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cryp_ex.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cryp_ex.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_dma.c</FileName>
               <FileName>stm32l4xx_hal_dma.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_dma_ex.c</FileName>
               <FileName>stm32l4xx_hal_dma_ex.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_exti.c</FileName>
               <FileName>stm32l4xx_hal_exti.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_exti.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_exti.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_pwr.c</FileName>
               <FileName>stm32l4xx_hal_pwr.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_pwr_ex.c</FileName>
               <FileName>stm32l4xx_hal_pwr_ex.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_rcc.c</FileName>
               <FileName>stm32l4xx_hal_rcc.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_rcc_ex.c</FileName>
               <FileName>stm32l4xx_hal_rcc_ex.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_rng.c</FileName>
               <FileName>stm32l4xx_hal_rng.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rng.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rng.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_sram.c</FileName>
               <FileName>stm32l4xx_hal_sram.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_sram.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_sram.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_gpio.c</FileName>
               <FileName>stm32l4xx_hal_gpio.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_uart.c</FileName>
               <FileName>stm32l4xx_hal_uart.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_uart_ex.c</FileName>
               <FileName>stm32l4xx_hal_uart_ex.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_usart.c</FileName>
               <FileName>stm32l4xx_hal_usart.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_usart.c</FilePath>
               <FilePath>..\libraries\STM32L4xx_HAL\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_usart.c</FilePath>
             </File>
             </File>
-          </Files>
-          <Files>
             <File>
             <File>
               <FileName>stm32l4xx_hal_usart_ex.c</FileName>
               <FileName>stm32l4xx_hal_usart_ex.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
@@ -847,9 +736,11 @@
       </Groups>
       </Groups>
     </Target>
     </Target>
   </Targets>
   </Targets>
+
   <RTE>
   <RTE>
-    <apis />
-    <components />
-    <files />
+    <apis/>
+    <components/>
+    <files/>
   </RTE>
   </RTE>
+
 </Project>
 </Project>

+ 5 - 4
bsp/stm32/stm32l475-atk-pandora/rtconfig.h

@@ -39,7 +39,7 @@
 #define RT_USING_CONSOLE
 #define RT_USING_CONSOLE
 #define RT_CONSOLEBUF_SIZE 256
 #define RT_CONSOLEBUF_SIZE 256
 #define RT_CONSOLE_DEVICE_NAME "uart1"
 #define RT_CONSOLE_DEVICE_NAME "uart1"
-#define RT_VER_NUM 0x40000
+#define RT_VER_NUM 0x40001
 #define ARCH_ARM
 #define ARCH_ARM
 #define ARCH_ARM_CORTEX_M
 #define ARCH_ARM_CORTEX_M
 #define ARCH_ARM_CORTEX_M4
 #define ARCH_ARM_CORTEX_M4
@@ -79,6 +79,7 @@
 #define RT_PIPE_BUFSZ 512
 #define RT_PIPE_BUFSZ 512
 #define RT_USING_SERIAL
 #define RT_USING_SERIAL
 #define RT_SERIAL_USING_DMA
 #define RT_SERIAL_USING_DMA
+#define RT_SERIAL_RB_BUFSZ 64
 #define RT_USING_PIN
 #define RT_USING_PIN
 
 
 /* Using WiFi */
 /* Using WiFi */
@@ -95,6 +96,9 @@
 /* Socket abstraction layer */
 /* Socket abstraction layer */
 
 
 
 
+/* Network interface device */
+
+
 /* light weight TCP/IP stack */
 /* light weight TCP/IP stack */
 
 
 
 
@@ -110,9 +114,6 @@
 /* Utilities */
 /* Utilities */
 
 
 
 
-/* ARM CMSIS */
-
-
 /* RT-Thread online packages */
 /* RT-Thread online packages */
 
 
 /* IoT - internet of things */
 /* IoT - internet of things */

Some files were not shown because too many files changed in this diff