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