第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

結束

 

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