硬汉嵌入式论坛

 找回密码
 立即注册
查看: 183|回复: 1
收起左侧

[技术讨论] NCS添加.c.h文件

[复制链接]

7

主题

8

回帖

29

积分

新手上路

积分
29
发表于 2025-7-27 15:28:58 | 显示全部楼层 |阅读模式
1、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

2、总结
上面的功能可能有点多,需要长期使用才知道大部分的功能,实际我们添加.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)
3、测试
使用periphreal_uart例程
1、在src目录添加test文件夹,在test文件下创建CMakeList.txt文件,将这个文件下面的test.c和test.h包含进去
2、在periphreal_uart例程根目录下把test这个文件夹使用add_subdirectory(src/test)包含进去,这样就可以了



083c7501fc0044f59bc225e52b99e8c6.png
回复

使用道具 举报

6

主题

90

回帖

108

积分

初级会员

积分
108
发表于 2025-8-3 20:59:20 | 显示全部楼层
佬,请问54L15DK板子上的8Mflash可以自己更换成相同封装的MX25L12833F(16M flash)吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 00:11 , Processed in 0.039036 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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