Zephyr RTOS
文章平均质量分 91
mftang
资深嵌入式软件开发者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Zephyr Peripheral MTU Update 功能实现
ATT MTU 大小直接决定 BLE 单包有效载荷上限。默认 23 字节的 ATT_MTU 仅能承载 20 字节应用数据,严重制约吞吐量。本文系统阐述 Zephyr 平台下 Peripheral 端 MTU 更新的实现方法,涵盖 MTU 语义辨析、协商机制、Kconfig 配置、运行时 API 调用及回调验证。研究表明,Peripheral 端提升 MTU 需同时满足链路层缓冲区扩容与ATT 层 MTU 配置两项前提,并通过 bt_gatt_exchange_mtu() 或 CONFIG_BT_GATT_A原创 2026-10-12 00:15:00 · 268 阅读 · 0 评论 -
Zephyr RTOS 中FIFO(先进先出队列)接口介绍
在 Zephyr RTOS 中,FIFO(先进先出队列) 是用于在线程间传递数据的基本内核对象之一。与 LIFO 的后进先出顺序不同,FIFO 保证了数据按照被添加的顺序被取出,这对于许多通信和任务处理场景至关重要。通过合理使用 FIFO,可以在 Zephyr 系统中构建高效、松耦合的多线程架构。对于简单的生产者-消费者模式,FIFO 通常是比消息队列或邮箱更轻量、更灵活的选择。原创 2026-06-01 09:38:22 · 476 阅读 · 0 评论 -
Zephyr RTOS 中k_msgq(消息队列)接口介绍
在 Zephyr RTOS 中,k_msgq(消息队列)是用于在线程间传递 固定大小消息 的核心进程间通信(IPC)机制。与传递字节流的管道或传递指针的 FIFO/LIFO 不同,消息队列完整复制消息内容,确保数据所有权清晰,是最常用的线程间通信方式之一。通过合理使用消息队列,可以在 Zephyr 系统中构建清晰、可靠、高效的线程间通信架构。对于大多数应用场景,消息队列都是比管道、FIFO/LIFO 或邮箱更简单和安全的选择。原创 2026-05-25 14:06:40 · 672 阅读 · 0 评论 -
Zephyr RTOS 中k_mutex(互斥锁)功能介绍
在 Zephyr RTOS 中,k_mutex(互斥锁)是用于保护共享资源,防止多个线程同时访问导致数据竞争的核心同步机制。它确保在任何时刻,只有一个线程可以进入被保护的代码区域(临界区)。原创 2026-05-25 12:00:17 · 473 阅读 · 0 评论 -
Zephyr RTOS 中k_condvar(条件变量)功能介绍
在 Zephyr RTOS 中,k_condvar(条件变量) 是一种高级的线程同步机制,它允许一个或多个线程等待某个条件成立,并在条件可能成立时由其他线程通知唤醒。条件变量总是与互斥锁 (k_mutex) 配合使用,用于实现复杂的线程间协调,如生产者-消费者模式。原创 2026-05-21 14:25:12 · 437 阅读 · 0 评论 -
Zephyr RTOS Events(事件)相关接口介绍
在 Zephyr RTOS 中,事件(Events) 是一种轻量级的线程间同步与通信机制。它允许一个线程等待并响应一个或多个事件标志(Event Flags)的组合,也允许多个线程等待同一个事件集。理解Events的关键在于将其视为一个可等待的、持久化的状态寄存器。原创 2026-05-21 14:24:23 · 433 阅读 · 0 评论 -
Zephyr RTOS 中timing 相关函数功能介绍
在 Zephyr RTOS 中,Timing(时间管理)相关函数是构建实时、可靠嵌入式系统的基石。它们提供了从高精度延迟测量到线程睡眠调度的完整时间控制能力。下面我将系统性地介绍所有核心的时间管理函数及其应用。通过合理使用Zephyr的时间函数,可以构建出精确、可靠的实时嵌入式应用,满足从毫秒级任务调度到微秒级硬件时序控制的各类需求。原创 2026-05-20 10:05:14 · 589 阅读 · 0 评论 -
Zephyr RTOS 自旋锁相关功能介绍
在 Zephyr RTOS 中,k_spin_lock 是一个用于实现极低开销、不可休眠的忙等待锁的核心函数。它在中断上下文和对称多处理(SMP)场景中至关重要。原创 2026-05-19 10:03:38 · 587 阅读 · 0 评论 -
Zephyr RTOS 中irq_lock() 与 irq_unlock()的应用
irq_lock() 与 irq_unlock() 是 Zephyr RTOS 中用于管理中断状态、保护临界区的一对底层核心函数。它们不是简单地“关闭和打开中断”,而是“保存当前中断状态并禁止中断,然后根据保存的状态恢复中断”。原创 2026-05-11 10:49:18 · 472 阅读 · 0 评论 -
Zephyr RTOS中k_work_queue 核心用法介绍
k_work_queue 是 Zephyr RTOS 中用于异步、延迟执行任务的核心机制。它将“工作”(一个函数)提交到“队列”,由专用的内核线程在后台按顺序执行,非常适合处理中断中的非紧急任务或实现线程间的非阻塞通信。原创 2026-05-11 10:48:40 · 501 阅读 · 0 评论 -
struct bt_conn_auth_cb蓝牙(BLE)连接认证 / 配对过程的回调接口集合
struct bt_conn_auth_cb 是蓝牙(特别是 BLE)连接认证和配对过程中的回调接口集合,通常用于处理配对请求、密码显示、确认等交互。这个回调接口集合为BLE设备提供了灵活的配对交互方式,开发者可以根据设备类型和用户场景选择合适的配对策略。原创 2026-05-08 10:59:17 · 577 阅读 · 0 评论 -
Zephyr RTOS 中k_cpu_idle 函数功能介绍 - D
在 Zephyr RTOS 中,k_cpu_idle 函数是内核空闲循环的核心,负责在系统没有就绪线程可执行时,将 CPU 置于低功耗的睡眠状态。它是 Zephyr 实现节能的基石。简单来说,它的核心作用是:当内核无事可做时,它会让 CPU 以一种可被中断唤醒的方式“打盹”,以节省电力。原创 2026-05-07 18:11:33 · 487 阅读 · 0 评论 -
Zephyr RTOS 中用于同步多路复用 I/O 的核心机制k_poll 相关函数用法
k_poll 是 Zephyr RTOS 中用于同步多路复用 I/O 的核心机制。它允许单个线程同时等待多个不同类型的事件(如信号量、消息队列、信号等),并在任一事件就绪时被唤醒,是实现高效事件驱动架构的关键。k_poll 是构建高效、响应式系统的强大工具。通过合理使用这些函数,可以创建出能够同时处理多个事件源而无需复杂线程管理的嵌入式应用。原创 2026-05-06 15:50:01 · 602 阅读 · 0 评论 -
Zephyr RTOS中bt_conn_le_create 函数用法详细介绍
在Zephyr RTOS中,bt_conn_le_create 是 GAP层 的核心函数,用于主动与扫描到的低功耗蓝牙(BLE)外围设备(Peripheral)建立连接。它使你的设备能够作为中心设备(Central,如手机),与目标设备(如传感器)建立链路,为后续的GATT操作(服务发现、数据读写)奠定基础。简单说,它让你的设备“伸出手”去连接已发现的蓝牙设备。原创 2026-05-05 17:52:41 · 489 阅读 · 0 评论 -
Zephyr RTOS 下 BLE 主动扫描和被动扫描详解
在Zephyr RTOS中,蓝牙低功耗(BLE)扫描分为主动扫描和被动扫描。这两种扫描模式在Zephyr的蓝牙API中通过bt_le_scan_param结构体的type字段来指定。本文主要介绍Zephyr RTOS 下 BLE 主动扫描和被动扫描的相关接口和两者的使用方法。原创 2026-05-05 17:52:03 · 895 阅读 · 0 评论 -
Zephyr RTOS 下 bt_le_scan_start 函数详解
bt_le_scan_start 是 Zephyr Bluetooth API 的核心函数之一,用于启动蓝牙低功耗(BLE)扫描。它允许设备作为中心设备(Central)或观察者(Observer)发现周围的蓝牙外围设备。原创 2026-04-28 15:13:45 · 579 阅读 · 0 评论 -
Zephyr RTOS 中 BT_CONN_CB_DEFINE 详解
BT_CONN_CB_DEFINE 是 Zephyr Bluetooth API 中的一个关键宏,用于静态定义和自动注册蓝牙连接回调函数。它简化了连接事件处理的配置,避免了手动注册回调的繁琐过程。原创 2026-04-28 15:13:06 · 500 阅读 · 0 评论 -
nRF52805 时钟配置功能详细介绍
nRF52805 是 Nordic 推出的低功耗蓝牙 SoC,其时钟系统设计为满足低功耗和高性能的平衡需求。以下是详细的时钟配置功能介绍:原创 2026-04-03 13:46:38 · 627 阅读 · 0 评论 -
Zephyr RTOS 中线程(Thread)介绍-D
在 Zephyr RTOS 中,线程(Thread) 是任务执行的基本单元,也是多任务系统的核心。Zephyr 提供了一套完整的线程管理 API,支持动态/静态创建、优先级调度、线程同步等高级特性。原创 2026-03-23 11:06:16 · 634 阅读 · 0 评论 -
BLE协议栈: GATT (属性传输框架)-D
GATT(Generic Attribute Profile,通用属性配置文件)是BLE协议栈中用于数据交换的核心框架。它定义了两个设备之间通过BLE连接进行数据通信的规范。GATT建立在ATT协议之上,为属性协议提供了一个结构化的数据格式和一套操作这些数据的规则。原创 2026-03-12 09:38:29 · 852 阅读 · 0 评论 -
Zephyr核心声明宏RTOS SYS_INIT的介绍-D
在 Zephyr RTOS 中,SYS_INIT 是一个核心的、声明式的宏,用于将你的自定义函数注册到系统启动初始化序列中。它是驱动、子系统或任何需要在启动早期(或特定阶段)进行一次性设置代码的标准入口点。简单说,它的作用是:“在系统启动流程中的某个精确时刻,自动执行我注册的这个函数。”原创 2026-03-12 09:37:24 · 722 阅读 · 0 评论 -
Zephyr RTOS 中LIFOs(后进先出队列)的介绍-D
在 Zephyr RTOS 中,LIFOs(后进先出队列) 是与 k_stack 非常相似的内核对象,但有一个关键区别:LIFO 存储的是 指针 (void *),而 k_stack 存储的是 32位数据值 (stack_data_t)。这使得 LIFO 更适合传递 动态分配的内存块 或 复杂数据结构 的引用。原创 2026-03-09 10:23:45 · 952 阅读 · 0 评论 -
Zephyr RTOS Central 函数(bt_le_scan_start )介绍-D
在Zephyr RTOS中,bt_le_scan_start 函数用于启动低功耗蓝牙(BLE)扫描过程。它是 GAP层 的核心功能,使设备能够作为中心设备(Central,如手机)主动搜索和发现在其广播范围内的外围设备(Peripheral,如传感器、手环)。原创 2026-03-04 09:51:30 · 403 阅读 · 0 评论 -
Zephyr RTOS中的k_stack相关函数-D
在 Zephyr RTOS 中,k_stack 是栈(LIFO - 后进先出) 数据结构的内核实现。它允许多个线程向一个共享的栈空间压入和弹出数据项,是 Zephyr 中基本的 内核对象 之一原创 2026-02-23 11:36:11 · 897 阅读 · 0 评论 -
Zephyr RTOS中k_mbox 相关的函数介绍 -D
在 Zephyr RTOS 中,k_mbox 是邮箱机制的核心数据结构。邮箱是一种用于在线程间传递数据块(带缓冲区的消息) 的进程间通信(IPC)机制,它与单纯传递数据的消息队列和管道不同,邮箱允许发送方保留数据缓冲区的所有权直到接收方处理完毕,非常适合需要零拷贝或数据所有权转移的场景。原创 2026-02-09 09:46:52 · 1659 阅读 · 0 评论 -
Zephyr RTOS中sys_cpu_to_le16函数意义和用法
sys_cpu_to_le16 是 Zephyr 内核提供的 字节序转换函数,核心用于解决跨设备(不同 CPU 架构)数据传输的字节序一致性问题 —— 蓝牙协议(GATT/ATT 层)强制要求多字节数据使用 小端字节序(LE) 传输,而不同 CPU 的本机字节序可能为大端(BE)或小端(LE),需通过该函数统一格式。原创 2026-01-12 09:23:24 · 919 阅读 · 0 评论 -
Zephyr RTOS中信号量函数 k_sem_take () 深度探究
本文深入探讨了 Zephyr 的 k_sem_take () 函数的各个方面,从信号量的本质到具体的使用方法,从理论基础到实践应用,从正常流程到错误处理。建立起对 k_sem_take () 函数的全面而深入的理解,在实际项目中能够正确、高效地使用这一重要的同步原语。原创 2026-01-05 00:15:00 · 1150 阅读 · 0 评论 -
Zephyr RTOS 中k_pipe_init 函数的介绍和基本用法-D
在 Zephyr RTOS 中,k_pipe_init 函数用于在运行时动态初始化一个管道。管道是一种用于在线程间传递字节流数据的进程间通信机制,与传递固定大小“消息块”的k_msgq形成互补。通过k_pipe_init动态初始化管道,可以在内存受限的嵌入式系统中实现对字节流数据的灵活、高效管理。它是构建串口网关、数据记录器或任何流处理应用的基石。原创 2026-01-08 00:15:00 · 1018 阅读 · 0 评论 -
k_work_schedule函数功能
本主要介绍k_work_schedule函数功能和Zephyr RTOS 的工作队列(Workqueue),Zephyr RTOS 的工作队列(Workqueue)是其异步任务处理的核心机制,专为资源受限的嵌入式系统设计。它提供了一种高效、线程安全的方式执行延迟任务、中断下半部处理以及周期性操作。原创 2025-06-25 18:04:57 · 1415 阅读 · 0 评论 -
Zephyr RTOS 中的 k_timer定时器
本文主要介绍Zephyr RTOS 中的 k_timer定时器的函数,k_timer_start是 Zephyr RTOS 中用于启动内核定时器的核心函数,提供了精确的时间事件调度能力。k_timer_stop 是 Zephyr RTOS 中用于停止运行中定时器的核心函数。k_timer_init 是 Zephyr RTOS 中用于初始化内核定时器的核心函数,它为定时器设置基本参数和回调处理函数,是使用定时器功能前的必要步骤。原创 2025-07-25 13:08:22 · 1309 阅读 · 0 评论 -
base64 数据的编码和解码方法(Zephyr OS-D)
Base64是一种用64个字符来表示二进制数据的编码方式。它通常用于在需要文本环境(如电子邮件、XML、URL参数等)中安全地传输二进制数据。本文主要介绍Base64编码的特点。Base64 是一种简单实用的编码方案,在嵌入式系统和网络通信中有着广泛的应用,特别适合在文本协议中传输少量二进制数据。原创 2025-09-17 00:30:00 · 1199 阅读 · 0 评论 -
Zephyr RTOS 中k_lifo(后进先出队列)
K_LIFO是Zephyr实时操作系统(RTOS)中提供的一种后进先出(LIFO)内核对象实现,用于管理固定大小的数据缓冲区。它通过栈结构(Last In, First Out)实现数据的存储与取出,适用于需要快速插入和删除数据的场景。原创 2025-06-16 03:15:00 · 1151 阅读 · 0 评论 -
Zephyr RTOS 中的 K_WORK_DEFINE 功能
本文主要介绍Zephyr RTOS k_work相关的用法,包括工作队列的定义,使用方法,使用流程,应用技巧等内容。原创 2025-06-17 00:30:00 · 1244 阅读 · 0 评论 -
Zephyr RTOS中k_work_reschedule 函数应用
Zephyr RTOS 中的 k_work_reschedule 函数的核心功能是:取消一个可延迟工作项(delayable work)任何现有的待执行计划,并为其重新安排一个新的延迟时间后执行。简单来说,它就是 “取消之前的计划,并重新开始计时”。原创 2025-09-09 17:24:25 · 1011 阅读 · 0 评论 -
Zephyr 定时器的使用方法
本文主要介绍Zephyr 定时器的使用方法,包括几个重要的接口函数的介绍和使用方法。Zephyr RTOS 提供了几种定时器机制,可以用于周期性任务、超时处理和延迟操作。以下是 Zephyr 定时器的主要使用方法:原创 2025-05-10 04:58:07 · 1498 阅读 · 0 评论 -
Zephyr OS 中的互斥信号量
本文主要介绍Zephyr OS 中的互斥信号量的相关内容。互斥信号量(Mutex)是操作系统中的一种线程同步机制,用于保护共享资源,防止多个线程同时访问导致的竞态条件。原创 2025-05-22 21:37:17 · 1464 阅读 · 0 评论 -
Zephyr OS 中的 FIFO 接口应用介绍
本文主要介绍Zephyr RTOS 提供了多种 FIFO (First-In-First-Out) 实现方式,其可以适用于不同场景的数据缓冲需求。以下是主要的 FIFO 接口和使用方法。原创 2025-05-17 12:32:56 · 1404 阅读 · 0 评论 -
zephyr OS 线程的使用
本文主要介绍zephyr OS 线程的使用,在嵌入式RTOS中,合理使用线程是构建高效可靠系统的关键。Zephyr提供了丰富的线程管理API(k_thread_create(), k_thread_suspend()等),开发者需根据具体需求平衡线程数量、优先级和资源消耗。原创 2025-06-29 22:03:13 · 1549 阅读 · 0 评论 -
Zephyr RTOS 防止中断影响数据写入
在实时操作系统中,防止中断干扰数据写入是确保系统稳定性和数据完整性的关键。Zephyr RTOS 提供了多种机制来保护关键数据操作免受中断干扰。下面我将详细介绍各种保护策略及其实现方法。原创 2025-07-03 11:10:15 · 1111 阅读 · 0 评论 -
Zephyr RTOS 工作队列函数(k_work_reschedule )的应用方法介绍
k_work_reschedule 函数在 Zephyr RTOS 中用于重新安排延迟工作项(delayed work)的执行时间。该函数在需要动态调整定时任务时非常有用,特别是在实现防抖、超时重试、周期性任务等场景。本文详细介绍其用法。原创 2025-12-19 09:39:54 · 685 阅读 · 0 评论
分享