ZEPHYR 快速开发指南

这篇具有很好参考价值的文章主要介绍了ZEPHYR 快速开发指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

国内小伙伴在学习zephyr的时候,有以下几个痛点:

  • 学习门槛过高
  • github访问不畅,下载起来比较费劲。

这篇文章将我自己踩的坑介绍一下,顺便给大家优化一些地方,避免掉所有的坑。

首先用virtualbox 来安装一个ubuntu22.04

本文适应的是ubuntu的操作系统

github访问不畅的问题

github.com 有时候无法访问,这边有个非常好用的办法,执行下面两个命令:

git config --global url."git@git.zhlh6.cn:".insteadOf https://github.com/

这个命令把github.com 转换成镜像国内地址,

执行完之后,可以通过查看~/.gitconfig 文件来检查替换是否正确。

开始搭建zephyr环境

https://docs.zephyrproject.org/latest/develop/getting_started/index.html#get-zephyr-and-install-python-dependencies

按照zephyr中的install

网页中第一步是安装Kitware, 这个只要你的ubuntu是22.04 及以上的就可以跳过这一步

第一步安装软件

当然记得切换一下软件源为国内cn99 ,这样下载软件会比较快

用下面的命令

sudo apt install --no-install-recommends git cmake ninja-build gperf \
  ccache dfu-util device-tree-compiler wget \
  python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \
  make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1

检查软件是否安装正常:

cmake --version
python3 --version
dtc --version

获取 Zephyr 并安装 Python 依赖项

安装python venv包

输入下面的命令

sudo apt install python3-venv

创建新的虚拟环境:

python3 -m venv ~/zephyrproject/.venv

激活虚拟环境:

source ~/zephyrproject/.venv/bin/activate

安装west

pip install west

获取源码

west init ~/zephyrproject
cd ~/zephyrproject

这里需要注意west update这里会把所有包都下载下来,实际上有些hello world没必要下载所有的,

下面以STM32-L496ZG举例,

打开west.yml

只需要保留cmsishal_stm32即可,如下所示,可以参考当时的west.yml来修改:

manifest:
  defaults:
    remote: upstream

  remotes:
    - name: upstream
      url-base: https://github.com/zephyrproject-rtos
    - name: babblesim
      url-base: https://github.com/BabbleSim

  group-filter: [-babblesim]

  #
  # Please add items below based on alphabetical order
  projects:
    - name: cmsis
      revision: 74981bf893e8b10931464b9945e2143d99a3f0a3
      path: modules/hal/cmsis
      groups:
        - hal
    - name: hal_stm32
      revision: 1bc72c299d0365c0ee2575a97918b22df0899e10
      path: modules/hal/stm32
      groups:
        - hal

  self:
    path: zephyr
    west-commands: scripts/west-commands.yml
    import: submanifests

执行 west update

这个时候执行一下west update

当然你也可以全部下载,其实没必要,可以先跑起来,后面仓库慢慢添加 ,我是觉得下载需要很长的时间。

到处模板

执行下面的命令到处cmake模板

west zephyr-export

pip安装依赖

Zephyr 的scripts/requirements.txt文件声明了额外的 Python 依赖项。安装它们pip

pip install -r ~/zephyrproject/zephyr/scripts/requirements.txt

安装SDK

SDK 相当于toolchain

下载命令

cd ~
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.1/zephyr-sdk-0.16.1_linux-x86_64.tar.xz
wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.1/sha256.sum | shasum --check --ignore-missing

这个命令也要github.com , 这个可以自己在网页上下载。

解压

tar xvf zephyr-sdk-0.16.1_linux-x86_64.tar.xz

设置环境变量

cd zephyr-sdk-0.16.1
./setup.sh

编译

拿stm32-l496zg开发板举例:

参考链接:

https://docs.zephyrproject.org/latest/boards/arm/nucleo_l496zg/doc/index.html

编译一个hello_world程序

cd ~/zephyrproject/zephyr
west build -p always -b nucleo_l496zg samples/hello_world

这里的-p always ,在你想要切换另外的exapmle的时候,如果不加这个,编译不了,必须删除build目录才行。如果加了这个直接强制重新生成example。

烧入

west flash

烧入之后的调试,可以尝试用ozone 来学习,非常方便。文章来源地址https://www.toymoban.com/news/detail-618766.html

到了这里,关于ZEPHYR 快速开发指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Zephyr驱动程序框架简介

    Zephyr 为驱动提供一套具体的 驱动框架模型 ,开发者可根据这一套驱动框架模型来实现自己的驱动,这一套模型非常类似 Linux内核的驱动实现 ,如果你对Linux内核驱动模型或有Linux内核驱动开发相关经验那么学习起来会非常轻松与简单。 驱动模型框架是使用了结构化的方式描

    2024年02月06日
    浏览(46)
  • Zephyr入门教程 2 线程

    当你开始增加你的嵌入式应用的功能时,在单一的主循环和一些中断例程中做所有的事情变得越来越难。通常情况下,下一级的复杂性是某种状态机,你的电子设备的输出会根据这个(内部)状态而改变。如果你需要能够同时操作多个复杂的输入和输出呢?一个很好的例子是

    2024年02月13日
    浏览(43)
  • IntelliJ IDEA 快速上手与高效开发指南

    启动 IntelliJ IDEA 打开 IntelliJ IDEA,您将看到欢迎界面。这里您可以选择创建新项目、打开现有项目、从版本控制系统中导入项目等。 创建新项目 在欢迎界面选择 \\\"Create New Project\\\"。 选择项目类型(如 Maven、Gradle 等)。 选择 SDK(如 JDK)。 指定项目名称和位置。 根据需要配置

    2024年04月12日
    浏览(45)
  • Zephyr 设备树中的特殊节点

    在zephyr中包含一部分特殊节点,他们的功能各不相同,节点如下: aliases chosen zephyr,user aliases 是对设备树中其他节点起的别名,别名用于为节点提供较短的名称,该名称可用于设备树的其他部分以引用节点。 在Zephyr中,chosen节点是一个特殊的设备树节点,用于指定一些系统级

    2024年02月02日
    浏览(32)
  • 【Rust指南】快速入门|开发环境|hello world

      本篇博客是Rust语言系列的开篇之作,以后有关Rust语言的文章也都会收录在我的 《进军Rust》 专栏里,我会精心打造这个专栏,帮助大家快速入门Rust语言,享受Rust语言带来的编程乐趣。虽然Rust相比其他语言入门慢,但这恰巧说明了Rust语言的特色——安全高效。对Rust语言

    2024年02月15日
    浏览(40)
  • 🔥🔥Java开发者的Python快速进修指南:函数进阶

    在上一篇文章中,我们讲解了函数最基础常见的用法,今天我想在这里简单地谈一下函数的其他用法。尽管这些用法可能不是非常常见,但我认为它们仍然值得介绍。因此,我将单独为它们开设一个章节,并探讨匿名函数和装饰器函数这两种特殊的用法。 在Python中,匿名函数

    2024年02月05日
    浏览(53)
  • 🔥🔥Java开发者的Python快速进修指南:函数基础

    话不多说,今天我们要介绍的是函数。本系列文章追求短而精,今天我们将重点讨论函数以及与Java方法的区别。与Java方法不同,函数不需要像Java方法一样讲究修饰符等其他特性,它只需要使用\\\"def\\\"进行声明。另外,函数的参数也与Java方法有所不同,Java方法中不存在默

    2024年02月05日
    浏览(62)
  • Java开发者的Python快速进修指南:异常捕获

    在之前的学习中,我们已经讲解了函数和控制流等基本概念。然而,在接触实际业务时,你会发现异常捕获也是必不可少的一部分,因为在Java编程中,异常处理是不可或缺的。Python的异常捕获与Java的异常捕获原理是相同的,只是在写法上有一些区别。它们的目的都是为了处

    2024年02月05日
    浏览(78)
  • 🔥🔥Java开发者的Python快速进修指南:文件操作

    Python提供的文件操作相对于Java来说,确实简单方便许多。不仅操作简单,代码可读性也相对较高。然而,我们需要注意的不仅仅是文件操作的简单性,还有文件操作的各种模式。在Java中,我们并不经常使用像Python中那样的操作模式。 另外,我们还需要注意文件指针的移动。

    2024年02月05日
    浏览(76)
  • 🔥🔥Java开发者的Python快速进修指南:面向对象基础

    当我深入学习了面向对象编程之后,我首先感受到的是代码编写的自由度大幅提升。不同于Java中严格的结构和约束,Python在面向对象的实现中展现出更加灵活和自由的特性。它使用了一些独特的,如self和cls,这些不仅增强了代码的可读性,还提供了对类和实例的明确

    2024年02月05日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包