Zephyr (nrf)

2024-02-28 06:48
文章标签 zephyr nrf

本文主要是介绍Zephyr (nrf),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

记录开发zephyr的两三事

微信:bangYS

刚听到zephyr是前些年,一个朋友跟我说的,嵌入式的Linux。

的确,Zephyr跟Linux有千丝万缕的联系。

1. Zephyr用dts管理设备,底层也分驱动层和hal层。

2. Zephyr工程也是通过Kconfig来配置的。

3. Zephyr支持shell接入口,虽然没有Linux的shell功能强大,也是一个强大的交互接口。

4. Zephyr支持多线程。

5. Zephyr支持与Linux类似的初始化声明,SYS_INIT等。

Zephyr的官网文档是Zephyr Project Documentation — Zephyr Project Documentationhttps://docs.zephyrproject.org/latest/index.html

Nrf的官网文档是Welcome to the nRF Connect SDK! — nRF Connect SDK 1.9.99 documentationhttps://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/index.htmlZephyr一直在完善中,版本更新也是挺快的。

Zephyr开发过程中,最麻烦是配置config。当配置config遇到困难的时候,不妨上官网查看config的作用:

All Configuration Options — Kconfig referencehttps://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/kconfig/index-all.html

  1. 工程管理:
    1. Zephyr的工程管理工具是west,一个python工具,可以通过pip3 install west安装。官网指引:Getting started — nRF Connect SDK 1.9.99 documentationhttps://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/getting_started.html
    2. Zephyr的编译工具是cmake。其中cmake嵌套,需要用心查找才能知道细节之处。
  2. 代码结构:
    1. bootloader: 
      1. 路径:bootloader/mcuboot/boot/zephyr。
      2. 官网:https://www.mcuboot.com/documentation/https://www.mcuboot.com/documentation/
    2. zephyr系统:
      1. 路径:zephyr。
      2. kernel header: zephyr/include/kernel.h。
    3. 网络核bootloader:
      1. 路径:nrf/samples/nrf5340/netboot。
      2. 备注:根据芯片及设置不同会有所不同。
    4. 网络核zephyr系统:
      1. 路径:zephyr。
      2. kernel header: zephyr/include/kernel.h。
    5. 备注:zephyr工程是以zephyr系统为核心,应用核和网络核都是跑zephyr操作系统,特别是网络核的bootloader就是一个剪裁版的zephyr(单线程的zephyr)。其他第三方的代码,皆以module的方式打包到工程中。
  3. 常用指令:
    1. 编译指令:west build -b <board> <application dir> -d <build dir> -p ; -p表示清空并编译,可选项。
    2. 下载指令:west flash -d <build dir> --skip-rebuild --recover ;--skip-rebuild表示直接下载,不重新编译;--recover表示清空flash再下载。后2个参数都是可选项。
  4. log:
    1. 路径:zephyr/subsys/logging。
    2. 用法:
      #include <logging/log.h>
      LOG_MODULE_REGISTER(smp_service);
  5. mcuboot:
    1. mcuboot是应用核的bootloader。
    2. mcuboot包含AB升级功能。
    3. mcuboot包含image解析和校验功能。
    4. Documentation | MCU Boot icon-default.png?t=M3K6https://www.mcuboot.com/documentation/
  6. file system:
    1. Zephyr的文件系统的应用层接口在zephyr/subsys/storage,分flash_map和stream 2个模式。
    2. 驱动在zephyr/drivers/flash和nrf/drivers/flash。
  7. mbedtls:
    1. Zephyr支持的加密库。
    2. 配置复杂,需要根据需要配置config。
  8. shell:
    1. 可以用TAB查看支持的命令。
    2. 可以自己添加命令。
    3. Shell — Zephyr Project Documentationhttps://docs.zephyrproject.org/3.0.0/reference/shell/index.html
  9. 样例工程:
    1. 路径:nrf/samples和zephyr/samples。
    2. 遇事不决,多查sample有没有例子。
  10. IO控制:
    1. 与一般嵌入式类似。
    2. 需要通过dts获取dev。
    3. 不懂就查samples。
  11. Settings:
    1. 路径:zephyr/subsys/settings。
    2. 系统设置,可根据需要设置读写接口,写可以操作flash或ram(变量),实现永久数据或运行时数据。
  12. 系统时间:
    1. zephyr/subsys/timing。
    2. 可以通过外部时钟对系统时间进行高精度的跳动。

林林总总,很多姿势是没在此文体现的,欢迎朋友们遇到问题后一起交流。

道阻且长,行则将至

这篇关于Zephyr (nrf)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/754684

相关文章

《嵌入式系统 – Zephyr开发笔记》 第4章 Zephyr应用开发

原文链接 在开发应用之前,先添加一个工具,tree,从名字就可以看出,这个是用于查看工程的结构,非常方便。使用以下命令安装: $ sudo apt-get update $ sudo apt-get install tree 4.1工程简介 Zephyr是基于Cmake开发的,编译系统是一个以应用程序为中心的系统,它需要一个应用程序来初始化需要编译的内核源码树。应用程序的编译会驱使应

Linux 配置wireshark 分析thread 使用nRF-Sniffer dongle

Linux 配置wireshark nRF-Sniffer-for-802.15.4 1.下载固件和配置文件 https://github.com/NordicSemiconductor/nRF-Sniffer-for-802.15.4 2.烧写固件 使用nRF Connect for Desktop 中的 programmer 4.3烧写 https://www.nordicsemi.co

Zephyr-环境搭建

目录 1 前言 2 安装主机依赖 3 获取源码 4 安装工具链 5 编译一个Demo 1 前言         Zephyr支持Ubuntu,macOS,Windows环境下开发,本文介绍基于Ubuntu的环境搭建,包括: Ubuntu开发环境搭建,主要是工具和相关依赖的安装获取工程源码编辑,烧录已经运行Demo 2 安装主机依赖 官方指导建议使用Ubuntu

3DF Zephyr v7 解锁版安装教程 (照片转三维模型软件)

前言 3DF Zephyr是一款照片转三维模型软件,可以导出许多常见的3D格式,甚至无需外部工具即可生成无损视频。此外,可以生成真正的正射影像,数字高程模型(DTM),甚至可以计算面积,体积,角度和轮廓线。 一、下载地址 下载链接:http://dygod/ITSource 点击搜索: 3DF 二、安装步骤 1、解压文件,解压后点击执行 2、选择安装路径 3、点击【安装】

rtos:zephyr同步alerts(通知)

alert可以同linux平台下的signal。 alert的初始化: 方法1: extern int my_alert_handler(struct k_alert *alert);struct k_alert my_alert;k_alert_init(&my_alert, my_alert_handler, 10); 方法2: extern int my_alert_handler

rtos:zephyr工作队列的初始化

工作队列的初始化: #define MY_STACK_SIZE 512#define MY_PRIORITY 5K_THREAD_STACK_DEFINE(my_stack_area, MY_STACK_SIZE);struct k_work_q my_work_q;k_work_q_start(&my_work_q, my_stack_area,K_THREAD_STACK_SIZEOF(m

rtos:zephyr的网络子系统的api接口介绍

初始化:在如果应用需要一个ipv4 的地址,如果一个DHCPv4被使能,应用程序开始之前,需要确定设备能够得到一个ipv4的地址。 设置:在网络子系统中有多种选择,在应用开始之前工程里面需要一个配置文件,配置如:IP地址,IEEE802.15.4等。 创建:创建一个TCP,udp的服务器和客户端。 初始化: CONFIG_NET_APP_AUTO_INIT CONFIG_NET_APP_INIT

Zephyr sensor子系统学习

一、背景 2023年7月份nRF Connect SDK 2.4.0最新版本,使用的Zephyr V3.3版本。从Zephyr 3.5版本在子系统中加入了sensing子系统。 现在最新的nRF Connect SDK 2.6.0 release支持v3.5.99-ncs1,已经支持sensing子系统 nRF52840现在官方支持两个传感器demo ,但不是走的sensing子系统。

Zephyr学习记录

一、Zephyr是什么?        Zephyr 是 Linux 基金会推出的一个适用于物联网的小型可伸缩的实时操作系统,支持多种处理器架构。Zephyr 是安全的、开源的、模块化的以及支持多种连接方式。与华为的liteos很像,也不知道谁抄的谁。 二、官方资料 官方介绍 https://docs.zephyrproject.org/latest/index.html 官方源码 htt

Zephyr Windows开发环境搭建

Zephyr 如果有错误或未及时更新,请以官网文档为主 官网:https://docs.zephyrproject.org/latest/develop/getting_started/index.htm 文章目录 Zephyr下载安装Chocolatey安装插件Zephyr SDK获取Zephyr工程 下载安装 Chocolatey 这是一个类似于在Linux系统下 y