cancel
Showing results for 
Search instead for 
Did you mean: 

XPack-QEMU-ARM with GDB server error: Non-stop mode not supported from STM32CubeIDE

bully
Senior

I've started xpack-qemu-arm binary under windows with command :

.\bin\qemu-system-gnuarmeclipse --verbose --verbose --board STM32F4-Discovery --mrecu STM32F407VG --gdb tcp::1234 -d unimp,guest_errors --semihosting-config enable=on,target=native --semihosting-cmdline blinky
 

and get this error when connecting to external DBG server from CubeIDE :

>   Error in final launch sequence:

> Failed to execute MI command: target remote localhost:1234

> Error message from debugger back end: Non-stop mode requested, but

> remote does not support non-stop Failed to execute MI command: target

> remote localhost:1234

> Error message from debugger back end: Non-stop mode requested, but

> remote does not support non-stop Non-stop mode requested, but remote

> does not support non-stop

Any hint what could fix the problem ?

Thanks, regards,

Rob.

3 REPLIES 3
Markus GIRDLAND
ST Employee

Hello Rob,

You could try to untick the "Live Expressions" box in your Debug Configuration.

That should disable the non-stop mode in the GDB client to be compatible with what qemu seems to expect.

Let me know if it helps!

bully
Senior

Hello,

great tip. Yes, it did solve non-stop mode request error.

But then I run into another problems, but got it working - brief instructions :

  • Debug Configurations
    • JLink and STlink(GDB) don't work - famous chip check "Cannot verify ST device !"
    • STLink (OpenOCD) is the way to go - with Live expressions disabled
  • FP unit is not supported in QEMU, so it has to be removed from project
    • Project-Settings-C/C++Buiold-Settings-Tool Sett.-MCU Sett.-> FP Unit and FP ABI set to None and Software impl. respectively
  • in file   system_stm32f4xx.c FPU setting should be commented
void SystemInit(void)
			{
			  /* FPU settings ------------------------------------------------------------*/
			 //  #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
			 //   SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2));  /* set CP10 and CP11 Full Access */
			  // #endif
  • Now LED diodes blink on QEMU STMF4Discovery displayed (simulated) board

Thanks.

Hello,

the problem is back... I cannot get it to work, because "Could not verify ST device!" appears again under same settings that did work before...

It seems that ST check is started regardless of using OpenOCD...

In xpack QEMU GDB server shows these two lines when ST device is checked :

Execute 'mon WriteDP 0x2 0xF0'.
... connection accepted from ipv6 host.

Can I somehow prevent (switch off) ST device checking - probably QEMU is not responding to this check....

Thanks,

bully.