pio-rs
pio-rs copied to clipboard
Support crate for Raspberry Pi's PIO architecture.
I followed the instructions in the README while setting this crate up and realized that that things didn't work because of the outdated dependencies. This PR bumps the crate versions...
According to the rp2040 datasheet, `.define` directives should be allowed before the first program, and if they occur there are global to all programs in the file. There seems to...
The PIO examples in `rp-rs/rp-hal/rp2040-hal` tend to use the following "pattern" to install the PIO program: ```rust // Define some simple PIO program. let mut a = pio::Assembler::::new(); // ......
I think the `-rs` suffix is redundant, given this is the `rp-rs` repository. I also think it is useful if the repos consistently have the same name as the crates...
The following snippet fails to compile with: ```rust pio_proc::pio_asm!( ".wrap_target" "jmp wrap_target" ); ``` ```text error: proc macro panicked --> src/pio.rs:107:23 | xxx | let program = pio_proc::pio_asm!( | _______________________^...
Example for a pipeline failing without these changes: https://github.com/rp-rs/pio-rs/actions/runs/8377230666/job/22944762584?pr=56
Thanks to @xeniarose for finding and reporting this bug Fixes #57 Replaces #60
example ```rust use pio::*; use pio_proc::*; fn main() { let sideset = SideSet::new(false, 0, false); let in_example_1 = InstructionOperands::IN { source: InSource::Y, bit_count: 32, }.encode(); println!("example 1: {:?}", Instruction::decode(in_example_1, sideset));...
Now `Program::code` is `ArrayVec` type, which contains its own data. I think almost all of use cases are to program "static" one, and it is not necessary to allocate memory...