[Top][All Lists]

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

Re: [Qemu-arm] Qemu ARM M4 emulation

From: Peter Maydell
Subject: Re: [Qemu-arm] Qemu ARM M4 emulation
Date: Fri, 1 Mar 2019 12:57:48 +0000

On Tue, 26 Feb 2019 at 15:06, REY, Julien <address@hidden> wrote:
> Our customer want to virtualize their physical test bench. Their test bench 
> is composed by a controller device who contained embedded C code executed by 
> a Cortex ARM M4 kernel and their physical system with sensors and actuators. 
> The virtualization of the physical system is not a problem for us.
> The main problem is the controller emulation. The solution we have is to 
> emulate the ARM M4 Kernel for execute the embedded code developed and then to 
> connect to the virtual system.
> We tought of Qemu to do that. We have experimented the emulation of a
> basic OS iso but for a Kernel whitout OS we don’t know where to start.

> Run an emulation of ARM M4 kernel
> Compile and execute code
> Taking into account Imputs/Outputs and the card controller architecture.
> Do you think that Qemu can be a solution to our problem ?

It would be possible, certainly, but you would probably need
to write a fair amount of QEMU code to do it.

You would need to write code which implemented device models for:
 * whatever SoC your controller device is
 * any devices on that SoC that your guest code cares about
 * your actual set of sensors and actuators

QEMU can handle the actual Cortex-M4 CPU parts[*]. If your
controller device happens to be using an STM32F205 SoC or
an NRF51 SoC or something based on the Arm SSE-200 or
IoTKit blocks, then we already have some of the device
models you need. If it's using a different SoC then you
would need to implement all that code yourself.

As a rough rule of thumb, you should assume that writing a
device model for a piece of hardware is about as much effort
as writing an OS device driver for it. Add a bit if you're
not familiar with QEMU internals.

[*] One exception to the CPU support is that we do not currently
model floating point for M-profile CPUs, so if your guest code
uses the FPU then QEMU will not yet work for you. I'm currently
partway through working on FP support, but it won't be ready
until maybe mid-year.)

-- PMM

reply via email to

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