Eclipse ThreadX RTOS
repository·main·Indexed 41 days ago
https://github.com/eclipse-threadx/rtos-docsAn open-source, highly efficient real-time operating system (RTOS) for deeply embedded IoT and edge devices. The platform includes the core ThreadX picokernel, NetX Duo TCP/IP stack, FileX FAT-compatible file system, GUIX graphics package, USBX USB stack, LevelX flash abstraction layer, and TraceX analysis tool.
What's inside Eclipse ThreadX
- NetX Duo is an industrial-grade, dual IPv4 and IPv6 TCP/IP network stack designed for deeply embedded, real-time, and IoT applications. It features a small footprint, fast execution, and supports core protocols (IPv4, IPv6, TCP, UDP) alongside a wide array of higher-level add-on protocols and security products (IPsec, SSL/TLS/DTLS).
Overview of NetX Duo Iperf Demonstration
mainThe NetX Duo Iperf Demonstration is a network testing tool used to assess the performance of NetX Duo and the underlying hardware. It is designed to test both TCP and UDP network throughput. The implementation in this demonstration is based on Jperf, a Java-based version of the standard Iperf network testing program.Introduction to NetX Duo Secure
mainNetX Duo Secure is a high-performance, real-time implementation of cryptographic network security standards (including TLS/SSL) designed specifically for embedded ThreadX-based applications. It is optimized for a wide range of hardware, from small microcontrollers to powerful embedded processors, and provides configuration options to minimize the memory footprint required for secure network communications.Overview of USBX
mainUSBX is a high-performance USB host, device, and on-the-go (OTG) embedded stack. It is designed for deeply embedded, real-time, and IoT applications with a small footprint and high performance.
Key characteristics:
- Integration: Fully integrated with ThreadX (RTOS), FileX (FAT-compatible file system), and NetX Duo (TCP/IP stack).
- Scaling: Automatically scales based on the services used, minimizing configuration complexity.
- Modes: Supports Host, Device, and OTG modes. Can run in standalone mode without an RTOS for certain classes.
- Speed Support: Supports USB low, full, and high-speed.
- Analysis: Supports TraceX system analysis and optional performance metrics.
What is FileX?
mainFileX is a complete FAT format media and file management system designed for deeply embedded applications. It supports 12-, 16-, and 32-bit File Allocation Table (FAT) formats and is optimized for both size and performance.
Key characteristics include:
- Scalability: Supports an unlimited number of media devices, directories, and files.
- Flexibility: Supports RAM disks, FLASH managers, and physical devices.
- Performance: Includes features like a logical sector cache and contiguous file allocation.
- Integration: Designed to work seamlessly with ThreadX and is endian neutral.
Overview of TraceX
mainTraceX is a host-based analysis tool used to visualize real-time system events graphically. It allows developers to see events that are typically invisible to standard debugging tools, such as interrupts and context switches.
Key Workflow:
- Data Collection: Trace information is stored in a buffer on the target system. The application determines the buffer location and size at run-time. ThreadX typically implements this as a circular buffer to ensure the most recent 'N' events are available even if a system malfunction occurs.
- Data Upload: The trace information is uploaded from the target memory to the host for analysis. This can be done post-mortem or upon hitting a breakpoint.
- Analysis: Once uploaded, TraceX acts like a 'software logic analyzer,' displaying events on a horizontal time axis against a vertical axis of threads and system routines.
TraceX is not limited to ThreadX; it can process any buffer constructed in the proper manner from any application or RTOS.
Overview of GUIX Studio
mainGUIX Studio is a Microsoft Windows-based rapid UI development environment designed specifically for the Eclipse Foundation's GUIX runtime library. It is intended for embedded real-time software developers working with the ThreadX RTOS and the GUIX UI run-time library. The tool allows developers to design user interfaces visually and manage application resources that are then used by the GUIX runtime in an embedded environment.Explore NetX Duo documentation and addons
mainNetX Duo is a TCP/IP stack for embedded systems. The documentation is organized into a core User Guide and several specialized Addons.
Core NetX Duo User Guide
Covers fundamental concepts, installation, functional components, services, network drivers, and technical appendices for constants, data types, and the BSD-compatible socket API.
NetX Duo Addons
NetX Duo provides various protocol-specific addons, including:
- IP Configuration: AutoIP, DHCP (v4/v6 client and server), and DNS client.
- Security: Crypto, Secure TLS, Secure DTLS, and NAT.
- Application Protocols: FTP, HTTP (including Web HTTP/HTTPS), MQTT client, POP3 client, SMTP client, SNMP agent, Telnet, and TFTP.
- Streaming & Real-time: RTP Sender, RTSP Server, PTP client, and Iperf.
- Connectivity & Discovery: mDNS/DNS-SD, PPP, and BSD Services.
Understand the ThreadX Demonstration System
mainThe ThreadX demonstration system is a reference implementation provided with all ThreadX processor support packages. It is designed to illustrate how ThreadX is used in an embedded multithread environment by showcasing various system objects and thread interactions.
Key components of the demonstration include:
- Threads: Eight threads with varying priorities and behaviors.
- Memory Pools: One byte pool and one block pool.
- Synchronization/Communication: One queue, one semaphore, one mutex, and one event flags group.
The complete implementation is contained in the file
demo_threadx.c.Understand the ThreadX SMP Demonstration System
mainThe ThreadX SMP demonstration system is a reference implementation provided with all ThreadX SMP processor support packages. It is designed to illustrate how to use ThreadX SMP in an embedded multithreaded environment.
The system is defined in the file
demo_threadx.cand includes the following components:- Threads: 8 threads with varying priorities.
- Memory: 1 byte pool and 1 block pool.
- Synchronization/Communication: 1 queue, 1 semaphore, 1 mutex, and 1 event flags group.
Except for stack size, the demonstration application logic is identical across all supported ThreadX SMP processors.
Explore GUIX documentation and resources
mainGUIX is a graphical user interface (GUI) solution within the Eclipse ThreadX ecosystem. Documentation is organized into three main areas:
- GUIX Overview & User Guide: Covers functional overviews, service descriptions, display drivers, and technical appendices (color definitions, widget styles, event descriptions, and build-time configuration).
- GUIX Studio: Documentation for the GUIX Studio design tool, including installation, screen design, code generation, and command-line usage.
- GUIX Quick Start: Specific guides for getting started with GUIX Studio.
For source code and implementation details, visit the GUIX repository.
Overview of Eclipse ThreadX components
mainThe Eclipse ThreadX platform is a collection of run-time solutions designed for deeply embedded, IoT, and edge devices. The core components include:
- ThreadX: An advanced Real-Time Operating System (RTOS) featuring a picokernel architecture, preemption-threshold scheduling, and advanced interrupt management.
- NetX Duo: An industrial-grade TCP/IP network stack supporting both IPv4 and IPv6.
- FileX: A high-performance, FAT-compatible file system designed for small footprints.
- GUIX: A professional graphical user interface (GUI) package for embedded systems.
- USBX: A high-performance USB host, device, and On-The-Go (OTG) stack.
- LevelX: A flash abstraction layer used by FileX to support various physical media like NAND/NOR flash.
- TraceX: A host-based analysis tool for visualizing real-time system events.
- ThreadX Modules: Provides memory protection and hardware-specific security features.