From f08678aab4a2e273e91f70344b1b4b55d3ba6e39 Mon Sep 17 00:00:00 2001 From: Ammar Okla Date: Mon, 31 Aug 2026 13:44:08 +0300 Subject: [PATCH 1/4] feat(nucleo): Relocate NUCLEO_F401RE into targets and migrate to generic BSP framework --- .github/workflows/ci.yml | 31 ++++++ .../NUCLEO_F401RE/app/common/board_init.h | 20 ---- .../NUCLEO_F401RE/app/common/console.c | 52 --------- .../app/common/newlib_syscalls.c | 80 -------------- .../lib/nucleo_bsp/CMakeLists.txt | 27 ----- .../NUCLEO_F401RE/lib/nucleo_bsp/nucleo_bsp.h | 25 ----- .../NUCLEO_F401RE/CMakeLists.txt | 6 +- .../NUCLEO_F401RE/NOTICE.md | 0 .../NUCLEO_F401RE/README.md | 0 .../NUCLEO_F401RE/app/CMakeLists.txt | 19 +--- .../NUCLEO_F401RE/app/common/sntp_client.c | 0 .../app/common/startup/NUCLEO_F401RE.ld | 0 .../app/common/startup/startup_stm32f401xe.s | 0 .../app/common/startup/system_stm32f4xx.c | 0 .../common/startup/tx_initialize_low_level.S | 0 .../common/stm32cubef4/stm32f4xx_hal_msp.c | 0 .../NUCLEO_F401RE/app/starter/cloud_config.h | 0 .../NUCLEO_F401RE/app/starter/main.c | 10 +- .../NUCLEO_F401RE/cmake/FindCMSIS.cmake | 0 .../NUCLEO_F401RE/cmake/FindSTM32HAL.cmake | 0 .../cmake/arm-gcc-cortex-m4.cmake | 0 .../cmake/arm-gcc-cortex-toolchain.cmake | 0 .../NUCLEO_F401RE/cmake/utilities.cmake | 0 .../NUCLEO_F401RE/lib/CMakeLists.txt | 3 +- .../NUCLEO_F401RE/lib/bsp/CMakeLists.txt | 20 ++++ .../lib/bsp/include/board_config.h | 30 +++++ .../NUCLEO_F401RE/lib/bsp/src/bsp_board.c | 47 ++------ .../NUCLEO_F401RE/lib/bsp/src/bsp_console.c | 86 +++++++++++++++ .../NUCLEO_F401RE/lib/bsp/src/bsp_led.c | 26 +++-- .../NUCLEO_F401RE/lib/bsp/src/newlib_stubs.c | 104 ++++++++++++++++++ .../lib/stm32cubef4/CMakeLists.txt | 0 .../Device/ST/STM32F4xx/Include/stm32f401xe.h | 0 .../Device/ST/STM32F4xx/Include/stm32f412rx.h | 0 .../Device/ST/STM32F4xx/Include/stm32f4xx.h | 0 .../ST/STM32F4xx/Include/system_stm32f4xx.h | 0 .../Device/ST/STM32F4xx/Release_Notes.html | 0 .../Templates/gcc/startup_stm32f401xc.s | 0 .../Templates/gcc/startup_stm32f401xe.s | 0 .../Templates/gcc/startup_stm32f405xx.s | 0 .../Templates/gcc/startup_stm32f407xx.s | 0 .../Templates/gcc/startup_stm32f410cx.s | 0 .../Templates/gcc/startup_stm32f410rx.s | 0 .../Templates/gcc/startup_stm32f410tx.s | 0 .../Templates/gcc/startup_stm32f411xe.s | 0 .../Templates/gcc/startup_stm32f412cx.s | 0 .../Templates/gcc/startup_stm32f412rx.s | 0 .../Templates/gcc/startup_stm32f412vx.s | 0 .../Templates/gcc/startup_stm32f412zx.s | 0 .../Templates/gcc/startup_stm32f413xx.s | 0 .../Templates/gcc/startup_stm32f415xx.s | 0 .../Templates/gcc/startup_stm32f417xx.s | 0 .../Templates/gcc/startup_stm32f423xx.s | 0 .../Templates/gcc/startup_stm32f427xx.s | 0 .../Templates/gcc/startup_stm32f429xx.s | 0 .../Templates/gcc/startup_stm32f437xx.s | 0 .../Templates/gcc/startup_stm32f439xx.s | 0 .../Templates/gcc/startup_stm32f446xx.s | 0 .../Templates/gcc/startup_stm32f469xx.s | 0 .../Templates/gcc/startup_stm32f479xx.s | 0 .../Source/Templates/system_stm32f4xx.c | 0 .../Device/ST/STM32F4xx/_htmresc/mini-st.css | 0 .../Device/ST/STM32F4xx/_htmresc/st_logo.png | Bin .../Drivers/CMSIS/Include/cmsis_armcc.h | 0 .../Drivers/CMSIS/Include/cmsis_armclang.h | 0 .../Drivers/CMSIS/Include/cmsis_compiler.h | 0 .../Drivers/CMSIS/Include/cmsis_gcc.h | 0 .../Drivers/CMSIS/Include/cmsis_iccarm.h | 0 .../Drivers/CMSIS/Include/cmsis_version.h | 0 .../Drivers/CMSIS/Include/core_armv8mbl.h | 0 .../Drivers/CMSIS/Include/core_armv8mml.h | 0 .../Drivers/CMSIS/Include/core_cm0.h | 0 .../Drivers/CMSIS/Include/core_cm0plus.h | 0 .../Drivers/CMSIS/Include/core_cm1.h | 0 .../Drivers/CMSIS/Include/core_cm23.h | 0 .../Drivers/CMSIS/Include/core_cm3.h | 0 .../Drivers/CMSIS/Include/core_cm33.h | 0 .../Drivers/CMSIS/Include/core_cm4.h | 0 .../Drivers/CMSIS/Include/core_cm7.h | 0 .../Drivers/CMSIS/Include/core_sc000.h | 0 .../Drivers/CMSIS/Include/core_sc300.h | 0 .../Drivers/CMSIS/Include/mpu_armv7.h | 0 .../Drivers/CMSIS/Include/mpu_armv8.h | 0 .../Drivers/CMSIS/Include/tz_context.h | 0 .../lib/stm32cubef4/Drivers/CMSIS/LICENSE.txt | 0 .../lib/stm32cubef4/Drivers/CMSIS/README.md | 0 .../Inc/Legacy/stm32_hal_legacy.h | 0 .../Inc/Legacy/stm32f4xx_hal_can_legacy.h | 0 .../Inc/stm32_assert_template.h | 0 .../STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h | 0 .../Inc/stm32f4xx_hal_adc.h | 0 .../Inc/stm32f4xx_hal_adc_ex.h | 0 .../Inc/stm32f4xx_hal_can.h | 0 .../Inc/stm32f4xx_hal_cec.h | 0 .../Inc/stm32f4xx_hal_conf_template.h | 0 .../Inc/stm32f4xx_hal_cortex.h | 0 .../Inc/stm32f4xx_hal_crc.h | 0 .../Inc/stm32f4xx_hal_cryp.h | 0 .../Inc/stm32f4xx_hal_cryp_ex.h | 0 .../Inc/stm32f4xx_hal_dac.h | 0 .../Inc/stm32f4xx_hal_dac_ex.h | 0 .../Inc/stm32f4xx_hal_dcmi.h | 0 .../Inc/stm32f4xx_hal_dcmi_ex.h | 0 .../Inc/stm32f4xx_hal_def.h | 0 .../Inc/stm32f4xx_hal_dfsdm.h | 0 .../Inc/stm32f4xx_hal_dma.h | 0 .../Inc/stm32f4xx_hal_dma2d.h | 0 .../Inc/stm32f4xx_hal_dma_ex.h | 0 .../Inc/stm32f4xx_hal_dsi.h | 0 .../Inc/stm32f4xx_hal_eth.h | 0 .../Inc/stm32f4xx_hal_exti.h | 0 .../Inc/stm32f4xx_hal_flash.h | 0 .../Inc/stm32f4xx_hal_flash_ex.h | 0 .../Inc/stm32f4xx_hal_flash_ramfunc.h | 0 .../Inc/stm32f4xx_hal_fmpi2c.h | 0 .../Inc/stm32f4xx_hal_fmpi2c_ex.h | 0 .../Inc/stm32f4xx_hal_fmpsmbus.h | 0 .../Inc/stm32f4xx_hal_gpio.h | 0 .../Inc/stm32f4xx_hal_gpio_ex.h | 0 .../Inc/stm32f4xx_hal_hash.h | 0 .../Inc/stm32f4xx_hal_hash_ex.h | 0 .../Inc/stm32f4xx_hal_hcd.h | 0 .../Inc/stm32f4xx_hal_i2c.h | 0 .../Inc/stm32f4xx_hal_i2c_ex.h | 0 .../Inc/stm32f4xx_hal_i2s.h | 0 .../Inc/stm32f4xx_hal_i2s_ex.h | 0 .../Inc/stm32f4xx_hal_irda.h | 0 .../Inc/stm32f4xx_hal_iwdg.h | 0 .../Inc/stm32f4xx_hal_lptim.h | 0 .../Inc/stm32f4xx_hal_ltdc.h | 0 .../Inc/stm32f4xx_hal_ltdc_ex.h | 0 .../Inc/stm32f4xx_hal_mmc.h | 0 .../Inc/stm32f4xx_hal_nand.h | 0 .../Inc/stm32f4xx_hal_nor.h | 0 .../Inc/stm32f4xx_hal_pccard.h | 0 .../Inc/stm32f4xx_hal_pcd.h | 0 .../Inc/stm32f4xx_hal_pcd_ex.h | 0 .../Inc/stm32f4xx_hal_pwr.h | 0 .../Inc/stm32f4xx_hal_pwr_ex.h | 0 .../Inc/stm32f4xx_hal_qspi.h | 0 .../Inc/stm32f4xx_hal_rcc.h | 0 .../Inc/stm32f4xx_hal_rcc_ex.h | 0 .../Inc/stm32f4xx_hal_rng.h | 0 .../Inc/stm32f4xx_hal_rtc.h | 0 .../Inc/stm32f4xx_hal_rtc_ex.h | 0 .../Inc/stm32f4xx_hal_sai.h | 0 .../Inc/stm32f4xx_hal_sai_ex.h | 0 .../Inc/stm32f4xx_hal_sd.h | 0 .../Inc/stm32f4xx_hal_sdram.h | 0 .../Inc/stm32f4xx_hal_smartcard.h | 0 .../Inc/stm32f4xx_hal_smbus.h | 0 .../Inc/stm32f4xx_hal_spdifrx.h | 0 .../Inc/stm32f4xx_hal_spi.h | 0 .../Inc/stm32f4xx_hal_sram.h | 0 .../Inc/stm32f4xx_hal_tim.h | 0 .../Inc/stm32f4xx_hal_tim_ex.h | 0 .../Inc/stm32f4xx_hal_uart.h | 0 .../Inc/stm32f4xx_hal_usart.h | 0 .../Inc/stm32f4xx_hal_wwdg.h | 0 .../Inc/stm32f4xx_ll_adc.h | 0 .../Inc/stm32f4xx_ll_bus.h | 0 .../Inc/stm32f4xx_ll_cortex.h | 0 .../Inc/stm32f4xx_ll_crc.h | 0 .../Inc/stm32f4xx_ll_dac.h | 0 .../Inc/stm32f4xx_ll_dma.h | 0 .../Inc/stm32f4xx_ll_dma2d.h | 0 .../Inc/stm32f4xx_ll_exti.h | 0 .../Inc/stm32f4xx_ll_fmc.h | 0 .../Inc/stm32f4xx_ll_fmpi2c.h | 0 .../Inc/stm32f4xx_ll_fsmc.h | 0 .../Inc/stm32f4xx_ll_gpio.h | 0 .../Inc/stm32f4xx_ll_i2c.h | 0 .../Inc/stm32f4xx_ll_iwdg.h | 0 .../Inc/stm32f4xx_ll_lptim.h | 0 .../Inc/stm32f4xx_ll_pwr.h | 0 .../Inc/stm32f4xx_ll_rcc.h | 0 .../Inc/stm32f4xx_ll_rng.h | 0 .../Inc/stm32f4xx_ll_rtc.h | 0 .../Inc/stm32f4xx_ll_sdmmc.h | 0 .../Inc/stm32f4xx_ll_spi.h | 0 .../Inc/stm32f4xx_ll_system.h | 0 .../Inc/stm32f4xx_ll_tim.h | 0 .../Inc/stm32f4xx_ll_usart.h | 0 .../Inc/stm32f4xx_ll_usb.h | 0 .../Inc/stm32f4xx_ll_utils.h | 0 .../Inc/stm32f4xx_ll_wwdg.h | 0 .../Drivers/STM32F4xx_HAL_Driver/License.md | 0 .../Drivers/STM32F4xx_HAL_Driver/README.md | 0 .../Src/Legacy/stm32f4xx_hal_can.c | 0 .../STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c | 0 .../Src/stm32f4xx_hal_adc.c | 0 .../Src/stm32f4xx_hal_adc_ex.c | 0 .../Src/stm32f4xx_hal_can.c | 0 .../Src/stm32f4xx_hal_cec.c | 0 .../Src/stm32f4xx_hal_cortex.c | 0 .../Src/stm32f4xx_hal_crc.c | 0 .../Src/stm32f4xx_hal_cryp.c | 0 .../Src/stm32f4xx_hal_cryp_ex.c | 0 .../Src/stm32f4xx_hal_dac.c | 0 .../Src/stm32f4xx_hal_dac_ex.c | 0 .../Src/stm32f4xx_hal_dcmi.c | 0 .../Src/stm32f4xx_hal_dcmi_ex.c | 0 .../Src/stm32f4xx_hal_dfsdm.c | 0 .../Src/stm32f4xx_hal_dma.c | 0 .../Src/stm32f4xx_hal_dma2d.c | 0 .../Src/stm32f4xx_hal_dma_ex.c | 0 .../Src/stm32f4xx_hal_dsi.c | 0 .../Src/stm32f4xx_hal_eth.c | 0 .../Src/stm32f4xx_hal_exti.c | 0 .../Src/stm32f4xx_hal_flash.c | 0 .../Src/stm32f4xx_hal_flash_ex.c | 0 .../Src/stm32f4xx_hal_flash_ramfunc.c | 0 .../Src/stm32f4xx_hal_fmpi2c.c | 0 .../Src/stm32f4xx_hal_fmpi2c_ex.c | 0 .../Src/stm32f4xx_hal_fmpsmbus.c | 0 .../Src/stm32f4xx_hal_gpio.c | 0 .../Src/stm32f4xx_hal_hash.c | 0 .../Src/stm32f4xx_hal_hash_ex.c | 0 .../Src/stm32f4xx_hal_hcd.c | 0 .../Src/stm32f4xx_hal_i2c.c | 0 .../Src/stm32f4xx_hal_i2c_ex.c | 0 .../Src/stm32f4xx_hal_i2s.c | 0 .../Src/stm32f4xx_hal_i2s_ex.c | 0 .../Src/stm32f4xx_hal_irda.c | 0 .../Src/stm32f4xx_hal_iwdg.c | 0 .../Src/stm32f4xx_hal_lptim.c | 0 .../Src/stm32f4xx_hal_ltdc.c | 0 .../Src/stm32f4xx_hal_ltdc_ex.c | 0 .../Src/stm32f4xx_hal_mmc.c | 0 .../Src/stm32f4xx_hal_msp_template.c | 0 .../Src/stm32f4xx_hal_nand.c | 0 .../Src/stm32f4xx_hal_nor.c | 0 .../Src/stm32f4xx_hal_pccard.c | 0 .../Src/stm32f4xx_hal_pcd.c | 0 .../Src/stm32f4xx_hal_pcd_ex.c | 0 .../Src/stm32f4xx_hal_pwr.c | 0 .../Src/stm32f4xx_hal_pwr_ex.c | 0 .../Src/stm32f4xx_hal_qspi.c | 0 .../Src/stm32f4xx_hal_rcc.c | 0 .../Src/stm32f4xx_hal_rcc_ex.c | 0 .../Src/stm32f4xx_hal_rng.c | 0 .../Src/stm32f4xx_hal_rtc.c | 0 .../Src/stm32f4xx_hal_rtc_ex.c | 0 .../Src/stm32f4xx_hal_sai.c | 0 .../Src/stm32f4xx_hal_sai_ex.c | 0 .../Src/stm32f4xx_hal_sd.c | 0 .../Src/stm32f4xx_hal_sdram.c | 0 .../Src/stm32f4xx_hal_smartcard.c | 0 .../Src/stm32f4xx_hal_smbus.c | 0 .../Src/stm32f4xx_hal_spdifrx.c | 0 .../Src/stm32f4xx_hal_spi.c | 0 .../Src/stm32f4xx_hal_sram.c | 0 .../Src/stm32f4xx_hal_tim.c | 0 .../Src/stm32f4xx_hal_tim_ex.c | 0 ...tm32f4xx_hal_timebase_rtc_alarm_template.c | 0 ...m32f4xx_hal_timebase_rtc_wakeup_template.c | 0 .../Src/stm32f4xx_hal_timebase_tim.c | 0 .../Src/stm32f4xx_hal_timebase_tim_template.c | 0 .../Src/stm32f4xx_hal_uart.c | 0 .../Src/stm32f4xx_hal_usart.c | 0 .../Src/stm32f4xx_hal_wwdg.c | 0 .../Src/stm32f4xx_ll_adc.c | 0 .../Src/stm32f4xx_ll_crc.c | 0 .../Src/stm32f4xx_ll_dac.c | 0 .../Src/stm32f4xx_ll_dma.c | 0 .../Src/stm32f4xx_ll_dma2d.c | 0 .../Src/stm32f4xx_ll_exti.c | 0 .../Src/stm32f4xx_ll_fmc.c | 0 .../Src/stm32f4xx_ll_fmpi2c.c | 0 .../Src/stm32f4xx_ll_fsmc.c | 0 .../Src/stm32f4xx_ll_gpio.c | 0 .../Src/stm32f4xx_ll_i2c.c | 0 .../Src/stm32f4xx_ll_lptim.c | 0 .../Src/stm32f4xx_ll_pwr.c | 0 .../Src/stm32f4xx_ll_rcc.c | 0 .../Src/stm32f4xx_ll_rng.c | 0 .../Src/stm32f4xx_ll_rtc.c | 0 .../Src/stm32f4xx_ll_sdmmc.c | 0 .../Src/stm32f4xx_ll_spi.c | 0 .../Src/stm32f4xx_ll_tim.c | 0 .../Src/stm32f4xx_ll_usart.c | 0 .../Src/stm32f4xx_ll_usb.c | 0 .../Src/stm32f4xx_ll_utils.c | 0 .../stm32cubef4/config/stm32f4xx_hal_conf.h | 0 .../NUCLEO_F401RE/lib/threadx/tx_user.h | 0 .../NUCLEO_F401RE/scripts/build.ps1 | 3 - .../NUCLEO_F401RE/scripts/build.sh | 10 +- 286 files changed, 316 insertions(+), 283 deletions(-) delete mode 100644 STMicroelectronics/NUCLEO_F401RE/app/common/board_init.h delete mode 100644 STMicroelectronics/NUCLEO_F401RE/app/common/console.c delete mode 100644 STMicroelectronics/NUCLEO_F401RE/app/common/newlib_syscalls.c delete mode 100644 STMicroelectronics/NUCLEO_F401RE/lib/nucleo_bsp/CMakeLists.txt delete mode 100644 STMicroelectronics/NUCLEO_F401RE/lib/nucleo_bsp/nucleo_bsp.h rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/CMakeLists.txt (89%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/NOTICE.md (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/README.md (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/app/CMakeLists.txt (74%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/app/common/sntp_client.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/app/common/startup/NUCLEO_F401RE.ld (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/app/common/startup/startup_stm32f401xe.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/app/common/startup/system_stm32f4xx.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/app/common/startup/tx_initialize_low_level.S (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/app/common/stm32cubef4/stm32f4xx_hal_msp.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/app/starter/cloud_config.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/app/starter/main.c (99%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/cmake/FindCMSIS.cmake (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/cmake/FindSTM32HAL.cmake (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/cmake/arm-gcc-cortex-m4.cmake (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/cmake/arm-gcc-cortex-toolchain.cmake (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/cmake/utilities.cmake (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/CMakeLists.txt (94%) create mode 100644 targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/CMakeLists.txt create mode 100644 targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/include/board_config.h rename STMicroelectronics/NUCLEO_F401RE/app/common/board_init.c => targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_board.c (76%) create mode 100644 targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_console.c rename STMicroelectronics/NUCLEO_F401RE/lib/nucleo_bsp/nucleo_bsp.c => targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_led.c (67%) create mode 100644 targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/newlib_stubs.c rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/CMakeLists.txt (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f412rx.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Release_Notes.html (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f401xc.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f401xe.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f407xx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f410cx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f410rx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f410tx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f411xe.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412cx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412rx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412vx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412zx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f413xx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f415xx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f417xx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f423xx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f427xx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f429xx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f437xx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f439xx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f446xx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f469xx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f479xx.s (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/_htmresc/mini-st.css (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/_htmresc/st_logo.png (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_armcc.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_armclang.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_compiler.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_gcc.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_iccarm.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_version.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_armv8mbl.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_armv8mml.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm0.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm0plus.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm1.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm23.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm3.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm33.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm4.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm7.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_sc000.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_sc300.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/mpu_armv7.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/mpu_armv8.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/tz_context.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/LICENSE.txt (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/README.md (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32f4xx_hal_can_legacy.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32_assert_template.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cec.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_conf_template.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_crc.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cryp.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cryp_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dcmi.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dcmi_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dfsdm.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma2d.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dsi.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_eth.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_fmpi2c.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_fmpi2c_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_fmpsmbus.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_hash.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_hash_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_hcd.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2s.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2s_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_irda.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_iwdg.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_lptim.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_ltdc.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_ltdc_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_mmc.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_nand.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_nor.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pccard.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_qspi.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rng.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sai.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sai_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sd.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sdram.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_smartcard.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_smbus.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spdifrx.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sram.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_usart.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_wwdg.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_bus.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_cortex.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_crc.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dac.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma2d.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_exti.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fmc.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fmpi2c.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fsmc.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_gpio.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_i2c.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_iwdg.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_lptim.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_pwr.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rcc.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rng.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rtc.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_sdmmc.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_spi.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_system.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_tim.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usart.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_utils.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_wwdg.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/License.md (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/README.md (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/Legacy/stm32f4xx_hal_can.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpsmbus.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smbus.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_rtc_alarm_template.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_rtc_wakeup_template.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_tim.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_tim_template.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_crc.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dac.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma2d.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_exti.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmc.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmpi2c.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fsmc.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_gpio.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_i2c.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_lptim.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_pwr.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rcc.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rng.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rtc.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_sdmmc.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_spi.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_tim.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usart.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_utils.c (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/stm32cubef4/config/stm32f4xx_hal_conf.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/lib/threadx/tx_user.h (100%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/scripts/build.ps1 (96%) rename {STMicroelectronics => targets/STMicroelectronics}/NUCLEO_F401RE/scripts/build.sh (91%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 37d2ee3f..1afdfdb2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -101,3 +101,34 @@ jobs: - name: Run Deterministic Headless Renode Test run: | python3 targets/Microchip/POLARFIRE_ICICLE_RENODE/scripts/test_renode.py + + build-arm-nucleo: + name: Build ST Nucleo-F401RE (ARM Cortex-M4) + runs-on: ubuntu-24.04 + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Install Build Tools & ARM Toolchain + run: | + sudo apt-get update + sudo apt-get install -y cmake ninja-build gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib + + - name: Build NUCLEO-F401RE Demo + run: | + bash targets/STMicroelectronics/NUCLEO_F401RE/scripts/build.sh --rebuild + + - name: Verify NUCLEO-F401RE Demo ELF + run: | + test -f targets/STMicroelectronics/NUCLEO_F401RE/build/app/nucleo_f401re.elf + echo "[OK] NUCLEO-F401RE demo ELF verified." + + - name: Archive Built NUCLEO-F401RE ELF + uses: actions/upload-artifact@v4 + with: + name: nucleo-f401re-demo-elf + path: targets/STMicroelectronics/NUCLEO_F401RE/build/app/nucleo_f401re.elf + retention-days: 1 + diff --git a/STMicroelectronics/NUCLEO_F401RE/app/common/board_init.h b/STMicroelectronics/NUCLEO_F401RE/app/common/board_init.h deleted file mode 100644 index 75341c19..00000000 --- a/STMicroelectronics/NUCLEO_F401RE/app/common/board_init.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (c) 2026 Eclipse ThreadX contributors - * - * This program and the accompanying materials are made available - * under the terms of the MIT license which is available at - * https://opensource.org/license/mit. - * - * SPDX-License-Identifier: MIT - */ - -#ifndef BOARD_INIT_H -#define BOARD_INIT_H - -#include "stm32f4xx_hal.h" - -extern UART_HandleTypeDef UartHandle; - -void board_init(void); - -#endif /* BOARD_INIT_H */ diff --git a/STMicroelectronics/NUCLEO_F401RE/app/common/console.c b/STMicroelectronics/NUCLEO_F401RE/app/common/console.c deleted file mode 100644 index 326ccda6..00000000 --- a/STMicroelectronics/NUCLEO_F401RE/app/common/console.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2026 Eclipse ThreadX contributors - * - * This program and the accompanying materials are made available - * under the terms of the MIT license which is available at - * https://opensource.org/license/mit. - * - * SPDX-License-Identifier: MIT - */ -// Some portions generated by Codex (GPT-5). - -#include "stm32f4xx_hal.h" - -#include "board_init.h" - -int __io_putchar(int ch); -int __io_getchar(void); -int _read(int file, char* ptr, int len); -int _write(int file, char* ptr, int len); - -int __io_putchar(int ch) -{ - HAL_UART_Transmit(&UartHandle, (uint8_t*)&ch, 1, HAL_MAX_DELAY); - return ch; -} - -int __io_getchar(void) -{ - uint8_t ch; - HAL_UART_Receive(&UartHandle, &ch, 1, HAL_MAX_DELAY); - return (int)ch; -} - -int _read(int file, char* ptr, int len) -{ - (void)file; - for (int i = 0; i < len; i++) - { - ptr[i] = (char)__io_getchar(); - } - return len; -} - -int _write(int file, char* ptr, int len) -{ - (void)file; - for (int i = 0; i < len; i++) - { - __io_putchar((int)ptr[i]); - } - return len; -} diff --git a/STMicroelectronics/NUCLEO_F401RE/app/common/newlib_syscalls.c b/STMicroelectronics/NUCLEO_F401RE/app/common/newlib_syscalls.c deleted file mode 100644 index 128e9ec1..00000000 --- a/STMicroelectronics/NUCLEO_F401RE/app/common/newlib_syscalls.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2026 Eclipse ThreadX contributors - * - * SPDX-License-Identifier: MIT - * - * Minimal newlib-nano syscall stubs (same role as MXChip/AZ3166 deps/src/newlib_nano.c). - */ - -#ifdef __GNUC__ - -#include -#include -#include -#include - -extern int errno; -extern int _end; - -void* _sbrk(int incr) -{ - static unsigned char* heap = NULL; - unsigned char* prev_heap; - - if (heap == NULL) - { - heap = (unsigned char*)&_end; - } - prev_heap = heap; - heap += incr; - - return prev_heap; -} - -int _close(int file) -{ - (void)file; - return -1; -} - -int _fstat(int file, struct stat* st) -{ - (void)file; - st->st_mode = S_IFCHR; - return 0; -} - -int _isatty(int file) -{ - (void)file; - return 1; -} - -int _lseek(int file, int ptr, int dir) -{ - (void)file; - (void)ptr; - (void)dir; - return 0; -} - -void _exit(int status) -{ - (void)status; - while (1) - { - } -} - -void _kill(int pid, int sig) -{ - (void)pid; - (void)sig; -} - -int _getpid(void) -{ - return -1; -} - -#endif /* __GNUC__ */ diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/nucleo_bsp/CMakeLists.txt b/STMicroelectronics/NUCLEO_F401RE/lib/nucleo_bsp/CMakeLists.txt deleted file mode 100644 index 4d9a8695..00000000 --- a/STMicroelectronics/NUCLEO_F401RE/lib/nucleo_bsp/CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright (c) 2026 Eclipse ThreadX contributors -# -# This program and the accompanying materials are made available -# under the terms of the MIT license which is available at -# https://opensource.org/license/mit. -# -# SPDX-License-Identifier: MIT - -set(SOURCES - nucleo_bsp.c -) - -set(TARGET nucleo_bsp) - -add_library(${TARGET} OBJECT - ${SOURCES} -) - -target_link_libraries(${TARGET} - PUBLIC - stm32cubef4 -) - -target_include_directories(${TARGET} - PUBLIC - . -) diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/nucleo_bsp/nucleo_bsp.h b/STMicroelectronics/NUCLEO_F401RE/lib/nucleo_bsp/nucleo_bsp.h deleted file mode 100644 index 14831f9d..00000000 --- a/STMicroelectronics/NUCLEO_F401RE/lib/nucleo_bsp/nucleo_bsp.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2026 Eclipse ThreadX contributors - * - * This program and the accompanying materials are made available - * under the terms of the MIT license which is available at - * https://opensource.org/license/mit. - * - * SPDX-License-Identifier: MIT - */ - -#ifndef NUCLEO_BSP_H -#define NUCLEO_BSP_H - -#include "stm32f4xx_hal.h" - -/* Nucleo-F401RE user LED (LD2) on PA5 — UM1724 user manual. */ -#define NUCLEO_LED_PIN GPIO_PIN_5 -#define NUCLEO_LED_GPIO_PORT GPIOA - -void nucleo_bsp_init(void); -void nucleo_led_on(void); -void nucleo_led_off(void); -void nucleo_led_toggle(void); - -#endif /* NUCLEO_BSP_H */ diff --git a/STMicroelectronics/NUCLEO_F401RE/CMakeLists.txt b/targets/STMicroelectronics/NUCLEO_F401RE/CMakeLists.txt similarity index 89% rename from STMicroelectronics/NUCLEO_F401RE/CMakeLists.txt rename to targets/STMicroelectronics/NUCLEO_F401RE/CMakeLists.txt index 9cc25d35..9b7eb321 100644 --- a/STMicroelectronics/NUCLEO_F401RE/CMakeLists.txt +++ b/targets/STMicroelectronics/NUCLEO_F401RE/CMakeLists.txt @@ -22,8 +22,12 @@ enable_language(ASM) set(CMAKE_C_STANDARD 11) +set(SAMPLEX_ROOT_DIR + ${CMAKE_CURRENT_LIST_DIR}/../../.. +) + set(SHARED_LIB_DIR - ${CMAKE_CURRENT_LIST_DIR}/../../libs + ${SAMPLEX_ROOT_DIR}/libs ) list(APPEND CMAKE_MODULE_PATH diff --git a/STMicroelectronics/NUCLEO_F401RE/NOTICE.md b/targets/STMicroelectronics/NUCLEO_F401RE/NOTICE.md similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/NOTICE.md rename to targets/STMicroelectronics/NUCLEO_F401RE/NOTICE.md diff --git a/STMicroelectronics/NUCLEO_F401RE/README.md b/targets/STMicroelectronics/NUCLEO_F401RE/README.md similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/README.md rename to targets/STMicroelectronics/NUCLEO_F401RE/README.md diff --git a/STMicroelectronics/NUCLEO_F401RE/app/CMakeLists.txt b/targets/STMicroelectronics/NUCLEO_F401RE/app/CMakeLists.txt similarity index 74% rename from STMicroelectronics/NUCLEO_F401RE/app/CMakeLists.txt rename to targets/STMicroelectronics/NUCLEO_F401RE/app/CMakeLists.txt index 8d79eb17..07aaeb44 100644 --- a/STMicroelectronics/NUCLEO_F401RE/app/CMakeLists.txt +++ b/targets/STMicroelectronics/NUCLEO_F401RE/app/CMakeLists.txt @@ -6,14 +6,8 @@ # # SPDX-License-Identifier: MIT -if(NOT APP_CONFIG) - set(APP_CONFIG "starter") -endif() - -message(STATUS "Building application with configuration: ${APP_CONFIG}") - set(COMMON_DIR ${CMAKE_CURRENT_SOURCE_DIR}/common) -set(CONFIG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/${APP_CONFIG}) +set(STARTER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/starter) set(SOURCES ${COMMON_DIR}/startup/system_stm32f4xx.c @@ -22,11 +16,8 @@ set(SOURCES ${COMMON_DIR}/stm32cubef4/stm32f4xx_hal_msp.c - ${COMMON_DIR}/board_init.c - ${COMMON_DIR}/console.c - ${COMMON_DIR}/newlib_syscalls.c - - ${CONFIG_DIR}/main.c + ${CMAKE_CURRENT_SOURCE_DIR}/../lib/bsp/src/newlib_stubs.c + ${STARTER_DIR}/main.c ) add_executable(${PROJECT_NAME} ${SOURCES}) @@ -35,13 +26,13 @@ target_link_libraries(${PROJECT_NAME} PRIVATE azrtos::threadx stm32cubef4 - nucleo_bsp + bsp ) target_include_directories(${PROJECT_NAME} PUBLIC ${COMMON_DIR} - ${CONFIG_DIR} + ${STARTER_DIR} ) # Linker script diff --git a/STMicroelectronics/NUCLEO_F401RE/app/common/sntp_client.c b/targets/STMicroelectronics/NUCLEO_F401RE/app/common/sntp_client.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/app/common/sntp_client.c rename to targets/STMicroelectronics/NUCLEO_F401RE/app/common/sntp_client.c diff --git a/STMicroelectronics/NUCLEO_F401RE/app/common/startup/NUCLEO_F401RE.ld b/targets/STMicroelectronics/NUCLEO_F401RE/app/common/startup/NUCLEO_F401RE.ld similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/app/common/startup/NUCLEO_F401RE.ld rename to targets/STMicroelectronics/NUCLEO_F401RE/app/common/startup/NUCLEO_F401RE.ld diff --git a/STMicroelectronics/NUCLEO_F401RE/app/common/startup/startup_stm32f401xe.s b/targets/STMicroelectronics/NUCLEO_F401RE/app/common/startup/startup_stm32f401xe.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/app/common/startup/startup_stm32f401xe.s rename to targets/STMicroelectronics/NUCLEO_F401RE/app/common/startup/startup_stm32f401xe.s diff --git a/STMicroelectronics/NUCLEO_F401RE/app/common/startup/system_stm32f4xx.c b/targets/STMicroelectronics/NUCLEO_F401RE/app/common/startup/system_stm32f4xx.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/app/common/startup/system_stm32f4xx.c rename to targets/STMicroelectronics/NUCLEO_F401RE/app/common/startup/system_stm32f4xx.c diff --git a/STMicroelectronics/NUCLEO_F401RE/app/common/startup/tx_initialize_low_level.S b/targets/STMicroelectronics/NUCLEO_F401RE/app/common/startup/tx_initialize_low_level.S similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/app/common/startup/tx_initialize_low_level.S rename to targets/STMicroelectronics/NUCLEO_F401RE/app/common/startup/tx_initialize_low_level.S diff --git a/STMicroelectronics/NUCLEO_F401RE/app/common/stm32cubef4/stm32f4xx_hal_msp.c b/targets/STMicroelectronics/NUCLEO_F401RE/app/common/stm32cubef4/stm32f4xx_hal_msp.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/app/common/stm32cubef4/stm32f4xx_hal_msp.c rename to targets/STMicroelectronics/NUCLEO_F401RE/app/common/stm32cubef4/stm32f4xx_hal_msp.c diff --git a/STMicroelectronics/NUCLEO_F401RE/app/starter/cloud_config.h b/targets/STMicroelectronics/NUCLEO_F401RE/app/starter/cloud_config.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/app/starter/cloud_config.h rename to targets/STMicroelectronics/NUCLEO_F401RE/app/starter/cloud_config.h diff --git a/STMicroelectronics/NUCLEO_F401RE/app/starter/main.c b/targets/STMicroelectronics/NUCLEO_F401RE/app/starter/main.c similarity index 99% rename from STMicroelectronics/NUCLEO_F401RE/app/starter/main.c rename to targets/STMicroelectronics/NUCLEO_F401RE/app/starter/main.c index c1b2488f..53b79b84 100644 --- a/STMicroelectronics/NUCLEO_F401RE/app/starter/main.c +++ b/targets/STMicroelectronics/NUCLEO_F401RE/app/starter/main.c @@ -11,10 +11,10 @@ #include #include "tx_api.h" - -#include "board_init.h" +#include "bsp/board.h" +#include "bsp/led.h" +#include "bsp/console.h" #include "cloud_config.h" -#include "nucleo_bsp.h" #define THREAD_STACK_SIZE 1024 @@ -237,7 +237,7 @@ static void blink_thread_entry(ULONG parameter) { (void)parameter; while (1) { - nucleo_led_toggle(); + bsp_led_toggle(); blink_counter++; /* Toggle Event Flag bit 0 when LED toggles */ tx_event_flags_set(&event_flags, 0x01, TX_OR); @@ -541,7 +541,7 @@ void tx_application_define(void *first_unused_memory) { } int main(void) { - board_init(); + bsp_board_init(); /* Start the ThreadX kernel */ tx_kernel_enter(); diff --git a/STMicroelectronics/NUCLEO_F401RE/cmake/FindCMSIS.cmake b/targets/STMicroelectronics/NUCLEO_F401RE/cmake/FindCMSIS.cmake similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/cmake/FindCMSIS.cmake rename to targets/STMicroelectronics/NUCLEO_F401RE/cmake/FindCMSIS.cmake diff --git a/STMicroelectronics/NUCLEO_F401RE/cmake/FindSTM32HAL.cmake b/targets/STMicroelectronics/NUCLEO_F401RE/cmake/FindSTM32HAL.cmake similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/cmake/FindSTM32HAL.cmake rename to targets/STMicroelectronics/NUCLEO_F401RE/cmake/FindSTM32HAL.cmake diff --git a/STMicroelectronics/NUCLEO_F401RE/cmake/arm-gcc-cortex-m4.cmake b/targets/STMicroelectronics/NUCLEO_F401RE/cmake/arm-gcc-cortex-m4.cmake similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/cmake/arm-gcc-cortex-m4.cmake rename to targets/STMicroelectronics/NUCLEO_F401RE/cmake/arm-gcc-cortex-m4.cmake diff --git a/STMicroelectronics/NUCLEO_F401RE/cmake/arm-gcc-cortex-toolchain.cmake b/targets/STMicroelectronics/NUCLEO_F401RE/cmake/arm-gcc-cortex-toolchain.cmake similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/cmake/arm-gcc-cortex-toolchain.cmake rename to targets/STMicroelectronics/NUCLEO_F401RE/cmake/arm-gcc-cortex-toolchain.cmake diff --git a/STMicroelectronics/NUCLEO_F401RE/cmake/utilities.cmake b/targets/STMicroelectronics/NUCLEO_F401RE/cmake/utilities.cmake similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/cmake/utilities.cmake rename to targets/STMicroelectronics/NUCLEO_F401RE/cmake/utilities.cmake diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/CMakeLists.txt b/targets/STMicroelectronics/NUCLEO_F401RE/lib/CMakeLists.txt similarity index 94% rename from STMicroelectronics/NUCLEO_F401RE/lib/CMakeLists.txt rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/CMakeLists.txt index 1cc6f3c4..ffd3d29e 100644 --- a/STMicroelectronics/NUCLEO_F401RE/lib/CMakeLists.txt +++ b/targets/STMicroelectronics/NUCLEO_F401RE/lib/CMakeLists.txt @@ -18,4 +18,5 @@ add_subdirectory(${SHARED_LIB_DIR}/threadx threadx) # STM32 platform libraries add_subdirectory(stm32cubef4) -add_subdirectory(nucleo_bsp) +add_subdirectory(bsp) + diff --git a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/CMakeLists.txt b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/CMakeLists.txt new file mode 100644 index 00000000..25fa8c4e --- /dev/null +++ b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/CMakeLists.txt @@ -0,0 +1,20 @@ +# Copyright (c) 2026 Eclipse ThreadX contributors +# +# SPDX-License-Identifier: MIT + +add_library(bsp STATIC + src/bsp_board.c + src/bsp_led.c + src/bsp_console.c +) + +target_include_directories(bsp + PUBLIC + include + ${SAMPLEX_ROOT_DIR}/bsp/include +) + +target_link_libraries(bsp + PUBLIC + stm32cubef4 +) diff --git a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/include/board_config.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/include/board_config.h new file mode 100644 index 00000000..300c7013 --- /dev/null +++ b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/include/board_config.h @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2026 Eclipse ThreadX contributors + * + * This program and the accompanying materials are made available + * under the terms of the MIT license which is available at + * https://opensource.org/license/mit. + * + * SPDX-License-Identifier: MIT + */ + +#ifndef BOARD_CONFIG_H +#define BOARD_CONFIG_H + +#include + +/* CPU Subsystem Frequencies */ +#define BSP_CPU_CLOCK_HZ 84000000UL /* 84 MHz Cortex-M4 SYSCLK */ +#define BSP_SYSTEM_CLOCK_HZ BSP_CPU_CLOCK_HZ + +#define BSP_UART_BAUDRATE 115200 + +/* SRAM Memory Limits (STM32F401RE: 96 KB SRAM from 0x20000000 to 0x20018000) */ +#define BSP_RAM_START 0x20000000UL +#define BSP_RAM_SIZE 0x00018000UL /* 96 KB */ +#define BSP_RAM_END (BSP_RAM_START + BSP_RAM_SIZE) + +#define BSP_HAS_LED 1 +#define BSP_HAS_CONSOLE 1 + +#endif /* BOARD_CONFIG_H */ diff --git a/STMicroelectronics/NUCLEO_F401RE/app/common/board_init.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_board.c similarity index 76% rename from STMicroelectronics/NUCLEO_F401RE/app/common/board_init.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_board.c index 9e8e052e..2124bb76 100644 --- a/STMicroelectronics/NUCLEO_F401RE/app/common/board_init.c +++ b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_board.c @@ -7,32 +7,26 @@ * * SPDX-License-Identifier: MIT */ -// Some portions generated by Codex (GPT-5). -#include "board_init.h" - -#include - -#include "nucleo_bsp.h" - -UART_HandleTypeDef UartHandle; +#include "bsp/board.h" +#include "bsp/led.h" +#include "bsp/console.h" +#include "board_config.h" +#include "stm32f4xx_hal.h" static TIM_HandleTypeDef hal_tick_tim_handle; static void SystemClock_Config(void); -static void GPIO_Init(void); -static void UART_Console_Init(void); static void Error_Handler(void); -void board_init(void) +void bsp_board_init(void) { HAL_Init(); SystemClock_Config(); SystemCoreClockUpdate(); - GPIO_Init(); - UART_Console_Init(); - nucleo_bsp_init(); + bsp_led_init(); + bsp_console_init(); } /** @@ -72,28 +66,6 @@ static void SystemClock_Config(void) } } -static void GPIO_Init(void) -{ - __HAL_RCC_GPIOA_CLK_ENABLE(); -} - -static void UART_Console_Init(void) -{ - UartHandle.Instance = USART2; - UartHandle.Init.BaudRate = 115200; - UartHandle.Init.WordLength = UART_WORDLENGTH_8B; - UartHandle.Init.StopBits = UART_STOPBITS_1; - UartHandle.Init.Parity = UART_PARITY_NONE; - UartHandle.Init.Mode = UART_MODE_TX_RX; - UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE; - UartHandle.Init.OverSampling = UART_OVERSAMPLING_16; - - if (HAL_UART_Init(&UartHandle) != HAL_OK) - { - Error_Handler(); - } -} - static void Error_Handler(void) { while (1) @@ -135,7 +107,6 @@ HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) return HAL_ERROR; } - /* Save the new tick priority */ uwTickPrio = TickPriority; return HAL_TIM_Base_Start_IT(&hal_tick_tim_handle); @@ -156,12 +127,10 @@ void TIM2_IRQHandler(void) void HAL_SuspendTick(void) { - /* Disable TIM2 update interrupt */ __HAL_TIM_DISABLE_IT(&hal_tick_tim_handle, TIM_IT_UPDATE); } void HAL_ResumeTick(void) { - /* Enable TIM2 update interrupt */ __HAL_TIM_ENABLE_IT(&hal_tick_tim_handle, TIM_IT_UPDATE); } diff --git a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_console.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_console.c new file mode 100644 index 00000000..46de8262 --- /dev/null +++ b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_console.c @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2026 Eclipse ThreadX contributors + * + * This program and the accompanying materials are made available + * under the terms of the MIT license which is available at + * https://opensource.org/license/mit. + * + * SPDX-License-Identifier: MIT + */ + +#include "bsp/console.h" +#include "board_config.h" +#include "stm32f4xx_hal.h" + +UART_HandleTypeDef UartHandle; + +void bsp_console_init(void) +{ +#if BSP_HAS_CONSOLE + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_USART2_CLK_ENABLE(); + + UartHandle.Instance = USART2; + UartHandle.Init.BaudRate = BSP_UART_BAUDRATE; + UartHandle.Init.WordLength = UART_WORDLENGTH_8B; + UartHandle.Init.StopBits = UART_STOPBITS_1; + UartHandle.Init.Parity = UART_PARITY_NONE; + UartHandle.Init.Mode = UART_MODE_TX_RX; + UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE; + UartHandle.Init.OverSampling = UART_OVERSAMPLING_16; + + HAL_UART_Init(&UartHandle); +#endif +} + +void bsp_console_write(const char *data, size_t length) +{ +#if BSP_HAS_CONSOLE + if (data == NULL || length == 0) { + return; + } + HAL_UART_Transmit(&UartHandle, (uint8_t *)data, (uint16_t)length, HAL_MAX_DELAY); +#else + (void)data; + (void)length; +#endif +} + +int __io_putchar(int ch) +{ +#if BSP_HAS_CONSOLE + uint8_t c = (uint8_t)ch; + HAL_UART_Transmit(&UartHandle, &c, 1, HAL_MAX_DELAY); + return ch; +#else + (void)ch; + return ch; +#endif +} + +int __io_getchar(void) +{ +#if BSP_HAS_CONSOLE + uint8_t ch = 0; + HAL_UART_Receive(&UartHandle, &ch, 1, HAL_MAX_DELAY); + return (int)ch; +#else + return -1; +#endif +} + +int _read(int file, char *ptr, int len) +{ + (void)file; + for (int i = 0; i < len; i++) { + ptr[i] = (char)__io_getchar(); + } + return len; +} + +int _write(int file, char *ptr, int len) +{ + (void)file; + bsp_console_write(ptr, (size_t)len); + return len; +} diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/nucleo_bsp/nucleo_bsp.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_led.c similarity index 67% rename from STMicroelectronics/NUCLEO_F401RE/lib/nucleo_bsp/nucleo_bsp.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_led.c index 4dd79c61..c9668cae 100644 --- a/STMicroelectronics/NUCLEO_F401RE/lib/nucleo_bsp/nucleo_bsp.c +++ b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_led.c @@ -7,12 +7,17 @@ * * SPDX-License-Identifier: MIT */ -// Some portions generated by Codex (GPT-5). -#include "nucleo_bsp.h" +#include "bsp/led.h" +#include "board_config.h" +#include "stm32f4xx_hal.h" -void nucleo_bsp_init(void) +#define NUCLEO_LED_PIN GPIO_PIN_5 +#define NUCLEO_LED_GPIO_PORT GPIOA + +void bsp_led_init(void) { +#if BSP_HAS_LED GPIO_InitTypeDef gpio = {0}; __HAL_RCC_GPIOA_CLK_ENABLE(); @@ -23,20 +28,27 @@ void nucleo_bsp_init(void) gpio.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(NUCLEO_LED_GPIO_PORT, &gpio); - nucleo_led_off(); + bsp_led_off(); +#endif } -void nucleo_led_on(void) +void bsp_led_on(void) { +#if BSP_HAS_LED HAL_GPIO_WritePin(NUCLEO_LED_GPIO_PORT, NUCLEO_LED_PIN, GPIO_PIN_SET); +#endif } -void nucleo_led_off(void) +void bsp_led_off(void) { +#if BSP_HAS_LED HAL_GPIO_WritePin(NUCLEO_LED_GPIO_PORT, NUCLEO_LED_PIN, GPIO_PIN_RESET); +#endif } -void nucleo_led_toggle(void) +void bsp_led_toggle(void) { +#if BSP_HAS_LED HAL_GPIO_TogglePin(NUCLEO_LED_GPIO_PORT, NUCLEO_LED_PIN); +#endif } diff --git a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/newlib_stubs.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/newlib_stubs.c new file mode 100644 index 00000000..31fbaf39 --- /dev/null +++ b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/newlib_stubs.c @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2026 Eclipse ThreadX contributors + * + * This program and the accompanying materials are made available + * under the terms of the MIT license which is available at + * https://opensource.org/license/mit. + * + * SPDX-License-Identifier: MIT + */ + +#include +#include +#include +#include + +#include "board_config.h" +#include "stm32f4xx.h" + +extern int _end; + +void *_sbrk(ptrdiff_t incr) +{ + static uint8_t *heap_ptr = NULL; + uint8_t *prev_heap; + + /* Mask interrupts to ensure thread-safe heap pointer mutation on Cortex-M4 */ + uint32_t primask = __get_PRIMASK(); + __disable_irq(); + + if (heap_ptr == NULL) { + heap_ptr = (uint8_t *)&_end; + } + + /* Reject negative increments below heap base */ + if (incr < 0) { + if ((heap_ptr + incr) < (uint8_t *)&_end) { + __set_PRIMASK(primask); + errno = EINVAL; + return (void *)-1; + } + } + + /* Guard against SRAM upper bound overflow */ + if ((uintptr_t)(heap_ptr + incr) > (uintptr_t)BSP_RAM_END) { + __set_PRIMASK(primask); + errno = ENOMEM; + return (void *)-1; + } + + prev_heap = heap_ptr; + heap_ptr += incr; + + __set_PRIMASK(primask); + return (void *)prev_heap; +} + +int _close(int file) +{ + (void)file; + return -1; +} + +int _fstat(int file, struct stat *st) +{ + (void)file; + st->st_mode = S_IFCHR; + return 0; +} + +int _isatty(int file) +{ + (void)file; + return 1; +} + +int _lseek(int file, int ptr, int dir) +{ + (void)file; + (void)ptr; + (void)dir; + return 0; +} + +void _exit(int status) +{ + (void)status; + __disable_irq(); + while (1) { + __WFI(); + } +} + +int _kill(int pid, int sig) +{ + (void)pid; + (void)sig; + errno = EINVAL; + return -1; +} + +int _getpid(void) +{ + return 1; +} diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/CMakeLists.txt b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/CMakeLists.txt similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/CMakeLists.txt rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/CMakeLists.txt diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f412rx.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f412rx.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f412rx.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f412rx.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Release_Notes.html b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Release_Notes.html similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Release_Notes.html rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Release_Notes.html diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f401xc.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f401xc.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f401xc.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f401xc.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f401xe.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f401xe.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f401xe.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f401xe.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f407xx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f407xx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f407xx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f407xx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f410cx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f410cx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f410cx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f410cx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f410rx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f410rx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f410rx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f410rx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f410tx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f410tx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f410tx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f410tx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f411xe.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f411xe.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f411xe.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f411xe.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412cx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412cx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412cx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412cx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412rx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412rx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412rx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412rx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412vx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412vx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412vx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412vx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412zx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412zx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412zx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f412zx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f413xx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f413xx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f413xx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f413xx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f415xx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f415xx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f415xx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f415xx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f417xx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f417xx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f417xx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f417xx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f423xx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f423xx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f423xx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f423xx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f427xx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f427xx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f427xx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f427xx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f429xx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f429xx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f429xx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f429xx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f437xx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f437xx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f437xx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f437xx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f439xx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f439xx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f439xx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f439xx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f446xx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f446xx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f446xx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f446xx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f469xx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f469xx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f469xx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f469xx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f479xx.s b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f479xx.s similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f479xx.s rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f479xx.s diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/_htmresc/mini-st.css b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/_htmresc/mini-st.css similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/_htmresc/mini-st.css rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/_htmresc/mini-st.css diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/_htmresc/st_logo.png b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/_htmresc/st_logo.png similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/_htmresc/st_logo.png rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/_htmresc/st_logo.png diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_armcc.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_armcc.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_armcc.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_armcc.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_armclang.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_armclang.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_armclang.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_armclang.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_compiler.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_compiler.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_compiler.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_compiler.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_gcc.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_gcc.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_gcc.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_gcc.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_iccarm.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_iccarm.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_iccarm.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_iccarm.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_version.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_version.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_version.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/cmsis_version.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_armv8mbl.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_armv8mbl.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_armv8mbl.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_armv8mbl.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_armv8mml.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_armv8mml.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_armv8mml.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_armv8mml.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm0.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm0.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm0.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm0.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm0plus.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm0plus.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm0plus.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm0plus.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm1.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm1.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm1.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm1.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm23.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm23.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm23.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm23.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm3.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm3.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm3.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm3.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm33.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm33.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm33.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm33.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm4.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm4.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm4.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm4.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm7.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm7.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm7.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_cm7.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_sc000.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_sc000.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_sc000.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_sc000.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_sc300.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_sc300.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_sc300.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/core_sc300.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/mpu_armv7.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/mpu_armv7.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/mpu_armv7.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/mpu_armv7.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/mpu_armv8.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/mpu_armv8.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/mpu_armv8.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/mpu_armv8.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/tz_context.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/tz_context.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/tz_context.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/Include/tz_context.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/LICENSE.txt b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/LICENSE.txt similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/LICENSE.txt rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/LICENSE.txt diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/README.md b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/README.md similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/README.md rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/CMSIS/README.md diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32f4xx_hal_can_legacy.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32f4xx_hal_can_legacy.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32f4xx_hal_can_legacy.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32f4xx_hal_can_legacy.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32_assert_template.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32_assert_template.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32_assert_template.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32_assert_template.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cec.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cec.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cec.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cec.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_conf_template.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_conf_template.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_conf_template.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_conf_template.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_crc.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_crc.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_crc.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_crc.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cryp.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cryp.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cryp.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cryp.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cryp_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cryp_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cryp_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cryp_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dcmi.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dcmi.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dcmi.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dcmi.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dcmi_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dcmi_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dcmi_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dcmi_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dfsdm.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dfsdm.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dfsdm.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dfsdm.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma2d.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma2d.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma2d.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma2d.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dsi.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dsi.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dsi.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dsi.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_eth.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_eth.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_eth.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_eth.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_fmpi2c.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_fmpi2c.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_fmpi2c.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_fmpi2c.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_fmpi2c_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_fmpi2c_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_fmpi2c_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_fmpi2c_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_fmpsmbus.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_fmpsmbus.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_fmpsmbus.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_fmpsmbus.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_hash.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_hash.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_hash.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_hash.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_hash_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_hash_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_hash_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_hash_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_hcd.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_hcd.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_hcd.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_hcd.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2s.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2s.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2s.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2s.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2s_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2s_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2s_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2s_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_irda.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_irda.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_irda.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_irda.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_iwdg.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_iwdg.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_iwdg.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_iwdg.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_lptim.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_lptim.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_lptim.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_lptim.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_ltdc.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_ltdc.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_ltdc.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_ltdc.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_ltdc_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_ltdc_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_ltdc_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_ltdc_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_mmc.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_mmc.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_mmc.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_mmc.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_nand.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_nand.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_nand.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_nand.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_nor.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_nor.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_nor.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_nor.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pccard.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pccard.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pccard.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pccard.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_qspi.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_qspi.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_qspi.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_qspi.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rng.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rng.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rng.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rng.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sai.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sai.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sai.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sai.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sai_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sai_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sai_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sai_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sd.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sd.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sd.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sd.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sdram.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sdram.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sdram.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sdram.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_smartcard.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_smartcard.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_smartcard.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_smartcard.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_smbus.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_smbus.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_smbus.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_smbus.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spdifrx.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spdifrx.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spdifrx.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spdifrx.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sram.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sram.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sram.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_sram.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_usart.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_usart.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_usart.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_usart.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_wwdg.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_wwdg.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_wwdg.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_wwdg.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_bus.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_bus.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_bus.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_bus.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_cortex.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_cortex.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_cortex.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_cortex.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_crc.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_crc.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_crc.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_crc.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dac.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dac.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dac.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dac.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma2d.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma2d.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma2d.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma2d.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_exti.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_exti.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_exti.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_exti.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fmc.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fmc.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fmc.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fmc.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fmpi2c.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fmpi2c.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fmpi2c.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fmpi2c.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fsmc.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fsmc.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fsmc.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_fsmc.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_gpio.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_gpio.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_gpio.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_gpio.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_i2c.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_i2c.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_i2c.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_i2c.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_iwdg.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_iwdg.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_iwdg.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_iwdg.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_lptim.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_lptim.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_lptim.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_lptim.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_pwr.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_pwr.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_pwr.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_pwr.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rcc.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rcc.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rcc.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rcc.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rng.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rng.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rng.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rng.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rtc.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rtc.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rtc.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rtc.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_sdmmc.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_sdmmc.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_sdmmc.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_sdmmc.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_spi.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_spi.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_spi.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_spi.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_system.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_system.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_system.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_system.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_tim.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_tim.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_tim.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_tim.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usart.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usart.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usart.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usart.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_utils.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_utils.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_utils.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_utils.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_wwdg.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_wwdg.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_wwdg.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_wwdg.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/License.md b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/License.md similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/License.md rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/License.md diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/README.md b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/README.md similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/README.md rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/README.md diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/Legacy/stm32f4xx_hal_can.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/Legacy/stm32f4xx_hal_can.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/Legacy/stm32f4xx_hal_can.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/Legacy/stm32f4xx_hal_can.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpsmbus.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpsmbus.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpsmbus.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpsmbus.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smbus.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smbus.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smbus.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smbus.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_rtc_alarm_template.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_rtc_alarm_template.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_rtc_alarm_template.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_rtc_alarm_template.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_rtc_wakeup_template.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_rtc_wakeup_template.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_rtc_wakeup_template.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_rtc_wakeup_template.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_tim.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_tim.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_tim.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_tim.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_tim_template.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_tim_template.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_tim_template.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_tim_template.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_crc.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_crc.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_crc.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_crc.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dac.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dac.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dac.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dac.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma2d.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma2d.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma2d.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma2d.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_exti.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_exti.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_exti.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_exti.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmc.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmc.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmc.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmc.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmpi2c.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmpi2c.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmpi2c.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmpi2c.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fsmc.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fsmc.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fsmc.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fsmc.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_gpio.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_gpio.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_gpio.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_gpio.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_i2c.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_i2c.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_i2c.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_i2c.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_lptim.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_lptim.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_lptim.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_lptim.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_pwr.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_pwr.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_pwr.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_pwr.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rcc.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rcc.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rcc.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rcc.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rng.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rng.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rng.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rng.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rtc.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rtc.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rtc.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rtc.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_sdmmc.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_sdmmc.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_sdmmc.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_sdmmc.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_spi.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_spi.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_spi.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_spi.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_tim.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_tim.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_tim.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_tim.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usart.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usart.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usart.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usart.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_utils.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_utils.c similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_utils.c rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_utils.c diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/config/stm32f4xx_hal_conf.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/config/stm32f4xx_hal_conf.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/config/stm32f4xx_hal_conf.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/stm32cubef4/config/stm32f4xx_hal_conf.h diff --git a/STMicroelectronics/NUCLEO_F401RE/lib/threadx/tx_user.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/threadx/tx_user.h similarity index 100% rename from STMicroelectronics/NUCLEO_F401RE/lib/threadx/tx_user.h rename to targets/STMicroelectronics/NUCLEO_F401RE/lib/threadx/tx_user.h diff --git a/STMicroelectronics/NUCLEO_F401RE/scripts/build.ps1 b/targets/STMicroelectronics/NUCLEO_F401RE/scripts/build.ps1 similarity index 96% rename from STMicroelectronics/NUCLEO_F401RE/scripts/build.ps1 rename to targets/STMicroelectronics/NUCLEO_F401RE/scripts/build.ps1 index bcb31ae6..07af7c68 100644 --- a/STMicroelectronics/NUCLEO_F401RE/scripts/build.ps1 +++ b/targets/STMicroelectronics/NUCLEO_F401RE/scripts/build.ps1 @@ -3,7 +3,6 @@ # SPDX-License-Identifier: MIT param( - [string]$Config = "starter", [switch]$Clean, [switch]$Rebuild ) @@ -17,7 +16,6 @@ Write-Host "Nucleo F401RE - Build Script (PowerShell)" Write-Host "==========================================" Write-Host "Board Dir: $BOARD_DIR" Write-Host "Build Dir: $BUILD_DIR" -Write-Host "Config: $Config" Write-Host "" # Check for ARM GCC compiler @@ -49,7 +47,6 @@ if (!(Test-Path "CMakeCache.txt") -or !(Test-Path "build.ninja") -or $Rebuild) { Write-Host "[INFO] Configuring CMake..." cmake -G Ninja ` "-DCMAKE_BUILD_TYPE=Release" ` - "-DAPP_CONFIG=$Config" ` "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" ` $BOARD_DIR if ($LASTEXITCODE -ne 0) { diff --git a/STMicroelectronics/NUCLEO_F401RE/scripts/build.sh b/targets/STMicroelectronics/NUCLEO_F401RE/scripts/build.sh similarity index 91% rename from STMicroelectronics/NUCLEO_F401RE/scripts/build.sh rename to targets/STMicroelectronics/NUCLEO_F401RE/scripts/build.sh index f1a48f3c..eb062451 100644 --- a/STMicroelectronics/NUCLEO_F401RE/scripts/build.sh +++ b/targets/STMicroelectronics/NUCLEO_F401RE/scripts/build.sh @@ -7,7 +7,6 @@ # Fail on error set -e -CONFIG="starter" CLEAN=false REBUILD=false @@ -23,16 +22,11 @@ echo "Nucleo F401RE - Build Script (Bash)" echo "==========================================" echo "Board Dir: $BOARD_DIR" echo "Build Dir: $BUILD_DIR" -echo "Config: $CONFIG" echo "" # Parse options while [[ $# -gt 0 ]]; do case "$1" in - -c|--config) - CONFIG="$2" - shift 2 - ;; --clean) CLEAN=true shift @@ -43,7 +37,7 @@ while [[ $# -gt 0 ]]; do ;; *) echo "Unknown option: $1" - echo "Usage: $0 [--config CONFIG] [--clean] [--rebuild]" + echo "Usage: $0 [--clean] [--rebuild]" exit 1 ;; esac @@ -101,13 +95,11 @@ if [ ! -f "CMakeCache.txt" ] || [ ! -f "build.ninja" ] || [ "$REBUILD" = true ]; if command -v ninja &>/dev/null; then cmake -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ - -DAPP_CONFIG="$CONFIG" \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ "$BOARD_DIR" else cmake \ -DCMAKE_BUILD_TYPE=Release \ - -DAPP_CONFIG="$CONFIG" \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ "$BOARD_DIR" fi From cadeb9fb0921e368533714da6ab3da203ad12718 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Desbiens?= Date: Mon, 31 Aug 2026 09:26:04 -0400 Subject: [PATCH 2/4] Bounded the newlib heap to its linker reservation _sbrk() bounded the heap at BSP_RAM_END (0x20018000), the end of physical SRAM. On this target that is not a guard at all. NUCLEO_F401RE.ld lays RAM out as: _end 0x20001170 heap base _end + _Min_Heap_Size 0x20001370 intended heap ceiling __RAM_segment_used_end__ 0x20001770 ThreadX byte pool starts here byte pool end 0x20017000 _estack / BSP_RAM_END 0x20018000 so malloc() could grow the break through the reserved main stack, through the entire ThreadX byte pool holding every thread stack and the queue buffer, and into the live MSP, all while _sbrk() reported success. Only an allocation past the top of SRAM returned ENOMEM. The linker script now exports _heap_limit at the end of the heap reservation and _sbrk() bounds against that, which keeps the heap inside the 0x200 the script already set aside for it. Both bounds checks are also computed in uintptr_t rather than by forming an out-of-bounds pointer first, and the negative branch derives its magnitude without negating PTRDIFF_MIN. BSP_RAM_END keeps documenting the memory map but now carries a note against reusing it as a heap bound. All newlib syscall overrides move into newlib_stubs.c, which the application compiles directly. _write() and _read() previously sat in bsp_console.c inside libbsp.a, where the linker extracted them only because bsp_board.o happened to reference bsp_console_init(); breaking that incidental chain would have silently handed printf to the libnosys stubs, and CI only checks that the ELF exists. Console input stays board specific behind nucleo_console.h, since the shared contract is write-only. The BSP library is renamed nucleo_bsp, matching polarfire_bsp and freeing the bare "bsp" target name. The AI Disclosure header on newlib_stubs.c records the Codex-assisted origin of the syscall shims moved in from console.c. That work was done by Frederic Desbiens while editing PR #45, not by the PR author; the squash-merge in 1bddd17 assigned git authorship to the contributor and its Co-authored-by trailers are the accurate record. --- .../NUCLEO_F401RE/app/CMakeLists.txt | 5 +- .../app/common/startup/NUCLEO_F401RE.ld | 3 + .../NUCLEO_F401RE/lib/bsp/CMakeLists.txt | 20 ++- .../lib/bsp/include/board_config.h | 7 +- .../lib/bsp/include/nucleo_console.h | 28 ++++ .../NUCLEO_F401RE/lib/bsp/src/newlib_stubs.c | 147 +++++++++++++++--- 6 files changed, 177 insertions(+), 33 deletions(-) create mode 100644 targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/include/nucleo_console.h diff --git a/targets/STMicroelectronics/NUCLEO_F401RE/app/CMakeLists.txt b/targets/STMicroelectronics/NUCLEO_F401RE/app/CMakeLists.txt index 07aaeb44..19172319 100644 --- a/targets/STMicroelectronics/NUCLEO_F401RE/app/CMakeLists.txt +++ b/targets/STMicroelectronics/NUCLEO_F401RE/app/CMakeLists.txt @@ -16,6 +16,9 @@ set(SOURCES ${COMMON_DIR}/stm32cubef4/stm32f4xx_hal_msp.c + # Newlib syscall overrides. Compiled into the executable rather than into + # libnucleo_bsp.a so the linker always takes these definitions instead of + # falling back to the libnosys stubs. ${CMAKE_CURRENT_SOURCE_DIR}/../lib/bsp/src/newlib_stubs.c ${STARTER_DIR}/main.c ) @@ -26,7 +29,7 @@ target_link_libraries(${PROJECT_NAME} PRIVATE azrtos::threadx stm32cubef4 - bsp + nucleo_bsp ) target_include_directories(${PROJECT_NAME} diff --git a/targets/STMicroelectronics/NUCLEO_F401RE/app/common/startup/NUCLEO_F401RE.ld b/targets/STMicroelectronics/NUCLEO_F401RE/app/common/startup/NUCLEO_F401RE.ld index 6a476ef6..89063664 100644 --- a/targets/STMicroelectronics/NUCLEO_F401RE/app/common/startup/NUCLEO_F401RE.ld +++ b/targets/STMicroelectronics/NUCLEO_F401RE/app/common/startup/NUCLEO_F401RE.ld @@ -23,6 +23,7 @@ ** @attention ** ** Copyright (c) 2022 STMicroelectronics. +** Copyright (c) 2026 Eclipse ThreadX contributors ** All rights reserved. ** ** This software is licensed under terms that can be found in the LICENSE file @@ -171,6 +172,8 @@ SECTIONS PROVIDE ( end = . ); PROVIDE ( _end = . ); . = . + _Min_Heap_Size; + /* Upper bound enforced by _sbrk() in lib/bsp/src/newlib_stubs.c. */ + PROVIDE ( _heap_limit = . ); . = . + _Min_Stack_Size; . = ALIGN(8); /* ThreadX: first free RAM after reserved heap/stack (tx_initialize_low_level.S). */ diff --git a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/CMakeLists.txt b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/CMakeLists.txt index 25fa8c4e..bd70c9b0 100644 --- a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/CMakeLists.txt +++ b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/CMakeLists.txt @@ -1,20 +1,28 @@ -# Copyright (c) 2026 Eclipse ThreadX contributors -# -# SPDX-License-Identifier: MIT +# Copyright (c) 2026 Eclipse ThreadX contributors +# +# This program and the accompanying materials are made available +# under the terms of the MIT license which is available at +# https://opensource.org/license/mit. +# +# SPDX-License-Identifier: MIT -add_library(bsp STATIC +# Board support implementation for the ST NUCLEO-F401RE. +# newlib_stubs.c is deliberately absent: the newlib syscall overrides are +# compiled straight into the application so they are never subject to static +# archive extraction order. See ../../app/CMakeLists.txt. +add_library(nucleo_bsp STATIC src/bsp_board.c src/bsp_led.c src/bsp_console.c ) -target_include_directories(bsp +target_include_directories(nucleo_bsp PUBLIC include ${SAMPLEX_ROOT_DIR}/bsp/include ) -target_link_libraries(bsp +target_link_libraries(nucleo_bsp PUBLIC stm32cubef4 ) diff --git a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/include/board_config.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/include/board_config.h index 300c7013..3f7af472 100644 --- a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/include/board_config.h +++ b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/include/board_config.h @@ -19,7 +19,12 @@ #define BSP_UART_BAUDRATE 115200 -/* SRAM Memory Limits (STM32F401RE: 96 KB SRAM from 0x20000000 to 0x20018000) */ +/* SRAM Memory Limits (STM32F401RE: 96 KB SRAM from 0x20000000 to 0x20018000). + * + * Descriptive only. Do NOT bound the heap against BSP_RAM_END: the top of SRAM + * holds the main stack, and NUCLEO_F401RE.ld places the ThreadX byte pool (and + * therefore every thread stack) below it. _sbrk() uses the linker-provided + * _heap_limit symbol, which is the single source of truth for the heap extent. */ #define BSP_RAM_START 0x20000000UL #define BSP_RAM_SIZE 0x00018000UL /* 96 KB */ #define BSP_RAM_END (BSP_RAM_START + BSP_RAM_SIZE) diff --git a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/include/nucleo_console.h b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/include/nucleo_console.h new file mode 100644 index 00000000..a9f66dff --- /dev/null +++ b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/include/nucleo_console.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2026 Eclipse ThreadX contributors + * + * This program and the accompanying materials are made available + * under the terms of the MIT license which is available at + * https://opensource.org/license/mit. + * + * SPDX-License-Identifier: MIT + */ + +#ifndef NUCLEO_CONSOLE_H +#define NUCLEO_CONSOLE_H + +#include + +/** + * @brief Block until length characters have been read from the console UART. + * + * Target-local companion to bsp_console_write(). The generic + * contract is write-only, so console input stays board specific rather than + * forcing an unimplemented read into every target's BSP. + * + * @param data Buffer receiving the characters read. + * @param length Number of characters to read. + */ +void nucleo_console_read(char *data, size_t length); + +#endif /* NUCLEO_CONSOLE_H */ diff --git a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/newlib_stubs.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/newlib_stubs.c index 31fbaf39..82d8c851 100644 --- a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/newlib_stubs.c +++ b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/newlib_stubs.c @@ -1,57 +1,116 @@ -/* +/*************************************************************************** * Copyright (c) 2026 Eclipse ThreadX contributors + * + * This program and the accompanying materials are made available under the + * terms of the MIT License which is available at + * https://opensource.org/licenses/MIT. + * + * AI Disclosure: This file was largely AI-generated by Codex (GPT-5). + * The AI-generated portions may be considered public domain (CC0-1.0) + * and not subject to the project's licence. The human contributor has + * reviewed and verified that the code is correct. + * + * SPDX-License-Identifier: MIT and CC0-1.0 + **************************************************************************/ + +/* + * Newlib retargeting for the NUCLEO-F401RE. * - * This program and the accompanying materials are made available - * under the terms of the MIT license which is available at - * https://opensource.org/license/mit. - * - * SPDX-License-Identifier: MIT + * Every newlib syscall override lives in this translation unit, which is + * compiled directly into the application (see ../../../app/CMakeLists.txt) + * rather than archived into libnucleo_bsp.a. A static archive member is only + * extracted when an undefined symbol already demands it, and newlib's own + * references are resolved after the BSP archive has been scanned; keeping the + * overrides in an always-linked object guarantees they win over the + * libnosys stubs instead of depending on archive ordering. */ #include -#include #include +#include #include -#include "board_config.h" +#include "bsp/console.h" +#include "nucleo_console.h" #include "stm32f4xx.h" -extern int _end; +/* + * Linker-defined bounds of the heap reservation in NUCLEO_F401RE.ld. + * MISRA C:2012 Rule 8.6 deviation: these symbols are defined by the linker + * script, not by any translation unit, which is the only way to import an + * address decided at link time. + */ +extern char _end; +extern char _heap_limit; + +/* + * newlib declares these in its internal headers only. Declaring them here + * keeps every definition preceded by a prototype (MISRA C:2012 Rule 8.4). + */ +void *_sbrk(ptrdiff_t incr); +int _close(int file); +int _fstat(int file, struct stat *st); +int _isatty(int file); +int _lseek(int file, int ptr, int dir); +void _exit(int status); +int _kill(int pid, int sig); +int _getpid(void); +int _read(int file, char *ptr, int len); +int _write(int file, char *ptr, int len); +int __io_putchar(int ch); +int __io_getchar(void); void *_sbrk(ptrdiff_t incr) { static uint8_t *heap_ptr = NULL; - uint8_t *prev_heap; - /* Mask interrupts to ensure thread-safe heap pointer mutation on Cortex-M4 */ - uint32_t primask = __get_PRIMASK(); + const uintptr_t heap_base = (uintptr_t)&_end; + const uintptr_t heap_limit = (uintptr_t)&_heap_limit; + + uintptr_t current; + uintptr_t next; + uint32_t primask; + + /* Mask interrupts to ensure thread-safe heap pointer mutation on Cortex-M4. + * This protects the break pointer only; newlib's malloc free lists remain + * unguarded, so concurrent malloc() from multiple threads still requires + * newlib's own lock hooks. */ + primask = __get_PRIMASK(); __disable_irq(); if (heap_ptr == NULL) { - heap_ptr = (uint8_t *)&_end; + heap_ptr = (uint8_t *)heap_base; } + current = (uintptr_t)heap_ptr; - /* Reject negative increments below heap base */ if (incr < 0) { - if ((heap_ptr + incr) < (uint8_t *)&_end) { + /* Negate without overflowing on PTRDIFF_MIN. */ + uintptr_t decrement = (uintptr_t)(-(incr + 1)) + 1U; + + if (decrement > (current - heap_base)) { __set_PRIMASK(primask); errno = EINVAL; return (void *)-1; } + next = current - decrement; + } else { + uintptr_t increment = (uintptr_t)incr; + + /* Bound against the end of the heap reservation, not the end of SRAM: + * beyond _heap_limit lie the reserved main stack and the ThreadX byte + * pool holding every thread stack. */ + if (increment > (heap_limit - current)) { + __set_PRIMASK(primask); + errno = ENOMEM; + return (void *)-1; + } + next = current + increment; } - /* Guard against SRAM upper bound overflow */ - if ((uintptr_t)(heap_ptr + incr) > (uintptr_t)BSP_RAM_END) { - __set_PRIMASK(primask); - errno = ENOMEM; - return (void *)-1; - } - - prev_heap = heap_ptr; - heap_ptr += incr; + heap_ptr = (uint8_t *)next; __set_PRIMASK(primask); - return (void *)prev_heap; + return (void *)current; } int _close(int file) @@ -102,3 +161,41 @@ int _getpid(void) { return 1; } + +int __io_putchar(int ch) +{ + char c = (char)ch; + + bsp_console_write(&c, 1U); + return ch; +} + +int __io_getchar(void) +{ + char ch = '\0'; + + nucleo_console_read(&ch, 1U); + return (int)(unsigned char)ch; +} + +int _read(int file, char *ptr, int len) +{ + (void)file; + + if ((ptr == NULL) || (len <= 0)) { + return 0; + } + nucleo_console_read(ptr, (size_t)len); + return len; +} + +int _write(int file, char *ptr, int len) +{ + (void)file; + + if ((ptr == NULL) || (len <= 0)) { + return 0; + } + bsp_console_write(ptr, (size_t)len); + return len; +} From dfce05a36224e2d577eea09a7334ac3ef9c04342 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Desbiens?= Date: Mon, 31 Aug 2026 09:26:18 -0400 Subject: [PATCH 3/4] Restored console error handling and the AI disclosure headers bsp_console_init() dropped the return value of HAL_UART_Init(). The code it replaced routed the failure to Error_Handler(); the migration left the call bare, so a UART that failed to initialise booted on silently with no console. MISRA C:2012 Rule 17.7. The status is checked again and a failure now halts, matching the previous behaviour. The UART handle was a non-static global named UartHandle, but the extern declaration that used to live in board_init.h went away with that header, leaving an object with external linkage that nothing declared (Rule 8.4 and 8.7). It is now file-scope static console_uart. The redundant GPIOA and USART2 clock enables are gone as well: HAL_UART_MspInit() already owns that configuration, which is what "single UART owner" should mean. The const cast required by HAL_UART_Transmit() is documented as a Rule 11.8 deviation. bsp_board.c, bsp_led.c and bsp_console.c carry the AI Disclosure header required by AGENTS.md for new files. They derive from board_init.c, nucleo_bsp.c and console.c, each of which carried "Some portions generated by Codex (GPT-5)"; the rename dropped the disclosure while keeping most of the content, and git scores bsp_board.c as an 80% similarity rename. That Codex work was Frederic Desbiens', done while editing another contributor's PR under the AGENTS.md exception permitting edits to incoming PRs. It reached the tree through 1bddd17, a GitHub squash-merge of PR #45 whose git author is the PR author but whose trailers name the real participants: Co-authored-by: Ammar Okla Co-authored-by: Frederic Desbiens Co-authored-by: Codex The disclosure is therefore not a statement about this PR's author. --- .../NUCLEO_F401RE/lib/bsp/src/bsp_board.c | 21 +-- .../NUCLEO_F401RE/lib/bsp/src/bsp_console.c | 123 ++++++++++-------- .../NUCLEO_F401RE/lib/bsp/src/bsp_led.c | 21 +-- 3 files changed, 94 insertions(+), 71 deletions(-) diff --git a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_board.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_board.c index 2124bb76..75c5f201 100644 --- a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_board.c +++ b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_board.c @@ -1,12 +1,17 @@ -/* +/*************************************************************************** * Copyright (c) 2026 Eclipse ThreadX contributors - * - * This program and the accompanying materials are made available - * under the terms of the MIT license which is available at - * https://opensource.org/license/mit. - * - * SPDX-License-Identifier: MIT - */ + * + * This program and the accompanying materials are made available under the + * terms of the MIT License which is available at + * https://opensource.org/licenses/MIT. + * + * AI Disclosure: This file was largely AI-generated by Codex (GPT-5). + * The AI-generated portions may be considered public domain (CC0-1.0) + * and not subject to the project's licence. The human contributor has + * reviewed and verified that the code is correct. + * + * SPDX-License-Identifier: MIT and CC0-1.0 + **************************************************************************/ #include "bsp/board.h" #include "bsp/led.h" diff --git a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_console.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_console.c index 46de8262..df71a8ca 100644 --- a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_console.c +++ b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_console.c @@ -1,86 +1,99 @@ -/* +/*************************************************************************** * Copyright (c) 2026 Eclipse ThreadX contributors - * - * This program and the accompanying materials are made available - * under the terms of the MIT license which is available at - * https://opensource.org/license/mit. - * - * SPDX-License-Identifier: MIT - */ + * + * This program and the accompanying materials are made available under the + * terms of the MIT License which is available at + * https://opensource.org/licenses/MIT. + * + * AI Disclosure: This file was largely AI-generated by Codex (GPT-5). + * The AI-generated portions may be considered public domain (CC0-1.0) + * and not subject to the project's licence. The human contributor has + * reviewed and verified that the code is correct. + * + * SPDX-License-Identifier: MIT and CC0-1.0 + **************************************************************************/ #include "bsp/console.h" #include "board_config.h" +#include "nucleo_console.h" #include "stm32f4xx_hal.h" -UART_HandleTypeDef UartHandle; +#include +#include + +#if BSP_HAS_CONSOLE +static UART_HandleTypeDef console_uart; + +static void console_error_handler(void); + +/** + * Halt on an unrecoverable console fault. The console is the only diagnostic + * channel on this board, so there is nothing left to report a failure through. + */ +static void console_error_handler(void) +{ + while (1) + { + } +} +#endif void bsp_console_init(void) { #if BSP_HAS_CONSOLE - __HAL_RCC_GPIOA_CLK_ENABLE(); - __HAL_RCC_USART2_CLK_ENABLE(); + /* GPIO and USART2 clocks are enabled by HAL_UART_MspInit(); enabling them + * here as well would duplicate the single owner of that configuration. */ + console_uart.Instance = USART2; + console_uart.Init.BaudRate = BSP_UART_BAUDRATE; + console_uart.Init.WordLength = UART_WORDLENGTH_8B; + console_uart.Init.StopBits = UART_STOPBITS_1; + console_uart.Init.Parity = UART_PARITY_NONE; + console_uart.Init.Mode = UART_MODE_TX_RX; + console_uart.Init.HwFlowCtl = UART_HWCONTROL_NONE; + console_uart.Init.OverSampling = UART_OVERSAMPLING_16; - UartHandle.Instance = USART2; - UartHandle.Init.BaudRate = BSP_UART_BAUDRATE; - UartHandle.Init.WordLength = UART_WORDLENGTH_8B; - UartHandle.Init.StopBits = UART_STOPBITS_1; - UartHandle.Init.Parity = UART_PARITY_NONE; - UartHandle.Init.Mode = UART_MODE_TX_RX; - UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE; - UartHandle.Init.OverSampling = UART_OVERSAMPLING_16; - - HAL_UART_Init(&UartHandle); + if (HAL_UART_Init(&console_uart) != HAL_OK) + { + console_error_handler(); + } #endif } void bsp_console_write(const char *data, size_t length) { #if BSP_HAS_CONSOLE - if (data == NULL || length == 0) { + if ((data == NULL) || (length == 0U)) + { return; } - HAL_UART_Transmit(&UartHandle, (uint8_t *)data, (uint16_t)length, HAL_MAX_DELAY); + + /* MISRA C:2012 Rule 11.8 deviation: HAL_UART_Transmit() takes a non-const + * uint8_t* even though it only reads the buffer. The cast is confined to + * this call and the pointed-to data is never modified. */ + (void)HAL_UART_Transmit(&console_uart, + (uint8_t *)(uintptr_t)(const void *)data, + (uint16_t)length, + HAL_MAX_DELAY); #else (void)data; (void)length; #endif } -int __io_putchar(int ch) +void nucleo_console_read(char *data, size_t length) { #if BSP_HAS_CONSOLE - uint8_t c = (uint8_t)ch; - HAL_UART_Transmit(&UartHandle, &c, 1, HAL_MAX_DELAY); - return ch; -#else - (void)ch; - return ch; -#endif -} + if ((data == NULL) || (length == 0U)) + { + return; + } -int __io_getchar(void) -{ -#if BSP_HAS_CONSOLE - uint8_t ch = 0; - HAL_UART_Receive(&UartHandle, &ch, 1, HAL_MAX_DELAY); - return (int)ch; + (void)HAL_UART_Receive(&console_uart, + (uint8_t *)data, + (uint16_t)length, + HAL_MAX_DELAY); #else - return -1; + (void)data; + (void)length; #endif } - -int _read(int file, char *ptr, int len) -{ - (void)file; - for (int i = 0; i < len; i++) { - ptr[i] = (char)__io_getchar(); - } - return len; -} - -int _write(int file, char *ptr, int len) -{ - (void)file; - bsp_console_write(ptr, (size_t)len); - return len; -} diff --git a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_led.c b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_led.c index c9668cae..07b0a385 100644 --- a/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_led.c +++ b/targets/STMicroelectronics/NUCLEO_F401RE/lib/bsp/src/bsp_led.c @@ -1,12 +1,17 @@ -/* +/*************************************************************************** * Copyright (c) 2026 Eclipse ThreadX contributors - * - * This program and the accompanying materials are made available - * under the terms of the MIT license which is available at - * https://opensource.org/license/mit. - * - * SPDX-License-Identifier: MIT - */ + * + * This program and the accompanying materials are made available under the + * terms of the MIT License which is available at + * https://opensource.org/licenses/MIT. + * + * AI Disclosure: This file was largely AI-generated by Codex (GPT-5). + * The AI-generated portions may be considered public domain (CC0-1.0) + * and not subject to the project's licence. The human contributor has + * reviewed and verified that the code is correct. + * + * SPDX-License-Identifier: MIT and CC0-1.0 + **************************************************************************/ #include "bsp/led.h" #include "board_config.h" From 2743bcebd54246a97eb8d673d5197a19151dac5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Desbiens?= Date: Mon, 31 Aug 2026 09:26:31 -0400 Subject: [PATCH 4/4] Pinned the ARM toolchain to GCC 14 and refreshed the target documentation The build-arm-nucleo job installed the distribution's gcc-arm-none-eabi, which is GCC 13.2 on ubuntu-24.04, so the compiler drifted with the runner image. AGENTS.md specifies GCC 14 and the sibling RISC-V job already pins xPack GCC 14.2.0 by URL; the ARM job now pins Arm GNU Toolchain 14.2.Rel1 the same way. The toolchain bundles its own newlib, so the separate newlib packages are no longer installed. CMAKE_C_STANDARD moves from 11 to 99 per the AGENTS.md C99 requirement. The target builds clean under both GCC 13.2.1 and the pinned GCC 14.2.1 with -Wall -Wshadow -Wdouble-promotion -Werror. README.md moved with git mv but still described the pre-migration layout: the build directory as STMicroelectronics/NUCLEO_F401RE, the HAL timebase overrides as living in board_init.c, and the BSP as lib/nucleo_bsp/. All three are corrected and the BSP entry now lists the four sources behind the generic interfaces. The Validation Record quoted 18244 B ROM and 5632 B RAM against a toolchain the CI pipeline does not use. Re-measured against the newly pinned GCC 14.2.1: 20120 B ROM and 6000 B RAM. The hardware verification checklist is left as the contributor recorded it. --- .github/workflows/ci.yml | 13 ++++++++++--- .../NUCLEO_F401RE/CMakeLists.txt | 2 +- .../STMicroelectronics/NUCLEO_F401RE/README.md | 16 +++++++++------- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1afdfdb2..6a20de7e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -111,10 +111,18 @@ jobs: with: submodules: recursive - - name: Install Build Tools & ARM Toolchain + - name: Install CMake and Ninja run: | sudo apt-get update - sudo apt-get install -y cmake ninja-build gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib + sudo apt-get install -y cmake ninja-build + + - name: Install Pinned Arm GNU Toolchain 14.2.Rel1 + run: | + wget -q https://developer.arm.com/-/media/Files/downloads/gnu/14.2.rel1/binrel/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz + mkdir -p $HOME/arm-gcc + tar -xJf arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz -C $HOME/arm-gcc --strip-components=1 + rm arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz + echo "$HOME/arm-gcc/bin" >> $GITHUB_PATH - name: Build NUCLEO-F401RE Demo run: | @@ -131,4 +139,3 @@ jobs: name: nucleo-f401re-demo-elf path: targets/STMicroelectronics/NUCLEO_F401RE/build/app/nucleo_f401re.elf retention-days: 1 - diff --git a/targets/STMicroelectronics/NUCLEO_F401RE/CMakeLists.txt b/targets/STMicroelectronics/NUCLEO_F401RE/CMakeLists.txt index 9b7eb321..c6eb27d9 100644 --- a/targets/STMicroelectronics/NUCLEO_F401RE/CMakeLists.txt +++ b/targets/STMicroelectronics/NUCLEO_F401RE/CMakeLists.txt @@ -20,7 +20,7 @@ project(nucleo_f401re C ASM) enable_language(ASM) -set(CMAKE_C_STANDARD 11) +set(CMAKE_C_STANDARD 99) set(SAMPLEX_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../../.. diff --git a/targets/STMicroelectronics/NUCLEO_F401RE/README.md b/targets/STMicroelectronics/NUCLEO_F401RE/README.md index 16e8e227..828a66ba 100644 --- a/targets/STMicroelectronics/NUCLEO_F401RE/README.md +++ b/targets/STMicroelectronics/NUCLEO_F401RE/README.md @@ -34,7 +34,7 @@ arm-none-eabi-objdump --version ``` ### CMake-Based Build -From the `STMicroelectronics/NUCLEO_F401RE` directory: +From the `targets/STMicroelectronics/NUCLEO_F401RE` directory: ```bash cmake -Bbuild -GNinja -DCMAKE_TOOLCHAIN_FILE=cmake/arm-gcc-cortex-m4.cmake . @@ -120,17 +120,19 @@ The BSP separates the ThreadX scheduler tick from the STM32 HAL timebase to avoi ThreadX requires exclusive ownership of the SysTick exception for scheduler operation. To avoid conflicts, the STM32 HAL timebase is implemented using TIM2 instead of the default SysTick source. -The BSP overrides `HAL_InitTick()` to configure TIM2 as the HAL timebase and provides custom implementations of `HAL_SuspendTick()` and `HAL_ResumeTick()` in `board_init.c`. These functions enable and disable the TIM2 update interrupt without affecting the ThreadX scheduler tick. +The BSP overrides `HAL_InitTick()` to configure TIM2 as the HAL timebase and provides custom implementations of `HAL_SuspendTick()` and `HAL_ResumeTick()` in `lib/bsp/src/bsp_board.c`. These functions enable and disable the TIM2 update interrupt without affecting the ThreadX scheduler tick. ## File Organization - **`app/`**: Main application logic and boot setups - - **`app/common/`**: Console serial driver and board configurations + - **`app/common/`**: Vendor HAL MSP hooks and boot sources - **`app/common/startup/`**: Linker scripts and assembly boot startup code - **`app/starter/`**: Demo main thread logic - **`lib/`**: Libraries and dependencies - - **`lib/nucleo_bsp/`**: Board specific support libraries (LD2 LED) + - **`lib/bsp/`**: Board support implementing the generic `` interfaces + (`bsp_board.c` clocks and HAL timebase, `bsp_led.c` LD2, `bsp_console.c` + USART2, `newlib_stubs.c` newlib syscall overrides) - **`lib/stm32cubef4/`**: HAL Driver wrapper and platform drivers - **`lib/threadx/`**: ThreadX user configuration file (`tx_user.h`) - **`cmake/`**: Cross-compilation module definitions @@ -140,9 +142,9 @@ The BSP overrides `HAL_InitTick()` to configure TIM2 as the HAL timebase and pro ## Validation Record ### Verification Environment -- **Toolchain**: Arm GNU Toolchain 15.2.Rel1 (GCC 15.2.1) -- **Static ROM usage**: 18244 Bytes (3.48% of 512 KB Flash) -- **Static RAM usage**: 5632 Bytes (5.73% of 96 KB RAM) +- **Toolchain**: Arm GNU Toolchain 14.2.Rel1 (GCC 14.2.1), the version pinned by CI +- **Static ROM usage**: 20120 Bytes (3.84% of 512 KB Flash) +- **Static RAM usage**: 6000 Bytes (6.10% of 96 KB RAM) - **Dynamic Stack & Buffer allocation**: Stacks (8 x 1024 bytes) and Queue buffer (40 bytes) are dynamically allocated from the `TX_BYTE_POOL` (consuming 8312 bytes total, including pool headers). - **Board Hardware**: NUCLEO-F401RE