Skip to content

RT-Thread-packages/RT-Tunnel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RT-Tunnel 软件包

简介

RT-Tunnel 是基于 RT-Thread 内核的轻量级隧道通信组件,核心依托 CherryRB 环形缓冲区实现可靠数据暂存,主打嵌入式系统中 “组件间、线程间或跨模块” 的安全数据传输。本组件支持多实例配置,通过原子操作保障多线程访问安全,同时提供 Shell 调试命令简化问题排查,适用于数据透传、日志转发、跨模块通信等场景,完全适配 RT-Thread 生态。

主要特性

  • 多隧道实例支持:可通过 Kconfig 配置 TUNNEL_NUM 定义实例数量(默认 3 个),满足多链路并行传输需求。
  • 线程安全设计:采用 __atomic_or_fetch/__atomic_and_fetch 原子操作管理隧道状态(忙 / 空闲 / 缓冲区满),避免多线程竞争冲突。
  • 可靠环形缓冲区:依赖 CherryRB 组件实现数据暂存,TUNNEL_BUFFER_SIZE 可配置(需为 2 的幂),自动处理缓冲区满 / 空状态。
  • 灵活读写配置:每个隧道实例支持独立配置 “读” 或 “写” 操作类型,适配单向 / 双向数据传输场景。
  • Shell 调试工具:提供 Tunnel_buffer_Print(打印缓冲区十六进制数据)和 Tunnel_Info_Print(打印隧道状态)命令,快速定位数据传输问题。
  • 完善状态管理:实时监控隧道激活状态、缓冲区使用量(已用 / 空闲字节),错误码清晰(如隧道忙、缓冲区满)。

核心配置

  • TUNNEL_NUM:设置隧道实例数量(默认 3)。
  • TUNNEL_BUFFER_SIZE:设置单个隧道缓冲区大小(需为 2 的幂,如 1024、2048 字节)。

注意

本软件包自带CherryRB,并增加部分代码,完全兼容原版CherryRB,无需再配置CherryRB软件包

About

RT-Tunnel

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •