diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Include/stm32l552xx.h b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Include/stm32l552xx.h index 0f7b82a572..23326fe545 100644 --- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Include/stm32l552xx.h +++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Include/stm32l552xx.h @@ -214,7 +214,7 @@ typedef enum #define __FPU_PRESENT 1U /* FPU present */ #define __DSP_PRESENT 1U /* DSP extension present */ -#include /*!< ARM Cortex-M33 processor and core peripherals */ +#include "core_cm33.h" /*!< ARM Cortex-M33 processor and core peripherals */ #include "system_stm32l5xx.h" /*!< STM32L5xx System */ @@ -14729,7 +14729,7 @@ typedef struct /******************* Bit definition for TIM_CCR5 register *******************/ #define TIM_CCR5_CCR5_Pos (0U) -#define TIM_CCR5_CCR5_Msk (0xFFFFFFFFUL << TIM_CCR5_CCR5_Pos) /*!< 0xFFFFFFFF */ +#define TIM_CCR5_CCR5_Msk (0xFFFFUL << TIM_CCR5_CCR5_Pos) /*!< 0xFFFF */ #define TIM_CCR5_CCR5 TIM_CCR5_CCR5_Msk /*! /*!< ARM Cortex-M33 processor and core peripherals */ +#include "core_cm33.h" /*!< ARM Cortex-M33 processor and core peripherals */ #include "system_stm32l5xx.h" /*!< STM32L5xx System */ @@ -15468,7 +15468,7 @@ typedef struct /******************* Bit definition for TIM_CCR5 register *******************/ #define TIM_CCR5_CCR5_Pos (0U) -#define TIM_CCR5_CCR5_Msk (0xFFFFFFFFUL << TIM_CCR5_CCR5_Pos) /*!< 0xFFFFFFFF */ +#define TIM_CCR5_CCR5_Msk (0xFFFFUL << TIM_CCR5_CCR5_Pos) /*!< 0xFFFF */ #define TIM_CCR5_CCR5 TIM_CCR5_CCR5_Msk /*!Purpose

Update History

- +

Main Changes

Maintenance release

Contents

    -
  • Fix the location of .size directive in STM32CubeIDE’s startup code to allow proper size information of vector table.
  • -
  • Add the READONLY tag to sections containing lookup tables to avoid GCC12 linker warnings if a segment is marked RWX.
  • +
  • Fix Capture Compare register TIMx_CCR5 definition.
  • +
  • Allow redefinition of the macro ‘VECT_TAB_OFFSET’ externally from the IDE, makefile, or command line.
  • +
  • Update core_cm33 header file inclusion to use double quotes instead of angle brackets.

Notes

Reminder:

@@ -72,12 +73,41 @@

Notes

- +

Main Changes

Maintenance release

Contents

    +
  • Fix the location of .size directive in STM32CubeIDE’s startup code to allow proper size information of vector table.
  • +
  • Add the READONLY tag to sections containing lookup tables to avoid GCC12 linker warnings if a segment is marked RWX.
  • +
+

Notes

+

Reminder:

+
    +
  • When TrustZone is enabled in the system (Flash option bit TZEN=1) +
      +
    • template device partition_stm32l552xx.h or partition_stm32l562xx.h file must be copied and optionally updated in user application secure project to configure the system (SAU, interrupts, core).
    • +
    • default Security Attribute Unit (SAU) configuration in the partition_stm32l552xx.h and partition_stm32l562xx.h: +
        +
      • SAU region 0: 0x0C03E000-0x0C03FFFF (Secure, Non-Secure Callable)
      • +
      • SAU region 1: 0x08040000-0x0807FFFF (Non-Secure FLASH Bank2 (256 Kbytes))
      • +
      • SAU region 2: 0x20018000-0x2003FFFF (Non-Secure RAM (2nd half SRAM1 + SRAM2 (160 Kbytes)))
      • +
      • SAU region 3: 0x40000000-0x4FFFFFFF (Non-Secure Peripheral mapped memory)
      • +
      • SAU region 4: 0x60000000-0x9FFFFFFF (Non-Secure external memories)
      • +
      • SAU region 5: 0x0BF90000-0x0BFA8FFF (Non-Secure System memory)
      • +
    • +
  • +
+
+
+
+ +
+

Main Changes

+

Maintenance release

+

Contents

+
  • General updates to fix known defects and implementation enhancements.
  • All source files: update disclaimer to add reference to the new license agreement.
  • Add new atomic register access macros in stm32l5xx.h file.
  • @@ -85,7 +115,7 @@

    Contents

  • Add missing parameter after @param in order to fix warning in generated documentation
  • Change addresses of ROM symbols in sram.icf template files to code region alias in order to increase performance while running code from SRAM
-

Notes

+

Notes

Reminder:

  • When TrustZone is enabled in the system (Flash option bit TZEN=1) @@ -107,9 +137,9 @@

    Notes

    -

    Main Changes

    +

    Main Changes

    Maintenance release

    -

    Contents

    +

    Contents

    Maintenance release of STM32L5xx CMSIS Device drivers to support STM32L552xx and STM32L562xx devices

    • stm32l552xx.h and stm32l562xx.h updates @@ -118,7 +148,7 @@

      Contents

    • Fix I2C4_EV_IRQn and I2C4_ER_IRQn order in IRQn_Type
-

Notes

+

Notes

Reminder:

  • When TrustZone is enabled in the system (Flash option bit TZEN=1) @@ -140,9 +170,9 @@

    Notes

    -

    Main Changes

    +

    Main Changes

    Fourth release

    -

    Contents

    +

    Contents

    Fourth release of STM32L5xx CMSIS Device drivers to support STM32L552xx and STM32L562xx devices

    • stm32l552xx.h and stm32l562xx.h updates @@ -158,7 +188,7 @@

      Contents

    • Add README.md and License.md files for GitHub publication
    • Misspelled words corrections in driver descriptions
    -

    Notes

    +

    Notes

    Reminder:

    • When TrustZone is enabled in the system (Flash option bit TZEN=1) @@ -180,9 +210,9 @@

      Notes

      -

      Main Changes

      +

      Main Changes

      Third release

      -

      Contents

      +

      Contents

      Third official release of STM32L5xx CMSIS Device drivers to support STM32L552xx and STM32L562xx devices

      • stm32l552xx.h and stm32l562xx.h updates @@ -192,7 +222,7 @@

        Contents

      • Align DBGMCU_APB2FZR register and bits definitions with RM0438
    -

    Notes

    +

    Notes

    Reminder:

    • When TrustZone is enabled in the system (Flash option bit TZEN=1) @@ -214,9 +244,9 @@

      Notes

      -

      Main Changes

      +

      Main Changes

      Second release

      -

      Contents

      +

      Contents

      Second official release of STM32L5xx CMSIS Device drivers to support STM32L552xx and STM32L562xx devices

      • Templates system_stm32l5xx.c, system_stm32l5xx_s.c and system_stm32l5xx_ns.c @@ -224,7 +254,7 @@

        Contents

      • Add vector table relocation capability with conditional USER_VECT_TAB_ADDRESS
    -

    Notes

    +

    Notes

    Reminder:

    • When TrustZone is enabled in the system (Flash option bit TZEN=1) @@ -246,9 +276,9 @@

      Notes

      -

      Main Changes

      +

      Main Changes

      First release

      -

      Contents

      +

      Contents

      First official release of STM32L5xx CMSIS Device drivers to support STM32L552xx and STM32L562xx devices

      • Templates @@ -266,7 +296,7 @@

        Contents

      • Linker files for 256 and 512 Kbytes Flash device configurations
    -

    Notes

    +

    Notes

    When TrustZone is enabled in the system (Flash option bit TZEN=1), template device partition_stm32l552xx.h or partition_stm32l562xx.h file must be copied and optionally updated in user application secure project to configure the system (SAU, interrupts, core)

    diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/system_stm32l5xx.c b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/system_stm32l5xx.c index 93e1ad7d1e..71f333cee3 100644 --- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/system_stm32l5xx.c +++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/system_stm32l5xx.c @@ -143,14 +143,14 @@ #if defined(VECT_TAB_SRAM) #define VECT_TAB_BASE_ADDRESS SRAM1_BASE /*!< Vector Table base address field. This value must be a multiple of 0x200. */ -#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field. - This value must be a multiple of 0x200. */ #else #define VECT_TAB_BASE_ADDRESS FLASH_BASE /*!< Vector Table base address field. This value must be a multiple of 0x200. */ -#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field. - This value must be a multiple of 0x200. */ #endif /* VECT_TAB_SRAM */ +#if !defined(VECT_TAB_OFFSET) +#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table offset field. + This value must be a multiple of 0x200. */ +#endif /* VECT_TAB_OFFSET */ #endif /* USER_VECT_TAB_ADDRESS */ /******************************************************************************/ diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/system_stm32l5xx_ns.c b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/system_stm32l5xx_ns.c index 53e22fff50..4b11eb8359 100644 --- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/system_stm32l5xx_ns.c +++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/system_stm32l5xx_ns.c @@ -97,13 +97,19 @@ #if defined(VECT_TAB_SRAM) #define VECT_TAB_BASE_ADDRESS SRAM1_BASE_NS /*!< Vector Table base address field. This value must be a multiple of 0x200. */ +#if !defined(VECT_TAB_OFFSET) #define VECT_TAB_OFFSET 0x00018000U /*!< Vector Table base offset field. This value must be a multiple of 0x200. */ +#endif /* VECT_TAB_OFFSET */ + #else #define VECT_TAB_BASE_ADDRESS FLASH_BASE_NS /*!< Vector Table base address field. This value must be a multiple of 0x200. */ +#if !defined(VECT_TAB_OFFSET) #define VECT_TAB_OFFSET 0x00040000U /*!< Vector Table base offset field. This value must be a multiple of 0x200. */ +#endif /* VECT_TAB_OFFSET */ + #endif /* VECT_TAB_SRAM */ #endif /* USER_VECT_TAB_ADDRESS */ diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/system_stm32l5xx_s.c b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/system_stm32l5xx_s.c index afe8e1ec68..b573073a11 100644 --- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/system_stm32l5xx_s.c +++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/system_stm32l5xx_s.c @@ -159,14 +159,14 @@ #if defined(VECT_TAB_SRAM) #define VECT_TAB_BASE_ADDRESS SRAM1_BASE_S /*!< Vector Table base address field. This value must be a multiple of 0x200. */ -#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field. - This value must be a multiple of 0x200. */ #else #define VECT_TAB_BASE_ADDRESS FLASH_BASE_S /*!< Vector Table base address field. This value must be a multiple of 0x200. */ -#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field. - This value must be a multiple of 0x200. */ #endif /* VECT_TAB_SRAM */ +#if !defined(VECT_TAB_OFFSET) +#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table offset field. + This value must be a multiple of 0x200. */ +#endif /* VECT_TAB_OFFSET */ #endif /* USER_VECT_TAB_ADDRESS */ /******************************************************************************/ diff --git a/system/Drivers/CMSIS/Device/ST/STM32WLxx/Include/stm32wlxx.h b/system/Drivers/CMSIS/Device/ST/STM32WLxx/Include/stm32wlxx.h index 5e2d09d4b8..6df84f0ff2 100644 --- a/system/Drivers/CMSIS/Device/ST/STM32WLxx/Include/stm32wlxx.h +++ b/system/Drivers/CMSIS/Device/ST/STM32WLxx/Include/stm32wlxx.h @@ -80,7 +80,7 @@ * @brief CMSIS Device version number */ #define __STM32WLxx_CMSIS_VERSION_MAIN (0x01U) /*!< [31:24] main version */ -#define __STM32WLxx_CMSIS_VERSION_SUB1 (0x02U) /*!< [23:16] sub1 version */ +#define __STM32WLxx_CMSIS_VERSION_SUB1 (0x03U) /*!< [23:16] sub1 version */ #define __STM32WLxx_CMSIS_VERSION_SUB2 (0x00U) /*!< [15:8] sub2 version */ #define __STM32WLxx_CMSIS_VERSION_RC (0x00U) /*!< [7:0] release candidate */ #define __STM32WLxx_CMSIS_DEVICE_VERSION ((__STM32WLxx_CMSIS_VERSION_MAIN << 24)\ diff --git a/system/Drivers/CMSIS/Device/ST/STM32WLxx/License.md b/system/Drivers/CMSIS/Device/ST/STM32WLxx/LICENSE.md similarity index 100% rename from system/Drivers/CMSIS/Device/ST/STM32WLxx/License.md rename to system/Drivers/CMSIS/Device/ST/STM32WLxx/LICENSE.md diff --git a/system/Drivers/CMSIS/Device/ST/STM32WLxx/README.md b/system/Drivers/CMSIS/Device/ST/STM32WLxx/README.md index 5106f6ab9f..3624ca6420 100644 --- a/system/Drivers/CMSIS/Device/ST/STM32WLxx/README.md +++ b/system/Drivers/CMSIS/Device/ST/STM32WLxx/README.md @@ -1,19 +1,21 @@ # STM32CubeWL CMSIS Device MCU Component -## Overview +![latest tag](https://img.shields.io/github/v/tag/STMicroelectronics/cmsis-device-wl.svg?color=brightgreen) -**STM32Cube** is an STMicroelectronics original initiative to ease the developers life by reducing efforts, time and cost. +## Overview of the STM32Cube MCU offer on GitHub -**STM32Cube** covers the overall STM32 products portfolio. It includes a comprehensive embedded software platform, delivered for each STM32 series. - * The CMSIS modules (core and device) corresponding to the ARM(tm) core implemented in this STM32 product - * The STM32 HAL-LL drivers : an abstraction drivers layer, the API ensuring maximized portability across the STM32 portfolio - * The BSP Drivers of each evaluation or demonstration board provided by this STM32 series - * A consistent set of middlewares components such as RTOS, USB, FatFS, Graphics, STM32_TouchSensing_Library ... - * A full set of software projects (basic examples, applications or demonstrations) for each board provided by this STM32 series +**STM32Cube** is an original initiative by STMicroelectronics to **simplify** prototyping and development by **reducing** effort, time, and cost. It supports the entire ARM™ Cortex-based STM32 microcontroller portfolio and provides a **comprehensive** software solution including: + * The CMSIS Core and Device interfaces enabling access to processor core features and device-specific peripherals of STM32 microcontrollers. + * The STM32 HAL-LL drivers, an abstraction layer offering a set of APIs ensuring maximized portability across the STM32 portfolio. + * The BSP drivers enabling access to peripherals on the STM32 development boards, external to the microcontroller itself. + * A consistent set of middleware libraries offering standardized, high-level functionalities — such as USB, TCP/IP, file systems, and graphics. + * A full set of software projects (basic examples, applications, and demonstrations) that showcase specific functionalities or use cases, and provided with support for multiple IDEs. -Two models of publication are proposed for the STM32Cube embedded software : - * The monolithic **MCU Package** : all STM32Cube software modules of one STM32 series are present (Drivers, Middlewares, Projects, Utilities) in the repo (usual name **STM32Cubexx**, xx corresponding to the STM32 series) - * The **MCU component** : progressively from November 2019, each STM32Cube software module being part of the STM32Cube MCU Package, will be delivered as an individual repo, allowing the user to select and get only the required software functions. +The **STM32Cube embedded software** is available in two flavors: + * The **MCU Firmware** _monolithic_ offer, where **all** software components (Drivers, Middleware, Projects, Utilities) are included in a **single** repository for each STM32 series. + * The **MCU Software Components** _modular_ offer, where **each** software component (mainly Drivers and Middleware) is provided in a **dedicated** repository, allowing users to **select** only the components they need. + +The complete list of repositories is available [here](https://github.com/STMicroelectronics/STM32Cube_MCU_Overall_Offer/blob/master/README.md#content). ## Description @@ -21,15 +23,12 @@ This **cmsis_device_wl** MCU component repo is one element of the STM32CubeWL MC ## Release note -Details about the content of this release are available in the release note [here](https://htmlpreview.github.io/?https://github.com/STMicroelectronics/cmsis_device_wl/blob/master/Release_Notes.html). +Details about the content of this release are available in the release note [here](https://htmlpreview.github.io/?https://github.com/STMicroelectronics/cmsis-device-wl/blob/main/Release_Notes.html). ## Compatibility information It is **crucial** that you use a consistent set of versions for the CMSIS Core - CMSIS Device, as mentioned in [this](https://htmlpreview.github.io/?https://github.com/STMicroelectronics/STM32CubeWL/blob/main/Release_Notes.html) release note. -The full **STM32CubeWL** MCU package is available [here](https://github.com/STMicroelectronics/STM32CubeWL). - -## Troubleshooting -If you have any issue with the **Software content** of this repo, you can [file an issue on Github](https://github.com/STMicroelectronics/cmsis_device_wl/issues/new). +## Feedback and contributions -For any other question related to the product, the tools, the environment, you can submit a topic on the [ST Community/STM32 MCUs forum](https://community.st.com/s/group/0F90X000000AXsASAW/stm32-mcus). \ No newline at end of file +Please refer to the [CONTRIBUTING.md](CONTRIBUTING.md) guide. diff --git a/system/Drivers/CMSIS/Device/ST/STM32WLxx/Release_Notes.html b/system/Drivers/CMSIS/Device/ST/STM32WLxx/Release_Notes.html index 6818b339a0..cd7eeeee36 100644 --- a/system/Drivers/CMSIS/Device/ST/STM32WLxx/Release_Notes.html +++ b/system/Drivers/CMSIS/Device/ST/STM32WLxx/Release_Notes.html @@ -5,16 +5,24 @@ Release Notes for STM32WLxx CMSIS - - @@ -25,10 +33,12 @@

    Release Notes for

    STM32WLxx CMSIS

    Copyright © 2020 STMicroelectronics

    - +

    Purpose

    -

    This driver provides the CMSIS device for the stm32WLxx products. This covers

    +

    This driver provides the CMSIS device for the stm32WLxx products. +This covers

    • STM32WL55xx devices
    • STM32WL54xx devices
    • @@ -36,24 +46,35 @@

      Purpose

    • STM32WLE4xx devices
    • STM32WL5Mxx devices
    -

    This driver is composed of the descriptions of the registers under “Include” directory.

    -

    Various template file are provided to easily build an application. They can be adapted to fit applications requirements.

    +

    This driver is composed of the descriptions of the registers under +“Include” directory.

    +

    Various template file are provided to easily build an application. +They can be adapted to fit applications requirements.

      -
    • Templates/system_stm32WLxx.c contains the initialization code referred as SystemInit.
    • -
    • Startup files are provided as example for IAR©, KEIL© and STM32CubeIDE©.
    • -
    • Linker files are provided as example for IAR©, KEIL© and STM32CubeIDE©.
    • +
    • Templates/system_stm32WLxx.c contains the initialization code +referred as SystemInit.
    • +
    • Startup files are provided as example for IAR©, KEIL© and +STM32CubeIDE©.
    • +
    • Linker files are provided as example for IAR©, KEIL© and +STM32CubeIDE©.
-
-

Update History

+
+

Update History

- + +

Main Changes

    -
  • Add new device STM32WL5Mxx
  • -
  • Rename ADC_TRx to ADC_AWDxTR to match with Reference Manual
  • -
  • Fix inconsistent IRQn_Type enumeration for supervisor call exception with alias for compatibility
  • +
  • Update STM32CubeIDE projects to fix the location of .size directive +in startup code to allow proper size information of vector table
  • +
  • Change addresses of ROM symbols in sram.icf +template files to code region alias in order to increase performance +while running code from SRAM
  • +
  • Allow redefinition of the macro ‘VECT_TAB_OFFSET’ externally from +the IDE, makefile, or command line.

Known Limitations

None

@@ -64,11 +85,16 @@

Notes

- + +

Main Changes

    -
  • All source files and templates: update disclaimer to add reference to the new license agreement
  • +
  • Add new device STM32WL5Mxx
  • +
  • Rename ADC_TRx to ADC_AWDxTR to match with Reference Manual
  • +
  • Fix inconsistent IRQn_Type enumeration for supervisor call exception +with alias for compatibility

Known Limitations

None

@@ -79,17 +105,14 @@

Notes

- + +

Main Changes

    -
  • Add atomic register access services: -
      -
    • 32-bit register access: ATOMIC_SET_BIT(), ATOMIC_CLEAR_BIT(), ATOMIC_MODIFY_REG()
    • -
    • 16-bit register access: ATOMIC_SETH_BIT(), ATOMIC_CLEARH_BIT(), ATOMIC_MODIFYH_BIT()
    • -
  • -
  • Add define LSI_STARTUP_TIME used in default IWDG timeout calculation (HAL_IWDG_DEFAULT_TIMEOUT)
  • -
  • Add reference to user manual for customization of CubeIDE linker files
  • +
  • All source files and templates: update disclaimer to add reference +to the new license agreement

Known Limitations

None

@@ -100,12 +123,24 @@

Notes

- + +

Main Changes

-

First Official Release

-

Contents

-

First official release of CMSIS drivers for STM32WLxx lines

+
    +
  • Add atomic register access services: +
      +
    • 32-bit register access: ATOMIC_SET_BIT(), ATOMIC_CLEAR_BIT(), +ATOMIC_MODIFY_REG()
    • +
    • 16-bit register access: ATOMIC_SETH_BIT(), ATOMIC_CLEARH_BIT(), +ATOMIC_MODIFYH_BIT()
    • +
  • +
  • Add define LSI_STARTUP_TIME used in default IWDG timeout calculation +(HAL_IWDG_DEFAULT_TIMEOUT)
  • +
  • Add reference to user manual for customization of CubeIDE linker +files
  • +

Known Limitations

None

Dependencies

@@ -114,13 +149,34 @@

Notes

None

+
+ + +
+

Main Changes

+

First Official Release

+

Contents

+

First official release of CMSIS drivers for STM32WLxx lines

+

Known Limitations

+

None

+

Dependencies

+

None

+

Notes

+

None

+
+