环境安装
- 尝试在
windows10
系统按照官方教程配置开发环境,但是在west init zephyrproject
这步一直git clone
失败,随放弃。。。 - 最终在
ubuntu22.04
上按照官方文档成功安装;但是按照过程也是一言难尽,每次执行west init zephyrproject
的时候,都容易出问题,不知道是不是网速不好造成的。加上以下配置可能会好一点:
git config --global http.sslVerify false
git config --global http.postBuffer 1048576000
git config --global http.version HTTP/1.1
zyphyr基础知识
例程编译
- 工程编译指令:
west build -p auto -b boardName projectPath
; - 所有支持的开发板查询:
west boards
; - 编译指令执行后,会在指令执行时的路径下生成一个
build
文件夹,很多重要信息都在里面,比如:
1) build/zephyr/zephyr.bin
2) build/zephyr/zephyr.hex
3) build/zephyr/zephyr.dts
4) build/zephyr/.config
- 各个板子的烧录工具都不同,驱动也不一样;比如
stm32
需要安装stlink
,nrf52832
需要安装nrfjpro
。
开发板
- 支持的所有开发板详细信息都在
zephyrproject/zephyr/boards
文件夹下,这个文件夹下按照架构分类;比如路径zephyrproject/zephyr/boards/arm/stm32f103_mini
这个文件夹下,就包含了这个开发板的详细信息。
├── board.cmake
├── doc
│ ├── img
│ │ ├── stm32f103_mini_blue.jpg
│ │ ├── stm32f103_mini_pin.jpg
│ │ └── stm32f103_mini_yellow.jpg
│ └── index.rst
├── Kconfig.board
├── Kconfig.defconfig
├── stm32f103_mini_defconfig
├── stm32f103_mini.dts
├── stm32f103_mini.yaml
└── support
└── openocd.cfg
例程
- 所有例程都在
~/zephyrproject/zephyr/samples
目录下;每个例程的目录如下:
├── boards
│ └── rv32m1_vega_ri5cy.overlay
├── CMakeLists.txt
├── prj.conf
├── README.rst
├── sample.yaml
└── src
└── main.c
使用qemu
- 进入
~/zephyrproject/zephyr/samples/hello_world
目录; - 编译:
west build -p auto -b qemu_x86 .
- 执行:
west build -t run
使用stm32f103_mini
- 需要安装烧录软件:
stlink
或者jlink
(这个需要看开发板配置文件openocd.cfg
中设置的是什么烧录工具)
- 进入
~/zephyrproject/zephyr/samples/basic/blinky
目录; - 编译:
west build -p auto -b stm32f103_mini .
; - 烧录:
west flash
使用PCA10040
PCA10040
就是nrf52dk_nrf52832
开发板的代号;- 需要安装烧录软件
nrfjprog
;
- 进入
~/zephyrproject/zephyr/samples/basic/blinky
目录; - 编译:
west build -p auto -b nrf52dk_nrf52832 .
; - 烧录:
west flash
编译其他工程
参考1:官方说明
参考2:博客
freestanding application(位于zephyr工作空间之外)
- 整体思路就是新建一个新的zephyr工作空间,然后配置编译环境和编译路径等信息,最后进行编译;
- 重新打开一个终端;
mkdir -p ~/temp/zephyr_new_workspace
cd ~/temp/zephyr_new_workspace
west init .
west update
source ./zephyr/zephyr-env.sh
(非常重要!)git clone https://github.com/zephyrproject-rtos/example-application
cd example-application/app
west build -b nucleo_f302r8 .
或者 west build -b custom_plank .
(这两个boardName
的来源为example-application/boards/arm
和example-application/app/boards
目录,暂时还不知道这两个有什么区别)