NCS添加.c.h文件
一、NCS 构建Zephyr 使用**CMake**作为构建系统,CMake 是一个跨平台的构建工具,它通过读取`CMakeLists.txt`文件来生成平台特定的构建文件,
Zephyr 的构建系统基于**GNUMake**和**CMake**,但 CMake 是主要的配置入口。每个 Zephyr 项目(应用程序、驱动或模块)都需要一个或多个`CMakeLists.txt`文件来定义构建规则
我们可以打开一个例程参考,我这里使用ncs3.0.0的peripheral_uart例程
![在这里插入图片描述]()
- `cmake_minimum_required`:指定所需的最低 CMake 版本。
- `find_package(Zephyr)`:查找并加载 Zephyr 的 CMake 工具链和模块
- `project`:定义项目名称,通常与应用程序名称一致
-`target_sources`:指定项目的源文件路径(如`.c`、`.cpp`文件)
我们选择一个更加复杂的例程来分析`v3.0.0\nrf\applications\nrf_desktop`
![在这里插入图片描述]()
- **cmake_minimum_required**:要求 CMake 版本至少为 3.20.0
- **APPLICATION_CONFIG_DIR**:设置应用配置文件目录,根据目标开发板动态调整(如`configuration/nrf52840dk_nrf52840`)
-**find_package(Zephyr)**:查找并加载 Zephyr 构建系统
- **project**:定义项目名称为 "nRF Desktop",版本为 0.1
- **assert**:确保在 Kconfig 中定义了`CONFIG_DESKTOP_HID_REPORT_DESC`(HID 报告描述符文件路径)
- **target_sources**:添加主源文件`src/main.c`和 HID 描述符文件到构建
- **zephyr_library_include_directories**:为应用库添加头文件路径(供内部模块使用)
- **zephyr_include_directories**:为整个项目添加头文件路径(全局可见)
- **add_subdirectory**:递归添加子目录中的代码模块,每个子目录需包含自己的 CMakeLists.txt
-**CONFIG_IMG_MANAGER**:如果启用固件管理功能,链接 MCUboot 的引导工具库
- **CONFIG_DESKTOP_CONFIG_CHANNEL_ENABLE**:如果启用配置通道功能,添加自定义链接脚本`nrf_desktop.ld`
二、总结
上面的功能可能有点多,需要长期使用才知道大部分的功能,实际我们添加.c.h甚至.a&.lib文件只需要需要下面的指令就行了,添加在Cmakelists.txt
- 添加.c文件: **target_sources**:target_sources(app PRIVATE xxx.c )
- 添加.h文件路径:target_include_directories(app PRIVATE common)
- 添加.a或者.lib文件:target_link_libraries(app PRIVATE xxx.lib)
三、 测试
使用periphreal_uart例程
1、在src目录添加test文件夹,在test文件下创建CMakeList.txt文件,将这个文件下面的test.c和test.h包含进去
2、在periphreal_uart例程根目录下把test这个文件夹使用add_subdirectory(src/test)包含进去,这样就可以了
!()
![在这里插入图片描述]()
![在这里插入图片描述]()
![在这里插入图片描述]()
页:
[1]