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 416e41f58c6a5c96f50eb891465fa0a741be2342
Author: Jerzy Kasenberg <[email protected]>
AuthorDate: Wed Apr 10 09:57:06 2024 +0200

    hw/mcu/stm32u5: Use common startup code for cortex-m33
    
    This:
    - adds vectors definitions for all stm32u5 MCU's
    - fixes MSI ranges (system_stm32u5xx.c taken verbatim from st repo)
    - mynewt related code moved from system_stm32u5xx.c to hal_system_init
    
    Signed-off-by: Jerzy Kasenberg <[email protected]>
---
 hw/mcu/stm/stm32u5xx/include/mcu/mcu_vectors.h     |  38 +++++
 .../include/mcu/vectors/stm32u535xx_vectors.h      | 161 +++++++++++++++++++
 .../include/mcu/vectors/stm32u545xx_vectors.h      | 161 +++++++++++++++++++
 .../include/mcu/vectors/stm32u575xx_vectors.h      | 161 +++++++++++++++++++
 .../include/mcu/vectors/stm32u585xx_vectors.h      | 161 +++++++++++++++++++
 .../include/mcu/vectors/stm32u595xx_vectors.h      | 167 ++++++++++++++++++++
 .../include/mcu/vectors/stm32u599xx_vectors.h      | 174 +++++++++++++++++++++
 .../include/mcu/vectors/stm32u5a5xx_vectors.h      | 167 ++++++++++++++++++++
 .../include/mcu/vectors/stm32u5a9xx_vectors.h      | 174 +++++++++++++++++++++
 hw/mcu/stm/stm32u5xx/pkg.yml                       |   1 +
 hw/mcu/stm/stm32u5xx/src/hal_system_init.c         |  42 +++++
 hw/mcu/stm/stm32u5xx/src/system_stm32u5xx.c        |  25 ++-
 12 files changed, 1416 insertions(+), 16 deletions(-)

diff --git a/hw/mcu/stm/stm32u5xx/include/mcu/mcu_vectors.h 
b/hw/mcu/stm/stm32u5xx/include/mcu/mcu_vectors.h
new file mode 100644
index 000000000..4915b4b41
--- /dev/null
+++ b/hw/mcu/stm/stm32u5xx/include/mcu/mcu_vectors.h
@@ -0,0 +1,38 @@
+/*
+ * 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(STM32U575xx)
+#include "vectors/stm32u575xx_vectors.h"
+#elif defined(STM32U585xx)
+#include "vectors/stm32u585xx_vectors.h"
+#elif defined(STM32U595xx)
+#include "vectors/stm32u595xx_vectors.h"
+#elif defined(STM32U599xx)
+#include "vectors/stm32u599xx_vectors.h"
+#elif defined(STM32U5A5xx)
+#include "vectors/stm32u5a5xx_vectors.h"
+#elif defined(STM32U5A9xx)
+#include "vectors/stm32u5a9xx_vectors.h"
+#elif defined(STM32U535xx)
+#include "vectors/stm32u535xx_vectors.h"
+#elif defined(STM32U545xx)
+#include "vectors/stm32u545xx_vectors.h"
+#else
+#error "Please select first the target STM32U5xx device used in your 
application (in stm32u5xx.h file)"
+#endif
diff --git a/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u535xx_vectors.h 
b/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u535xx_vectors.h
new file mode 100644
index 000000000..24db124a9
--- /dev/null
+++ b/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u535xx_vectors.h
@@ -0,0 +1,161 @@
+/*
+ * 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_SECUREFAULT_HANDLER(SecureFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_UNUSED(0)
+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(RTC_IRQHandler)
+INT_VECTOR(RTC_S_IRQHandler)
+INT_VECTOR(TAMP_IRQHandler)
+INT_VECTOR(RAMCFG_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(FLASH_S_IRQHandler)
+INT_VECTOR(GTZC_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(RCC_S_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(EXTI5_IRQHandler)
+INT_VECTOR(EXTI6_IRQHandler)
+INT_VECTOR(EXTI7_IRQHandler)
+INT_VECTOR(EXTI8_IRQHandler)
+INT_VECTOR(EXTI9_IRQHandler)
+INT_VECTOR(EXTI10_IRQHandler)
+INT_VECTOR(EXTI11_IRQHandler)
+INT_VECTOR(EXTI12_IRQHandler)
+INT_VECTOR(EXTI13_IRQHandler)
+INT_VECTOR(EXTI14_IRQHandler)
+INT_VECTOR(EXTI15_IRQHandler)
+INT_VECTOR(IWDG_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(GPDMA1_Channel0_IRQHandler)
+INT_VECTOR(GPDMA1_Channel1_IRQHandler)
+INT_VECTOR(GPDMA1_Channel2_IRQHandler)
+INT_VECTOR(GPDMA1_Channel3_IRQHandler)
+INT_VECTOR(GPDMA1_Channel4_IRQHandler)
+INT_VECTOR(GPDMA1_Channel5_IRQHandler)
+INT_VECTOR(GPDMA1_Channel6_IRQHandler)
+INT_VECTOR(GPDMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(DAC1_IRQHandler)
+INT_VECTOR(FDCAN1_IT0_IRQHandler)
+INT_VECTOR(FDCAN1_IT1_IRQHandler)
+INT_VECTOR(TIM1_BRK_IRQHandler)
+INT_VECTOR(TIM1_UP_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(TIM6_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_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_UNUSED(0)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(TIM15_IRQHandler)
+INT_VECTOR(TIM16_IRQHandler)
+INT_VECTOR(TIM17_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(USB_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(OCTOSPI1_IRQHandler)
+INT_VECTOR(PWR_S3WU_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(GPDMA1_Channel8_IRQHandler)
+INT_VECTOR(GPDMA1_Channel9_IRQHandler)
+INT_VECTOR(GPDMA1_Channel10_IRQHandler)
+INT_VECTOR(GPDMA1_Channel11_IRQHandler)
+INT_VECTOR(GPDMA1_Channel12_IRQHandler)
+INT_VECTOR(GPDMA1_Channel13_IRQHandler)
+INT_VECTOR(GPDMA1_Channel14_IRQHandler)
+INT_VECTOR(GPDMA1_Channel15_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(HASH_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(LPTIM3_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(MDF1_FLT0_IRQHandler)
+INT_VECTOR(MDF1_FLT1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(ICACHE_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(LPTIM4_IRQHandler)
+INT_VECTOR(DCACHE1_IRQHandler)
+INT_VECTOR(ADF1_IRQHandler)
+INT_VECTOR(ADC4_IRQHandler)
+INT_VECTOR(LPDMA1_Channel0_IRQHandler)
+INT_VECTOR(LPDMA1_Channel1_IRQHandler)
+INT_VECTOR(LPDMA1_Channel2_IRQHandler)
+INT_VECTOR(LPDMA1_Channel3_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DCMI_PSSI_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(CORDIC_IRQHandler)
+INT_VECTOR(FMAC_IRQHandler)
+INT_VECTOR(LSECSSD_IRQHandler)
diff --git a/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u545xx_vectors.h 
b/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u545xx_vectors.h
new file mode 100644
index 000000000..322bddcbe
--- /dev/null
+++ b/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u545xx_vectors.h
@@ -0,0 +1,161 @@
+/*
+ * 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_SECUREFAULT_HANDLER(SecureFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_UNUSED(0)
+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(RTC_IRQHandler)
+INT_VECTOR(RTC_S_IRQHandler)
+INT_VECTOR(TAMP_IRQHandler)
+INT_VECTOR(RAMCFG_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(FLASH_S_IRQHandler)
+INT_VECTOR(GTZC_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(RCC_S_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(EXTI5_IRQHandler)
+INT_VECTOR(EXTI6_IRQHandler)
+INT_VECTOR(EXTI7_IRQHandler)
+INT_VECTOR(EXTI8_IRQHandler)
+INT_VECTOR(EXTI9_IRQHandler)
+INT_VECTOR(EXTI10_IRQHandler)
+INT_VECTOR(EXTI11_IRQHandler)
+INT_VECTOR(EXTI12_IRQHandler)
+INT_VECTOR(EXTI13_IRQHandler)
+INT_VECTOR(EXTI14_IRQHandler)
+INT_VECTOR(EXTI15_IRQHandler)
+INT_VECTOR(IWDG_IRQHandler)
+INT_VECTOR(SAES_IRQHandler)
+INT_VECTOR(GPDMA1_Channel0_IRQHandler)
+INT_VECTOR(GPDMA1_Channel1_IRQHandler)
+INT_VECTOR(GPDMA1_Channel2_IRQHandler)
+INT_VECTOR(GPDMA1_Channel3_IRQHandler)
+INT_VECTOR(GPDMA1_Channel4_IRQHandler)
+INT_VECTOR(GPDMA1_Channel5_IRQHandler)
+INT_VECTOR(GPDMA1_Channel6_IRQHandler)
+INT_VECTOR(GPDMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(DAC1_IRQHandler)
+INT_VECTOR(FDCAN1_IT0_IRQHandler)
+INT_VECTOR(FDCAN1_IT1_IRQHandler)
+INT_VECTOR(TIM1_BRK_IRQHandler)
+INT_VECTOR(TIM1_UP_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(TIM6_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_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_UNUSED(0)
+INT_VECTOR(USART3_IRQHandler)
+INT_VECTOR(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(TIM15_IRQHandler)
+INT_VECTOR(TIM16_IRQHandler)
+INT_VECTOR(TIM17_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(USB_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(OCTOSPI1_IRQHandler)
+INT_VECTOR(PWR_S3WU_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(GPDMA1_Channel8_IRQHandler)
+INT_VECTOR(GPDMA1_Channel9_IRQHandler)
+INT_VECTOR(GPDMA1_Channel10_IRQHandler)
+INT_VECTOR(GPDMA1_Channel11_IRQHandler)
+INT_VECTOR(GPDMA1_Channel12_IRQHandler)
+INT_VECTOR(GPDMA1_Channel13_IRQHandler)
+INT_VECTOR(GPDMA1_Channel14_IRQHandler)
+INT_VECTOR(GPDMA1_Channel15_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR(AES_IRQHandler)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(HASH_IRQHandler)
+INT_VECTOR(PKA_IRQHandler)
+INT_VECTOR(LPTIM3_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(MDF1_FLT0_IRQHandler)
+INT_VECTOR(MDF1_FLT1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(ICACHE_IRQHandler)
+INT_VECTOR(OTFDEC1_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(LPTIM4_IRQHandler)
+INT_VECTOR(DCACHE1_IRQHandler)
+INT_VECTOR(ADF1_IRQHandler)
+INT_VECTOR(ADC4_IRQHandler)
+INT_VECTOR(LPDMA1_Channel0_IRQHandler)
+INT_VECTOR(LPDMA1_Channel1_IRQHandler)
+INT_VECTOR(LPDMA1_Channel2_IRQHandler)
+INT_VECTOR(LPDMA1_Channel3_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(DCMI_PSSI_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(CORDIC_IRQHandler)
+INT_VECTOR(FMAC_IRQHandler)
+INT_VECTOR(LSECSSD_IRQHandler)
diff --git a/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u575xx_vectors.h 
b/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u575xx_vectors.h
new file mode 100644
index 000000000..cb9ef011d
--- /dev/null
+++ b/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u575xx_vectors.h
@@ -0,0 +1,161 @@
+/*
+ * 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_SECUREFAULT_HANDLER(SecureFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_UNUSED(0)
+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(RTC_IRQHandler)
+INT_VECTOR(RTC_S_IRQHandler)
+INT_VECTOR(TAMP_IRQHandler)
+INT_VECTOR(RAMCFG_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(FLASH_S_IRQHandler)
+INT_VECTOR(GTZC_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(RCC_S_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(EXTI5_IRQHandler)
+INT_VECTOR(EXTI6_IRQHandler)
+INT_VECTOR(EXTI7_IRQHandler)
+INT_VECTOR(EXTI8_IRQHandler)
+INT_VECTOR(EXTI9_IRQHandler)
+INT_VECTOR(EXTI10_IRQHandler)
+INT_VECTOR(EXTI11_IRQHandler)
+INT_VECTOR(EXTI12_IRQHandler)
+INT_VECTOR(EXTI13_IRQHandler)
+INT_VECTOR(EXTI14_IRQHandler)
+INT_VECTOR(EXTI15_IRQHandler)
+INT_VECTOR(IWDG_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(GPDMA1_Channel0_IRQHandler)
+INT_VECTOR(GPDMA1_Channel1_IRQHandler)
+INT_VECTOR(GPDMA1_Channel2_IRQHandler)
+INT_VECTOR(GPDMA1_Channel3_IRQHandler)
+INT_VECTOR(GPDMA1_Channel4_IRQHandler)
+INT_VECTOR(GPDMA1_Channel5_IRQHandler)
+INT_VECTOR(GPDMA1_Channel6_IRQHandler)
+INT_VECTOR(GPDMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(DAC1_IRQHandler)
+INT_VECTOR(FDCAN1_IT0_IRQHandler)
+INT_VECTOR(FDCAN1_IT1_IRQHandler)
+INT_VECTOR(TIM1_BRK_IRQHandler)
+INT_VECTOR(TIM1_UP_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(TIM6_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_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(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(TIM15_IRQHandler)
+INT_VECTOR(TIM16_IRQHandler)
+INT_VECTOR(TIM17_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(OTG_FS_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(OCTOSPI1_IRQHandler)
+INT_VECTOR(PWR_S3WU_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(SDMMC2_IRQHandler)
+INT_VECTOR(GPDMA1_Channel8_IRQHandler)
+INT_VECTOR(GPDMA1_Channel9_IRQHandler)
+INT_VECTOR(GPDMA1_Channel10_IRQHandler)
+INT_VECTOR(GPDMA1_Channel11_IRQHandler)
+INT_VECTOR(GPDMA1_Channel12_IRQHandler)
+INT_VECTOR(GPDMA1_Channel13_IRQHandler)
+INT_VECTOR(GPDMA1_Channel14_IRQHandler)
+INT_VECTOR(GPDMA1_Channel15_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(HASH_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(LPTIM3_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(MDF1_FLT0_IRQHandler)
+INT_VECTOR(MDF1_FLT1_IRQHandler)
+INT_VECTOR(MDF1_FLT2_IRQHandler)
+INT_VECTOR(MDF1_FLT3_IRQHandler)
+INT_VECTOR(UCPD1_IRQHandler)
+INT_VECTOR(ICACHE_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(LPTIM4_IRQHandler)
+INT_VECTOR(DCACHE1_IRQHandler)
+INT_VECTOR(ADF1_IRQHandler)
+INT_VECTOR(ADC4_IRQHandler)
+INT_VECTOR(LPDMA1_Channel0_IRQHandler)
+INT_VECTOR(LPDMA1_Channel1_IRQHandler)
+INT_VECTOR(LPDMA1_Channel2_IRQHandler)
+INT_VECTOR(LPDMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA2D_IRQHandler)
+INT_VECTOR(DCMI_PSSI_IRQHandler)
+INT_VECTOR(OCTOSPI2_IRQHandler)
+INT_VECTOR(MDF1_FLT4_IRQHandler)
+INT_VECTOR(MDF1_FLT5_IRQHandler)
+INT_VECTOR(CORDIC_IRQHandler)
+INT_VECTOR(FMAC_IRQHandler)
+INT_VECTOR(LSECSSD_IRQHandler)
diff --git a/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u585xx_vectors.h 
b/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u585xx_vectors.h
new file mode 100644
index 000000000..5eee5c4a6
--- /dev/null
+++ b/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u585xx_vectors.h
@@ -0,0 +1,161 @@
+/*
+ * 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_SECUREFAULT_HANDLER(SecureFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_UNUSED(0)
+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(RTC_IRQHandler)
+INT_VECTOR(RTC_S_IRQHandler)
+INT_VECTOR(TAMP_IRQHandler)
+INT_VECTOR(RAMCFG_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(FLASH_S_IRQHandler)
+INT_VECTOR(GTZC_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(RCC_S_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(EXTI5_IRQHandler)
+INT_VECTOR(EXTI6_IRQHandler)
+INT_VECTOR(EXTI7_IRQHandler)
+INT_VECTOR(EXTI8_IRQHandler)
+INT_VECTOR(EXTI9_IRQHandler)
+INT_VECTOR(EXTI10_IRQHandler)
+INT_VECTOR(EXTI11_IRQHandler)
+INT_VECTOR(EXTI12_IRQHandler)
+INT_VECTOR(EXTI13_IRQHandler)
+INT_VECTOR(EXTI14_IRQHandler)
+INT_VECTOR(EXTI15_IRQHandler)
+INT_VECTOR(IWDG_IRQHandler)
+INT_VECTOR(SAES_IRQHandler)
+INT_VECTOR(GPDMA1_Channel0_IRQHandler)
+INT_VECTOR(GPDMA1_Channel1_IRQHandler)
+INT_VECTOR(GPDMA1_Channel2_IRQHandler)
+INT_VECTOR(GPDMA1_Channel3_IRQHandler)
+INT_VECTOR(GPDMA1_Channel4_IRQHandler)
+INT_VECTOR(GPDMA1_Channel5_IRQHandler)
+INT_VECTOR(GPDMA1_Channel6_IRQHandler)
+INT_VECTOR(GPDMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_IRQHandler)
+INT_VECTOR(DAC1_IRQHandler)
+INT_VECTOR(FDCAN1_IT0_IRQHandler)
+INT_VECTOR(FDCAN1_IT1_IRQHandler)
+INT_VECTOR(TIM1_BRK_IRQHandler)
+INT_VECTOR(TIM1_UP_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(TIM6_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_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(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(TIM15_IRQHandler)
+INT_VECTOR(TIM16_IRQHandler)
+INT_VECTOR(TIM17_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(OTG_FS_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(OCTOSPI1_IRQHandler)
+INT_VECTOR(PWR_S3WU_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(SDMMC2_IRQHandler)
+INT_VECTOR(GPDMA1_Channel8_IRQHandler)
+INT_VECTOR(GPDMA1_Channel9_IRQHandler)
+INT_VECTOR(GPDMA1_Channel10_IRQHandler)
+INT_VECTOR(GPDMA1_Channel11_IRQHandler)
+INT_VECTOR(GPDMA1_Channel12_IRQHandler)
+INT_VECTOR(GPDMA1_Channel13_IRQHandler)
+INT_VECTOR(GPDMA1_Channel14_IRQHandler)
+INT_VECTOR(GPDMA1_Channel15_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR(AES_IRQHandler)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(HASH_IRQHandler)
+INT_VECTOR(PKA_IRQHandler)
+INT_VECTOR(LPTIM3_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(MDF1_FLT0_IRQHandler)
+INT_VECTOR(MDF1_FLT1_IRQHandler)
+INT_VECTOR(MDF1_FLT2_IRQHandler)
+INT_VECTOR(MDF1_FLT3_IRQHandler)
+INT_VECTOR(UCPD1_IRQHandler)
+INT_VECTOR(ICACHE_IRQHandler)
+INT_VECTOR(OTFDEC1_IRQHandler)
+INT_VECTOR(OTFDEC2_IRQHandler)
+INT_VECTOR(LPTIM4_IRQHandler)
+INT_VECTOR(DCACHE1_IRQHandler)
+INT_VECTOR(ADF1_IRQHandler)
+INT_VECTOR(ADC4_IRQHandler)
+INT_VECTOR(LPDMA1_Channel0_IRQHandler)
+INT_VECTOR(LPDMA1_Channel1_IRQHandler)
+INT_VECTOR(LPDMA1_Channel2_IRQHandler)
+INT_VECTOR(LPDMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA2D_IRQHandler)
+INT_VECTOR(DCMI_PSSI_IRQHandler)
+INT_VECTOR(OCTOSPI2_IRQHandler)
+INT_VECTOR(MDF1_FLT4_IRQHandler)
+INT_VECTOR(MDF1_FLT5_IRQHandler)
+INT_VECTOR(CORDIC_IRQHandler)
+INT_VECTOR(FMAC_IRQHandler)
+INT_VECTOR(LSECSSD_IRQHandler)
diff --git a/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u595xx_vectors.h 
b/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u595xx_vectors.h
new file mode 100644
index 000000000..ef294c808
--- /dev/null
+++ b/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u595xx_vectors.h
@@ -0,0 +1,167 @@
+/*
+ * 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_SECUREFAULT_HANDLER(SecureFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_UNUSED(0)
+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(RTC_IRQHandler)
+INT_VECTOR(RTC_S_IRQHandler)
+INT_VECTOR(TAMP_IRQHandler)
+INT_VECTOR(RAMCFG_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(FLASH_S_IRQHandler)
+INT_VECTOR(GTZC_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(RCC_S_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(EXTI5_IRQHandler)
+INT_VECTOR(EXTI6_IRQHandler)
+INT_VECTOR(EXTI7_IRQHandler)
+INT_VECTOR(EXTI8_IRQHandler)
+INT_VECTOR(EXTI9_IRQHandler)
+INT_VECTOR(EXTI10_IRQHandler)
+INT_VECTOR(EXTI11_IRQHandler)
+INT_VECTOR(EXTI12_IRQHandler)
+INT_VECTOR(EXTI13_IRQHandler)
+INT_VECTOR(EXTI14_IRQHandler)
+INT_VECTOR(EXTI15_IRQHandler)
+INT_VECTOR(IWDG_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(GPDMA1_Channel0_IRQHandler)
+INT_VECTOR(GPDMA1_Channel1_IRQHandler)
+INT_VECTOR(GPDMA1_Channel2_IRQHandler)
+INT_VECTOR(GPDMA1_Channel3_IRQHandler)
+INT_VECTOR(GPDMA1_Channel4_IRQHandler)
+INT_VECTOR(GPDMA1_Channel5_IRQHandler)
+INT_VECTOR(GPDMA1_Channel6_IRQHandler)
+INT_VECTOR(GPDMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_2_IRQHandler)
+INT_VECTOR(DAC1_IRQHandler)
+INT_VECTOR(FDCAN1_IT0_IRQHandler)
+INT_VECTOR(FDCAN1_IT1_IRQHandler)
+INT_VECTOR(TIM1_BRK_IRQHandler)
+INT_VECTOR(TIM1_UP_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(TIM6_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_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(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(TIM15_IRQHandler)
+INT_VECTOR(TIM16_IRQHandler)
+INT_VECTOR(TIM17_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(OTG_HS_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(OCTOSPI1_IRQHandler)
+INT_VECTOR(PWR_S3WU_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(SDMMC2_IRQHandler)
+INT_VECTOR(GPDMA1_Channel8_IRQHandler)
+INT_VECTOR(GPDMA1_Channel9_IRQHandler)
+INT_VECTOR(GPDMA1_Channel10_IRQHandler)
+INT_VECTOR(GPDMA1_Channel11_IRQHandler)
+INT_VECTOR(GPDMA1_Channel12_IRQHandler)
+INT_VECTOR(GPDMA1_Channel13_IRQHandler)
+INT_VECTOR(GPDMA1_Channel14_IRQHandler)
+INT_VECTOR(GPDMA1_Channel15_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(HASH_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(LPTIM3_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(MDF1_FLT0_IRQHandler)
+INT_VECTOR(MDF1_FLT1_IRQHandler)
+INT_VECTOR(MDF1_FLT2_IRQHandler)
+INT_VECTOR(MDF1_FLT3_IRQHandler)
+INT_VECTOR(UCPD1_IRQHandler)
+INT_VECTOR(ICACHE_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(LPTIM4_IRQHandler)
+INT_VECTOR(DCACHE1_IRQHandler)
+INT_VECTOR(ADF1_IRQHandler)
+INT_VECTOR(ADC4_IRQHandler)
+INT_VECTOR(LPDMA1_Channel0_IRQHandler)
+INT_VECTOR(LPDMA1_Channel1_IRQHandler)
+INT_VECTOR(LPDMA1_Channel2_IRQHandler)
+INT_VECTOR(LPDMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA2D_IRQHandler)
+INT_VECTOR(DCMI_PSSI_IRQHandler)
+INT_VECTOR(OCTOSPI2_IRQHandler)
+INT_VECTOR(MDF1_FLT4_IRQHandler)
+INT_VECTOR(MDF1_FLT5_IRQHandler)
+INT_VECTOR(CORDIC_IRQHandler)
+INT_VECTOR(FMAC_IRQHandler)
+INT_VECTOR(LSECSSD_IRQHandler)
+INT_VECTOR(USART6_IRQHandler)
+INT_VECTOR(I2C5_ER_IRQHandler)
+INT_VECTOR(I2C5_EV_IRQHandler)
+INT_VECTOR(I2C6_ER_IRQHandler)
+INT_VECTOR(I2C6_EV_IRQHandler)
+INT_VECTOR(HSPI1_IRQHandler)
diff --git a/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u599xx_vectors.h 
b/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u599xx_vectors.h
new file mode 100644
index 000000000..23aac5e04
--- /dev/null
+++ b/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u599xx_vectors.h
@@ -0,0 +1,174 @@
+/*
+ * 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_SECUREFAULT_HANDLER(SecureFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_UNUSED(0)
+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(RTC_IRQHandler)
+INT_VECTOR(RTC_S_IRQHandler)
+INT_VECTOR(TAMP_IRQHandler)
+INT_VECTOR(RAMCFG_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(FLASH_S_IRQHandler)
+INT_VECTOR(GTZC_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(RCC_S_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(EXTI5_IRQHandler)
+INT_VECTOR(EXTI6_IRQHandler)
+INT_VECTOR(EXTI7_IRQHandler)
+INT_VECTOR(EXTI8_IRQHandler)
+INT_VECTOR(EXTI9_IRQHandler)
+INT_VECTOR(EXTI10_IRQHandler)
+INT_VECTOR(EXTI11_IRQHandler)
+INT_VECTOR(EXTI12_IRQHandler)
+INT_VECTOR(EXTI13_IRQHandler)
+INT_VECTOR(EXTI14_IRQHandler)
+INT_VECTOR(EXTI15_IRQHandler)
+INT_VECTOR(IWDG_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(GPDMA1_Channel0_IRQHandler)
+INT_VECTOR(GPDMA1_Channel1_IRQHandler)
+INT_VECTOR(GPDMA1_Channel2_IRQHandler)
+INT_VECTOR(GPDMA1_Channel3_IRQHandler)
+INT_VECTOR(GPDMA1_Channel4_IRQHandler)
+INT_VECTOR(GPDMA1_Channel5_IRQHandler)
+INT_VECTOR(GPDMA1_Channel6_IRQHandler)
+INT_VECTOR(GPDMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_2_IRQHandler)
+INT_VECTOR(DAC1_IRQHandler)
+INT_VECTOR(FDCAN1_IT0_IRQHandler)
+INT_VECTOR(FDCAN1_IT1_IRQHandler)
+INT_VECTOR(TIM1_BRK_IRQHandler)
+INT_VECTOR(TIM1_UP_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(TIM6_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_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(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(TIM15_IRQHandler)
+INT_VECTOR(TIM16_IRQHandler)
+INT_VECTOR(TIM17_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(OTG_HS_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(OCTOSPI1_IRQHandler)
+INT_VECTOR(PWR_S3WU_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(SDMMC2_IRQHandler)
+INT_VECTOR(GPDMA1_Channel8_IRQHandler)
+INT_VECTOR(GPDMA1_Channel9_IRQHandler)
+INT_VECTOR(GPDMA1_Channel10_IRQHandler)
+INT_VECTOR(GPDMA1_Channel11_IRQHandler)
+INT_VECTOR(GPDMA1_Channel12_IRQHandler)
+INT_VECTOR(GPDMA1_Channel13_IRQHandler)
+INT_VECTOR(GPDMA1_Channel14_IRQHandler)
+INT_VECTOR(GPDMA1_Channel15_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(HASH_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(LPTIM3_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(MDF1_FLT0_IRQHandler)
+INT_VECTOR(MDF1_FLT1_IRQHandler)
+INT_VECTOR(MDF1_FLT2_IRQHandler)
+INT_VECTOR(MDF1_FLT3_IRQHandler)
+INT_VECTOR(UCPD1_IRQHandler)
+INT_VECTOR(ICACHE_IRQHandler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR(LPTIM4_IRQHandler)
+INT_VECTOR(DCACHE1_IRQHandler)
+INT_VECTOR(ADF1_IRQHandler)
+INT_VECTOR(ADC4_IRQHandler)
+INT_VECTOR(LPDMA1_Channel0_IRQHandler)
+INT_VECTOR(LPDMA1_Channel1_IRQHandler)
+INT_VECTOR(LPDMA1_Channel2_IRQHandler)
+INT_VECTOR(LPDMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA2D_IRQHandler)
+INT_VECTOR(DCMI_PSSI_IRQHandler)
+INT_VECTOR(OCTOSPI2_IRQHandler)
+INT_VECTOR(MDF1_FLT4_IRQHandler)
+INT_VECTOR(MDF1_FLT5_IRQHandler)
+INT_VECTOR(CORDIC_IRQHandler)
+INT_VECTOR(FMAC_IRQHandler)
+INT_VECTOR(LSECSSD_IRQHandler)
+INT_VECTOR(USART6_IRQHandler)
+INT_VECTOR(I2C5_ER_IRQHandler)
+INT_VECTOR(I2C5_EV_IRQHandler)
+INT_VECTOR(I2C6_ER_IRQHandler)
+INT_VECTOR(I2C6_EV_IRQHandler)
+INT_VECTOR(HSPI1_IRQHandler)
+INT_VECTOR(GPU2D_IRQHandler)
+INT_VECTOR(GPU2D_ER_IRQHandler)
+INT_VECTOR(GFXMMU_IRQHandler)
+INT_VECTOR(LTDC_IRQHandler)
+INT_VECTOR(LTDC_ER_IRQHandler)
+INT_VECTOR(DSI_IRQHandler)
+INT_VECTOR(DCACHE2_IRQHandler)
diff --git a/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u5a5xx_vectors.h 
b/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u5a5xx_vectors.h
new file mode 100644
index 000000000..b6adff096
--- /dev/null
+++ b/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u5a5xx_vectors.h
@@ -0,0 +1,167 @@
+/*
+ * 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_SECUREFAULT_HANDLER(SecureFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_UNUSED(0)
+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(RTC_IRQHandler)
+INT_VECTOR(RTC_S_IRQHandler)
+INT_VECTOR(TAMP_IRQHandler)
+INT_VECTOR(RAMCFG_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(FLASH_S_IRQHandler)
+INT_VECTOR(GTZC_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(RCC_S_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(EXTI5_IRQHandler)
+INT_VECTOR(EXTI6_IRQHandler)
+INT_VECTOR(EXTI7_IRQHandler)
+INT_VECTOR(EXTI8_IRQHandler)
+INT_VECTOR(EXTI9_IRQHandler)
+INT_VECTOR(EXTI10_IRQHandler)
+INT_VECTOR(EXTI11_IRQHandler)
+INT_VECTOR(EXTI12_IRQHandler)
+INT_VECTOR(EXTI13_IRQHandler)
+INT_VECTOR(EXTI14_IRQHandler)
+INT_VECTOR(EXTI15_IRQHandler)
+INT_VECTOR(IWDG_IRQHandler)
+INT_VECTOR(SAES_IRQHandler)
+INT_VECTOR(GPDMA1_Channel0_IRQHandler)
+INT_VECTOR(GPDMA1_Channel1_IRQHandler)
+INT_VECTOR(GPDMA1_Channel2_IRQHandler)
+INT_VECTOR(GPDMA1_Channel3_IRQHandler)
+INT_VECTOR(GPDMA1_Channel4_IRQHandler)
+INT_VECTOR(GPDMA1_Channel5_IRQHandler)
+INT_VECTOR(GPDMA1_Channel6_IRQHandler)
+INT_VECTOR(GPDMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_2_IRQHandler)
+INT_VECTOR(DAC1_IRQHandler)
+INT_VECTOR(FDCAN1_IT0_IRQHandler)
+INT_VECTOR(FDCAN1_IT1_IRQHandler)
+INT_VECTOR(TIM1_BRK_IRQHandler)
+INT_VECTOR(TIM1_UP_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(TIM6_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_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(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(TIM15_IRQHandler)
+INT_VECTOR(TIM16_IRQHandler)
+INT_VECTOR(TIM17_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(OTG_HS_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(OCTOSPI1_IRQHandler)
+INT_VECTOR(PWR_S3WU_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(SDMMC2_IRQHandler)
+INT_VECTOR(GPDMA1_Channel8_IRQHandler)
+INT_VECTOR(GPDMA1_Channel9_IRQHandler)
+INT_VECTOR(GPDMA1_Channel10_IRQHandler)
+INT_VECTOR(GPDMA1_Channel11_IRQHandler)
+INT_VECTOR(GPDMA1_Channel12_IRQHandler)
+INT_VECTOR(GPDMA1_Channel13_IRQHandler)
+INT_VECTOR(GPDMA1_Channel14_IRQHandler)
+INT_VECTOR(GPDMA1_Channel15_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR(AES_IRQHandler)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(HASH_IRQHandler)
+INT_VECTOR(PKA_IRQHandler)
+INT_VECTOR(LPTIM3_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(MDF1_FLT0_IRQHandler)
+INT_VECTOR(MDF1_FLT1_IRQHandler)
+INT_VECTOR(MDF1_FLT2_IRQHandler)
+INT_VECTOR(MDF1_FLT3_IRQHandler)
+INT_VECTOR(UCPD1_IRQHandler)
+INT_VECTOR(ICACHE_IRQHandler)
+INT_VECTOR(OTFDEC1_IRQHandler)
+INT_VECTOR(OTFDEC2_IRQHandler)
+INT_VECTOR(LPTIM4_IRQHandler)
+INT_VECTOR(DCACHE1_IRQHandler)
+INT_VECTOR(ADF1_IRQHandler)
+INT_VECTOR(ADC4_IRQHandler)
+INT_VECTOR(LPDMA1_Channel0_IRQHandler)
+INT_VECTOR(LPDMA1_Channel1_IRQHandler)
+INT_VECTOR(LPDMA1_Channel2_IRQHandler)
+INT_VECTOR(LPDMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA2D_IRQHandler)
+INT_VECTOR(DCMI_PSSI_IRQHandler)
+INT_VECTOR(OCTOSPI2_IRQHandler)
+INT_VECTOR(MDF1_FLT4_IRQHandler)
+INT_VECTOR(MDF1_FLT5_IRQHandler)
+INT_VECTOR(CORDIC_IRQHandler)
+INT_VECTOR(FMAC_IRQHandler)
+INT_VECTOR(LSECSSD_IRQHandler)
+INT_VECTOR(USART6_IRQHandler)
+INT_VECTOR(I2C5_ER_IRQHandler)
+INT_VECTOR(I2C5_EV_IRQHandler)
+INT_VECTOR(I2C6_ER_IRQHandler)
+INT_VECTOR(I2C6_EV_IRQHandler)
+INT_VECTOR(HSPI1_IRQHandler)
diff --git a/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u5a9xx_vectors.h 
b/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u5a9xx_vectors.h
new file mode 100644
index 000000000..df87564b9
--- /dev/null
+++ b/hw/mcu/stm/stm32u5xx/include/mcu/vectors/stm32u5a9xx_vectors.h
@@ -0,0 +1,174 @@
+/*
+ * 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_SECUREFAULT_HANDLER(SecureFault_Handler)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_UNUSED(0)
+INT_VECTOR_SVC_HANDLER(SVC_Handler)
+INT_VECTOR_UNUSED(0)
+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(RTC_IRQHandler)
+INT_VECTOR(RTC_S_IRQHandler)
+INT_VECTOR(TAMP_IRQHandler)
+INT_VECTOR(RAMCFG_IRQHandler)
+INT_VECTOR(FLASH_IRQHandler)
+INT_VECTOR(FLASH_S_IRQHandler)
+INT_VECTOR(GTZC_IRQHandler)
+INT_VECTOR(RCC_IRQHandler)
+INT_VECTOR(RCC_S_IRQHandler)
+INT_VECTOR(EXTI0_IRQHandler)
+INT_VECTOR(EXTI1_IRQHandler)
+INT_VECTOR(EXTI2_IRQHandler)
+INT_VECTOR(EXTI3_IRQHandler)
+INT_VECTOR(EXTI4_IRQHandler)
+INT_VECTOR(EXTI5_IRQHandler)
+INT_VECTOR(EXTI6_IRQHandler)
+INT_VECTOR(EXTI7_IRQHandler)
+INT_VECTOR(EXTI8_IRQHandler)
+INT_VECTOR(EXTI9_IRQHandler)
+INT_VECTOR(EXTI10_IRQHandler)
+INT_VECTOR(EXTI11_IRQHandler)
+INT_VECTOR(EXTI12_IRQHandler)
+INT_VECTOR(EXTI13_IRQHandler)
+INT_VECTOR(EXTI14_IRQHandler)
+INT_VECTOR(EXTI15_IRQHandler)
+INT_VECTOR(IWDG_IRQHandler)
+INT_VECTOR(SAES_IRQHandler)
+INT_VECTOR(GPDMA1_Channel0_IRQHandler)
+INT_VECTOR(GPDMA1_Channel1_IRQHandler)
+INT_VECTOR(GPDMA1_Channel2_IRQHandler)
+INT_VECTOR(GPDMA1_Channel3_IRQHandler)
+INT_VECTOR(GPDMA1_Channel4_IRQHandler)
+INT_VECTOR(GPDMA1_Channel5_IRQHandler)
+INT_VECTOR(GPDMA1_Channel6_IRQHandler)
+INT_VECTOR(GPDMA1_Channel7_IRQHandler)
+INT_VECTOR(ADC1_2_IRQHandler)
+INT_VECTOR(DAC1_IRQHandler)
+INT_VECTOR(FDCAN1_IT0_IRQHandler)
+INT_VECTOR(FDCAN1_IT1_IRQHandler)
+INT_VECTOR(TIM1_BRK_IRQHandler)
+INT_VECTOR(TIM1_UP_IRQHandler)
+INT_VECTOR(TIM1_TRG_COM_IRQHandler)
+INT_VECTOR(TIM1_CC_IRQHandler)
+INT_VECTOR(TIM2_IRQHandler)
+INT_VECTOR(TIM3_IRQHandler)
+INT_VECTOR(TIM4_IRQHandler)
+INT_VECTOR(TIM5_IRQHandler)
+INT_VECTOR(TIM6_IRQHandler)
+INT_VECTOR(TIM7_IRQHandler)
+INT_VECTOR(TIM8_BRK_IRQHandler)
+INT_VECTOR(TIM8_UP_IRQHandler)
+INT_VECTOR(TIM8_TRG_COM_IRQHandler)
+INT_VECTOR(TIM8_CC_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(UART4_IRQHandler)
+INT_VECTOR(UART5_IRQHandler)
+INT_VECTOR(LPUART1_IRQHandler)
+INT_VECTOR(LPTIM1_IRQHandler)
+INT_VECTOR(LPTIM2_IRQHandler)
+INT_VECTOR(TIM15_IRQHandler)
+INT_VECTOR(TIM16_IRQHandler)
+INT_VECTOR(TIM17_IRQHandler)
+INT_VECTOR(COMP_IRQHandler)
+INT_VECTOR(OTG_HS_IRQHandler)
+INT_VECTOR(CRS_IRQHandler)
+INT_VECTOR(FMC_IRQHandler)
+INT_VECTOR(OCTOSPI1_IRQHandler)
+INT_VECTOR(PWR_S3WU_IRQHandler)
+INT_VECTOR(SDMMC1_IRQHandler)
+INT_VECTOR(SDMMC2_IRQHandler)
+INT_VECTOR(GPDMA1_Channel8_IRQHandler)
+INT_VECTOR(GPDMA1_Channel9_IRQHandler)
+INT_VECTOR(GPDMA1_Channel10_IRQHandler)
+INT_VECTOR(GPDMA1_Channel11_IRQHandler)
+INT_VECTOR(GPDMA1_Channel12_IRQHandler)
+INT_VECTOR(GPDMA1_Channel13_IRQHandler)
+INT_VECTOR(GPDMA1_Channel14_IRQHandler)
+INT_VECTOR(GPDMA1_Channel15_IRQHandler)
+INT_VECTOR(I2C3_EV_IRQHandler)
+INT_VECTOR(I2C3_ER_IRQHandler)
+INT_VECTOR(SAI1_IRQHandler)
+INT_VECTOR(SAI2_IRQHandler)
+INT_VECTOR(TSC_IRQHandler)
+INT_VECTOR(AES_IRQHandler)
+INT_VECTOR(RNG_IRQHandler)
+INT_VECTOR(FPU_IRQHandler)
+INT_VECTOR(HASH_IRQHandler)
+INT_VECTOR(PKA_IRQHandler)
+INT_VECTOR(LPTIM3_IRQHandler)
+INT_VECTOR(SPI3_IRQHandler)
+INT_VECTOR(I2C4_ER_IRQHandler)
+INT_VECTOR(I2C4_EV_IRQHandler)
+INT_VECTOR(MDF1_FLT0_IRQHandler)
+INT_VECTOR(MDF1_FLT1_IRQHandler)
+INT_VECTOR(MDF1_FLT2_IRQHandler)
+INT_VECTOR(MDF1_FLT3_IRQHandler)
+INT_VECTOR(UCPD1_IRQHandler)
+INT_VECTOR(ICACHE_IRQHandler)
+INT_VECTOR(OTFDEC1_IRQHandler)
+INT_VECTOR(OTFDEC2_IRQHandler)
+INT_VECTOR(LPTIM4_IRQHandler)
+INT_VECTOR(DCACHE1_IRQHandler)
+INT_VECTOR(ADF1_IRQHandler)
+INT_VECTOR(ADC4_IRQHandler)
+INT_VECTOR(LPDMA1_Channel0_IRQHandler)
+INT_VECTOR(LPDMA1_Channel1_IRQHandler)
+INT_VECTOR(LPDMA1_Channel2_IRQHandler)
+INT_VECTOR(LPDMA1_Channel3_IRQHandler)
+INT_VECTOR(DMA2D_IRQHandler)
+INT_VECTOR(DCMI_PSSI_IRQHandler)
+INT_VECTOR(OCTOSPI2_IRQHandler)
+INT_VECTOR(MDF1_FLT4_IRQHandler)
+INT_VECTOR(MDF1_FLT5_IRQHandler)
+INT_VECTOR(CORDIC_IRQHandler)
+INT_VECTOR(FMAC_IRQHandler)
+INT_VECTOR(LSECSSD_IRQHandler)
+INT_VECTOR(USART6_IRQHandler)
+INT_VECTOR(I2C5_ER_IRQHandler)
+INT_VECTOR(I2C5_EV_IRQHandler)
+INT_VECTOR(I2C6_ER_IRQHandler)
+INT_VECTOR(I2C6_EV_IRQHandler)
+INT_VECTOR(HSPI1_IRQHandler)
+INT_VECTOR(GPU2D_IRQHandler)
+INT_VECTOR(GPU2D_ER_IRQHandler)
+INT_VECTOR(GFXMMU_IRQHandler)
+INT_VECTOR(LTDC_IRQHandler)
+INT_VECTOR(LTDC_ER_IRQHandler)
+INT_VECTOR(DSI_IRQHandler)
+INT_VECTOR(DCACHE2_IRQHandler)
diff --git a/hw/mcu/stm/stm32u5xx/pkg.yml b/hw/mcu/stm/stm32u5xx/pkg.yml
index b639b4c45..8cbd127f8 100644
--- a/hw/mcu/stm/stm32u5xx/pkg.yml
+++ b/hw/mcu/stm/stm32u5xx/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/stm32u5xx/src/hal_system_init.c 
b/hw/mcu/stm/stm32u5xx/src/hal_system_init.c
new file mode 100644
index 000000000..46d6e4bbc
--- /dev/null
+++ b/hw/mcu/stm/stm32u5xx/src/hal_system_init.c
@@ -0,0 +1,42 @@
+/*
+ * 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();
+
+    /* Relocate the vector table */
+    NVIC_Relocate();
+}
+
diff --git a/hw/mcu/stm/stm32u5xx/src/system_stm32u5xx.c 
b/hw/mcu/stm/stm32u5xx/src/system_stm32u5xx.c
index 5a4aae695..c93ac0fa3 100644
--- a/hw/mcu/stm/stm32u5xx/src/system_stm32u5xx.c
+++ b/hw/mcu/stm/stm32u5xx/src/system_stm32u5xx.c
@@ -100,8 +100,8 @@
   * @{
   */
 
+#include "stm32u5xx.h"
 #include <math.h>
-#include <mcu/cmsis_nvic.h>
 
 /**
   * @}
@@ -166,8 +166,8 @@
 
   const uint8_t  AHBPrescTable[16] = {0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1U, 2U, 
3U, 4U, 6U, 7U, 8U, 9U};
   const uint8_t  APBPrescTable[8] =  {0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U};
-  const uint32_t MSIRangeTable[16] = {48000000U,24000000U,16000000U,12000000U, 
4000000U, 2000000U, 1500000U,\
-                                      1000000U, 3072000U, 1536000U,1024000U, 
768000U, 400000U, 200000U, 150000U, 100000U};
+  const uint32_t MSIRangeTable[16] = {48000000U,24000000U,16000000U,12000000U, 
4000000U, 2000000U, 1330000U,\
+                                      1000000U, 3072000U, 1536000U,1024000U, 
768000U, 400000U, 200000U, 133000U, 100000U};
 /**
   * @}
   */
@@ -184,11 +184,6 @@
   * @{
   */
 
-/*
- * XXX BSP specific
- */
-void SystemClock_Config(void);
-
 /**
   * @brief  Setup the microcontroller system.
   * @param  None
@@ -223,14 +218,12 @@ void SystemInit(void)
   /* Disable all interrupts */
   RCC->CIER = 0U;
 
-  /* Configure System Clock */
-  SystemClock_Config();
-
-  /* Update SystemCoreClock global variable */
-  SystemCoreClockUpdate();
-
-  /* Relocate the vector table */
-  NVIC_Relocate();
+  /* Configure the Vector Table location add offset address 
------------------*/
+  #ifdef VECT_TAB_SRAM
+    SCB->VTOR = SRAM1_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in 
Internal SRAM */
+  #else
+    SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in 
Internal FLASH */
+  #endif
 }
 
 /**

Reply via email to