Showing results for 
Search instead for 
Did you mean: 

Flash banks address ranges for STM32H742(3) devices with 1MB and CubeIDE

Associate III

Based on Reference Manual of the STM32H742IG (RM0433 Rev 7; Table 16.), Flash memory for 1MB devices is divided in two banks with address ranges 0x800000-0x807FFFF and 0x810000-0x817FFFF. There is 512kB gap between them.

As a test i have created a project in the CubeIDE (1.6.1 with H7 package 1.9.0) for STM32H742IG with big byte array. Generated binary file is without a gap. For example, array addresses fall to this gap.

From listing:

 t = img_map[642000];

 80002de:  4a05       ldr  r2, [pc, #20]  ; (80002f4 <main+0x1c>)

 80002e0:  4b05       ldr  r3, [pc, #20]  ; (80002f8 <main+0x20>)

 80002e2:  4413       add  r3, r2

 80002e4:  781b       ldrb  r3, [r3, #0]

 80002f4:  08001838  .word  0x08001838

 80002f8:  0009cbd0  .word  0x0009cbd0

img_map[642000] is at address 0x809E408 (in gap between banks).

So, is there a gap between banks, and code should handle this? Or there is no gap, and RM is wrong? Or am i miss something?


Slavo T.

Associate III