zephyr/samples/nanokernel/test/test_stack
Dmitriy Korovkin 660878e4e2 irq_connect for x86 uses static stub array
In order to provide the same irq_connect() on all platforms
on x86, irq_connect() now uses a static array of interrupt
stubs. Device driver does not need to provide interrupt stub
to irq_connect() function.

Add NUM_DYNAMIC_STUBS configuration parameter, the number
of interrupt stubs used for dynamic interrupt registration.

Modify tests for unified interrupt register API

Tests that deal with interrupts are modified to work
with the new interrupt registration API.

Add CONFIG_NUM_DYNAMIC_STUBS option to dynamic interrupt projects

Projects that use dynamic interrupt handler registration on x86
have to include CONFIG_NUM_DYNAMIC_STUBS parameter in the
configuration.

Change-Id: Ic90c726485521a57cf695fd3edc8cac85d0b827d
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-02-05 20:14:25 -05:00
..
src Eliminate VxMicro branding in sample projects 2016-02-05 20:14:15 -05:00
Makefile Rename TIMO -> ZEPHYR 2016-02-05 20:14:16 -05:00
prj_arm.conf samples: remove explicit enabling of SW_ISR_TABLE/DYNAMIC 2016-02-05 20:13:45 -05:00
prj_x86.conf irq_connect for x86 uses static stub array 2016-02-05 20:14:25 -05:00
README.txt Fixed make target for running in qemu (nanokernel) 2016-02-05 20:14:16 -05:00

Title: test_stack

Description:

This test verifies that the nanokernel stack APIs operate as expected.

---------------------------------------------------------------------------

Building and Running Project:

This nanokernel project outputs to the console.  It can be built and executed
on QEMU as follows:

    make qemu

---------------------------------------------------------------------------

Troubleshooting:

Problems caused by out-dated project information can be addressed by
issuing one of the following commands then rebuilding the project:

    make clean          # discard results of previous builds
                        # but keep existing configuration info
or
    make pristine       # discard results of previous builds
                        # and restore pre-defined configuration info

---------------------------------------------------------------------------

Sample Output:

tc_start() - Test Nanokernel STACK
Test Task STACK Push

TASK STACK Put Order:  100, 200, 300, 400,
===================================================================
Test Fiber STACK Pop

FIBER STACK Pop: count = 0, data is 400
FIBER STACK Pop: count = 1, data is 300
FIBER STACK Pop: count = 2, data is 200
FIBER STACK Pop: count = 3, data is 100
PASS - fiber1.
===================================================================
Test Fiber STACK Push

FIBER STACK Put Order:  400, 300, 200, 100,
===================================================================
Test Task STACK Pop
TASK STACK Pop: count = 0, data is 100
TASK STACK Pop: count = 1, data is 200
TASK STACK Pop: count = 2, data is 300
TASK STACK Pop: count = 3, data is 400
===================================================================
Test STACK Pop Wait Interfaces

TASK  STACK Push to queue2: 100
Test Fiber STACK Pop Wait Interfaces

FIBER STACK Pop from queue2: 100
FIBER STACK Push to queue1: 200
TASK STACK Pop from queue1: 200
TASK STACK Push to queue2: 300
FIBER STACK Pop from queue2: 300
FIBER STACK Push to queue1: 400
PASS - testFiberStackPopW.
===================================================================
Test ISR STACK (invoked from Fiber)

ISR STACK (running in fiber context) Pop from queue1: 400
ISR STACK (running in fiber context) Push to queue1:
  150,   250,   350,   450,
PASS - testIsrStackFromFiber.
PASS - fiber2.
PASS - testTaskStackPopW.
===================================================================
Test ISR STACK (invoked from Task)

  Pop from queue1: count = 0, data is 450
  Pop from queue1: count = 1, data is 350
  Pop from queue1: count = 2, data is 250
  Pop from queue1: count = 3, data is 150

Test ISR STACK (invoked from Task) - push 450 and pop back 450
PASS - testIsrStackFromTask.
===================================================================
PASS - main.
===================================================================
PROJECT EXECUTION SUCCESSFUL