https://github.com/cbiffle/lilos Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. {{ message }} cbiffle / lilos Public * Notifications * Fork 8 * Star 169 A wee async RTOS for Cortex-M License MPL-2.0 license 169 stars 8 forks Star Notifications * Code * Issues 0 * Pull requests 0 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights cbiffle/lilos This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 2 branches 0 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/c] Use Git or checkout with SVN using the web URL. [gh repo clone cbiffl] Work fast with our official CLI. Learn more about the CLI. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @cbiffle cbiffle RELEASE-NOTES: reword thing about futures to be user-oriented ... b1014e2 Jun 28, 2023 RELEASE-NOTES: reword thing about futures to be user-oriented b1014e2 Git stats * 137 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time doc remove minor typo June 27, 2023 08:24 examples Remove futures dependency from core OS. June 27, 2023 19:21 os Remove futures dependency from core OS. June 27, 2023 19:21 testsuite Remove futures dependency from core OS. June 27, 2023 19:21 .gitignore testsuite skeleton May 8, 2021 12:10 .rustfmt.toml More example support June 4, 2020 20:31 LICENSE Prepare for publication with license, name change June 4, 2020 19:20 README.mkdn Designate 0.3.0 release June 25, 2023 09:05 RELEASE-NOTES.mkdn RELEASE-NOTES: reword thing about futures to be user-oriented June 28, 2023 13:55 build-all.sh testsuite: make it easier to add new CPUs, add STM32G0. June 19, 2023 10:45 rust-toolchain.toml rust-toolchain: s/rls/rust-analyzer/ June 15, 2023 10:10 View code lilos: A minimal async RTOS Repo layout Building Contact and License README.mkdn lilos: A minimal async RTOS (Hi! We now have a intro guide!) This is a wee operating system written to support the async style of programming in Rust on microcontrollers. It fits in about 2 kiB of Flash and uses about 20 bytes of RAM (before your tasks are added). In that space, you get a full async runtime with multiple tasks, support for complex concurrency via join and select, and a lot of convenient but simple APIs. (If you want to see what a lilos program looks like, look in the examples directory, or read the intro guide.) lilos has been deployed in real embedded systems since 2019, running continuously. I've built about a dozen systems around it of varying complexity, on half a dozen varieties of microcontroller. It works pretty okay! Perhaps you will find it useful too. Repo layout This repo contains crates in subdirectories, but it is not a Cargo workspace. This means you will need to cd into subdirectories to build things. Here is a map: * os contains the operating system crate. The README in that crate gives more background. * testsuite contains a test suite for the operating system, which can run on a Cortex-M3 or better. See its README for instructions. * examples contains example programs for various microcontrollers. Building These instructions are mostly for building the examples or working on the operating system itself. If you're trying to use lilos in a program, the usual way is to just cargo add lilos to your application. To build in the repo, you will need a Rust toolchain installed through rustup, because we use a rustup-style rust-toolchain.toml file to pin the toolchain version to ensure that you get the right results. rustup will automatically ensure you've got the appropriate toolchain version available, including support for the right target architecture for whatever program you're building. 1. Enter the directory you're interested in, for example, cd os. 2. Build: cargo build (or, for smaller binaries, cargo build --release). 3. To try an example on a microcontroller eval board, see the README in the individual example. (In most cases cargo run in the directory will suffice.) To build everything in the repo, run ./build-all.sh. Contact and License If you have questions, or you use it for something, I'd love to find out! Send me an email. All the code in this repo is MPL-2 licensed. About A wee async RTOS for Cortex-M Resources Readme License MPL-2.0 license Stars 169 stars Watchers 6 watching Forks 8 forks Report repository Releases No releases published Packages 0 No packages published Used by 3 * @MGlolenstine @MGlolenstine / lilos * @ahorn @ahorn / lilos * @cbiffle @cbiffle / lilos Contributors 2 * @cbiffle cbiffle Cliff L. Biffle * @bkc bkc Brad Clements Languages * Rust 98.3% * Other 1.7% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time.