mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-18 02:51:56 +00:00
Introducing CMake is an important step in a larger effort to make Zephyr easy to use for application developers working on different platforms with different development environment needs. Simplified, this change retains Kconfig as-is, and replaces all Makefiles with CMakeLists.txt. The DSL-like Make language that KBuild offers is replaced by a set of CMake extentions. These extentions have either provided simple one-to-one translations of KBuild features or introduced new concepts that replace KBuild concepts. This is a breaking change for existing test infrastructure and build scripts that are maintained out-of-tree. But for FW itself, no porting should be necessary. For users that just want to continue their work with minimal disruption the following should suffice: Install CMake 3.8.2+ Port any out-of-tree Makefiles to CMake. Learn the absolute minimum about the new command line interface: $ cd samples/hello_world $ mkdir build && cd build $ cmake -DBOARD=nrf52_pca10040 .. $ cd build $ make PR: zephyrproject-rtos#4692 docs: http://docs.zephyrproject.org/getting_started/getting_started.html Signed-off-by: Sebastian Boe <sebastian.boe@nordicsemi.no> |
||
---|---|---|
.. | ||
src | ||
CMakeLists.txt | ||
Makefile | ||
prj.conf | ||
README.txt | ||
testcase.yaml |
Title: Memory Slab APIs Description: This test verifies that the kernel memory slab APIs operate as expected. -------------------------------------------------------------------------------- Building and Running Project: This project outputs to the console. It can be built and executed on QEMU as follows: make run -------------------------------------------------------------------------------- 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: starting test - Test Kernel memory slabs Starts main =================================================================== (1) - Allocate and free 2 blocks in <main> =================================================================== Function test_slab_get_all_blocks MAP_LgBlks used 0 blocks k_mem_slab_alloc OK, p[0] = 0x00406400 MAP_LgBlks used 1 blocks k_mem_slab_alloc OK, p[1] = 0x00406000 MAP_LgBlks used 2 blocks k_mem_slab_alloc RC_FAIL expected as all (2) blocks are used. =================================================================== print_pointers: p[0] = 0x00406400, p[1] = 0x00406000, =================================================================== Function test_slab_free_all_blocks MAP_LgBlks used 2 blocks block ptr to free p[0] = 0x00406400 MAP_LgBlks freed 1 block MAP_LgBlks used 1 blocks block ptr to free p[1] = 0x00406000 MAP_LgBlks freed 2 block MAP_LgBlks used 0 blocks =================================================================== Starts helper_thread =================================================================== (2) - Allocate 2 blocks in <helper_thread> =================================================================== Function test_slab_get_all_blocks MAP_LgBlks used 0 blocks k_mem_slab_alloc OK, p[0] = 0x00406000 MAP_LgBlks used 1 blocks k_mem_slab_alloc OK, p[1] = 0x00406400 MAP_LgBlks used 2 blocks k_mem_slab_alloc RC_FAIL expected as all (2) blocks are used. =================================================================== =================================================================== (3) - Further allocation results in timeout in <main> =================================================================== main: k_mem_slab_alloc times out which is expected main: start to wait for block =================================================================== (4) - Free a block in <helper_thread> to unblock the other task from alloc timeout =================================================================== helper_thread: About to free a memory block main: k_mem_slab_alloc OK, block allocated at 0x00406000 main: start to wait for block =================================================================== (5) <helper_thread> freeing the next block =================================================================== helper_thread: About to free another memory block main: k_mem_slab_alloc OK, block allocated at 0x00406400 helper_thread: freed all blocks allocated by this task PASS - helper_thread. =================================================================== main: Used 2 block main: 1 block freed, used 1 block PASS - main. =================================================================== =================================================================== PROJECT EXECUTION SUCCESSFUL