#debugging-tool #operating-system #serial #comet #os #starlight

app starlight-comet

Comet is a debugging tool made for the Starlight Operating System

4 stable releases

1.0.3 Sep 15, 2024
1.0.2 Aug 13, 2024

#103 in Debugging

Download history 272/week @ 2024-08-09 56/week @ 2024-08-16 137/week @ 2024-09-13 13/week @ 2024-09-20 32/week @ 2024-09-27 8/week @ 2024-10-04 1/week @ 2024-10-11

200 downloads per month

Apache-2.0

17KB
299 lines

☄️ Comet

A debugging tool made for the Starlight Operating System

Crates.io Version Crates.io Downloads (recent) Crates.io License Crates.io Size

Installation

With Cargo ↗

Installing and/or updating Comet conveniently is made possible with Cargo, Rust's Package Manager (which you probably have if you're lurking in Starlight's repositories ;)

cargo install starlight-comet

Features

  • 🐛 Starlight Serial Output Debugging Simply run Comet, sit back, relax, and grab those pesky bugs!

  • 🚀 Starship Integration Comet integrates with 🚀 Starship ↗, enabling 🌟 Starlight ↗ developers to upload new Starlight builds via UART. Note that you need a Starship build flashed to your BOOT partition for the integration to work.

  • ⏳ Starship Emulation with QEMU Comet supports running QEMU in a subprocess, piping the Serial STDIO to Comet's Starship Integration to keep debugging work light, even for Starship development.

Usage

comet debug

Opens a serial connection to <PORT>, sending data to STDOUT.

Device type prefixes and info messages are sent to STDERR for interopability. These are fully removed with --quiet.

Usage: comet debug [OPTIONS] --port <PORT>

Options:
  -p, --port <PORT>
  -q, --quiet

comet upload

Opens a serial connection to <PORT>, sending data to STDOUT.

When a Comet Binary Request command is read (sent from the device by 🚀 Starship ↗), Comet will send the contents of <FILE> back to Starship for loading and execution.

Device type prefixes and info messages are sent to STDERR for interopability. These are fully removed with --quiet.

Usage: comet upload [OPTIONS] --port <PORT> --file <FILE>

Options:
  -p, --port <PORT>
  -f, --file <FILE>
  -q, --quiet

comet test

Launches a QEMU process (use --qemu-bin to specify a custom QEMU executable) with the specified args (--qemu-args) and creates a virtual serial connection which maps to the QEMU process's STDIN and STDOUT. From Comet's perspective, this is a serial connection like any other. QEMU's STDERR inherits Comet's STDERR and does not respect the --quiet option.

If --upload-file is set, Comet waits for a Comet Binary Request command (sent from QEMU by 🚀 Starship ↗) and will send the contents of <FILE> back to Starship for loading and execution.

Device type prefixes and info messages are sent to STDERR for interopability. These are fully removed with --quiet.

Usage: comet test [OPTIONS] --qemu-args <QEMU_ARGS>

Options:
  -a, --qemu-args <QEMU_ARGS>
  -b, --qemu-bin <QEMU_BIN>        [default: qemu-system-aarch64]
  -u, --upload-file <UPLOAD_FILE>
  -q, --quiet

Misc

Comet and related projects are designed and developed by @yolocat-dev ↗, though contributions are always welcome!

Comet is, as our other repositories, licensed under the Apache License 2.0. Feel free to read the actual legal stuff in the LICENSE file.

Dependencies

~7–16MB
~209K SLoC