第2篇 zephyr 添加用户的应用程序

目录

摘要

1 添加用户应用程序

1.1  zephyr工程树(Zephyr repository application)内添加用户应用程序

1.2 zephyr工作空间(Zephyr workspace application)内添加用户应用程序

1.2.1 添加应用程序

 1.2.2 编译应用程序

1.3 独立于zephyr工程的目录(Zephyr freestanding application)下添加应用程序

1.3.1 添加应用程序

1.3.2 编译应用程序

2.添加用户定义的板级资源

2.1.板级资源存放位置

2.2 板级资源的内容

2.2.1 添加板级文件

2.2.2 修改如下文件名称:

2.2.3 修改nrf52840dk_hhp.yaml文件内容

2.2.4 编译

结束


本学笔记基于zephyr 工程版本 2.2.99,主机环境为ubuntu18.04

摘要

  1. 如何添加用户应用程序?
  2. 如何添加用户板级资源?

1 添加用户应用程序

我的工程路径如下:

zephyr工程树: ~/zephyrproject/zephyr 

zephyr工作空间: ~/zephyrproject/

1.1  zephyr工程树(Zephyr repository application)内添加用户应用程序

 zephyr工程树内添加应用与zephyr自带的samples应用一样,参考添加即可。但是在开发中如果添加代码到zephyr工程树中是不推荐的。官方不推荐zephyr工程树有任何更改。

<projects>/zephyrproject
└── zephyr
     ├── arch
     ├── boards
     ├── cmake
     ├── samples
     │    ├── hello_world
     │    └── ...
     ├── tests
     └── ...

1.2 zephyr工作空间(Zephyr workspace application)内添加用户应用程序

1.2.1 添加应用程序

为了简单起见,我们将以samples/basic/blinky例子作为用户的应用程序。首先创建~/zephyrproject/app目录,再将blinky的内容拷贝到 ~/zephyrproject/app下面,目录结构如下:

<projects>/zephyrproject
├── zephyr
├── bootloader
├── modules
├── tools
└── app
     ├── CMakeLists.txt 
     ├── prj.conf 
     └── src 
          └── main.c

 1.2.2 编译应用程序

在zephyrproject目录下执行如下命令: 

west build -b nrf52840dk_nrf52840 ./app -d ./app/build
-d ./app/build指定编译过程中的bulid的路径
./app 指定应用程序路径

1.3 独立于zephyr工程的目录(Zephyr freestanding application)下添加应用程序

1.3.1 添加应用程序

为了简单起见,我们将以samples/basic/blinky例子作为用户的应用程序。首先创建~/app目录,再将blinky的内容拷贝到 ~/app下面,目录结构如下:

<projects>/zephyrproject
├── zephyr
├── bootloader
└── ...

<home>/app
├── CMakeLists.txt
├── prj.conf
└── src
    └── main.c

1.3.2 编译应用程序

在zephyrproject目录下执行如下命令: 

west build -b nrf52840dk_nrf52840 ~/app -d ~/app/build 
-d ./app/build指定编译过程中的bulid的路径
~/app 指定应用程序路径

注意:即使app不在zephyrproject下面了,编译指令也需要在zephyrproject下面执行。

1.3.3 任意目录下编译应用程序(解决1.3.2的"注意"问题)

如果想在任意目录下编译应用程序,需要制定zephyr的源码目录,这可以通过环境变量实现ZEPHYR_BASE,在shell中输入如下命令:

export ZEPHYR_BASE=/home/hhp/zephyrproject/zephyr

上述命令仅临时有效,如果想设置永久环境变量,则将上面命令添加到~/.bashrc中

2.添加用户定义的板级资源

在zephyr/boards下面包含了各式各样的板级文件。但是都是基于芯片厂家官方开发板的。当我们在实际开发中,官方开发板与我们实际项目中的开发板的板级资源肯定是不一样的。这样在实际开发当中,我们需要自己定义板级资源。

2.1.板级资源存放位置

 官方建议自己定义的开发板放在app下面,即在app目录下,创建boards/xx/xxx。

2.2 板级资源的内容

2.2.1 添加板级文件

在app/boards下面,我们可以参考,zephyr/boards下面的内容,以nrf52840为例,我们创建自己的板级资源,可以参考官方的开发板nrf52840dk_nrf52840。在app/boards下面建立板级目录,我们简单命名为nrf52840dk_hhp。然后将 zephyr/boards/arm/nrf52840dk_nrf52840下的内容拷贝到app/boards/arm/nrf52840dk_hhp目录下。

2.2.2 修改如下文件名称:

nrf52840dk_nrf52840_defconfig -> nrf52840dk_hhp_defconfig

nrf52840dk_nrf52840.dts  -> nrf52840dk_hhp.dts

 nrf52840dk_nrf52840.yaml  -> nrf52840dk_hhp.yaml

2.2.3 修改nrf52840dk_hhp.yaml文件内容

2.2.4 编译

在zephyrproject目录下执行如下命令:

west build -b nrf52840dk_hhp ~/app -d ../app/build -DBOARD_ROOT=~/app

-d ./app/build指定编译过程中的bulid的路径
~/app 指定应用程序路径-DBOARD_ROOT=~/app  指定编译器搜索boards的路径,不要写

-DBOARD_ROOT=~/app/boards

结束

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章