mirror of
https://github.com/LegitCamper/picocalc-os-rs.git
synced 2025-12-27 07:45:28 +00:00
36 lines
1.6 KiB
Markdown
36 lines
1.6 KiB
Markdown
# PicoCalc OS (Rust)
|
||
|
||
A simple kernel and applications for the **Clockwork PicoCalc**, written in Rust.
|
||
This project provides a minimal kernel, ABI, and user-space applications to experiment with OS development on constrained hardware.
|
||
|
||
## Status
|
||
|
||
Basic synchronous applications are working great.
|
||
Current focus is on exanding applications and porting software, finding bugs in ffi, and making sure the kernel is as stable as possible.
|
||
|
||
## Project Structure
|
||
|
||
- **`kernel/`** – The core OS kernel
|
||
- **`userlib_sys/`** – C FFI bindings for kernel syscall
|
||
- **`userlib/`** – Rust wrapper on top of `userlib_sys`
|
||
- **`picolib/`** – Built with ```just newlib```, and provides libc symbols when linking with C libraries
|
||
- **`user-apps/`** – Collection of userspace programs (gif player, wav player, calculator, snake, etc.)
|
||
|
||
## Features
|
||
|
||
- Minimal Rust-based kernel targeting the PicoCalc
|
||
- Custom ABI for *Mostly* safe communication between kernel and applications
|
||
- Support for multiple user-space applications
|
||
- Hardware drivers tailored for the PicoCalc( Audio, Display, Keyboard, ans Storage )
|
||
|
||
## Getting Started
|
||
|
||
```bash
|
||
git clone https://github.com/LegitCamper/picocalc-os-rs.git
|
||
cd picocalc-os-rs
|
||
just userapps
|
||
# copy the build applications from target/thumbv8m.main-none-eabihf/release-binary/application to the sdcard and rename them to app.bin
|
||
|
||
# has builds for the official rp2350 board and the pimoroni2w board
|
||
just kernel-release rp235x # keep in mind that https://github.com/StripedMonkey/elf2uf2-rs version is required until https://github.com/JoNil/elf2uf2-rs/pull/41 is merged
|