文章目录
前言
本人正在学习 Zephyr,一个可移植性较强,可以兼容多种开发板及物联网设备的操作系统,如果你感兴趣,可以点此查看我的 学习笔记总述 进行了解!
摘要
前面已经介绍了如何搭建 Zephyr 开发环境 以及 nRF Connect SDK 开发环境 。现在来介绍一下如何创建一个新的工程。
1. 工程目录结构简介
在开始创建工程之前,需要先了解一下 Zephyr 项目工程的基本目录结构。
Zephyr 内核的基本目录包括内核源代码、配置选项以及内核的一些预定义编译选项。
位于应用程序目录中的文件包括应用程序的预定义(例如应用程序相关的配置选项)和应用程序的源代码,最简单形式的应用程序具有以下内容:
工程文件
├── CMakeLists.txt
├── prj.conf
└── src
└── main.c
- CMakeLists.txt:此文件告诉构建系统在哪里可以找到其他应用程序文件,并将应用程序目录与Zephyr 的 CMake 构建系统链接。该链接提供了 Zephyr 的构建系统支持的功能,例如特定于电路板的内核配置文件,在真实或仿真硬件上运行和调试已编译二进制文件的功能,以及更多功能。
- 内核配置文件:应用程序通常提供一个 Kconfig 配置文件(通常称为
prj.conf
),用于指定一个或多个内核配置后选项相关的值。这些应用程序设置与特定于主板的设置合并以生成内核配置。如果被忽略,则将会使用应用程序已存在的内核配置选项值;如果应用程序没有该选项值,则将会使用内核的默认配置值。 - 应用程序源代码文件:应用程序通常会提供一个或多个由 C 或者汇编语言编写的应用程序相关的文件。这些文件通常位于一个叫做
src
的子目录中。
当然,还有关于硬件的配置文件 .overlay
文件,当需要进行相应的硬件配置时,需要用到这个文件进行修改,这样我们的目录结构就变成了下面这样:
工程文件
├── CMakeLists.txt
├── prj.conf
├── <boards>.overlay
└── src
└── main.c
其中的 .overlay
文件的命名是根据你使用的开发板类型来的,本次使用的是 nrf52dk_nrf52832,所以 .overlay
文件的名字命名为 nrf52dk_nrf52832.overlay
。当然,名称可以自定义设置,也可以添加多个 .overlay
文件,具体操作后面会进行介绍。
2. 创建工程文件
本次使用的是 nrf52dk_nrf52832,后续编译以此为例。
2.1 创建工程目录及源文件
首先,找个位置,创建你的工程文件夹。在此,我在 F
盘目录下新建一个名为 zephyr_prj
的工程文件夹。然后在该文件夹下创建一个 src
的文件夹,再在 src
的文件夹下新建一个 main.c
来存放此次的主逻辑代码:
在 main.c
中添加主代码:
#include <zephyr.h>
#include <sys/printk.h>
void main(void)
{
printk("zephyr_prj test start !!!");
}
2.2 创建 CMakeLists.txt 文件
在 src
的同级目录下新建一个 CMakeLists.txt
的文件:
然后在创建的 CMakeLists.txt
的文件中添加如下内容:
cmake_minim