Loading...
 

SW4STM32 and SW4Linux fully supports the STM32MP1 asymmetric multicore Cortex/A7+M4 MPUs

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world. And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4.
You can get more information from the ac6-tools website and download (registration required) various documents highlighting:

System Workbench for STM32


Only first debug session is successful with STM32F405

Windows 10 Pro 64bit
AC6 version 1.10.0.201607251855
Custom board with SMT32F405.
Ac6 Startup Runtime option Resume is not selected.
Connected via STLink via nucleoF411 PCB header CN12 CN4 (CN2 jumpers removed)

Not able to debug main project more than one time in a row.

Start main project debug session.
Terminate session.
Start main project debug session. Debugger connects to target, target is halted at Reset_Handler. Step one instruction and the device PC will change from 0x80002b8 to 0x1fff3da2 with no source availble. I have changed the instruction at Reset_Handler to load a dummy value into r0 to verify code is being downloaded.

I can start a successful session if I create a different STM32F405 (dummy) project with just a simple while loop and debug that.
Restarting the dummy project cause the same fault has the same behaviour as the main project.

Starting the main project after teriminating debugging the dummy project is successful.
Starting the dummy project after terminating debugging the main project is successful.
Starting the dummy project after terminating the dummy project fails.
Starting the main project after terminating the main project fails.

I can change the STLink jumpers on the nucleo board and debug a STM32F411 project multiple times with no problem.

This behaviour occurs on 3 different STM32F405 projects on 2 different boards.

This can be worked around by alternating main project debug with the dummy debug session but a proper solution would be better.

Reconnecting the STLink or restarting eclipse, or power cycling the target has no affect.

Suggestions or ideas?

Hi Gshera,
Do you Terminate (Red square button) the first debug session before launching the next one?

Hello Gshera,

First, update the software, there is a 1.12 version.

Now, about CN12 on nucleo 64, it is 2 GND pins.
I suppose it is a typo error, you meant CN4, right ?

STlink Nucleo CN4 has 6 pins:
Pin 1 is STlink VDD input to measure : To connect to your VDD of custom board
Pin 2 is SWCLK
Pin 3 is GND
Pin 4 is SWDIO
Pin 5 is N_Reset to connect to the Nrst pin of your F405.
Pin 6 is SWO (not needed for debug)

Then, you should have removed the 2 Jumpers on CN2 for STLink usage as you mentionned.

Rgds,
Laurent

@vetch
Yes. The dummy project would not launch if the main project was still running, thanks for checking though.

@LaurentL
Yes. that is a typo. Adapter is connected to SWD header CN4 not CN12 (CN4 reference was hidden by my adapter board).
CN2 jumpers are removed.

OK, CN4 used but did you connect the 5 pins (or less) ?

And did you update the software ?
Menu Help => Check For Updates

Rgds,
Laurent

Hi Lauent,

I updated the software no change in function.
The pins are connected as you describe.

I’ll try to be more clear. With 2 different custom boards (STM32F405) I have project A and project B. Each in thier own Eclipse instance and workspace.
Project A is my main project.
Project B is a simple project with a while loop in the main.

Open Eclipse with project A, start a debug session, debug normally, then terminate. If I start another debug session with the same Eclipse instance, same project A, the debugger connects successfully, but the device runs to a bad location immediatly after the first instruction after Reset_Handler: I then terminate this debug session.

Open a second Eclipse instance with project B. I can start a debug session and run normally. If I terminate that session then start the project B debug session again it will fail in the same way as project A. I then terminate this debug session.

Change to the project A eclipse instance and start the project A debug session, it operates normally. Terminate project A debug session. Change to project B eclipse instance, start the project B debug session, it operates normally. Terminate project B session. Change to the project A eclipse instance and start the project A debug session, it operates normally.etc..

So
Start A, (ok), terminate A. Start A (bad) terminate A. Start A (bad) terminate A. \
Start B, (ok), terminate B. Start B (bad) terminate B Start B (bad) terminate B \
Start A, (ok), terminate A, Start B (ok), terminate B. Start A (ok), terminate A...

On the nucleo STM32F411. (change the STLInk jumper of course). I can start and stop a debug session normally.
It’s really strange. I never had this issue with a previous SMT32F401 custom board project either.

Thanks
Geoff