qemu-arm
[Top][All Lists]
Advanced

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

Re: [Qemu-arm] QEMU user mode for cortex M


From: Alex Bennée
Subject: Re: [Qemu-arm] QEMU user mode for cortex M
Date: Fri, 15 Mar 2019 10:56:59 +0000
User-agent: mu4e 1.1.0; emacs 26.1

Peter Maydell <address@hidden> writes:

> On Thu, 14 Mar 2019 at 22:30, Massimiliano Cialdi <address@hidden> wrote:
>>
>> hello,
>> I would like to try some algorithms on cortex M (especially cortex M4). I 
>> don't need to emulate the whole machine, I just need the user mode.
>> To test the feasibility, I wrote the trivial "hello world".
>>
>> I can compile it with arm-none-eabi-gcc, but the newlib associated with it 
>> does not implement any syscall.
>> So I tried, on ubuntu, with the cross compiler arm-linux-gnueabihf-gcc and 
>> its libc6, but the latter is only distributed for cortex A.
>>
>> What do you suggest? Should I recompile the libc6 for cortex M (or do I find 
>> it pre-compiled)? Should I implement (and how?) syscalls on newlib?
>>
>> In summary, I would need a step-by-step guide to running Cortex M code on 
>> QEMU arm user mode.
>
> User-mode in Cortex-M is a weird thing to do, because what QEMU
> gives you is the A-profile Linux syscalls.
<snip>
> System emulation mode will get you something that actually
> works the way the real hardware does. You can then do
> output either via the UART or via semihosting (you need to
> enable the latter on the commandline).

We've recently added the ability to compile system-mode tests although
we currently only have one test for Cortex-M0 (see
tests/tcg/test-armv6m-undef.s). However if you could write a boot.S for
cortex-m4 with a semihosting __sys_outc and link it with
tests/tcg/minilib then you have a reasonable test harness for building C
binaries (albeit without a proper libc) you can run with the system
emulator.

--
Alex Bennée



reply via email to

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