Make USBSerial work -- at last draft

Sun, 03 Oct 2021 22:58:49 +0200

author
David Douard <david.douard@sdfa3.org>
date
Sun, 03 Oct 2021 22:58:49 +0200
changeset 64
897330ee6e9d
parent 63
f71f6c0af3cd
child 65
d9c5eaf85fab

Make USBSerial work -- at last

It needs the revision 4587080d of mbed-os to work (i.e. mbed-os>6.15.0)

TARGET_HP34970_FP_F303RD/PeripheralNames.h file | annotate | diff | comparison | revisions
TARGET_HP34970_FP_F303RD/PeripheralPinMaps.h file | annotate | diff | comparison | revisions
TARGET_HP34970_FP_F303RD/PinNames.h file | annotate | diff | comparison | revisions
TARGET_HP34970_FP_F303RD/STM32F303XE.ld file | annotate | diff | comparison | revisions
custom_targets.json file | annotate | diff | comparison | revisions
platformio.ini file | annotate | diff | comparison | revisions
src/TARGET_HP34970_FP_F303RD/PeripheralPins.c file | annotate | diff | comparison | revisions
src/TARGET_HP34970_FP_F303RD/system_clock.c file | annotate | diff | comparison | revisions
src/def_hp34970_fp.h file | annotate | diff | comparison | revisions
src/main.cpp file | annotate | diff | comparison | revisions
--- a/TARGET_HP34970_FP_F303RD/PeripheralNames.h	Thu Sep 09 21:59:53 2021 +0200
+++ b/TARGET_HP34970_FP_F303RD/PeripheralNames.h	Sun Oct 03 22:58:49 2021 +0200
@@ -38,56 +38,91 @@
 
 typedef enum {
     ADC_1 = (int)ADC1_BASE,
+#if defined ADC2_BASE
     ADC_2 = (int)ADC2_BASE,
+#endif
+#if defined ADC3_BASE
     ADC_3 = (int)ADC3_BASE,
+#endif
+#if defined ADC4_BASE
     ADC_4 = (int)ADC4_BASE
+#endif
 } ADCName;
 
 typedef enum {
-    DAC_1 = (int)DAC_BASE
+    DAC_1 = (int)DAC1_BASE,
+#if defined DAC2_BASE
+    DAC_2 = (int)DAC2_BASE
+#endif
 } DACName;
 
 typedef enum {
     UART_1 = (int)USART1_BASE,
     UART_2 = (int)USART2_BASE,
     UART_3 = (int)USART3_BASE,
+#if defined UART4_BASE
     UART_4 = (int)UART4_BASE,
+#endif
+#if defined UART5_BASE
     UART_5 = (int)UART5_BASE
+#endif
 } UARTName;
 
 #define DEVICE_SPI_COUNT 4
 typedef enum {
+#if defined SPI1_BASE
     SPI_1 = (int)SPI1_BASE,
+#endif
+#if defined SPI2_BASE
     SPI_2 = (int)SPI2_BASE,
+#endif
+#if defined SPI3_BASE
     SPI_3 = (int)SPI3_BASE,
+#endif
+#if defined SPI4_BASE
     SPI_4 = (int)SPI4_BASE
+#endif
 } SPIName;
 
 typedef enum {
     I2C_1 = (int)I2C1_BASE,
+#if defined I2C2_BASE
     I2C_2 = (int)I2C2_BASE,
+#endif
+#if defined I2C3_BASE
     I2C_3 = (int)I2C3_BASE
+#endif
 } I2CName;
 
 typedef enum {
     PWM_1  = (int)TIM1_BASE,
     PWM_2  = (int)TIM2_BASE,
+#if defined TIM3_BASE
     PWM_3  = (int)TIM3_BASE,
+#endif
+#if defined TIM4_BASE
     PWM_4  = (int)TIM4_BASE,
+#endif
+#if defined TIM8_BASE
     PWM_8  = (int)TIM8_BASE,
+#endif
     PWM_15 = (int)TIM15_BASE,
     PWM_16 = (int)TIM16_BASE,
     PWM_17 = (int)TIM17_BASE,
+#if defined TIM20_BASE
     PWM_20 = (int)TIM20_BASE
+#endif
 } PWMName;
 
 typedef enum {
     CAN_1 = (int)CAN_BASE
 } CANName;
 
+#if defined USB_BASE
 typedef enum {
     USB_FS = (int)USB_BASE,
 } USBName;
+#endif
 
 #ifdef __cplusplus
 }
--- a/TARGET_HP34970_FP_F303RD/PeripheralPinMaps.h	Thu Sep 09 21:59:53 2021 +0200
+++ b/TARGET_HP34970_FP_F303RD/PeripheralPinMaps.h	Sun Oct 03 22:58:49 2021 +0200
@@ -135,88 +135,88 @@
 
 // TIM2 cannot be used because already used by the us_ticker
 MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_PWM[] = {
-//  {PA_0,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
-//  {PA_1,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2
-    {PA_1,       PWM_15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM15, 1, 1)}, // TIM15_CH1N
-//  {PA_2,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3 // Connected to STDIO_UART_TX
-//  {PA_2,       PWM_15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM15, 1, 0)}, // TIM15_CH1 // Connected to STDIO_UART_TX
-//  {PA_3,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4 // Connected to STDIO_UART_RX
-//  {PA_3,       PWM_15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM15, 2, 0)}, // TIM15_CH2 // Connected to STDIO_UART_RX
-    {PA_4,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
-//  {PA_5,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 // Connected to LD2 [Green Led]
-    {PA_6,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
-    {PA_6_ALT0,  PWM_16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM16, 1, 0)}, // TIM16_CH1
-    {PA_7,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_TIM1, 1, 1)}, // TIM1_CH1N
-    {PA_7_ALT0,  PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
-    {PA_7_ALT1,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM8, 1, 1)}, // TIM8_CH1N
-    {PA_7_ALT2,  PWM_17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM17, 1, 0)}, // TIM17_CH1
-    {PA_8,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_TIM1, 1, 0)}, // TIM1_CH1
-    {PA_9,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_TIM1, 2, 0)}, // TIM1_CH2
-//  {PA_9,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_TIM2, 3, 0)}, // TIM2_CH3
-    {PA_10,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_TIM1, 3, 0)}, // TIM1_CH3
-//  {PA_10,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_TIM2, 4, 0)}, // TIM2_CH4
-    {PA_11,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_TIM1, 1, 1)}, // TIM1_CH1N
-    {PA_11_ALT0, PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_TIM1, 4, 0)}, // TIM1_CH4
-    {PA_11_ALT1, PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_TIM4, 1, 0)}, // TIM4_CH1
-    {PA_12,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_TIM1, 2, 1)}, // TIM1_CH2N
-    {PA_12_ALT0, PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_TIM4, 2, 0)}, // TIM4_CH2
-    {PA_12_ALT1, PWM_16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM16, 1, 0)}, // TIM16_CH1
-    {PA_13,      PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_TIM4, 3, 0)}, // TIM4_CH3 // Connected to TMS
-    {PA_13_ALT0, PWM_16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM16, 1, 1)}, // TIM16_CH1N // Connected to TMS
-    {PA_14,      PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_TIM8, 2, 0)}, // TIM8_CH2 // Connected to TCK
-//  {PA_15,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
-    {PA_15,      PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM8, 1, 0)}, // TIM8_CH1
-    {PB_0,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_TIM1, 2, 1)}, // TIM1_CH2N
-    {PB_0_ALT0,  PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3
-    {PB_0_ALT1,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM8, 2, 1)}, // TIM8_CH2N
-    {PB_1,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_TIM1, 3, 1)}, // TIM1_CH3N
-    {PB_1_ALT0,  PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4
-    {PB_1_ALT1,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM8, 3, 1)}, // TIM8_CH3N
-//  {PB_3,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2 // Connected to SWO
-    {PB_3,       PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM8, 1, 1)}, // TIM8_CH1N // Connected to SWO
-    {PB_4,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
-    {PB_4_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM8, 2, 1)}, // TIM8_CH2N
-    {PB_4_ALT1,  PWM_16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM16, 1, 0)}, // TIM16_CH1
-    {PB_5,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
-    {PB_5_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 1)}, // TIM8_CH3N
-    {PB_5_ALT1,  PWM_17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_TIM17, 1, 0)}, // TIM17_CH1
-    {PB_6,       PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1
-    {PB_6_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_TIM8, 1, 0)}, // TIM8_CH1
-    {PB_6_ALT1,  PWM_16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM16, 1, 1)}, // TIM16_CH1N
-    {PB_7,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_TIM3, 4, 0)}, // TIM3_CH4
-    {PB_7_ALT0,  PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2
-    {PB_7_ALT1,  PWM_17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM17, 1, 1)}, // TIM17_CH1N
-    {PB_8,       PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3
-    {PB_8_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_TIM8, 2, 0)}, // TIM8_CH2
-    {PB_8_ALT1,  PWM_16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM16, 1, 0)}, // TIM16_CH1
-    {PB_9,       PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4
-    {PB_9_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_TIM8, 3, 0)}, // TIM8_CH3
-    {PB_9_ALT1,  PWM_17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM17, 1, 0)}, // TIM17_CH1
-//  {PB_10,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3
-//  {PB_11,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4
-    {PB_13,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_TIM1, 1, 1)}, // TIM1_CH1N
-    {PB_14,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_TIM1, 2, 1)}, // TIM1_CH2N
-    {PB_14_ALT0, PWM_15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM15, 1, 0)}, // TIM15_CH1
-    {PB_15,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM1, 3, 1)}, // TIM1_CH3N
-    {PB_15_ALT0, PWM_15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM15, 1, 1)}, // TIM15_CH1N
-    {PB_15_ALT1, PWM_15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM15, 2, 0)}, // TIM15_CH2
-    {PC_0,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 1, 0)}, // TIM1_CH1
-    {PC_1,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 2, 0)}, // TIM1_CH2
-    {PC_2,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 3, 0)}, // TIM1_CH3
-    {PC_3,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 4, 0)}, // TIM1_CH4
-    {PC_6,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
-    {PC_6_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM8, 1, 0)}, // TIM8_CH1
-    {PC_7,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
-    {PC_7_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM8, 2, 0)}, // TIM8_CH2
-    {PC_8,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3
-    {PC_8_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM8, 3, 0)}, // TIM8_CH3
-    {PC_9,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4
-    {PC_9_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM8, 4, 0)}, // TIM8_CH4
-    {PC_10,      PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM8, 1, 1)}, // TIM8_CH1N
-    {PC_11,      PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM8, 2, 1)}, // TIM8_CH2N
-    {PC_12,      PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM8, 3, 1)}, // TIM8_CH3N
-    {PC_13,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM1, 1, 1)}, // TIM1_CH1N // Connected to B1 [Blue PushButton]
-//  {PF_0,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_TIM1, 3, 1)}, // TIM1_CH3N // Connected to RCC_OSC_IN
+//  {PA_0,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
+//  {PA_1,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2
+    {PA_1,       PWM_15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_TIM15, 1, 1)}, // TIM15_CH1N
+//  {PA_2,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3 // Connected to STDIO_UART_TX
+//  {PA_2,       PWM_15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_TIM15, 1, 0)}, // TIM15_CH1 // Connected to STDIO_UART_TX
+//  {PA_3,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4 // Connected to STDIO_UART_RX
+//  {PA_3,       PWM_15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_TIM15, 2, 0)}, // TIM15_CH2 // Connected to STDIO_UART_RX
+    {PA_4,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
+//  {PA_5,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 // Connected to LD2 [Green Led]
+    {PA_6,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
+    {PA_6_ALT0,  PWM_16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM16, 1, 0)}, // TIM16_CH1
+    {PA_7,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_TIM1, 1, 1)}, // TIM1_CH1N
+    {PA_7_ALT0,  PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
+    {PA_7_ALT1,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF4_TIM8, 1, 1)}, // TIM8_CH1N
+    {PA_7_ALT2,  PWM_17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM17, 1, 0)}, // TIM17_CH1
+    {PA_8,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_TIM1, 1, 0)}, // TIM1_CH1
+    {PA_9,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_TIM1, 2, 0)}, // TIM1_CH2
+//  {PA_9,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF10_TIM2, 3, 0)}, // TIM2_CH3
+    {PA_10,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_TIM1, 3, 0)}, // TIM1_CH3
+//  {PA_10,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF10_TIM2, 4, 0)}, // TIM2_CH4
+    {PA_11,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_TIM1, 1, 1)}, // TIM1_CH1N
+    {PA_11_ALT0, PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF11_TIM1, 4, 0)}, // TIM1_CH4
+    {PA_11_ALT1, PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF10_TIM4, 1, 0)}, // TIM4_CH1
+    {PA_12,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_TIM1, 2, 1)}, // TIM1_CH2N
+    {PA_12_ALT0, PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF10_TIM4, 2, 0)}, // TIM4_CH2
+    {PA_12_ALT1, PWM_16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM16, 1, 0)}, // TIM16_CH1
+    {PA_13,      PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF10_TIM4, 3, 0)}, // TIM4_CH3 // Connected to TMS
+    {PA_13_ALT0, PWM_16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM16, 1, 1)}, // TIM16_CH1N // Connected to TMS
+    {PA_14,      PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_TIM8, 2, 0)}, // TIM8_CH2 // Connected to TCK
+//  {PA_15,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
+    {PA_15,      PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM8, 1, 0)}, // TIM8_CH1
+    {PB_0,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_TIM1, 2, 1)}, // TIM1_CH2N
+    {PB_0_ALT0,  PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3
+    {PB_0_ALT1,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF4_TIM8, 2, 1)}, // TIM8_CH2N
+    {PB_1,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_TIM1, 3, 1)}, // TIM1_CH3N
+    {PB_1_ALT0,  PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4
+    {PB_1_ALT1,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF4_TIM8, 3, 1)}, // TIM8_CH3N
+//  {PB_3,       PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2 // Connected to SWO
+    {PB_3,       PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF4_TIM8, 1, 1)}, // TIM8_CH1N // Connected to SWO
+    {PB_4,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
+    {PB_4_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF4_TIM8, 2, 1)}, // TIM8_CH2N
+    {PB_4_ALT1,  PWM_16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM16, 1, 0)}, // TIM16_CH1
+    {PB_5,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
+    {PB_5_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF3_TIM8, 3, 1)}, // TIM8_CH3N
+    {PB_5_ALT1,  PWM_17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF10_TIM17, 1, 0)}, // TIM17_CH1
+    {PB_6,       PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1
+    {PB_6_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_TIM8, 1, 0)}, // TIM8_CH1
+    {PB_6_ALT1,  PWM_16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM16, 1, 1)}, // TIM16_CH1N
+    {PB_7,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF10_TIM3, 4, 0)}, // TIM3_CH4
+    {PB_7_ALT0,  PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2
+    {PB_7_ALT1,  PWM_17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM17, 1, 1)}, // TIM17_CH1N
+    {PB_8,       PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3
+    {PB_8_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF10_TIM8, 2, 0)}, // TIM8_CH2
+    {PB_8_ALT1,  PWM_16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM16, 1, 0)}, // TIM16_CH1
+    {PB_9,       PWM_4,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4
+    {PB_9_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF10_TIM8, 3, 0)}, // TIM8_CH3
+    {PB_9_ALT1,  PWM_17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM17, 1, 0)}, // TIM17_CH1
+//  {PB_10,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3
+//  {PB_11,      PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4
+    {PB_13,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_TIM1, 1, 1)}, // TIM1_CH1N
+    {PB_14,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_TIM1, 2, 1)}, // TIM1_CH2N
+    {PB_14_ALT0, PWM_15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM15, 1, 0)}, // TIM15_CH1
+    {PB_15,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF4_TIM1, 3, 1)}, // TIM1_CH3N
+    {PB_15_ALT0, PWM_15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM15, 1, 1)}, // TIM15_CH1N
+    {PB_15_ALT1, PWM_15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF1_TIM15, 2, 0)}, // TIM15_CH2
+    {PC_0,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM1, 1, 0)}, // TIM1_CH1
+    {PC_1,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM1, 2, 0)}, // TIM1_CH2
+    {PC_2,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM1, 3, 0)}, // TIM1_CH3
+    {PC_3,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM1, 4, 0)}, // TIM1_CH4
+    {PC_6,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
+    {PC_6_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF4_TIM8, 1, 0)}, // TIM8_CH1
+    {PC_7,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
+    {PC_7_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF4_TIM8, 2, 0)}, // TIM8_CH2
+    {PC_8,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3
+    {PC_8_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF4_TIM8, 3, 0)}, // TIM8_CH3
+    {PC_9,       PWM_3,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4
+    {PC_9_ALT0,  PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF4_TIM8, 4, 0)}, // TIM8_CH4
+    {PC_10,      PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF4_TIM8, 1, 1)}, // TIM8_CH1N
+    {PC_11,      PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF4_TIM8, 2, 1)}, // TIM8_CH2N
+    {PC_12,      PWM_8,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF4_TIM8, 3, 1)}, // TIM8_CH3N
+    {PC_13,      PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF4_TIM1, 1, 1)}, // TIM1_CH1N // Connected to B1 [Blue PushButton]
+//  {PF_0,       PWM_1,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_TIM1, 3, 1)}, // TIM1_CH3N // Connected to RCC_OSC_IN
     {NC, NC, 0}
 };
 
@@ -348,4 +348,4 @@
 #define PINMAP_CAN_RD PinMap_CAN_RD
 #define PINMAP_CAN_TD PinMap_CAN_TD
 
-#endif
\ No newline at end of file
+#endif
--- a/TARGET_HP34970_FP_F303RD/PinNames.h	Thu Sep 09 21:59:53 2021 +0200
+++ b/TARGET_HP34970_FP_F303RD/PinNames.h	Sun Oct 03 22:58:49 2021 +0200
@@ -1,33 +1,22 @@
 /* mbed Microcontroller Library
- *******************************************************************************
- * Copyright (c) 2018, STMicroelectronics
+ * SPDX-License-Identifier: BSD-3-Clause
+ ******************************************************************************
+ *
+ * Copyright (c) 2016-2021 STMicroelectronics.
  * All rights reserved.
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
+ * This software component is licensed by ST under BSD 3-Clause license,
+ * the "License"; You may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ *                        opensource.org/licenses/BSD-3-Clause
  *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *******************************************************************************
+ ******************************************************************************
+ *
+ * Automatically generated from STM32CubeMX/db/mcu/STM32F303R(D-E)Tx.xml
  */
 
+/* MBED TARGET LIST: NUCLEO_F303RE */
+
 #ifndef MBED_PINNAMES_H
 #define MBED_PINNAMES_H
 
@@ -45,177 +34,157 @@
     ALT0  = 0x100,
     ALT1  = 0x200,
     ALT2  = 0x300,
-    ALT3  = 0x400
 } ALTx;
 
 typedef enum {
-    PA_0  = 0x00,
-    PA_1  = 0x01,
-    PA_2  = 0x02,
-    PA_3  = 0x03,
-    PA_4  = 0x04,
-    PA_4_ALT0 = PA_4 | ALT0,
-    PA_5  = 0x05,
-    PA_6  = 0x06,
-    PA_6_ALT0 = PA_6 | ALT0,
-    PA_7  = 0x07,
-    PA_7_ALT0 = PA_7 | ALT0,
-    PA_7_ALT1 = PA_7 | ALT1,
-    PA_7_ALT2 = PA_7 | ALT2,
-    PA_8  = 0x08,
-    PA_9  = 0x09,
-    PA_10 = 0x0A,
-    PA_11 = 0x0B,
-    PA_11_ALT0 = PA_11 | ALT0,
-    PA_11_ALT1 = PA_11 | ALT1,
-    PA_12 = 0x0C,
-    PA_12_ALT0 = PA_12 | ALT0,
-    PA_12_ALT1 = PA_12 | ALT1,
-    PA_13 = 0x0D,
-    PA_13_ALT0 = PA_13 | ALT0,
-    PA_14 = 0x0E,
-    PA_15 = 0x0F,
-    PA_15_ALT0 = PA_15 | ALT0,
-
-    PB_0  = 0x10,
-    PB_0_ALT0 = PB_0 | ALT0,
-    PB_0_ALT1 = PB_0 | ALT1,
-    PB_1  = 0x11,
-    PB_1_ALT0 = PB_1 | ALT0,
-    PB_1_ALT1 = PB_1 | ALT1,
-    PB_2  = 0x12,
-    PB_3  = 0x13,
-    PB_3_ALT0 = PB_3 | ALT0,
-    PB_4  = 0x14,
-    PB_4_ALT0 = PB_4 | ALT0,
-    PB_4_ALT1 = PB_4 | ALT1,
-    PB_5  = 0x15,
-    PB_5_ALT0 = PB_5 | ALT0,
-    PB_5_ALT1 = PB_5 | ALT1,
-    PB_6  = 0x16,
-    PB_6_ALT0 = PB_6 | ALT0,
-    PB_6_ALT1 = PB_6 | ALT1,
-    PB_7  = 0x17,
-    PB_7_ALT0 = PB_7 | ALT0,
-    PB_7_ALT1 = PB_7 | ALT1,
-    PB_8  = 0x18,
-    PB_8_ALT0 = PB_8 | ALT0,
-    PB_8_ALT1 = PB_8 | ALT1,
-    PB_9  = 0x19,
-    PB_9_ALT0 = PB_9 | ALT0,
-    PB_9_ALT1 = PB_9 | ALT1,
-    PB_10 = 0x1A,
-    PB_11 = 0x1B,
-    PB_11_ALT0 = PB_11 | ALT0,
-    PB_12 = 0x1C,
-    PB_13 = 0x1D,
-    PB_14 = 0x1E,
-    PB_14_ALT0 = PB_14 | ALT0,
-    PB_15 = 0x1F,
-    PB_15_ALT0 = PB_15 | ALT0,
-    PB_15_ALT1 = PB_15 | ALT1,
 
-    PC_0  = 0x20,
-    PC_0_ALT0 = PC_0 | ALT0,
-    PC_1  = 0x21,
-    PC_1_ALT0 = PC_1 | ALT0,
-    PC_2  = 0x22,
-    PC_2_ALT0 = PC_2 | ALT0,
-    PC_3  = 0x23,
-    PC_3_ALT0 = PC_3 | ALT0,
-    PC_4  = 0x24,
-    PC_5  = 0x25,
-    PC_6  = 0x26,
-    PC_6_ALT0 = PC_6 | ALT0,
-    PC_7  = 0x27,
-    PC_7_ALT0 = PC_7 | ALT0,
-    PC_8  = 0x28,
-    PC_8_ALT0 = PC_8 | ALT0,
-    PC_9  = 0x29,
-    PC_9_ALT0 = PC_9 | ALT0,
-    PC_10 = 0x2A,
-    PC_10_ALT0 = PC_10 | ALT0,
-    PC_11 = 0x2B,
-    PC_11_ALT0 = PC_11 | ALT0,
-    PC_12 = 0x2C,
-    PC_13 = 0x2D,
-    PC_14 = 0x2E,
-    PC_15 = 0x2F,
-
-    PD_2  = 0x32,
-
-    PF_0  = 0x50,
-    PF_1  = 0x51,
+    PA_0       = 0x00,
+    PA_1       = 0x01,
+    PA_2       = 0x02,
+    PA_3       = 0x03,
+    PA_4       = 0x04,
+    PA_4_ALT0  = PA_4  | ALT0, // same pin used for alternate HW
+    PA_5       = 0x05,
+    PA_6       = 0x06,
+    PA_6_ALT0  = PA_6  | ALT0, // same pin used for alternate HW
+    PA_7       = 0x07,
+    PA_7_ALT0  = PA_7  | ALT0, // same pin used for alternate HW
+    PA_7_ALT1  = PA_7  | ALT1, // same pin used for alternate HW
+    PA_7_ALT2  = PA_7  | ALT2, // same pin used for alternate HW
+    PA_8       = 0x08,
+    PA_9       = 0x09,
+    PA_10      = 0x0A,
+    PA_11      = 0x0B,
+    PA_11_ALT0 = PA_11 | ALT0, // same pin used for alternate HW
+    PA_11_ALT1 = PA_11 | ALT1, // same pin used for alternate HW
+    PA_12      = 0x0C,
+    PA_12_ALT0 = PA_12 | ALT0, // same pin used for alternate HW
+    PA_12_ALT1 = PA_12 | ALT1, // same pin used for alternate HW
+    PA_13      = 0x0D,
+    PA_13_ALT0 = PA_13 | ALT0, // same pin used for alternate HW
+    PA_14      = 0x0E,
+    PA_15      = 0x0F,
+    PA_15_ALT0 = PA_15 | ALT0, // same pin used for alternate HW
+    PB_0       = 0x10,
+    PB_0_ALT0  = PB_0  | ALT0, // same pin used for alternate HW
+    PB_0_ALT1  = PB_0  | ALT1, // same pin used for alternate HW
+    PB_1       = 0x11,
+    PB_1_ALT0  = PB_1  | ALT0, // same pin used for alternate HW
+    PB_1_ALT1  = PB_1  | ALT1, // same pin used for alternate HW
+    PB_2       = 0x12,
+    PB_3       = 0x13,
+    PB_3_ALT0  = PB_3  | ALT0, // same pin used for alternate HW
+    PB_4       = 0x14,
+    PB_4_ALT0  = PB_4  | ALT0, // same pin used for alternate HW
+    PB_4_ALT1  = PB_4  | ALT1, // same pin used for alternate HW
+    PB_5       = 0x15,
+    PB_5_ALT0  = PB_5  | ALT0, // same pin used for alternate HW
+    PB_5_ALT1  = PB_5  | ALT1, // same pin used for alternate HW
+    PB_6       = 0x16,
+    PB_6_ALT0  = PB_6  | ALT0, // same pin used for alternate HW
+    PB_6_ALT1  = PB_6  | ALT1, // same pin used for alternate HW
+    PB_7       = 0x17,
+    PB_7_ALT0  = PB_7  | ALT0, // same pin used for alternate HW
+    PB_7_ALT1  = PB_7  | ALT1, // same pin used for alternate HW
+    PB_8       = 0x18,
+    PB_8_ALT0  = PB_8  | ALT0, // same pin used for alternate HW
+    PB_8_ALT1  = PB_8  | ALT1, // same pin used for alternate HW
+    PB_9       = 0x19,
+    PB_9_ALT0  = PB_9  | ALT0, // same pin used for alternate HW
+    PB_9_ALT1  = PB_9  | ALT1, // same pin used for alternate HW
+    PB_10      = 0x1A,
+    PB_11      = 0x1B,
+    PB_11_ALT0 = PB_11 | ALT0, // same pin used for alternate HW
+    PB_12      = 0x1C,
+    PB_13      = 0x1D,
+    PB_14      = 0x1E,
+    PB_14_ALT0 = PB_14 | ALT0, // same pin used for alternate HW
+    PB_15      = 0x1F,
+    PB_15_ALT0 = PB_15 | ALT0, // same pin used for alternate HW
+    PB_15_ALT1 = PB_15 | ALT1, // same pin used for alternate HW
+    PC_0       = 0x20,
+    PC_0_ALT0  = PC_0  | ALT0, // same pin used for alternate HW
+    PC_1       = 0x21,
+    PC_1_ALT0  = PC_1  | ALT0, // same pin used for alternate HW
+    PC_2       = 0x22,
+    PC_2_ALT0  = PC_2  | ALT0, // same pin used for alternate HW
+    PC_3       = 0x23,
+    PC_3_ALT0  = PC_3  | ALT0, // same pin used for alternate HW
+    PC_4       = 0x24,
+    PC_5       = 0x25,
+    PC_6       = 0x26,
+    PC_6_ALT0  = PC_6  | ALT0, // same pin used for alternate HW
+    PC_7       = 0x27,
+    PC_7_ALT0  = PC_7  | ALT0, // same pin used for alternate HW
+    PC_8       = 0x28,
+    PC_8_ALT0  = PC_8  | ALT0, // same pin used for alternate HW
+    PC_9       = 0x29,
+    PC_9_ALT0  = PC_9  | ALT0, // same pin used for alternate HW
+    PC_10      = 0x2A,
+    PC_10_ALT0 = PC_10 | ALT0, // same pin used for alternate HW
+    PC_11      = 0x2B,
+    PC_11_ALT0 = PC_11 | ALT0, // same pin used for alternate HW
+    PC_12      = 0x2C,
+    PC_13      = 0x2D,
+    PC_14      = 0x2E,
+    PC_15      = 0x2F,
+    PD_2       = 0x32,
+    PF_0       = 0x50,
+    PF_1       = 0x51,
 
-    // ADC internal channels
-    ADC_TEMP    = 0xF0,
-    ADC_VREF1   = 0xF1,
-    ADC_VREF2   = 0xF2,
-    ADC_VREF3   = 0xF3,
-    ADC_VREF4   = 0xF4,
-    ADC_VREF    = ADC_VREF1,
-    ADC_VBAT    = 0xF5,
-    ADC_VOPAMP1 = 0xF6,
-    ADC_VOPAMP2 = 0xF7,
-    ADC_VOPAMP3 = 0xF8,
-    ADC_VOPAMP4 = 0xF9,
+    /**** ADC internal channels ****/
+
+    ADC_TEMP = 0xF0,         // Internal pin virtual value
+    ADC_VREF1   = 0xF1,      // Internal pin virtual value
+    ADC_VREF2   = 0xF2,      // Internal pin virtual value
+    ADC_VREF3   = 0xF3,      // Internal pin virtual value
+    ADC_VREF4   = 0xF4,      // Internal pin virtual value
+    ADC_VREF    = ADC_VREF1, // Internal pin virtual value
+    ADC_VBAT    = 0xF5,      // Internal pin virtual value
+    ADC_VOPAMP1 = 0xF6,      // Internal pin virtual value
+    ADC_VOPAMP2 = 0xF7,      // Internal pin virtual value
+    ADC_VOPAMP3 = 0xF8,      // Internal pin virtual value
+    ADC_VOPAMP4 = 0xF9,      // Internal pin virtual value
 
-    // Arduino connector namings
-    A0          = PA_0,
-    A1          = PA_1,
-    A2          = PA_4,
-    A3          = PB_0,
-    A4          = PC_1,
-    A5          = PC_0,
-    D0          = PA_3,
-    D1          = PA_2,
-    D2          = PA_10,
-    D3          = PB_3,
-    D4          = PB_5,
-    D5          = PB_4,
-    D6          = PB_10,
-    D7          = PA_8,
-    D8          = PA_9,
-    D9          = PC_7,
-    D10         = PB_6,
-    D11         = PA_7,
-    D12         = PA_6,
-    D13         = PA_5,
-    D14         = PB_9,
-    D15         = PB_8,
+#ifdef TARGET_FF_ARDUINO_UNO
+    // Arduino Uno (Rev3) pins
+    ARDUINO_UNO_A0  = PA_0,
+    ARDUINO_UNO_A1  = PA_1,
+    ARDUINO_UNO_A2  = PA_4,
+    ARDUINO_UNO_A3  = PB_0,
+    ARDUINO_UNO_A4  = PC_1,
+    ARDUINO_UNO_A5  = PC_0,
+
+    ARDUINO_UNO_D0  = PA_3,
+    ARDUINO_UNO_D1  = PA_2,
+    ARDUINO_UNO_D2  = PA_10,
+    ARDUINO_UNO_D3  = PB_3,
+    ARDUINO_UNO_D4  = PB_5,
+    ARDUINO_UNO_D5  = PB_4,
+    ARDUINO_UNO_D6  = PB_10,
+    ARDUINO_UNO_D7  = PA_8,
+    ARDUINO_UNO_D8  = PA_9,
+    ARDUINO_UNO_D9  = PC_7,
+    ARDUINO_UNO_D10 = PB_6,
+    ARDUINO_UNO_D11 = PA_7,
+    ARDUINO_UNO_D12 = PA_6,
+    ARDUINO_UNO_D13 = PA_5,
+    ARDUINO_UNO_D14 = PB_9,
+    ARDUINO_UNO_D15 = PB_8,
+#endif
 
     // STDIO for console print
 #ifdef MBED_CONF_TARGET_STDIO_UART_TX
-    STDIO_UART_TX = MBED_CONF_TARGET_STDIO_UART_TX,
+    CONSOLE_TX = MBED_CONF_TARGET_STDIO_UART_TX,
 #else
-    STDIO_UART_TX = PA_2,
+    CONSOLE_TX = PA_2,
 #endif
 #ifdef MBED_CONF_TARGET_STDIO_UART_RX
-    STDIO_UART_RX = MBED_CONF_TARGET_STDIO_UART_RX,
+    CONSOLE_RX = MBED_CONF_TARGET_STDIO_UART_RX,
 #else
-    STDIO_UART_RX = PA_3,
+    CONSOLE_RX = PA_3,
 #endif
 
-    // Generic signals namings
-    LED1        = PA_5,
-    LED2        = PA_5,
-    LED3        = PA_5,
-    LED4        = PA_5,
-    USER_BUTTON = PC_13,
-    // Standardized button names
-    BUTTON1 = USER_BUTTON,
-    SERIAL_TX   = STDIO_UART_TX,
-    SERIAL_RX   = STDIO_UART_RX,
-    USBTX       = STDIO_UART_TX,
-    USBRX       = STDIO_UART_RX,
-    I2C_SCL     = PB_8,
-    I2C_SDA     = PB_9,
-    SPI_MOSI    = PA_7,
-    SPI_MISO    = PA_6,
-    SPI_SCK     = PA_5,
-    SPI_CS      = PB_6,
-    PWM_OUT     = PB_4,
-
     /**** USB pins ****/
     USB_DM = PA_11,
     USB_DP = PA_12,
@@ -239,6 +208,10 @@
     NC = (int)0xFFFFFFFF
 } PinName;
 
+// Standardized LED and button names
+#define LED1     PA_5   // LD2 [Green Led]
+#define BUTTON1  PC_13  // B1 [Blue PushButton]
+
 #ifdef __cplusplus
 }
 #endif
--- a/TARGET_HP34970_FP_F303RD/STM32F303XE.ld	Thu Sep 09 21:59:53 2021 +0200
+++ b/TARGET_HP34970_FP_F303RD/STM32F303XE.ld	Sun Oct 03 22:58:49 2021 +0200
@@ -26,10 +26,10 @@
   #define MBED_APP_SIZE  MBED_ROM_SIZE
 #endif
 
-#if !defined(MBED_BOOT_STACK_SIZE)
+#if !defined(MBED_CONF_TARGET_BOOT_STACK_SIZE)
     /* This value is normally defined by the tools
        to 0x1000 for bare metal and 0x400 for RTOS */
-    #define MBED_BOOT_STACK_SIZE  0x400
+    #define MBED_CONF_TARGET_BOOT_STACK_SIZE  0x400
 #endif
 
 /* Round up VECTORS_SIZE to 8 bytes */
@@ -113,7 +113,7 @@
 
     __etext = .;
     _sidata = .;
-
+    
     .data : AT (__etext)
     {
         __data_start__ = .;
@@ -161,7 +161,7 @@
         . = ALIGN(32);
         __uninitialized_end = .;
     } > RAM
-
+    
     .bss :
     {
         . = ALIGN(8);
@@ -179,7 +179,7 @@
         __end__ = .;
         PROVIDE(end = .);
         *(.heap*)
-        . = ORIGIN(RAM) + LENGTH(RAM) - MBED_BOOT_STACK_SIZE;
+        . = ORIGIN(RAM) + LENGTH(RAM) - MBED_CONF_TARGET_BOOT_STACK_SIZE;
         __HeapLimit = .;
     } > RAM
 
@@ -195,7 +195,7 @@
      * size of stack_dummy section */
     __StackTop = ORIGIN(RAM) + LENGTH(RAM);
     _estack = __StackTop;
-    __StackLimit = __StackTop - MBED_BOOT_STACK_SIZE;
+    __StackLimit = __StackTop - MBED_CONF_TARGET_BOOT_STACK_SIZE;
     PROVIDE(__stack = __StackTop);
 
     /* Check if data + heap + stack exceeds RAM limit */
--- a/custom_targets.json	Thu Sep 09 21:59:53 2021 +0200
+++ b/custom_targets.json	Sun Oct 03 22:58:49 2021 +0200
@@ -4,11 +4,14 @@
       "MCU_STM32F303xE"
     ],
     "overrides": {
-      "clock_source": "USE_PLL_HSE_XTAL"
+		"clock_source": "USE_PLL_HSE_XTAL"
     },
     "device_has_add": [
       "USBDEVICE"
     ],
+	  "device_has_remove": [
+		  "CAN"
+	  ],
     "mbed_rom_size": "0x60000",
     "bootloader_supported": true,
     "device_name": "STM32F303RE"
--- a/platformio.ini	Thu Sep 09 21:59:53 2021 +0200
+++ b/platformio.ini	Sun Oct 03 22:58:49 2021 +0200
@@ -17,27 +17,11 @@
 # Automatic targets - enable auto-uploading
 # targets = upload
 
-# stay on mbed 5.15 for now
-[env:f446re]
-platform = ststm32
-framework = mbed
-#platform_packages =
-#    framework-mbed @ ~6.51504.0
-board = nucleo_f446re
-build_flags = -DHAVE_PC
-#build_flags = -DHAVE_PC --verbose
-#lib_compat_mode = 0
-#build_flags = -DHAVE_PC -DPIO_FRAMEWORK_MBED_RTOS_PRESENT
-#-DDEVICE_SPI_ASYNCH=
-
-[env:f303re]
-platform = ststm32
-framework = mbed
-board = nucleo_f303re
-
 [env:fp_dfu]
 platform = ststm32
 framework = mbed
+platform_packages =
+  framework-mbed @ https://github.com/douardda/mbed-os.git#platformio
 board = hp34970_fp_f303rd
 board_build.mbed.ldscript =
     $PROJECTSRC_DIR/../TARGET_HP34970_FP_F303RD/STM32F303XE.ld
@@ -50,11 +34,13 @@
 [env:fp_stlink]
 platform = ststm32
 framework = mbed
+platform_packages =
+  framework-mbed @ https://github.com/douardda/mbed-os.git#platformio
 board = hp34970_fp_f303rd
 board_build.mbed.ldscript =
     $PROJECTSRC_DIR/../TARGET_HP34970_FP_F303RD/STM32F303XE.ld
 build_flags =
-    -DHAVE_PC
+    -DHAVE_PC -DSTUFF
     -I$PROJECTSRC_DIR/../TARGET_HP34970_FP_F303RD
 debug_tool = stlink
 upload_protocol = stlink
--- a/src/TARGET_HP34970_FP_F303RD/PeripheralPins.c	Thu Sep 09 21:59:53 2021 +0200
+++ b/src/TARGET_HP34970_FP_F303RD/PeripheralPins.c	Sun Oct 03 22:58:49 2021 +0200
@@ -28,8 +28,6 @@
  *******************************************************************************
  */
 
-#if defined(TARGET_HP34970_FP_F303RD)
 #include "PeripheralPins.h"
 #include "mbed_toolchain.h"
 #include "PeripheralPinMaps.h"
-#endif
--- a/src/TARGET_HP34970_FP_F303RD/system_clock.c	Thu Sep 09 21:59:53 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-/* mbed Microcontroller Library
-* Copyright (c) 2006-2017 ARM Limited
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
--- a/src/def_hp34970_fp.h	Thu Sep 09 21:59:53 2021 +0200
+++ b/src/def_hp34970_fp.h	Sun Oct 03 22:58:49 2021 +0200
@@ -35,10 +35,14 @@
 #define KP_C4 PB_0
 
 #if defined(HAVE_PC)
-//#include <USBSerial.h>
-//USBSerial pc;
+
+#include <USBSerial.h>
+#if 1
+USBSerial pc(false);  // PA_11 USB_DM, PA_12 USB_DP (with 1.5k pull-up)
+#else
 BufferedSerial pc(PC_10_ALT0, PC_11_ALT0, 115200); // UART_4
-//BufferedSerial pc(PC_10, PC_11, 115200); // UART_4
 #endif
 
 #endif
+
+#endif
--- a/src/main.cpp	Thu Sep 09 21:59:53 2021 +0200
+++ b/src/main.cpp	Sun Oct 03 22:58:49 2021 +0200
@@ -18,11 +18,7 @@
 #endif
 
 #include "platform/CircularBuffer.h"
-
-// cannot make it work...
-// #include <USBSerial.h>
-// USBSerial usbcdc(false);
-
+#include <USBSerial.h>
 
 Display *dsp;
 volatile bool splashscreen;
@@ -154,23 +150,25 @@
 FileHandle *mbed::mbed_override_console(int fd)
 {
 	return static_cast<FileHandle*> (&pc);
+	//return &pc;
 }
 #endif
 
 
 void setup() {
+#if defined(HAVE_PC)
+	pc.connect();
+	ThisThread::sleep_for(100ms);
+	//pc.printf("SERIAL CONNECTION\r\n");
+#endif
+
   printf("\n\nSETUP\n");
   printf("  System Core Clock = %ld MHZ\r\n", SystemCoreClock/1000000);
 
+  printf("Create USBSerial\n");
   hp = NULL;
-#if defined(TARGET_NUCLEO_F446RE)
-  printf("Serial communication pins\r\n");
-  printf("     USBRX=%d\r\n", USBRX);
-  printf("     USBTX=%d\r\n", USBTX);
-#endif
-#if defined(TARGET_HP34970_FP_F303RD)
+
   printf("Serial communication via UART4\r\n");
-#endif
 
   printf("Setup HP communication pins\r\n");
   //printf("     HP_RX=%d\r\n", HP_RX);
@@ -229,8 +227,10 @@
   splashscreen = true;
   splashscreen_timer.attach(callback(&end_splashscreen), 5s);
   rst.fall(&reset_irq);
+  printf("SETUP DONE\r\n");
 
-  printf("SETUP DONE\r\n");
+  if (rst.read() == 0)
+    reset();
 }
 
 void end_splashscreen(void)
@@ -251,6 +251,7 @@
 {
 	must_reset = true;
 	//rst_delay.attach(callback(&reset_irq_tmr), 50ms);
+    NVIC_SystemReset();
 }
 
 void reset(void)
@@ -297,6 +298,7 @@
 
 void shutdown(void)
 {
+  // TODO: implement low-power-mode stuff
   must_shutdown = true;
 }
 

mercurial