zephyr/samples/portability/cmsis_rtos_v2/timer_synchronization
Andy Ross a334ac2045 tests: Mass SMP disablement on non-SMP-safe tests
(Chunk 1 of 3 - this patch was split across pull requests to address
CI build time limitations)

Zephyr has always been a uniprocessor system, and its kernel tests are
rife with assumptions and outright dependence on single-CPU operation
(for example: "low priority threads will never run until this high
priority thread blocks" -- not true if there's another processor to
run it!)

About 1/3 of our tests fail right now on x86_64 when dual processor
operation is made default.  Most of those can probably be recovered on
a case-by-case basis with simple changes (and a few of them might
represent real bugs in SMP!), but for now let's make sure the full
test suite passes by turning the second CPU off.  There's still plenty
of SMP coverage in the remaining cases.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2019-02-28 13:02:20 -06:00
..
src samples: cmsis_rtos_v2: Resolve control flow issue 2019-02-06 21:34:20 -05:00
CMakeLists.txt
README.rst
prj.conf tests: Mass SMP disablement on non-SMP-safe tests 2019-02-28 13:02:20 -06:00
sample.yaml

README.rst

.. _cmsis_rtos_v2-sync_sample:

Synchronization using CMSI RTOS V2 APIs
#######################################

Overview
********
The sample project illustrates usage of timers and message queues using
CMSIS RTOS V2 APIs.

The main thread creates a preemptive thread which writes message to message queue
and on timer expiry, message is read by main thread.


Building and Running Project
****************************
This project outputs to the console.  It can be built and executed
on QEMU as follows:

.. zephyr-app-commands::
   :zephyr-app: samples/philosophers
   :host-os: unix
   :board: qemu_x86
   :goals: run
   :compact:

Sample Output
=============

.. code-block:: console

    Wrote to message queue: 5
    Read from message queue: 5

    Wrote to message queue: 6
    Read from message queue: 6

    Wrote to message queue: 7
    Read from message queue: 7

    Wrote to message queue: 8
    Read from message queue: 8

    Wrote to message queue: 9
    Read from message queue: 9

    Wrote to message queue: 10
    Read from message queue: 10

    Wrote to message queue: 11
    Read from message queue: 11

    Wrote to message queue: 12
    Read from message queue: 12

    Wrote to message queue: 13
    Read from message queue: 13

    Wrote to message queue: 14
    Read from message queue: 14

    Wrote to message queue: 15
    Read from message queue: 15

    Sample execution successful