[utest][can] Add CAN send and receive tests (#11752) [utest][can] Add CAN send and receive tests [utest][can] Fix external CAN FD receive timeout Check the no-progress timeout after duplicate or unmatched frames, and only wait on the receive semaphore when no complete frame is available. Exit immediately once all expected patterns have been received. Format the test with the current mainline configuration and clang-format 22.1.8. Validation: reproduced the original duplicate/unmatched-frame hang with a 50-tick timeout and a 1000-tick watchdog. All 22 host-stub scenarios pass, including timeout renewal, tick wraparound, empty reads, error propagation, and successful reception. The mainline formatting check also passes. No full BSP build or hardware test was performed.
[utest][can] Add CAN send and receive tests (#11752)
[utest][can] Add CAN send and receive tests
[utest][can] Fix external CAN FD receive timeout
Check the no-progress timeout after duplicate or unmatched frames, and only wait on the receive semaphore when no complete frame is available. Exit immediately once all expected patterns have been received.
Format the test with the current mainline configuration and clang-format 22.1.8.
Validation: reproduced the original duplicate/unmatched-frame hang with a 50-tick timeout and a 1000-tick watchdog. All 22 host-stub scenarios pass, including timeout renewal, tick wraparound, empty reads, error propagation, and successful reception. The mainline formatting check also passes. No full BSP build or hardware test was performed.
English | 中文 | Español | Deutsch
RT-Thread诞生于2006年,是一款以开源、中立、社区化发展起来的物联网操作系统。 RT-Thread主要采用 C 语言编写,浅显易懂,且具有方便移植的特性(可快速移植到多种主流 MCU 及模组芯片上)。RT-Thread把面向对象的设计方法应用到实时系统设计中,使得代码风格优雅、架构清晰、系统模块化并且可裁剪性非常好。
RT-Thread有完整版和Nano版,对于资源受限的微控制器(MCU)系统,可通过简单易用的工具,裁剪出仅需要 3KB Flash、1.2KB RAM 内存资源的 NANO 内核版本;而相对资源丰富的物联网设备,可使用RT-Thread完整版,通过在线的软件包管理工具,配合系统配置工具实现直观快速的模块化裁剪,并且可以无缝地导入丰富的软件功能包,实现类似 Android 的图形界面及触摸滑动效果、智能语音交互效果等复杂功能。
RT-Thread是一个集实时操作系统(RTOS)内核、中间件组件的物联网操作系统,架构如下:
内核层:RT-Thread内核,是 RT-Thread的核心部分,包括了内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等;libcpu/BSP(芯片移植相关文件 / 板级支持包)与硬件密切相关,由外设驱动和 CPU 移植构成。
组件与服务层:组件是基于 RT-Thread内核之上的上层软件,例如虚拟文件系统、FinSH命令行界面、网络框架、设备框架等。采用模块化设计,做到组件内部高内聚,组件之间低耦合。
资源占用极低,超低功耗设计,最小内核(Nano版本)仅需1.2KB RAM,3KB Flash。
组件丰富,繁荣发展的软件包生态 。
简单易用 ,优雅的代码风格,易于阅读、掌握。
高度可伸缩,优质的可伸缩的软件架构,松耦合,模块化,易于裁剪和扩展。
强大,支持高性能应用。
跨平台、芯片支持广泛。
RT-Thread源代码目录结构如下图所示:
目前RT-Thread已经针对将近90种开发板做好了移植,大部分 BSP 都支持 MDK﹑IAR开发环境和GCC编译器,并且已经提供了默认的 MDK 和 IAR 工程,用户可以直接基于这个工程添加自己的应用代码。 每个 BSP 的目录结构高度统一,且都提供一个 README.md 文件,包含了对这个 BSP 的基本介绍,以及相应的说明,方便用户快速上手。
Env 是RT-Thread推出的开发辅助工具,针对基于RT-Thread操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的 menuconfig 提供了简单易用的配置剪裁工具,可对内核、组件和软件包进行自由裁剪,使系统以搭积木的方式进行构建。
下载 Env 工具
Env 用户手册
RT-Thread RTOS 支持许多架构,并且已经涵盖了当前应用中的主要架构。涉及的架构和芯片制造商有:
RT-Thread主要支持的IDE/编译器包括:
MDK KEIL
IAR
Gcc
RT-Thread Studio
使用基于 Python 的 scons 进行命令行生成。
RT-Thread Studio演示:
RT-Thread BSP可以直接编译并下载到相应的开发板使用。此外,RT-Thread还提供 qemu-vexpress-a9 BSP,无需硬件平台即可使用。有关详细信息,请参阅下面的入门指南。
QEMU 入门指南(Windows)
QEMU 入门指南(Ubuntu)
文档中心 | 编程指南
应用 RT-Thread 实现蜂鸣器播放器教程 | 分布式温度监控系统教程 | 智能车连载教程
内核示例 | 设备示例代码 | 文件系统示例代码 | 网络示例代码 | RT-Thread API参考手册
基于STM32L475 IoT Board 开发板SDK | 基于W601 IoT Board 开发板SDK
RT-Thread视频中心提供了一系列RT-Thread相关教程及分享内容。
如:内核入门系列 | Env系列 | 网络系列 | Nano移植系列 | RT-Thread Studio系列 | 柿饼UI系列 | 答疑直播系列 | 社区作品系列
更多详情,请前往 视频中心
RT-Thread 系统完全开源,遵循 Apache License 2.0 开源许可协议,可以免费在商业产品中使用,并且不需要公开私有代码,没有潜在商业风险。
/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 */
RT-Thread非常感谢所有社区小伙伴的支持,在使用RT-Thread的过程中若您有任何的想法,建议或疑问都可通过以下方式联系到 RT-Thread,我们也实时在这些频道更新RT-Thread的最新讯息。同时,任何问题都可以在 论坛 中提出,社区成员将回答这些问题。
[官网](/ltree/rt-thread/tree/master/ https:/www.rt-thread.org) | [论坛](/ltree/rt-thread/tree/master/ https:/www.rt-thread.org/qa/forum.php) | 哔哩哔哩官方账号 | 微博官方账号 | 知乎官方账号
RT-Thread微信公众号:
如果您对RT-Thread感兴趣,并希望参与RT-Thread的开发并成为代码贡献者,请参阅代码贡献指南。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
English | 中文 | Español | Deutsch
简介
RT-Thread诞生于2006年,是一款以开源、中立、社区化发展起来的物联网操作系统。 RT-Thread主要采用 C 语言编写,浅显易懂,且具有方便移植的特性(可快速移植到多种主流 MCU 及模组芯片上)。RT-Thread把面向对象的设计方法应用到实时系统设计中,使得代码风格优雅、架构清晰、系统模块化并且可裁剪性非常好。
RT-Thread有完整版和Nano版,对于资源受限的微控制器(MCU)系统,可通过简单易用的工具,裁剪出仅需要 3KB Flash、1.2KB RAM 内存资源的 NANO 内核版本;而相对资源丰富的物联网设备,可使用RT-Thread完整版,通过在线的软件包管理工具,配合系统配置工具实现直观快速的模块化裁剪,并且可以无缝地导入丰富的软件功能包,实现类似 Android 的图形界面及触摸滑动效果、智能语音交互效果等复杂功能。
RT-Thread架构
RT-Thread是一个集实时操作系统(RTOS)内核、中间件组件的物联网操作系统,架构如下:
内核层:RT-Thread内核,是 RT-Thread的核心部分,包括了内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等;libcpu/BSP(芯片移植相关文件 / 板级支持包)与硬件密切相关,由外设驱动和 CPU 移植构成。
组件与服务层:组件是基于 RT-Thread内核之上的上层软件,例如虚拟文件系统、FinSH命令行界面、网络框架、设备框架等。采用模块化设计,做到组件内部高内聚,组件之间低耦合。
RT-Thread的特点
资源占用极低,超低功耗设计,最小内核(Nano版本)仅需1.2KB RAM,3KB Flash。
组件丰富,繁荣发展的软件包生态 。
简单易用 ,优雅的代码风格,易于阅读、掌握。
高度可伸缩,优质的可伸缩的软件架构,松耦合,模块化,易于裁剪和扩展。
强大,支持高性能应用。
跨平台、芯片支持广泛。
代码目录
RT-Thread源代码目录结构如下图所示:
目前RT-Thread已经针对将近90种开发板做好了移植,大部分 BSP 都支持 MDK﹑IAR开发环境和GCC编译器,并且已经提供了默认的 MDK 和 IAR 工程,用户可以直接基于这个工程添加自己的应用代码。 每个 BSP 的目录结构高度统一,且都提供一个 README.md 文件,包含了对这个 BSP 的基本介绍,以及相应的说明,方便用户快速上手。
Env 是RT-Thread推出的开发辅助工具,针对基于RT-Thread操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的 menuconfig 提供了简单易用的配置剪裁工具,可对内核、组件和软件包进行自由裁剪,使系统以搭积木的方式进行构建。
下载 Env 工具
Env 用户手册
资源文档
硬件支持
RT-Thread RTOS 支持许多架构,并且已经涵盖了当前应用中的主要架构。涉及的架构和芯片制造商有:
支持的 IDE 和编译器
RT-Thread主要支持的IDE/编译器包括:
MDK KEIL
IAR
Gcc
RT-Thread Studio
使用基于 Python 的 scons 进行命令行生成。
RT-Thread Studio演示:
快速上手
RT-Thread BSP可以直接编译并下载到相应的开发板使用。此外,RT-Thread还提供 qemu-vexpress-a9 BSP,无需硬件平台即可使用。有关详细信息,请参阅下面的入门指南。
QEMU 入门指南(Windows)
QEMU 入门指南(Ubuntu)
文档
文档中心 | 编程指南
应用 RT-Thread 实现蜂鸣器播放器教程 | 分布式温度监控系统教程 | 智能车连载教程
例程
内核示例 | 设备示例代码 | 文件系统示例代码 | 网络示例代码 | RT-Thread API参考手册
基于STM32L475 IoT Board 开发板SDK | 基于W601 IoT Board 开发板SDK
视频
RT-Thread视频中心提供了一系列RT-Thread相关教程及分享内容。
如:内核入门系列 | Env系列 | 网络系列 | Nano移植系列 | RT-Thread Studio系列 | 柿饼UI系列 | 答疑直播系列 | 社区作品系列
更多详情,请前往 视频中心
许可协议
RT-Thread 系统完全开源,遵循 Apache License 2.0 开源许可协议,可以免费在商业产品中使用,并且不需要公开私有代码,没有潜在商业风险。
社区支持
RT-Thread非常感谢所有社区小伙伴的支持,在使用RT-Thread的过程中若您有任何的想法,建议或疑问都可通过以下方式联系到 RT-Thread,我们也实时在这些频道更新RT-Thread的最新讯息。同时,任何问题都可以在 论坛 中提出,社区成员将回答这些问题。
[官网](/ltree/rt-thread/tree/master/ https:/www.rt-thread.org) | [论坛](/ltree/rt-thread/tree/master/ https:/www.rt-thread.org/qa/forum.php) | 哔哩哔哩官方账号 | 微博官方账号 | 知乎官方账号
RT-Thread微信公众号:
贡献代码
如果您对RT-Thread感兴趣,并希望参与RT-Thread的开发并成为代码贡献者,请参阅代码贡献指南。
感谢以下小伙伴对本仓库的贡献!