cancel
Showing results for 
Search instead for 
Did you mean: 

Core Locked Up

MAlan.1
Associate III

We have a custom PCB with a STM32H750 on it with Dual NOR Flash (W25Q12BJVSIM). I have been able to flash the code on all but one board. When I attempt to flash the board with STM32CubeProgrammer, I get a Warning: The core is locked up message. How do I unlock the core? This MCU was blank to begin with.

 

08:44:13 : ST-LINK error (DEV_CONNECT_ERR)
08:44:13 : ST-LINK SN : 38FF6F06304E4B3028442243
08:44:13 : ST-LINK FW : V2J45S7
08:44:13 : Board : --
08:44:13 : Voltage : 3.23V
08:44:13 : SWD freq : 4000 KHz
08:44:13 : Connect mode: Under Reset
08:44:13 : Reset mode : Hardware reset
08:44:13 : Device ID : 0x450
08:44:13 : Revision ID : Rev Y
08:44:13 : Debug in Low Power mode is not supported for this device.
08:44:13 : UPLOADING OPTION BYTES DATA ...
08:44:13 : Bank : 0x00
08:44:13 : Address : 0x5200201c
08:44:13 : Size : 308 Bytes
08:44:13 : UPLOADING ...
08:44:13 : Size : 1024 Bytes
08:44:13 : Address : 0x8000000
08:44:13 : Read progress:
08:44:13 : Data read successfully
08:44:13 : Time elapsed during the read operation is: 00:00:00.007
08:45:17 : Memory Programming ...
08:45:17 : Opening and parsing file: ISSPro-SmartGauge-9CB700178A-Binary-v0.11.901245068-FULL.hex
08:45:17 : File : ISSPro-SmartGauge-9CB700178A-Binary-v0.11.901245068-FULL.hex
08:45:17 : Size : 7.49 MB
08:45:17 : Address : 0x08000000
08:45:17 : Erasing memory corresponding to segment 0:
08:45:21 : Erasing memory corresponding to segment 1:
08:45:22 : Erasing external memory sectors [0 178]
08:45:27 : Error: failed to erase memory
08:45:27 : Error: failed to erase memory
08:45:27 : RUNNING Program ...
08:45:27 : Address: : 0x08000000
08:45:27 : Warning: The core is locked up
08:45:27 : Start operation achieved successfully

This is a detailed output of the above.

 

09:42:35:125 : Memory Programming ...
09:42:35:125 : Opening and parsing file: ISSPro-SmartGauge-9CB700178A-Binary-v0.11.901245068-FULL.hex
09:42:35:235 : File : ISSPro-SmartGauge-9CB700178A-Binary-v0.11.901245068-FULL.hex
09:42:35:235 : Size : 7.48 MB
09:42:35:236 : Address : 0x08000000
09:42:35:236 : Erasing Segment <0> Address <0x08000000> Size <27892>Bytes
09:42:35:236 : Erasing memory corresponding to segment 0:
09:42:35:236 : Memory erase...
09:42:35:236 : halt ap 0 Status = 0
09:42:35:236 : halt ap 1 Status = 32
09:42:35:236 : halt ap 2 Status = 32
09:42:35:236 : w ap 0 reg 15 PC (0x24000000)
09:42:35:236 : w ap 0 reg 17 MSP (0x24000500)
09:42:35:236 : w ap 0 reg 16 xPSR (0x01000000)
09:42:35:245 : w ap 0 @0x24000FE0 0x00000200 bytes Data 0x00000000
09:42:35:245 : w ap 0 @0x24000000 0x00000004 bytes Data 0x0000BE00
09:42:35:269 : w ap 0 @0x24000004 0x00000BA8 bytes Data 0xB672B538
09:42:35:269 : Init flashloader...
09:42:35:269 : halt ap 0
09:42:35:269 : w ap 0 reg 0 R0 0x00000001
09:42:35:269 : w ap 0 reg 1 R1 0x00000000
09:42:35:269 : w ap 0 reg 2 R2 0x00000000
09:42:35:270 : w ap 0 reg 3 R3 0x00000000
09:42:35:270 : w ap 0 reg 4 R4 0x00000000
09:42:35:270 : w ap 0 reg 5 R5 0x00000000
09:42:35:270 : w ap 0 reg 6 R6 0x00000000
09:42:35:270 : w ap 0 reg 7 R7 0x00000000
09:42:35:270 : w ap 0 reg 8 R8 0x00000000
09:42:35:270 : w ap 0 reg 9 R9 0x00000000
09:42:35:270 : w ap 0 reg 10 R10 0x00000000
09:42:35:270 : w ap 0 reg 11 R11 0x00000000
09:42:35:270 : w ap 0 reg 12 R12 0x00000000
09:42:35:270 : w ap 0 reg 13 SP 0x00000000
09:42:35:270 : w ap 0 reg 14 LR 0x24000001
09:42:35:270 : w ap 0 reg 15 PC 0x24000005
09:42:35:270 : w ap 0 reg 16 xPSR 0x01000000
09:42:35:270 : w ap 0 reg 17 MSP 0x24000FA8
09:42:35:271 : w ap 0 reg 18 PSP 0x00000000
09:42:35:271 : run ap 0
09:42:35:271 : halt ap 0
09:42:35:271 : r ap 0 reg 0 R0 0x00000001
09:42:35:271 : Loader mass erase...
09:42:35:271 : w ap 0 reg 0 R0 0x00000002
09:42:35:274 : w ap 0 reg 1 R1 0x00000000
09:42:35:278 : w ap 0 reg 2 R2 0x00000000
09:42:35:281 : w ap 0 reg 3 R3 0x00000000
09:42:35:283 : w ap 0 reg 4 R4 0x00000000
09:42:35:287 : w ap 0 reg 5 R5 0x00000000
09:42:35:287 : w ap 0 reg 6 R6 0x00000000
09:42:35:287 : w ap 0 reg 7 R7 0x00000000
09:42:35:287 : w ap 0 reg 8 R8 0x00000000
09:42:35:287 : w ap 0 reg 9 R9 0x00000000
09:42:35:288 : w ap 0 reg 10 R10 0x00000000
09:42:35:292 : w ap 0 reg 11 R11 0x00000000
09:42:35:292 : w ap 0 reg 12 R12 0x00000000
09:42:35:294 : w ap 0 reg 13 SP 0x00000000
09:42:35:294 : w ap 0 reg 14 LR 0x24000001
09:42:35:294 : w ap 0 reg 15 PC 0x24000261
09:42:35:294 : w ap 0 reg 16 xPSR 0x01000000
09:42:35:294 : w ap 0 reg 17 MSP 0x24000FA8
09:42:35:294 : w ap 0 reg 18 PSP 0x00000000
09:42:35:295 : run ap 0
09:42:39:601 : halt ap 0
09:42:39:601 : r ap 0 reg 0 R0 0x00000001
09:42:39:602 : erase: 4372ms
09:42:39:602 : Erasing Segment <1> Address <0x90000000> Size <1455836>Bytes
09:42:39:602 : Erasing memory corresponding to segment 1:
09:42:39:602 : Memory erase...
09:42:39:607 : halt ap 0 Status = 0
09:42:39:607 : halt ap 1 Status = 32
09:42:39:607 : halt ap 2 Status = 32
09:42:39:607 : w ap 0 reg 15 PC (0x24000000)
09:42:39:607 : w ap 0 reg 17 MSP (0x24000500)
09:42:39:607 : w ap 0 reg 16 xPSR (0x01000000)
09:42:39:618 : w ap 0 @0x24018560 0x00000200 bytes Data 0x00000000
09:42:39:619 : w ap 0 @0x24000000 0x00000004 bytes Data 0x0000BE00
09:42:40:254 : w ap 0 @0x24000004 0x00018134 bytes Data 0x00000000
09:42:40:256 : Erasing external memory sectors [0 177]
09:42:40:256 : Init flashloader...
09:42:40:257 : halt ap 0
09:42:40:258 : w ap 0 reg 0 R0 0x00000001
09:42:40:258 : w ap 0 reg 1 R1 0x00000000
09:42:40:258 : w ap 0 reg 2 R2 0x00000000
09:42:40:258 : w ap 0 reg 3 R3 0x00000000
09:42:40:259 : w ap 0 reg 4 R4 0x00000000
09:42:40:260 : w ap 0 reg 5 R5 0x00000000
09:42:40:260 : w ap 0 reg 6 R6 0x00000000
09:42:40:260 : w ap 0 reg 7 R7 0x00000000
09:42:40:261 : w ap 0 reg 8 R8 0x00000000
09:42:40:262 : w ap 0 reg 9 R9 0x00000000
09:42:40:263 : w ap 0 reg 10 R10 0x00000000
09:42:40:263 : w ap 0 reg 11 R11 0x00000000
09:42:40:263 : w ap 0 reg 12 R12 0x00000000
09:42:40:264 : w ap 0 reg 13 SP 0x00000000
09:42:40:264 : w ap 0 reg 14 LR 0x24000001
09:42:40:264 : w ap 0 reg 15 PC 0x24000685
09:42:40:265 : w ap 0 reg 16 xPSR 0x01000000
09:42:40:266 : w ap 0 reg 17 MSP 0x24018534
09:42:40:266 : w ap 0 reg 18 PSP 0x00000000
09:42:40:266 : run ap 0
09:42:45:002 : halt ap 0
09:42:45:002 : Init function fail with timeout
09:42:45:003 : r ap 0 reg 16 xPSR 0x61000000
09:42:45:003 : Loader sector erase...
09:42:45:003 : Error: failed to erase memory
09:42:45:031 : Error: failed to erase memory
09:42:45:035 : RUNNING Program ...
09:42:45:035 : Address: : 0x08000000
09:42:45:041 : w ap 0 reg 15 PC 0xFFFFFFFF
09:42:45:041 : w ap 0 reg 17 MSP 0xFFFFFFFF
09:42:45:041 : w ap 0 reg 16 xPSR 0x01000000
09:42:45:041 : Warning: The core is locked up
09:42:45:053 : Start operation achieved successfully

 

I also tried a full chip erase and got this.


08:56:40 : ST-LINK SN : 38FF6F06304E4B3028442243
08:56:40 : ST-LINK FW : V2J45S7
08:56:40 : Board : --
08:56:40 : Voltage : 3.23V
08:56:40 : SWD freq : 4000 KHz
08:56:40 : Connect mode: Under Reset
08:56:40 : Reset mode : Hardware reset
08:56:40 : Device ID : 0x450
08:56:40 : Revision ID : Rev Y
08:56:40 : Debug in Low Power mode is not supported for this device.
08:56:41 : UPLOADING OPTION BYTES DATA ...
08:56:41 : Bank : 0x00
08:56:41 : Address : 0x5200201c
08:56:41 : Size : 308 Bytes
08:56:41 : UPLOADING ...
08:56:41 : Size : 1024 Bytes
08:56:41 : Address : 0x8000000
08:56:41 : Read progress:
08:56:41 : Data read successfully
08:56:41 : Time elapsed during the read operation is: 00:00:00.007
08:56:43 : External loader sector number is too big, displaying only the first 4000 sectors
08:56:43 : External loader sector number is too big, displaying only the first 4000 sectors
08:56:43 : External loader sector number is too big, displaying only the first 4000 sectors
08:56:45 : MASS ERASE ...
08:56:50 : Error: Mass erase operation failed. Please verify flash protection

 

This is the message when trying to debug in CubeIDE

Memory Programming ...

Opening and parsing file: ST-LINK_GDB_server_a23400.srec

File : ST-LINK_GDB_server_a23400.srec

Size : 7.46 MB

Address : 0x90000000

 

 

Erasing memory corresponding to segment 0:

Erasing external memory sectors [0 178]

Error: failed to erase memory

 

 

Error: failed to erase memory

Encountered Error when opening C:\ST\STM32CubeIDE_1.10.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.1.200.202311302303\tools\bin\STM32_Programmer_CLI.exe

Error in STM32CubeProgrammer

Shutting down...

Exit.

 

1 ACCEPTED SOLUTION

Accepted Solutions

Debug like there's a problem unique to the fabrication of this board.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

View solution in original post

6 REPLIES 6
MAlan.1
Associate III

It seems like I am hitting a HAL_TIMEOUT in my External Loader even though this loader works with 15 other boards. Is this pointing more towards a hardware issue?

From this > I have been able to flash the code on all but one board.

I would recommend : inspect all solder joints on cpu and decoupling caps and on flash. One is bad...

If you feel a post has answered your question, please click "Accept as Solution".
Pavel A.
Evangelist III

This STM32H750 is Rev. Y, it is obsolete and buggy, please check the errata.

 

Yeah, but not to the point it would fail in this way. Other working boards built from same batch and chip stepping.

This continues to be indicative of a board/component level failure.

Check soldering, x-ray inspect, eliminate components with test or validation apps to try and isolate failing part(s).

Check supplies and VCAP caps and voltages.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Debug like there's a problem unique to the fabrication of this board.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..