diff --git a/examples/bare10.rs b/examples/bare10.rs index 3d90134fecc8dacc6cb8dd5c9b7a9a015961daed..4ad60ca4bb1966b287a72935d9b115c354169b88 100644 --- a/examples/bare10.rs +++ b/examples/bare10.rs @@ -81,11 +81,22 @@ const APP: () = { #[task(priority = 1, capacity = 4, resources = [ITM])] fn trace_data(byte: u8) { - let stim = &mut resources.ITM.stim[0]; - iprintln!(stim, "data {}", byte); - for _ in 0..10000 { - asm::nop(); - } + // let stim = &mut resources.ITM.stim[0]; + // iprintln!(stim, "data {}", byte); + // for _ in 0..10000 { + // asm::nop(); + // } + } + + #[task(priority = 1, spawn = [echo, trace_error])] + fn cmd_interpretor(byte: u8) { + + let send: u8 = match byte as char { + 'a' => byte + 1, + _ => byte, + }; + + let _ = spawn.echo(send); } #[task(priority = 1, resources = [ITM])] @@ -104,13 +115,13 @@ const APP: () = { } - #[interrupt(priority = 3, resources = [RX], spawn = [trace_data, trace_error, echo])] + #[interrupt(priority = 3, resources = [RX], spawn = [trace_data, trace_error, cmd_interpretor])] fn USART2() { let rx = resources.RX; match rx.read() { Ok(byte) => { - let _ = spawn.echo(byte); + let _ = spawn.cmd_interpretor(byte); if spawn.trace_data(byte).is_err() { let _ = spawn.trace_error(Error::RingBufferOverflow); } @@ -126,6 +137,7 @@ const APP: () = { extern "C" { fn EXTI0(); fn EXTI1(); + fn EXTI2(); } };