STMicroelectronics/cmsis_device_h7

Wrong comment for VECT_TAB_OFFSET

carlo-dev-git opened this issue · 7 comments

This value must be a multiple of 0x200 (generic template)

This value must be a multiple of 0x200. */

or 0x300 (other files) ?

This value must be a multiple of 0x300. */

Hi @carlo-dev-git,

Thank you for having reported. Indeed, there is an inconsistence between the different comments. This will be reported to our development teams.

With regards,

PS: Best wishes for the new year 2022.

ST Internal Reference: 120332

Hi ALABSTM,

I just updated the STM32Cube STM32H7 MCU Package to v1.10.0 but this ticket is not fixed because it was scheduled to v1.11.0. From stm32cube-mcu-cmsis-dashboard the ticket status is set To release, so could you just tell me what is the correct offset (0x200 or 0x300)?
It is very important for me.

Best regards.

Hi @carlo-dev-git,

My bad. I mistook the milestone which is v1.10.2 and not v1.11.0. Actually, the typo has been corrected as you can see from the code snippet below. The correct offset value is 0x300. The fix has been published on both this repo and STM32CubeH7.

#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field.
This value must be a multiple of 0x300. */

With regards,

Hi ALABSTM,

thanks for your clarification but what about the single-core template?

#if defined(VECT_TAB_SRAM)
#define VECT_TAB_BASE_ADDRESS D1_AXISRAM_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_BANK1_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 */

Hi ALABSTM,
please check PM0253 STM32F7 Series and STM32H7 Series Cortex®-M7 processor programming manual (Rev 5)

4.3.4 Vector table offset register
The table alignment requirements mean that bits [8:0] of the table offset are always zero.

0x300 -> 001100000000b

Hi @carlo-dev-git,

I sent your question back to our development teams and they confirm your doubts. Actually, the VTO should be a multiple of 0x400 for both single- and dual-core part-numbers.

We do apologize for this inconvenience. I will reopen this issue pending the fix publication.

With regards,