neon-rtos

Crates.ioneon-rtos
lib.rsneon-rtos
version0.1.4
sourcesrc
created_at2024-10-12 16:19:35.505857
updated_at2024-10-30 15:05:39.840286
descriptionA real-time operating system for ARM Cortex-M or RISC-V microcontrollers
homepage
repositoryhttps://github.com/mychenkaikai/neon-rtos
max_upload_size
id1406628
size66,782
(mychenkaikai)

documentation

README

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

  1. Open VSCode
  2. Load the project root directory
  3. Press F5 to start debugging (launch.json is pre-configured)

Project Structure

  • src/
    • kernel/: Kernel code
      • scheduler/: Task scheduler
      • sync/: Synchronization primitives (mutexes, signals)
      • task/: Task management
    • arch/: Architecture-specific code
      • port_cortex_m/: ARM Cortex-M implementation
      • port_riscv/: RISC-V implementation
    • user_api/: User-space interface
    • utils/: Utility functions
  • examples/: Example code
    • basic/: Basic examples
    • riscv/: 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:

  1. Code adheres to the project's coding standards
  2. All tests pass
  3. Related documentation is updated

License

This project is dual-licensed under MIT or Apache-2.0. See the LICENSE file for details.

Commit count: 45

cargo fmt