diff --git a/Cargo.toml b/Cargo.toml
index 3089f34742470f03ec9cda4ed1a5aa5db3bef303..f650756a23296262982e888f8d67257a41059217 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -28,7 +28,7 @@ optional = true
 
 [dependencies.cortex-m]
 version = "0.5.8"
-# features = ["inline-asm"] # <- currently requires nightly compiler
+features = ["inline-asm"] # <- currently requires nightly compiler
 
 # Uncomment for the allocator example.
 # alloc-cortex-m = "0.3.5"
diff --git a/examples/bare1.rs b/examples/bare1.rs
index 94b99d08183c8f821584434c8a3cd02f15efcb80..bbac0b72d905378ff42cdb29c5dc7276f0299396 100644
--- a/examples/bare1.rs
+++ b/examples/bare1.rs
@@ -13,6 +13,8 @@
 extern crate panic_halt;
 
 use cortex_m_rt::entry;
+use cortex_m::{iprintln, Peripherals};
+use cortex_m_semihosting::hprintln;
 
 #[entry]
 #[inline(never)]
@@ -20,11 +22,15 @@ fn main() -> ! {
     // Prepend by `x` by _ to avoid warning (never used).
     // The compiler is smart enough to figure out that
     // `x` is not used in any menaningful way.
+    let mut p = Peripherals::take().unwrap();
+    let stim = &mut p.ITM.stim[0];
 
     let mut _x = 0;
     loop {
         _x += 1;
         cortex_m::asm::nop();
+        iprintln!(stim, "{}",_x);
+        hprintln!("{}", _x).unwrap();
         cortex_m::asm::bkpt();
         _x -= 1;
     }
@@ -55,10 +61,10 @@ fn main() -> ! {
 //    loop, (press pause/suspend to verify this).
 //    what is the output in the ITM console
 //
-//    ** your answer here **
+//    ** 1 **
 //
 //    What is the output in the semihosting (openocd) console
-//    ** your answer here **
+//    ** 1 **
 //
 //    Commit your answers (bare1_1)
 //