ThreadX(1):ThreadX介绍、主要组件、相关Windows工具
1 ThreadX介绍
ThreadX主要特性:
1. 可预测性:ThreadX 提供了确定性的线程调度,确保任务可以按照预定的顺序和时间执行。
2. 实时性能:作为一个实时操作系统,ThreadX 能够快速响应外部事件和中断,满足实时系统的要求。
3. 小体积:ThreadX 的内核非常紧凑,适合资源受限的嵌入式系统。
4. 高可靠性:ThreadX 经过了广泛的测试和认证,包括Safety认证,适用于需要高可靠性的应用。
5. 多核支持:ThreadX 支持多核处理器,可以充分利用多核硬件的性能。
6. 网络支持:ThreadX 包含了对网络协议栈的支持,可以方便地集成网络功能。
7. 文件系统支持:ThreadX 提供了文件系统的支持,方便数据的存储和访问。
8. 图形用户界面:ThreadX 支持图形用户界面(GUI),可以用于开发具有图形界面的嵌入式应用。
9. 安全性:ThreadX 提供了安全特性,如内存保护和访问控制,以防止恶意软件和数据泄露。
10. 开源:ThreadX 的部分版本是开源的,允许用户自由使用和修改源代码。
11. 跨平台:ThreadX 支持多种处理器架构和硬件平台,具有很好的可移植性。
12. 易于使用:ThreadX 提供了丰富的API和开发工具,使得开发过程更加简单和高效。
2 ThreadX运行环境搭建
下载ThreadX代码Eclipse ThreadX · GitHub,安装Visual Studio 2019。
打开ports\win32\vs_2019\example_build\azure_rtos.sln:
1. 分别编译tx和sample_threadx:右键点击相应方案,选择“生成”。
2. 调试程序:点击“本地Windows调试器”。
可以查看运行结果,已经进行调试。
3 ThreadX主要组件
Thread X各组件关系如下:
3.1 ThreadX
ThreadX 提供的众多好处包括先进的调度功能、消息传递、中断管理和消息服务。ThreadX 拥有许多高级特性,包括其微内核架构、抢占阈值调度、事件链和丰富的系统服务。ThreadX主内核参考《rtos-docs/rtos-docs/threadx/index.md at main · eclipse-threadx/rtos-docs · GitHub》。
3.2 FileX
FileX 是一个高性能的 FAT 兼容文件系统。它与 ThreadX 完全集成,并适用于所有支持的处理器。像 ThreadX 一样,FileX 设计上具有小体积和高性能,非常适合当今需要文件操作的深度嵌入式应用。FileX 支持大多数物理媒体,包括 RAM 磁盘、USBX、SD 卡和通过 LevelX 支持的 NAND/NOR 闪存。
ThreadX文件系统FileX参考:《rtos-docs/rtos-docs/filex/index.md at main · eclipse-threadx/rtos-docs · GitHub》。
3.3 LevelX
LevelX 是一个为嵌入式系统设计的高性能、可伸缩的存储介质抽象层。它提供了一个统一的接口来访问不同类型的存储介质,包括但不限于 NAND 和 NOR 闪存、硬盘驱动器、固态硬盘、RAM 磁盘等。LevelX 是 Eclipse Foundation 下的一个开源项目,与 FileX 和 ThreadX 等其他 Eclipse RTOS 组件紧密集成,以提供完整的存储解决方案。
Flash磨损均衡管理LevelX:《rtos-docs/rtos-docs/levelx/index.md at main · eclipse-threadx/rtos-docs · GitHub》。
3.4 GUIX
GUIX 是为满足嵌入式系统开发者需求而创建的专业质量图形用户界面包。与其他选择不同,GUIX 小巧、快速,并且可以轻松移植到几乎任何能够支持图形输出的硬件配置。GUIX 还提供了出色的视觉吸引力和直观强大的 API,用于应用程序级别的用户界面开发。
ThreadX用户图形界面GUIX:《rtos-docs/rtos-docs/guix/index.md at main · eclipse-threadx/rtos-docs · GitHub》。
3.5 NetX Duo
NetX Duo 是专为深度嵌入式、实时和物联网应用设计的高级、工业级 TCP/IP 网络协议栈。NetX Duo 是一个双 IPv4 和 IPv6 网络协议栈。
ThreadX TCP/IP协议栈NetX Duo:《rtos-docs/rtos-docs/netx-duo/index.md at main · eclipse-threadx/rtos-docs · GitHub》。
3.6 USBX
USBX 是一个高性能的 USB 主机、设备和 On-The-Go (OTG) 嵌入式堆栈。它与 ThreadX 完全集成,并适用于所有 ThreadX 支持的处理器。像 ThreadX 一样,USBX 设计上具有小体积和高性能,非常适合需要与 USB 设备接口的深度嵌入式应用。
ThreadX USB协议栈USBX:《rtos-docs/rtos-docs/usbx/index.md at main · eclipse-threadx/rtos-docs · GitHub》。
3.7 TraceX
TraceX 是 ThreadX 实时操作系统的一部分,它是一个强大的跟踪和分析工具,用于监控和分析实时系统的事件和行为。TraceX 允许开发者在不干扰系统正常运行的情况下,捕获和记录系统运行时的详细信息。
ThreadX系统事件跟踪TraceX:《rtos-docs/rtos-docs/tracex/index.md at main · eclipse-threadx/rtos-docs · GitHub》。
3.8 ThreadX Modules
ThreadX Modules系统提供了一种灵活且高效的方式来管理大型嵌入式应用程序。通过动态加载和卸载模块,系统可以更好地利用有限的资源,并在部署后轻松添加或更新功能。此外,通过内存保护和严格的内存管理,ThreadX确保了模块间的隔离和系统的稳定性。
ThreadX Modules参考:《rtos-docs/rtos-docs/threadx-modules/index.md at main · eclipse-threadx/rtos-docs · GitHub》。
4 Windows工具
4.1 GUIX Studio
打开GUIX Repository的guix_studio\build\vs_2019\studiox.sln文件:生成、Debug,界面如下:
GUIX工具使用参考:《rtos-docs/rtos-docs/guix/index.md at main · eclipse-threadx/rtos-docs · GitHub》。
4.2 TraceX
打开TraceX Repository的src/TraceX.sln:生成。
执行src\TraceX\bin\Release\TraceX.exe:
TraceX工具使用参考:《rtos-docs/rtos-docs/tracex/index.md at main · eclipse-threadx/rtos-docs · GitHub》。
4.3 Tracealyzer
Tracealyzer 是一款由 Percepio AB 开发的图形化追踪分析工具,它主要用于实时系统,特别是那些使用 FreeRTOS、ThreadX、Micrium OS、Zephyr 和其他 RTOS 的系统。Tracealyzer 能够记录和分析系统的运行时行为,帮助开发者理解任务调度、上下文切换、中断处理和其他系统事件。
Tracezlyzer下载和使用:https://percepio.com/tracealyzer/。