qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Better Cortex-M support?


From: Liviu Ionescu
Subject: Re: [Qemu-devel] Better Cortex-M support?
Date: Wed, 12 Nov 2014 16:23:21 +0200

On 12 Nov 2014, at 15:51, Peter Maydell <address@hidden> wrote:

> ... I'd suggest looking at Alistair's patches
> on the list for supporting the netduino2,

will certainly do.

and I also plan to review the patches of Andre Bechus, available from 
https://github.com/beckus/qemu_stm32.

>> for me, the plain arm-softmmu is not usable, since it forwards the
>> semihosting calls via gdb instead of using native implementation,
>> so I had to add a configuration variable to change this behaviour.
> 
> That sounds like the kind of thing that other people might also
> want to be able to do, so it would be better to make arm-softmmu
> be runtime configurable on this, I think.

for the gnuarmeclipse-qemu target, since I never need to forward semihosting to 
gdb, the solution was to add a configuration variable and statically set it at 
build time to always use native calls.

--- gdbstub.c ---
/* If gdb is connected when the first semihosting syscall occurs then use
   remote gdb syscalls.  Otherwise use native file IO.  */
int use_gdb_syscalls(void)
{
#if !defined(CONFIG_SEMIHOSTING_NATIVE)
    if (gdb_syscall_mode == GDB_SYS_UNKNOWN) {
        gdb_syscall_mode = (gdbserver_state ? GDB_SYS_ENABLED
                                            : GDB_SYS_DISABLED);
    }
    return gdb_syscall_mode == GDB_SYS_ENABLED;
#else
    // Make semihosting always use native file IO.
    if (gdb_syscall_mode == GDB_SYS_UNKNOWN) {
        gdb_syscall_mode = GDB_SYS_DISABLED;
    }
    return FALSE;
#endif
}

for arm-softmmu you probably need a way to configure this at run-time, which 
would involve a new monitor command, that can be issued from the GDB client via 
'mon XXXX'.

I guess you are not happy with a new gnuarmeclipse-qemu target, but since my 
experience with arm-softmmu is almost null, I want to avoid breaking anything 
there.


regards,

Liviu





reply via email to

[Prev in Thread] Current Thread [Next in Thread]