zephyr开发入门

2023-12-20 07:27:47

环境安装

  1. 尝试在windows10系统按照官方教程配置开发环境,但是在west init zephyrproject这步一直git clone失败,随放弃。。。
  2. 最终在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基础知识

例程编译

  1. 工程编译指令:west build -p auto -b boardName projectPath;
  2. 所有支持的开发板查询:west boards;
  3. 编译指令执行后,会在指令执行时的路径下生成一个build文件夹,很多重要信息都在里面,比如:
// build 文件夹下主要文件有:
1) build/zephyr/zephyr.bin
2) build/zephyr/zephyr.hex
3) build/zephyr/zephyr.dts		// 编译工程最终使用的设备树文件,根据板子的设备树文件自定生成的
4) build/zephyr/.config			// 编译工程最终使用的Kconfig文件,
  1. 各个板子的烧录工具都不同,驱动也不一样;比如stm32需要安装stlinknrf52832需要安装nrfjpro

开发板

  1. 支持的所有开发板详细信息都在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

  1. 进入~/zephyrproject/zephyr/samples/hello_world目录;
  2. 编译:west build -p auto -b qemu_x86 .
  3. 执行:west build -t run

使用stm32f103_mini

  • 需要安装烧录软件:stlink或者jlink(这个需要看开发板配置文件openocd.cfg中设置的是什么烧录工具)
  1. 进入~/zephyrproject/zephyr/samples/basic/blinky目录;
  2. 编译:west build -p auto -b stm32f103_mini .;
  3. 烧录:west flash

使用PCA10040

  • PCA10040就是nrf52dk_nrf52832开发板的代号;
  • 需要安装烧录软件nrfjprog;
  1. 进入~/zephyrproject/zephyr/samples/basic/blinky目录;
  2. 编译:west build -p auto -b nrf52dk_nrf52832 .;
  3. 烧录:west flash

编译其他工程

参考1:官方说明
参考2:博客

  • 总结:通过以上文档,可以看到zephyr工程根据其存放的路径,可以分为三类;
    在这里插入图片描述
    以下以官方给的example-application工程为例,分别介绍这三种工程的编译方法:

freestanding application(位于zephyr工作空间之外)

  • 整体思路就是新建一个新的zephyr工作空间,然后配置编译环境和编译路径等信息,最后进行编译;
  1. 重新打开一个终端;
  2. mkdir -p ~/temp/zephyr_new_workspace
  3. cd ~/temp/zephyr_new_workspace
  4. west init .
  5. west update
  6. source ./zephyr/zephyr-env.sh (非常重要!)
  7. git clone https://github.com/zephyrproject-rtos/example-application
  8. cd example-application/app
  9. west build -b nucleo_f302r8 . 或者 west build -b custom_plank . (这两个boardName的来源为example-application/boards/armexample-application/app/boards目录,暂时还不知道这两个有什么区别)

文章来源:https://blog.csdn.net/qq_29506411/article/details/135049720
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。