This API has been deprecated and scheduled for removal. It was only implemented on X86, and ARM systems that aren't XIP. Static exceptions (only implemented on x86) will continue to be tested by test_static_idt. Change-Id: I6d63347ead8200002ee1edd8dd4572b418800400 Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
79 lines
2.8 KiB
Plaintext
79 lines
2.8 KiB
Plaintext
Title: Context and IRQ APIs
|
|
|
|
Description:
|
|
|
|
This test verifies that the nanokernel CPU and context 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 CPU and thread routines
|
|
Initializing nanokernel objects
|
|
Testing nano_cpu_idle()
|
|
Testing interrupt locking and unlocking
|
|
Testing irq_disable() and irq_enable()
|
|
Testing sys_thread_self_get() from an ISR and task
|
|
Testing sys_execution_context_type_get() from an ISR
|
|
Testing sys_execution_context_type_get() from a task
|
|
Spawning a fiber from a task
|
|
Fiber to test sys_thread_self_get() and sys_execution_context_type_get
|
|
Fiber to test fiber_yield()
|
|
Testing sys_thread_busy_wait()
|
|
fiber busy waiting for 20000 usecs (2 ticks)
|
|
fiber busy waiting completed
|
|
Testing fiber_sleep()
|
|
fiber sleeping for 5 ticks
|
|
fiber back from sleep
|
|
Testing fiber_delayed_start() without cancellation
|
|
fiber (q order: 2, t/o: 50) is running
|
|
got fiber (q order: 2, t/o: 50) as expected
|
|
fiber (q order: 3, t/o: 75) is running
|
|
got fiber (q order: 3, t/o: 75) as expected
|
|
fiber (q order: 0, t/o: 100) is running
|
|
got fiber (q order: 0, t/o: 100) as expected
|
|
fiber (q order: 6, t/o: 125) is running
|
|
got fiber (q order: 6, t/o: 125) as expected
|
|
fiber (q order: 1, t/o: 150) is running
|
|
got fiber (q order: 1, t/o: 150) as expected
|
|
fiber (q order: 4, t/o: 175) is running
|
|
got fiber (q order: 4, t/o: 175) as expected
|
|
fiber (q order: 5, t/o: 200) is running
|
|
got fiber (q order: 5, t/o: 200) as expected
|
|
Testing fiber_delayed_start() with cancellations
|
|
cancelling [q order: 0, t/o: 100, t/o order: 0]
|
|
fiber (q order: 3, t/o: 75) is running
|
|
got (q order: 3, t/o: 75, t/o order 1074292) as expected
|
|
fiber (q order: 0, t/o: 100) is running
|
|
got (q order: 0, t/o: 100, t/o order 1074292) as expected
|
|
cancelling [q order: 3, t/o: 75, t/o order: 3]
|
|
cancelling [q order: 4, t/o: 175, t/o order: 4]
|
|
fiber (q order: 4, t/o: 175) is running
|
|
got (q order: 4, t/o: 175, t/o order 1074292) as expected
|
|
cancelling [q order: 6, t/o: 125, t/o order: 6]
|
|
PASS - main.
|
|
===================================================================
|
|
PROJECT EXECUTION SUCCESSFUL
|