【NCS随笔】如何在NCS添加自己的.c&.h&.lib&.a文件

【NCS随笔】

SEGGER添加方式

在介绍NCS工程之前,我们先看看大家熟悉的SEGGER工程(Keil同理):

左边的项目栏可以看到工程的配置,通过点击 User Include Directories添加头文件路径

在这里插入图片描述

对工程或者文件夹鼠标右击就可以添加文件或者.c文件管理文件等操作。
在这里插入图片描述

可以看出,Segger添加源文件和目录的方式比较直观,但是如果文件比较多,路径比较深的话效率就会比较低下。
在这里插入图片描述

NCS 构建

Zephyr 使用CMake作为构建系统,CMake 是一个跨平台的构建工具,它通过读取CMakeLists.txt文件来生成平台特定的构建文件,
Zephyr 的构建系统基于GNUMakeCMake,但 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

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

最后一如既往的到了臭不要脸环节,作为一名精通Nordic硬件设计和软件开发的FAE,你的点赞、收藏和评论是对我最大的支持,有问题多多指教,如果有需要Nordic开发板、Nordic的芯片以及Nordic技术支持的可以在个人资料获取我的联系方式,感谢读者支持!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值