| Title: Private Memory Maps |
| |
| Description: |
| |
| This test verifies that the microkernel memory map APIs operate as expected. |
| This also verifies the mechanism to define private memory map and its usage. |
| |
| -------------------------------------------------------------------------------- |
| |
| Building and Running Project: |
| |
| This microkernel 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 Microkernel Memory Maps |
| Starts RegressionTask |
| Function testMapGetAllBlocks |
| MAP_LgBlks used 0 blocks |
| task_mem_map_alloc OK, p[0] = 001040a8 |
| MAP_LgBlks used 1 blocks |
| task_mem_map_alloc OK, p[1] = 00103ca8 |
| MAP_LgBlks used 2 blocks |
| task_mem_map_alloc RC_FAIL expected as all (2) blocks are used. |
| =================================================================== |
| printPointers: p[0] = 001040a8, p[1] = 00103ca8, |
| =================================================================== |
| Function testMapFreeAllBlocks |
| MAP_LgBlks used 2 blocks |
| block ptr to free p[0] = 001040a8 |
| MAP_LgBlks freed 1 block |
| MAP_LgBlks used 1 blocks |
| block ptr to free p[1] = 00103ca8 |
| MAP_LgBlks freed 2 block |
| MAP_LgBlks used 0 blocks |
| =================================================================== |
| printPointers: p[0] = 00000000, p[1] = 00000000, |
| =================================================================== |
| Starts HelperTask |
| Function testMapGetAllBlocks |
| MAP_LgBlks used 0 blocks |
| task_mem_map_alloc OK, p[0] = 00103ca8 |
| MAP_LgBlks used 1 blocks |
| task_mem_map_alloc OK, p[1] = 001040a8 |
| MAP_LgBlks used 2 blocks |
| task_mem_map_alloc RC_FAIL expected as all (2) blocks are used. |
| =================================================================== |
| RegressionTask: task_mem_map_alloc timeout expected |
| RegressionTask: start to wait for block |
| HelperTask: About to free a memory block |
| RegressionTask: task_mem_map_alloc OK, block allocated at 00103ca8 |
| RegressionTask: start to wait for block |
| HelperTask: About to free another memory block |
| RegressionTask: task_mem_map_alloc OK, block allocated at 00000000 |
| HelperTask: freed all blocks allocated by this task |
| =================================================================== |
| PASS - HelperTask. |
| RegressionTask: Used 1 block |
| RegressionTask: 1 block freed, used 0 block |
| =================================================================== |
| PASS - RegressionTask. |
| =================================================================== |
| PROJECT EXECUTION SUCCESSFUL |