//! Firmware for the HackAmp. #![no_main] #![no_std] use cortex_m::interrupt; use panic_semihosting as _; use audio_buffer::AudioBuffer; use pins::Pins; // Remove "pub" to check whether there is any dead code. pub mod audio_buffer; pub mod halext; pub mod mixer; pub mod pins; #[rtic::app(device = stm32f4xx_hal::stm32, peripherals = true)] const APP: () = { struct Resources {} #[init] fn init(_ctx: init::Context) { let _pins = Pins::configure(); static I2S_BUFFER: AudioBuffer = AudioBuffer::new(); let i2s_buffer = &I2S_BUFFER; // Buffer example code. interrupt::free(|cs| { let write_packet = i2s_buffer.borrow_write(cs).unwrap(); // TODO i2s_buffer.write_finished(write_packet, cs); let read_packet = i2s_buffer.borrow_read(cs).unwrap(); // TODO i2s_buffer.read_finished(read_packet, cs); }); } #[idle(resources = [])] fn idle(_ctx: idle::Context) -> ! { loop { // TODO } } };