This is an automated email from the ASF dual-hosted git repository.

jerzy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git

commit 8229251629ef9e0aab5266f3fe3f4243fde954c9
Author: Jerzy Kasenberg <jerzy.kasenb...@codecoup.pl>
AuthorDate: Fri Apr 12 14:50:55 2024 +0200

    hw/mcu/stm32l4xx: Use common startup code
    
    Code now uses common cortex startup scripts and auto generated
    linker script
    
    Signed-off-by: Jerzy Kasenberg <jerzy.kasenb...@codecoup.pl>
---
 hw/mcu/stm/stm32l4xx/include/mcu/cmsis_nvic.h      |   6 +-
 hw/mcu/stm/stm32l4xx/include/mcu/mcu_vectors.h     |  72 +++++++
 .../include/mcu/vectors/stm32l412xx_vectors.h      | 118 ++++++++++++
 .../include/mcu/vectors/stm32l422xx_vectors.h      | 118 ++++++++++++
 .../include/mcu/vectors/stm32l431xx_vectors.h      | 118 ++++++++++++
 .../include/mcu/vectors/stm32l432xx_vectors.h      | 118 ++++++++++++
 .../include/mcu/vectors/stm32l433xx_vectors.h      | 118 ++++++++++++
 .../include/mcu/vectors/stm32l442xx_vectors.h      | 118 ++++++++++++
 .../include/mcu/vectors/stm32l443xx_vectors.h      | 118 ++++++++++++
 .../include/mcu/vectors/stm32l451xx_vectors.h      | 120 ++++++++++++
 .../include/mcu/vectors/stm32l452xx_vectors.h      | 120 ++++++++++++
 .../include/mcu/vectors/stm32l462xx_vectors.h      | 120 ++++++++++++
 .../include/mcu/vectors/stm32l471xx_vectors.h      | 117 ++++++++++++
 .../include/mcu/vectors/stm32l475xx_vectors.h      | 117 ++++++++++++
 .../include/mcu/vectors/stm32l476xx_vectors.h      | 117 ++++++++++++
 .../include/mcu/vectors/stm32l485xx_vectors.h      | 117 ++++++++++++
 .../include/mcu/vectors/stm32l486xx_vectors.h      | 117 ++++++++++++
 .../include/mcu/vectors/stm32l496xx_vectors.h      | 126 +++++++++++++
 .../include/mcu/vectors/stm32l4a6xx_vectors.h      | 126 +++++++++++++
 .../include/mcu/vectors/stm32l4p5xx_vectors.h      | 130 +++++++++++++
 .../include/mcu/vectors/stm32l4q5xx_vectors.h      | 130 +++++++++++++
 .../include/mcu/vectors/stm32l4r5xx_vectors.h      | 130 +++++++++++++
 .../include/mcu/vectors/stm32l4r7xx_vectors.h      | 130 +++++++++++++
 .../include/mcu/vectors/stm32l4r9xx_vectors.h      | 130 +++++++++++++
 .../include/mcu/vectors/stm32l4s5xx_vectors.h      | 130 +++++++++++++
 .../include/mcu/vectors/stm32l4s7xx_vectors.h      | 130 +++++++++++++
 .../include/mcu/vectors/stm32l4s9xx_vectors.h      | 130 +++++++++++++
 hw/mcu/stm/stm32l4xx/link/include/mcu_config.ld.h  |  20 ++
 .../stm/stm32l4xx/link/include/memory_regions.ld.h |  20 ++
 hw/mcu/stm/stm32l4xx/pkg.yml                       |   1 +
 hw/mcu/stm/stm32l4xx/src/hal_system_init.c         |  43 +++++
 hw/mcu/stm/stm32l4xx/src/system_stm32l4xx.c        |   9 -
 hw/mcu/stm/stm32l4xx/stm32l476.ld                  | 210 ---------------------
 33 files changed, 3224 insertions(+), 220 deletions(-)

diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/cmsis_nvic.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/cmsis_nvic.h
index 74e179074..dbf2cc2e7 100644
--- a/hw/mcu/stm/stm32l4xx/include/mcu/cmsis_nvic.h
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/cmsis_nvic.h
@@ -9,7 +9,11 @@
 
 #include <stdint.h>
 
-#define NVIC_NUM_VECTORS      (16 + 82)   // CORE + MCU Peripherals
+extern uint32_t __isr_vector_start[];
+extern uint32_t __isr_vector_end[];
+
+/* Extract number of vectors from .interrupt section size */
+#define NVIC_NUM_VECTORS      (__isr_vector_end - __isr_vector_start)
 #define NVIC_USER_IRQ_OFFSET  16
 
 #include "stm32l4xx.h"
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/mcu_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/mcu_vectors.h
new file mode 100644
index 000000000..887896d10
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/mcu_vectors.h
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#if defined(STM32L412xx)
+#include "vectors/stm32l412xx_vectors.h"
+#elif defined(STM32L422xx)
+#include "vectors/stm32l422xx_vectors.h"
+#elif defined(STM32L431xx)
+#include "vectors/stm32l431xx_vectors.h"
+#elif defined(STM32L432xx)
+#include "vectors/stm32l432xx_vectors.h"
+#elif defined(STM32L433xx)
+#include "vectors/stm32l433xx_vectors.h"
+#elif defined(STM32L442xx)
+#include "vectors/stm32l442xx_vectors.h"
+#elif defined(STM32L443xx)
+#include "vectors/stm32l443xx_vectors.h"
+#elif defined(STM32L451xx)
+#include "vectors/stm32l451xx_vectors.h"
+#elif defined(STM32L452xx)
+#include "vectors/stm32l452xx_vectors.h"
+#elif defined(STM32L462xx)
+#include "vectors/stm32l462xx_vectors.h"
+#elif defined(STM32L471xx)
+#include "vectors/stm32l471xx_vectors.h"
+#elif defined(STM32L475xx)
+#include "vectors/stm32l475xx_vectors.h"
+#elif defined(STM32L476xx)
+#include "vectors/stm32l476xx_vectors.h"
+#elif defined(STM32L485xx)
+#include "vectors/stm32l485xx_vectors.h"
+#elif defined(STM32L486xx)
+#include "vectors/stm32l486xx_vectors.h"
+#elif defined(STM32L496xx)
+#include "vectors/stm32l496xx_vectors.h"
+#elif defined(STM32L4A6xx)
+#include "vectors/stm32l4a6xx_vectors.h"
+#elif defined(STM32L4P5xx)
+#include "vectors/stm32l4p5xx_vectors.h"
+#elif defined(STM32L4Q5xx)
+#include "vectors/stm32l4q5xx_vectors.h"
+#elif defined(STM32L4R5xx)
+#include "vectors/stm32l4r5xx_vectors.h"
+#elif defined(STM32L4R7xx)
+#include "vectors/stm32l4r7xx_vectors.h"
+#elif defined(STM32L4R9xx)
+#include "vectors/stm32l4r9xx_vectors.h"
+#elif defined(STM32L4S5xx)
+#include "vectors/stm32l4s5xx_vectors.h"
+#elif defined(STM32L4S7xx)
+#include "vectors/stm32l4s7xx_vectors.h"
+#elif defined(STM32L4S9xx)
+#include "vectors/stm32l4s9xx_vectors.h"
+#else
+#error "Please select first the target STM32L4xx device used in your 
application"
+#endif
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l412xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l412xx_vectors.h
new file mode 100644
index 000000000..883948f88
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l412xx_vectors.h
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_2_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TIM6_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(USB_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l422xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l422xx_vectors.h
new file mode 100644
index 000000000..62945bd2d
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l422xx_vectors.h
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_2_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TIM6_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(USB_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(AES_IRQHandler)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l431xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l431xx_vectors.h
new file mode 100644
index 000000000..777fe8838
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l431xx_vectors.h
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SWPMI1_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l432xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l432xx_vectors.h
new file mode 100644
index 000000000..071ec9cd3
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l432xx_vectors.h
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(USB_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SWPMI1_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l433xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l433xx_vectors.h
new file mode 100644
index 000000000..af5dd676c
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l433xx_vectors.h
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(USB_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SWPMI1_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR(LCD_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l442xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l442xx_vectors.h
new file mode 100644
index 000000000..2e47774b5
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l442xx_vectors.h
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(USB_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SWPMI1_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(AES_IRQHandler)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l443xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l443xx_vectors.h
new file mode 100644
index 000000000..9f52153cf
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l443xx_vectors.h
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(USB_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SWPMI1_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR(LCD_IRQHandler)
+INT_VECTOR(AES_IRQHandler)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l451xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l451xx_vectors.h
new file mode 100644
index 000000000..4c48b8c2c
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l451xx_vectors.h
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l452xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l452xx_vectors.h
new file mode 100644
index 000000000..588a20c7e
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l452xx_vectors.h
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(USB_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l462xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l462xx_vectors.h
new file mode 100644
index 000000000..6ceb7c170
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l462xx_vectors.h
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(USB_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(AES_IRQHandler)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l471xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l471xx_vectors.h
new file mode 100644
index 000000000..a32281ab3
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l471xx_vectors.h
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_2_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_TIM17_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR(DFSDM1_FLT3_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_IRQHandler)
+INT_VECTOR(ADC3_IRQHandler)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR(DFSDM1_FLT2_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(SWPMI1_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l475xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l475xx_vectors.h
new file mode 100644
index 000000000..d0623aeed
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l475xx_vectors.h
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_2_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_TIM17_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR(DFSDM1_FLT3_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_IRQHandler)
+INT_VECTOR(ADC3_IRQHandler)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR(DFSDM1_FLT2_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(OTG_FS_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(SWPMI1_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l476xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l476xx_vectors.h
new file mode 100644
index 000000000..a6597c80b
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l476xx_vectors.h
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_2_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_TIM17_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR(DFSDM1_FLT3_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_IRQHandler)
+INT_VECTOR(ADC3_IRQHandler)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR(DFSDM1_FLT2_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(OTG_FS_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(SWPMI1_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR(LCD_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l485xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l485xx_vectors.h
new file mode 100644
index 000000000..dbd3795e1
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l485xx_vectors.h
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_2_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_TIM17_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR(DFSDM1_FLT3_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_IRQHandler)
+INT_VECTOR(ADC3_IRQHandler)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR(DFSDM1_FLT2_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(OTG_FS_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(SWPMI1_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(AES_IRQHandler)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l486xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l486xx_vectors.h
new file mode 100644
index 000000000..6d9cf0253
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l486xx_vectors.h
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_2_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_TIM17_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR(DFSDM1_FLT3_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_IRQHandler)
+INT_VECTOR(ADC3_IRQHandler)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR(DFSDM1_FLT2_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(OTG_FS_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(SWPMI1_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR(LCD_IRQHandler)
+INT_VECTOR(AES_IRQHandler)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l496xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l496xx_vectors.h
new file mode 100644
index 000000000..6dfe3fd03
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l496xx_vectors.h
@@ -0,0 +1,126 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_2_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_TIM17_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR(DFSDM1_FLT3_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_IRQHandler)
+INT_VECTOR(ADC3_IRQHandler)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR(DFSDM1_FLT2_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(OTG_FS_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(SWPMI1_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR(LCD_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(DCMI_IRQHandler)
+INT_VECTOR(CAN2_TX_IRQHandler)
+INT_VECTOR(CAN2_RX0_IRQHandler)
+INT_VECTOR(CAN2_RX1_IRQHandler)
+INT_VECTOR(CAN2_SCE_IRQHandler)
+INT_VECTOR(DMA2D_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4a6xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4a6xx_vectors.h
new file mode 100644
index 000000000..cd39c65e4
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4a6xx_vectors.h
@@ -0,0 +1,126 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_2_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_TIM17_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR(DFSDM1_FLT3_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_IRQHandler)
+INT_VECTOR(ADC3_IRQHandler)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR(DFSDM1_FLT2_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(OTG_FS_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(QUADSPI_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(SWPMI1_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR(LCD_IRQHandler)
+INT_VECTOR(AES_IRQHandler)
+INT_VECTOR(HASH_RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(DCMI_IRQHandler)
+INT_VECTOR(CAN2_TX_IRQHandler)
+INT_VECTOR(CAN2_RX0_IRQHandler)
+INT_VECTOR(CAN2_RX1_IRQHandler)
+INT_VECTOR(CAN2_SCE_IRQHandler)
+INT_VECTOR(DMA2D_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4p5xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4p5xx_vectors.h
new file mode 100644
index 000000000..fbf9d866a
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4p5xx_vectors.h
@@ -0,0 +1,130 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_2_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_TIM17_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_IRQHandler)
+INT_VECTOR(SDMMC2_IRQHandler)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(OTG_FS_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(OCTOSPI1_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(OCTOSPI2_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(HASH_CRS_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(DCMI_PSSI_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMA2D_IRQHandler)
+INT_VECTOR(LTDC_IRQHandler)
+INT_VECTOR(LTDC_ER_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMAMUX1_OVR_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4q5xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4q5xx_vectors.h
new file mode 100644
index 000000000..b4a1b790c
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4q5xx_vectors.h
@@ -0,0 +1,130 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_2_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_TIM17_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_IRQHandler)
+INT_VECTOR(SDMMC2_IRQHandler)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(OTG_FS_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(OCTOSPI1_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(OCTOSPI2_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(AES_IRQHandler)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(HASH_CRS_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(DCMI_PSSI_IRQHandler)
+INT_VECTOR(PKA_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMA2D_IRQHandler)
+INT_VECTOR(LTDC_IRQHandler)
+INT_VECTOR(LTDC_ER_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMAMUX1_OVR_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4r5xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4r5xx_vectors.h
new file mode 100644
index 000000000..aefae02cc
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4r5xx_vectors.h
@@ -0,0 +1,130 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_TIM17_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR(DFSDM1_FLT3_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR(DFSDM1_FLT2_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(OTG_FS_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(OCTOSPI1_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(OCTOSPI2_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(DCMI_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMA2D_IRQHandler)
+INT_VECTOR(LTDC_IRQHandler)
+INT_VECTOR(LTDC_ER_IRQHandler)
+INT_VECTOR(GFXMMU_IRQHandler)
+INT_VECTOR(DMAMUX1_OVR_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4r7xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4r7xx_vectors.h
new file mode 100644
index 000000000..aefae02cc
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4r7xx_vectors.h
@@ -0,0 +1,130 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_TIM17_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR(DFSDM1_FLT3_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR(DFSDM1_FLT2_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(OTG_FS_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(OCTOSPI1_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(OCTOSPI2_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(DCMI_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMA2D_IRQHandler)
+INT_VECTOR(LTDC_IRQHandler)
+INT_VECTOR(LTDC_ER_IRQHandler)
+INT_VECTOR(GFXMMU_IRQHandler)
+INT_VECTOR(DMAMUX1_OVR_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4r9xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4r9xx_vectors.h
new file mode 100644
index 000000000..0b8616569
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4r9xx_vectors.h
@@ -0,0 +1,130 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_TIM17_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR(DFSDM1_FLT3_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR(DFSDM1_FLT2_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(OTG_FS_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(OCTOSPI1_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(OCTOSPI2_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR(DSI_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(DCMI_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMA2D_IRQHandler)
+INT_VECTOR(LTDC_IRQHandler)
+INT_VECTOR(LTDC_ER_IRQHandler)
+INT_VECTOR(GFXMMU_IRQHandler)
+INT_VECTOR(DMAMUX1_OVR_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4s5xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4s5xx_vectors.h
new file mode 100644
index 000000000..e75949cad
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4s5xx_vectors.h
@@ -0,0 +1,130 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_TIM17_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR(DFSDM1_FLT3_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR(DFSDM1_FLT2_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(OTG_FS_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(OCTOSPI1_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(OCTOSPI2_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(AES_IRQHandler)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(HASH_CRS_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(DCMI_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMA2D_IRQHandler)
+INT_VECTOR(LTDC_IRQHandler)
+INT_VECTOR(LTDC_ER_IRQHandler)
+INT_VECTOR(GFXMMU_IRQHandler)
+INT_VECTOR(DMAMUX1_OVR_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4s7xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4s7xx_vectors.h
new file mode 100644
index 000000000..e75949cad
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4s7xx_vectors.h
@@ -0,0 +1,130 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_TIM17_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR(DFSDM1_FLT3_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR(DFSDM1_FLT2_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(OTG_FS_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(OCTOSPI1_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(OCTOSPI2_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(AES_IRQHandler)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(HASH_CRS_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(DCMI_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMA2D_IRQHandler)
+INT_VECTOR(LTDC_IRQHandler)
+INT_VECTOR(LTDC_ER_IRQHandler)
+INT_VECTOR(GFXMMU_IRQHandler)
+INT_VECTOR(DMAMUX1_OVR_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4s9xx_vectors.h 
b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4s9xx_vectors.h
new file mode 100644
index 000000000..204a91904
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/include/mcu/vectors/stm32l4s9xx_vectors.h
@@ -0,0 +1,130 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+INT_VECTOR_STACK_TOP(__StackTop)
+INT_VECTOR_RESET_HANDLER(Reset_Handler)
+INT_VECTOR_NMI_HANDLER(NMI_Handler)
+INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler)
+INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler)
+INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler)
+INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_PENDSV_HANDLER(PendSV_Handler)
+INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler)
+INT_VECTOR(WWDG_IRQHandler)
+INT_VECTOR(PVD_PVM_IRQHandler)
+INT_VECTOR(TAMP_STAMP_IRQHandler)
+INT_VECTOR(RTC_WKUP_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(DMA1_Channel1_IRQHandler)
+INT_VECTOR(DMA1_Channel2_IRQHandler)
+INT_VECTOR(DMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA1_Channel4_IRQHandler)
+INT_VECTOR(DMA1_Channel5_IRQHandler)
+INT_VECTOR(DMA1_Channel6_IRQHandler)
+INT_VECTOR(DMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(CAN1_TX_IRQHandler)
+INT_VECTOR(CAN1_RX0_IRQHandler)
+INT_VECTOR(CAN1_RX1_IRQHandler)
+INT_VECTOR(CAN1_SCE_IRQHandler)
+INT_VECTOR(EXTI9_5_IRQHandler)
+INT_VECTOR(TIM1_BRK_TIM15_IRQHandler)
+INT_VECTOR(TIM1_UP_TIM16_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_TIM17_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(I2C1_EV_IRQHandler)
+INT_VECTOR(I2C1_ER_IRQHandler)
+INT_VECTOR(I2C2_EV_IRQHandler)
+INT_VECTOR(I2C2_ER_IRQHandler)
+INT_VECTOR(SPI1_IRQHandler)
+INT_VECTOR(SPI2_IRQHandler)
+INT_VECTOR(USART1_IRQHandler)
+INT_VECTOR(USART2_IRQHandler)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(EXTI15_10_IRQHandler)
+INT_VECTOR(RTC_Alarm_IRQHandler)
+INT_VECTOR(DFSDM1_FLT3_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(TIM6_DAC_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(DMA2_Channel1_IRQHandler)
+INT_VECTOR(DMA2_Channel2_IRQHandler)
+INT_VECTOR(DMA2_Channel3_IRQHandler)
+INT_VECTOR(DMA2_Channel4_IRQHandler)
+INT_VECTOR(DMA2_Channel5_IRQHandler)
+INT_VECTOR(DFSDM1_FLT0_IRQHandler)
+INT_VECTOR(DFSDM1_FLT1_IRQHandler)
+INT_VECTOR(DFSDM1_FLT2_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(OTG_FS_IRQHandler)
+INT_VECTOR(DMA2_Channel6_IRQHandler)
+INT_VECTOR(DMA2_Channel7_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(OCTOSPI1_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(OCTOSPI2_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR(DSI_IRQHandler)
+INT_VECTOR(AES_IRQHandler)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(HASH_CRS_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(DCMI_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DMA2D_IRQHandler)
+INT_VECTOR(LTDC_IRQHandler)
+INT_VECTOR(LTDC_ER_IRQHandler)
+INT_VECTOR(GFXMMU_IRQHandler)
+INT_VECTOR(DMAMUX1_OVR_IRQHandler)
diff --git a/hw/mcu/stm/stm32l4xx/link/include/mcu_config.ld.h 
b/hw/mcu/stm/stm32l4xx/link/include/mcu_config.ld.h
new file mode 100644
index 000000000..43504192a
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/link/include/mcu_config.ld.h
@@ -0,0 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#define TEXT_RAM SRAM2
diff --git a/hw/mcu/stm/stm32l4xx/link/include/memory_regions.ld.h 
b/hw/mcu/stm/stm32l4xx/link/include/memory_regions.ld.h
new file mode 100644
index 000000000..1e8c2f4c0
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/link/include/memory_regions.ld.h
@@ -0,0 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+SRAM2 (rxw)       : ORIGIN = 0x10000000,   LENGTH = 32K
diff --git a/hw/mcu/stm/stm32l4xx/pkg.yml b/hw/mcu/stm/stm32l4xx/pkg.yml
index 9bcb0cd26..b514f4c55 100644
--- a/hw/mcu/stm/stm32l4xx/pkg.yml
+++ b/hw/mcu/stm/stm32l4xx/pkg.yml
@@ -45,6 +45,7 @@ pkg.deps:
     - "@apache-mynewt-core/hw/hal"
     - "@apache-mynewt-core/hw/mcu/stm/stm32_common"
     - "@apache-mynewt-core/hw/cmsis-core"
+    - "@apache-mynewt-core/boot/startup"
 
 pkg.deps.'(SPI_0_MASTER || SPI_1_MASTER || SPI_2_MASTER) && 
BUS_DRIVER_PRESENT':
     - "@apache-mynewt-core/hw/bus/drivers/spi_stm32"
diff --git a/hw/mcu/stm/stm32l4xx/src/hal_system_init.c 
b/hw/mcu/stm/stm32l4xx/src/hal_system_init.c
new file mode 100644
index 000000000..5a1935b18
--- /dev/null
+++ b/hw/mcu/stm/stm32l4xx/src/hal_system_init.c
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#include "os/mynewt.h"
+#include "mcu/stm32_hal.h"
+#include <hal/hal_system.h>
+
+extern char __vector_tbl_reloc__[];
+
+void SystemClock_Config(void);
+
+void
+hal_system_init(void)
+{
+    SCB->VTOR = (uint32_t)&__vector_tbl_reloc__;
+
+    /* Configure System Clock */
+    SystemClock_Config();
+
+    /* Update SystemCoreClock global variable */
+    SystemCoreClockUpdate();
+
+    if (PREFETCH_ENABLE) {
+        __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
+    }
+}
+
diff --git a/hw/mcu/stm/stm32l4xx/src/system_stm32l4xx.c 
b/hw/mcu/stm/stm32l4xx/src/system_stm32l4xx.c
index 1e5b5f603..fbf721f13 100644
--- a/hw/mcu/stm/stm32l4xx/src/system_stm32l4xx.c
+++ b/hw/mcu/stm/stm32l4xx/src/system_stm32l4xx.c
@@ -73,15 +73,6 @@ void SystemInit(void)
 
     /* Disable all interrupts */
     RCC->CIER = 0x00000000U;
-
-    /* Configure System Clock */
-    SystemClock_Config();
-
-    /* Update SystemCoreClock global variable */
-    SystemCoreClockUpdate();
-
-    /* Relocate the vector table */
-    NVIC_Relocate();
 }
 
 /**
diff --git a/hw/mcu/stm/stm32l4xx/stm32l476.ld 
b/hw/mcu/stm/stm32l4xx/stm32l476.ld
deleted file mode 100644
index 3a9e4b474..000000000
--- a/hw/mcu/stm/stm32l4xx/stm32l476.ld
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* Linker script to place sections and symbol values. Should be used together
- * with other linker script that defines memory regions FLASH and RAM.
- * It references following symbols, which must be defined in code:
- *   Reset_Handler : Entry of reset handler
- *
- * It defines following symbols, which code can use without definition:
- *   __exidx_start
- *   __exidx_end
- *   __etext
- *   __data_start__
- *   __preinit_array_start
- *   __preinit_array_end
- *   __init_array_start
- *   __init_array_end
- *   __fini_array_start
- *   __fini_array_end
- *   __data_end__
- *   __bss_start__
- *   __bss_end__
- *   __end__
- *   end
- *   __HeapBase
- *   __HeapLimit
- *   __StackLimit
- *   __StackTop
- *   __stack
- *   __coredata_start__
- *   __coredata_end__
- *   __corebss_start__
- *   __corebss_end__
- *   __ecoredata
- *   __ecorebss
- */
-ENTRY(Reset_Handler)
-
-_estack = ORIGIN(RAM) + LENGTH(RAM);
-
-SECTIONS
-{
-    /* Reserve space at the start of the image for the header. */
-    .imghdr (NOLOAD):
-    {
-        . = . + _imghdr_size;
-    } > FLASH
-
-    .text :
-    {
-        . = ALIGN(8);
-        __isr_vector_start = .;
-        KEEP(*(.isr_vector))
-        __isr_vector_end = .;
-        *(.text*)
-
-        KEEP(*(.init))
-        KEEP(*(.fini))
-
-        /* preinit data */
-        PROVIDE_HIDDEN (__preinit_array_start = .);
-        KEEP(*(.preinit_array))
-        PROVIDE_HIDDEN (__preinit_array_end = .);
-
-        . = ALIGN(8);
-        /* init data */
-        PROVIDE_HIDDEN (__init_array_start = .);
-        KEEP(*(SORT(.init_array.*)))
-        KEEP(*(.init_array))
-        PROVIDE_HIDDEN (__init_array_end = .);
-
-        . = ALIGN(8);
-        /* finit data */
-        PROVIDE_HIDDEN (__fini_array_start = .);
-        KEEP(*(SORT(.fini_array.*)))
-        KEEP(*(.fini_array))
-        PROVIDE_HIDDEN (__fini_array_end = .);
-
-        /* .ctors */
-        *crtbegin.o(.ctors)
-        *crtbegin?.o(.ctors)
-        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
-        *(SORT(.ctors.*))
-        *(.ctors)
-
-        /* .dtors */
-        *crtbegin.o(.dtors)
-        *crtbegin?.o(.dtors)
-        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
-        *(SORT(.dtors.*))
-        *(.dtors)
-
-INCLUDE "link_tables.ld.h"
-        *(.rodata*)
-
-        KEEP(*(.eh_frame*))
-        PROVIDE(mynewt_main = main);
-    } > FLASH
-
-    .ARM.extab :
-    {
-        *(.ARM.extab* .gnu.linkonce.armextab.*)
-    } > FLASH
-
-    __exidx_start = .;
-    .ARM.exidx :
-    {
-        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
-    } > FLASH
-
-    __exidx_end = .;
-
-    __etext = .;
-
-    .vector_relocation :
-    {
-        . = ALIGN(8);
-        __vector_tbl_reloc__ = .;
-        . = . + (__isr_vector_end - __isr_vector_start);
-    } > RAM
-
-    .coredata :
-    {
-        . = ALIGN(8);
-        __coredata_start__ = .;
-        *(.data.core)
-        __coredata_end__ = .;
-    } > RAM AT > FLASH
-
-    __ecoredata = __etext + SIZEOF(.coredata);
-
-    _sidata = LOADADDR(.data);
-
-    .data :
-    {
-        . = ALIGN(8);
-        _sdata = .;
-        __data_start__ = _sdata;
-        *(vtable)
-        *(.data*)
-
-        KEEP(*(.jcr*))
-        . = ALIGN(8);
-        /* All data end */
-        _edata = .;
-        __data_end__ = _edata;
-
-    } > RAM AT > FLASH
-
-    .corebss (NOLOAD):
-    {
-        . = ALIGN(4);
-        __corebss_start__ = .;
-        *(.bss.core)
-        . = ALIGN(4);
-        __corebss_end__ = .;
-        *(.corebss*)
-        *(.bss.core.nz)
-        . = ALIGN(4);
-        __ecorebss = .;
-    } > RAM
-
-    .bss :
-    {
-        . = ALIGN(4);
-        _sbss = .;
-        __bss_start__ = _sbss;
-        *(.bss*)
-        *(COMMON)
-        . = ALIGN(4);
-        _ebss = .;
-        __bss_end__ = _ebss;
-    } > RAM
-
-    . = ALIGN(8);
-    __HeapBase = .;
-    __HeapLimit = ORIGIN(RAM) + LENGTH(RAM);
-
-    _ram_start = ORIGIN(RAM);
-
-    /* .stack_dummy section doesn't contains any symbols. It is only
-     * used for linker to calculate size of stack sections, and assign
-     * values to stack symbols later */
-    .stack_dummy (COPY):
-    {
-        *(.stack*)
-    } > RAM
-
-    /* Set stack top to end of RAM; stack limit is bottom of stack */
-    __StackTop = ORIGIN(RAM) + LENGTH(RAM);
-    __StackLimit = __StackTop - SIZEOF(.stack_dummy);
-    PROVIDE(__stack = __StackTop);
-}
-

Reply via email to