esp rs progress

This commit is contained in:
Daniel Bulant 2026-05-11 16:41:49 +02:00
parent 45e474726f
commit 922f2415a4
No known key found for this signature in database
3 changed files with 21 additions and 3 deletions

View file

@ -2,8 +2,11 @@
# runner = "probe-rs run --chip RP2040" # runner = "probe-rs run --chip RP2040"
runner = "sudo picotool load -u -v -x -t elf" runner = "sudo picotool load -u -v -x -t elf"
[target.xtensa-esp32-none-elf]
runner = "espflash flash --monitor"
[build] [build]
target = "thumbv6m-none-eabi" # Cortex-M0 and Cortex-M0+ target = "xtensa-esp32-none-elf"
[env] [env]
DEFMT_LOG = "debug" DEFMT_LOG = "debug"

View file

@ -2,6 +2,7 @@
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs"; nixpkgs.url = "github:NixOS/nixpkgs";
rust-overlay.url = "github:oxalica/rust-overlay"; rust-overlay.url = "github:oxalica/rust-overlay";
esp-rs.url = "github:leighleighleigh/esp-rs-nix";
}; };
outputs = outputs =
@ -9,6 +10,7 @@
self, self,
rust-overlay, rust-overlay,
nixpkgs, nixpkgs,
esp-rs,
}: }:
let let
overlays = [ (import rust-overlay) ]; overlays = [ (import rust-overlay) ];
@ -20,11 +22,16 @@
{ {
packages.x86_64-linux.elf2uf2-rs = pkgs.callPackage ./elf2uf2.nix { }; packages.x86_64-linux.elf2uf2-rs = pkgs.callPackage ./elf2uf2.nix { };
devShell.x86_64-linux = pkgs.mkShell { devShell.x86_64-linux = pkgs.mkShell {
buildInputs = [ buildInputs = with pkgs; [
espflash
esptool
(pkgs.rust-bin.selectLatestNightlyWith ( (pkgs.rust-bin.selectLatestNightlyWith (
toolchain: toolchain:
toolchain.default.override { toolchain.default.override {
targets = [ "thumbv6m-none-eabi" ]; targets = [
"thumbv6m-none-eabi"
"xtensa-esp32-none-eabi"
];
extensions = [ "rust-src" ]; extensions = [ "rust-src" ];
} }
)) ))

View file

@ -37,11 +37,19 @@ async fn logger_task(usb: embassy_rp::Peri<'static, embassy_rp::peripherals::USB
embassy_usb_logger::run!(1024, log::LevelFilter::Info, driver); embassy_usb_logger::run!(1024, log::LevelFilter::Info, driver);
} }
#[embassy_executor::task]
async fn periodic_log() {
loop {
info!("periodic log");
Timer::after_millis(1000).await;
}
}
#[embassy_executor::main] #[embassy_executor::main]
async fn main(spawner: Spawner) { async fn main(spawner: Spawner) {
let p = embassy_rp::init(Default::default()); let p = embassy_rp::init(Default::default());
spawner.spawn(unwrap!(logger_task(p.USB))); spawner.spawn(unwrap!(logger_task(p.USB)));
spawner.spawn(unwrap!(periodic_log()));
info!("Hello World!"); info!("Hello World!");