zephyr开发入门
2023-12-20 07:27:47
环境安装
- 尝试在
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
文件夹,很多重要信息都在里面,比如:
// build 文件夹下主要文件有:
1) build/zephyr/zephyr.bin
2) build/zephyr/zephyr.hex
3) build/zephyr/zephyr.dts // 编译工程最终使用的设备树文件,根据板子的设备树文件自定生成的
4) build/zephyr/.config // 编译工程最终使用的Kconfig文件,
- 各个板子的烧录工具都不同,驱动也不一样;比如
stm32
需要安装stlink
,nrf52832
需要安装nrfjpro
。
开发板
- 支持的所有开发板详细信息都在
zephyrproject/zephyr/boards
文件夹下,这个文件夹下按照架构分类;比如路径zephyrproject/zephyr/boards/arm/stm32f103_mini
这个文件夹下,就包含了这个开发板的详细信息。
// tree ~/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 // 这个overlay文件定义的信息会覆盖开发板设备树中的定义
├── CMakeLists.txt // cmake 根据这个文件生成 Makefile
├── prj.conf // 工程配置文件,配置的结果可以在 build/zephyr/.config 文件中确认
├── 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
编译其他工程
- 总结:通过以上文档,可以看到
zephyr
工程根据其存放的路径,可以分为三类;
以下以官方给的example-application工程为例,分别介绍这三种工程的编译方法:
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
目录,暂时还不知道这两个有什么区别)
文章来源:https://blog.csdn.net/qq_29506411/article/details/135049720
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!