diff --git a/.vscode/launch.json b/.vscode/launch.json
index 1cc529649e6a0a7f94fc92618348a489a7db3d8c..f2dcf0aeb80d781780856129376b542678cf5b70 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -613,7 +613,8 @@
             "type": "cortex-debug",
             "request": "launch",
             "servertype": "openocd",
-            "name": "c bare8 16Mhz",
+            "name": "bare8 (debug)",
+            "preLaunchTask": "cargo build --example bare8 --features stm32f4",
             "executable": "./target/thumbv7em-none-eabihf/debug/examples/bare8",
             "configFiles": [
                 "interface/stlink.cfg",
@@ -622,16 +623,44 @@
             "swoConfig": {
                 "enabled": true,
                 "cpuFrequency": 16000000,
-                "swoFrequency": 2000000, // you may try 1000000 if not working
+                "swoFrequency": 2000000,
                 "source": "probe",
                 "decoders": [
                     {
                         "type": "console",
-                        "label": "Name",
+                        "label": "ITM",
                         "port": 0
                     }
                 ]
             },
+            "svdFile": "STM32F413.svd",
+            "cwd": "${workspaceRoot}"
+        },
+        {
+            "type": "cortex-debug",
+            "request": "launch",
+            "servertype": "openocd",
+            "name": "bare9 (debug)",
+            "preLaunchTask": "cargo build --example bare9 --features stm32f4",
+            "executable": "./target/thumbv7em-none-eabihf/debug/examples/bare9",
+            "configFiles": [
+                "interface/stlink.cfg",
+                "target/stm32f4x.cfg"
+            ],
+            "swoConfig": {
+                "enabled": true,
+                "cpuFrequency": 16000000,
+                "swoFrequency": 2000000,
+                "source": "probe",
+                "decoders": [
+                    {
+                        "type": "console",
+                        "label": "ITM",
+                        "port": 0
+                    }
+                ]
+            },
+            "svdFile": "STM32F413.svd",
             "cwd": "${workspaceRoot}"
         },
     ]
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 06b3cd14b21c36fa46cd0df24a1861c20a17f0b2..05e549faff1d1ff7b2c904d04fd01c8424ecba92 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -219,5 +219,41 @@
                 "isDefault": true
             }
         },
+        {
+            "type": "shell",
+            "label": "cargo build --example bare8 --features stm32f4",
+            "command": "cargo build --example bare8 --features stm32f4",
+            "problemMatcher": [
+                "$rustc"
+            ],
+            "group": {
+                "kind": "build",
+                "isDefault": true
+            }
+        },
+        {
+            "type": "shell",
+            "label": "cargo build --example bare8 --features stm32f4",
+            "command": "cargo build --example bare8 --features stm32f4",
+            "problemMatcher": [
+                "$rustc"
+            ],
+            "group": {
+                "kind": "build",
+                "isDefault": true
+            }
+        },
+        {
+            "type": "shell",
+            "label": "cargo build --example bare9 --features stm32f4",
+            "command": "cargo build --example bare9 --features stm32f4",
+            "problemMatcher": [
+                "$rustc"
+            ],
+            "group": {
+                "kind": "build",
+                "isDefault": true
+            }
+        },
     ]
 }
\ No newline at end of file
diff --git a/Cargo.toml b/Cargo.toml
index b7f933de09fd618f148cb7a26d31e960dc906816..2ccfbeddd99413c638250088c087b2f3b62433a9 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -18,6 +18,7 @@ panic-semihosting = "0.5.1"
 panic-itm = "0.4.0"
 bare-metal = "0.2.4"
 nb = "0.1.1"
+cortex-m-rtfm = "0.4.0"
 
 [dependencies.cortex-m]
 version = "0.5.8"