60136f00cb
While trying out the hello_world sample built for QEMU, I was expecting the sample app to exit and I'd return to a command prompt. Nope. You need to exit QEMU manually, so add that step to the sample instructions. Looking around, there are more uses of QEMU like this that could use this added step after running the sample app. Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
47 lines
1 KiB
ReStructuredText
47 lines
1 KiB
ReStructuredText
.. _synchronization_sample:
|
|
|
|
Synchronization Sample
|
|
######################
|
|
|
|
Overview
|
|
********
|
|
|
|
A simple application that demonstrates basic sanity of the kernel.
|
|
Two threads (A and B) take turns printing a greeting message to the console,
|
|
and use sleep requests and semaphores to control the rate at which messages
|
|
are generated. This demonstrates that kernel scheduling, communication,
|
|
and timing are operating correctly.
|
|
|
|
Building and Running
|
|
********************
|
|
|
|
This project outputs to the console. It can be built and executed
|
|
on QEMU as follows:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/synchronization
|
|
:host-os: unix
|
|
:board: qemu_x86
|
|
:goals: run
|
|
:compact:
|
|
|
|
Sample Output
|
|
=============
|
|
|
|
.. code-block:: console
|
|
|
|
threadA: Hello World!
|
|
threadB: Hello World!
|
|
threadA: Hello World!
|
|
threadB: Hello World!
|
|
threadA: Hello World!
|
|
threadB: Hello World!
|
|
threadA: Hello World!
|
|
threadB: Hello World!
|
|
threadA: Hello World!
|
|
threadB: Hello World!
|
|
|
|
<repeats endlessly>
|
|
|
|
Exit QEMU by pressing :kbd:`CTRL+A` :kbd:`x`.
|