diff --git a/examples/app9.rs b/examples/app9.rs
new file mode 100644
index 0000000000000000000000000000000000000000..51bfa2f5e5374f3cbda090379f376217db56c9ad
--- /dev/null
+++ b/examples/app9.rs
@@ -0,0 +1,62 @@
+#![no_main]
+#![no_std]
+use cortex_m_semihosting::hprintln;
+use nrf52832_hal as hal;
+#[allow(unused_imports)]
+use panic_semihosting;
+use rtfm::{app};
+
+use embedded_hal::digital::OutputPin;
+use hal::gpio;
+use hal::gpio::p0::*;
+use hal::gpio::Level;
+use hal::gpio::*;
+use hal::prelude::GpioExt;
+
+const PERIOD : u32 = 64_000_000;
+
+#[app(device = crate::hal::target)]
+const APP: () = {
+    // Late resources
+    // static mut LED: OutputPin = (); <= size not known
+    static mut LED: P0_14<gpio::Output<PushPull>> = ();
+    
+    #[init(spawn = [low])]
+    fn init() -> init::LateResources {
+         hprintln!("init").unwrap();
+        let port0 = device.P0.split();
+        let led = port0.p0_14.into_push_pull_output(Level::High);
+        spawn.low().unwrap();
+        init::LateResources { LED : led }
+    }
+
+    #[task(schedule = [high], resources = [LED])]
+    fn low() {
+        	toggler(&mut *resources.LED, false);
+
+        	schedule.high(
+			scheduled + PERIOD.cycles()
+		).unwrap();
+    }
+
+    #[task(schedule = [low], resources = [LED])]
+    fn high() {
+        	toggler(&mut *resources.LED, true);
+        	schedule.low(
+			scheduled + PERIOD.cycles()
+		).unwrap();
+    }
+
+    extern "C" {
+        fn SWI1_EGU1();
+    }
+};
+
+// Arument is an Output pin
+fn toggler(led : &mut impl OutputPin, state : bool ) {
+    if state {
+        led.set_high();
+    } else {
+        led.set_low();
+    }
+}
\ No newline at end of file