找回密码
 立即注册

使用微信账号登录

只需一步,快速开始

查看: 56|回复: 0

[Nordic] NCS添加.c.h文件

[复制链接]

暂无签到数据

发表于 6 天前 | 显示全部楼层 |阅读模式
一、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)包含进去,这样就可以了
![zai]()



![在这里插入图片描述]()

![在这里插入图片描述]()
![在这里插入图片描述]()




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册  

×
楼主热帖
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

小黑屋|手机版|我爱蓝牙网 - 52Bluetooth

GMT+8, 2025-8-2 15:19 , Processed in 0.139686 second(s), 14 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表