Title: Stack APIs 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