5 releases
0.1.4 | Oct 30, 2024 |
---|---|
0.1.3 | Oct 30, 2024 |
0.1.2 | Oct 17, 2024 |
0.1.1 | Oct 13, 2024 |
0.1.0 | Oct 12, 2024 |
#223 in Operating systems
51 downloads per month
67KB
2K
SLoC
Neon RTOS
Neon RTOS is a lightweight real-time operating system that supports multiple architectures, currently including ARM Cortex-M and RISC-V.
Features
- Lightweight real-time operating system kernel
- Multi-task scheduling
- Inter-task communication (signals, mutexes)
- Memory management
- Interrupt handling
- Multi-architecture support (ARM Cortex-M3, RISC-V)
- Integrated development environment support (VSCode debugging)
Quick Start
Requirements
- Rust toolchain (nightly)
- ARM GCC toolchain (for Cortex-M) or RISC-V GCC (for RISC-V)
- VSCode + Cortex-Debug extension (for debugging)
- QEMU (for emulation)
Building and Running
Option 1: Command Line Build
# Navigate to example directory
cd examples/basic
# Build for Cortex-M
cargo build --target thumbv7m-none-eabi
# Or build for RISC-V
cargo build --target riscv32imac-unknown-none-elf
Option 2: VSCode Debugging
- Open VSCode
- Load the project root directory
- Press F5 to start debugging (launch.json is pre-configured)
Project Structure
src/
kernel/
: Kernel codescheduler/
: Task schedulersync/
: Synchronization primitives (mutexes, signals)task/
: Task management
arch/
: Architecture-specific codeport_cortex_m/
: ARM Cortex-M implementationport_riscv/
: RISC-V implementation
user_api/
: User-space interfaceutils/
: Utility functions
examples/
: Example codebasic/
: Basic examplesriscv/
: RISC-V examples
Debugging
The project is configured for VSCode debugging environment:
- Breakpoint debugging
- Variable inspection
- Step-by-step execution
- QEMU emulator support
Contributing
Pull Requests are welcome to improve this project. Before submitting, please ensure:
- Code adheres to the project's coding standards
- All tests pass
- Related documentation is updated
License
This project is dual-licensed under MIT or Apache-2.0. See the LICENSE file for details.
Dependencies
~0–340KB