Hello,
On STM32U575VGT with MX25L6433F over OCTOSPI1, my external loader can read successfully only once. The next read operation hangs (5-second timeout). If I disconnect/reconnect the target, the first read succeeds again, then the second read fails the same way.
Hardware
MCU: STM32U575VGT (LQFP100)
Flash: MX25L6433F (64 Mbit / 8 MB)
Bus: OCTOSPI1, Quad 1-1-4
MM base: 0x90000000
OSPI1 Pins
PA6: IO3
PB0: IO1
PB10: CLK
PE11: NCS
PE12: IO0
PE14: IO2
Symptom
First read after connect: OK (e.g., 1024 B @ 0x90000000)
Second read: FAIL (hang/timeout inside Read; CubeProgrammer reports “Init function fail with timeout” but my Init() actually succeeds — the hang occurs in Read() when touching MM region)
MM access at 0x90000000 appears to stall on second attempt.
Log
----- Read #1 18:22:50:670 : UPLOADING ... 18:22:50:670 : Size : 1024 Bytes 18:22:50:670 : Address : 0x90000000 18:22:50:670 : Read progress: 18:22:50:670 : Reading data... 18:22:50:671 : halt ap 0 18:22:50:671 : w ap 0 reg 15 PC (0x20000000) 18:22:50:671 : w ap 0 reg 17 MSP (0x20000500) 18:22:50:671 : w ap 0 reg 16 xPSR (0x01000000) 18:22:50:671 : w ap 0 @0x20014620 : 0x00000200 bytes, Data 0x00000000... 18:22:50:671 : w ap 0 @0x20000000 : 0x00000004 bytes, Data 0x0000BE00... 18:22:51:305 : w ap 0 @0x20000004 : 0x000141E4 bytes, Data 0x00000000... 18:22:51:305 : Loader read... 18:22:51:305 : Init flashloader... 18:22:51:307 : halt ap 0 18:22:51:307 : w ap 0 reg 0 R0 0x00000000 18:22:51:307 : w ap 0 reg 1 R1 0x00000000 18:22:51:307 : w ap 0 reg 2 R2 0x00000000 18:22:51:309 : w ap 0 reg 3 R3 0x00000000 18:22:51:309 : w ap 0 reg 4 R4 0x00000000 18:22:51:309 : w ap 0 reg 5 R5 0x00000000 18:22:51:309 : w ap 0 reg 6 R6 0x00000000 18:22:51:309 : w ap 0 reg 7 R7 0x00000000 18:22:51:313 : w ap 0 reg 8 R8 0x00000000 18:22:51:313 : w ap 0 reg 9 R9 0x00000000 18:22:51:313 : w ap 0 reg 10 R10 0x00000000 18:22:51:314 : w ap 0 reg 11 R11 0x00000000 18:22:51:314 : w ap 0 reg 12 R12 0x00000000 18:22:51:314 : w ap 0 reg 13 SP 0x00000000 18:22:51:316 : w ap 0 reg 14 LR 0x20000001 18:22:51:316 : w ap 0 reg 15 PC 0x200017BB 18:22:51:317 : w ap 0 reg 16 xPSR 0x01000000 18:22:51:318 : w ap 0 reg 17 MSP 0x200145E4 18:22:51:318 : w ap 0 reg 18 PSP 0x00000000 18:22:51:318 : run ap 0 18:22:51:321 : halt ap 0 18:22:51:321 : r ap 0 reg 0 R0 0x00000001 18:22:51:321 : w ap 0 reg 0 R0 0x90000000 18:22:51:322 : w ap 0 reg 1 R1 0x00000400 18:22:51:323 : w ap 0 reg 2 R2 0x20014620 18:22:51:323 : w ap 0 reg 3 R3 0x00000000 18:22:51:323 : w ap 0 reg 4 R4 0x00000000 18:22:51:324 : w ap 0 reg 5 R5 0x00000000 18:22:51:324 : w ap 0 reg 6 R6 0x00000000 18:22:51:325 : w ap 0 reg 7 R7 0x00000000 18:22:51:326 : w ap 0 reg 8 R8 0x00000000 18:22:51:328 : w ap 0 reg 9 R9 0x00000000 18:22:51:328 : w ap 0 reg 10 R10 0x00000000 18:22:51:328 : w ap 0 reg 11 R11 0x00000000 18:22:51:328 : w ap 0 reg 12 R12 0x00000000 18:22:51:331 : w ap 0 reg 13 SP 0x00000000 18:22:51:331 : w ap 0 reg 14 LR 0x20000001 18:22:51:333 : w ap 0 reg 15 PC 0x20001881 18:22:51:333 : w ap 0 reg 16 xPSR 0x01000000 18:22:51:333 : w ap 0 reg 17 MSP 0x200145E4 18:22:51:333 : w ap 0 reg 18 PSP 0x00000000 18:22:51:333 : run ap 0 18:22:51:335 : halt ap 0 18:22:51:337 : r ap 0 reg 0 R0 0x00000001 18:22:51:344 : r ap 0 @0x20014620 0x00000400 bytes Data 0x00F8FCF8 18:22:51:344 : Data read successfully 18:22:51:344 : Time elapsed during the read operation is: 00:00:00.691 18:22:51:350 : r ap 0 @0x40022040 0x00000004 bytes Data 0x1BEFF8AA 18:22:51:350 : r ap 0 @0x0BF99EFE 0x00000001 bytes Data 0xFFFFFF92 18:22:52:353 : r ap 0 @0x40022040 0x00000004 bytes Data 0x1BEFF8AA 18:22:52:354 : r ap 0 @0x0BF99EFE 0x00000001 bytes Data 0xFFFFFF92 18:22:53:363 : r ap 0 @0x40022040 0x00000004 bytes Data 0x1BEFF8AA 18:22:53:364 : r ap 0 @0x0BF99EFE 0x00000001 bytes Data 0xFFFFFF92 18:22:54:373 : r ap 0 @0x40022040 0x00000004 bytes Data 0x1BEFF8AA 18:22:54:375 : r ap 0 @0x0BF99EFE 0x00000001 bytes Data 0xFFFFFF92 18:22:54:509 : r ap 0 @0x40022040 0x00000004 bytes Data 0x1BEFF8AA 18:22:54:509 : r ap 0 @0x40022040 0x00000004 bytes Data 0x1BEFF8AA
----- Read #2 18:22:54:509 : UPLOADING ... 18:22:54:509 : Size : 1024 Bytes 18:22:54:509 : Address : 0x90000000 18:22:54:509 : Read progress: 18:22:54:509 : Reading data... 18:22:54:517 : halt ap 0 18:22:54:517 : w ap 0 reg 15 PC (0x20000000) 18:22:54:517 : w ap 0 reg 17 MSP (0x20000500) 18:22:54:517 : w ap 0 reg 16 xPSR (0x01000000) 18:22:54:520 : w ap 0 @0x20014620 : 0x00000200 bytes, Data 0x00000000... 18:22:54:520 : w ap 0 @0x20000000 : 0x00000004 bytes, Data 0x0000BE00... 18:22:55:050 : w ap 0 @0x20000004 : 0x000141E4 bytes, Data 0x00000000... 18:22:55:051 : Loader read... 18:22:55:051 : Init flashloader... 18:22:55:051 : halt ap 0 18:22:55:055 : w ap 0 reg 0 R0 0x00000000 18:22:55:056 : w ap 0 reg 1 R1 0x00000000 18:22:55:056 : w ap 0 reg 2 R2 0x00000000 18:22:55:056 : w ap 0 reg 3 R3 0x00000000 18:22:55:056 : w ap 0 reg 4 R4 0x00000000 18:22:55:056 : w ap 0 reg 5 R5 0x00000000 18:22:55:056 : w ap 0 reg 6 R6 0x00000000 18:22:55:056 : w ap 0 reg 7 R7 0x00000000 18:22:55:057 : w ap 0 reg 8 R8 0x00000000 18:22:55:058 : w ap 0 reg 9 R9 0x00000000 18:22:55:061 : w ap 0 reg 10 R10 0x00000000 18:22:55:066 : w ap 0 reg 11 R11 0x00000000 18:22:55:066 : w ap 0 reg 12 R12 0x00000000 18:22:55:068 : w ap 0 reg 13 SP 0x00000000 18:22:55:068 : w ap 0 reg 14 LR 0x20000001 18:22:55:068 : w ap 0 reg 15 PC 0x200017BB 18:22:55:069 : w ap 0 reg 16 xPSR 0x01000000 18:22:55:069 : w ap 0 reg 17 MSP 0x200145E4 18:22:55:069 : w ap 0 reg 18 PSP 0x00000000 18:22:55:069 : run ap 0 18:23:00:001 : halt ap 0 18:23:00:001 : Init function fail with timeout 18:23:00:002 : r ap 0 reg 16 xPSR 0x01000000 18:23:00:006 : halt ap 0 18:23:00:006 : w ap 0 reg 15 PC (0x20000000) 18:23:00:008 : w ap 0 reg 17 MSP (0x20000500) 18:23:00:008 : w ap 0 reg 16 xPSR (0x01000000) 18:23:00:008 : Error: Data read failed 18:23:00:158 : r ap 0 @0x40022040 0x00000004 bytes Data 0x1BEFF8AA 18:23:00:158 : r ap 0 @0x0BF99EFE 0x00000001 bytes Data 0xFFFFFF92 18:23:01:156 : r ap 0 @0x40022040 0x00000004 bytes Data 0x1BEFF8AA 18:23:01:157 : r ap 0 @0x0BF99EFE 0x00000001 bytes Data 0xFFFFFF92 18:23:02:165 : r ap 0 @0x40022040 0x00000004 bytes Data 0x1BEFF8AA 18:23:02:167 : r ap 0 @0x0BF99EFE 0x00000001 bytes Data 0xFFFFFF92 |
If anyone has a working STM32U5 external loader that can perform consecutive memory-mapped reads in CubeProgrammer without reconnecting, please let me know how you solved it.
Many thanks in advance!