diff --git a/examples/blink/.vscode/launch.json b/examples/blink/.vscode/launch.json
deleted file mode 100644
index daf0b515adfa0bbf74d743499abafb8cb48dab64..0000000000000000000000000000000000000000
--- a/examples/blink/.vscode/launch.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-	"configurations": [
-	{
-		"name": "GDB debug - custom",
-		"type": "cppdbg",
-		"request": "launch",
-		"program": "blink.elf",
-		"args": [],
-		"stopAtEntry": true,
-		"cwd": "${workspaceFolder}",
-		"environment": [],
-		"externalConsole": false,
-		"MIMode": "gdb",
-		"setupCommands": [
-		{
-			"description": "Enable pretty-printing for gdb",
-			"text": "-enable-pretty-printing",
-			"ignoreFailures": true
-		}
-		],
-		"miDebuggerPath": "/usr/bin/gdb-multiarch",
-		"miDebuggerServerAddress": "127.0.0.1:2000"
-	}
-	]
-}
diff --git a/examples/blink/.vscode/settings.json b/examples/blink/.vscode/settings.json
deleted file mode 100644
index 79b30b8432213edaa2ffffd7b366b7cb61bf8240..0000000000000000000000000000000000000000
--- a/examples/blink/.vscode/settings.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-    "cmake.configureOnOpen": false,
-    "makefile.launchConfigurations": [
-        {
-            "cwd": "/home/cnlohr/git/ch32v003fun/examples/blink",
-            "sbinaryPath": "/home/cnlohr/git/ch32v003fun/examples/blink/blink.elf",
-            "binaryArgs": []
-        }
-    ],
-    "editor.insertSpaces": false,
-    "editor.tabSize": 4
-}
diff --git a/examples/debugprintfdemo/.vscode/c_cpp_properties.json b/examples/debugprintfdemo/.vscode/c_cpp_properties.json
new file mode 100644
index 0000000000000000000000000000000000000000..6bf3f6166958c1f8f449fc69ae3ce9cd9c1d46ce
--- /dev/null
+++ b/examples/debugprintfdemo/.vscode/c_cpp_properties.json
@@ -0,0 +1,19 @@
+{
+    "configurations": [
+        {
+            "name": "Linux",
+            "includePath": [
+                "${workspaceFolder}/**",
+                "${workspaceFolder}/../../ch32v003fun"
+            ],
+            "defines": [],
+            "compilerPath": "/usr/bin/clang",
+            "cppStandard": "c++14",
+            "intelliSenseMode": "linux-clang-x64",
+            "compilerArgs": [
+                "-DCH32V003FUN_BASE"
+            ]
+        }
+    ],
+    "version": 4
+}
\ No newline at end of file
diff --git a/examples/debugprintfdemo/.vscode/launch.json b/examples/debugprintfdemo/.vscode/launch.json
new file mode 100644
index 0000000000000000000000000000000000000000..3ba758bc90ea0311e7712bc4e6234cd654e31667
--- /dev/null
+++ b/examples/debugprintfdemo/.vscode/launch.json
@@ -0,0 +1,33 @@
+{
+	"configurations": [
+		{
+			"name": "GDB Debug Target",
+			"type": "cppdbg",
+			"request": "launch",
+			"program": "debugprintfdemo.elf",
+			"args": [],
+			"stopAtEntry": true,
+			"cwd": "${workspaceFolder}",
+			"environment": [],
+			"externalConsole": false,
+			"preLaunchTask": "run_flash_and_gdbserver",
+			"MIMode": "gdb",
+			"setupCommands": [
+			{
+				"description": "Enable pretty-printing for gdb",
+				"text": "-enable-pretty-printing",
+				"ignoreFailures": true
+			}
+			],
+			"miDebuggerPath": "/usr/bin/gdb-multiarch",
+			"miDebuggerServerAddress": "127.0.0.1:2000"
+		},
+		{
+			"name": "Run Only (In Terminal)",
+			"type": "node",
+			"request": "launch",
+			"program": "",
+			"preLaunchTask": "run_flash_and_gdbserver",
+		}	
+		]
+}
diff --git a/examples/debugprintfdemo/.vscode/settings.json b/examples/debugprintfdemo/.vscode/settings.json
new file mode 100644
index 0000000000000000000000000000000000000000..5f7790e17f25ffb056231c9e95e5ecb65837a14c
--- /dev/null
+++ b/examples/debugprintfdemo/.vscode/settings.json
@@ -0,0 +1,15 @@
+{
+    "cmake.configureOnOpen": false,
+    "makefile.launchConfigurations": [
+        {
+            "cwd": "",
+            "sbinaryPath": "blink.elf",
+            "binaryArgs": []
+        }
+    ],
+    "editor.insertSpaces": false,
+    "editor.tabSize": 4,
+    "files.associations": {
+        "ch32v003fun.h": "c"
+    }
+}
diff --git a/examples/debugprintfdemo/.vscode/tasks.json b/examples/debugprintfdemo/.vscode/tasks.json
new file mode 100644
index 0000000000000000000000000000000000000000..0e0393d24a811b9c4c676639d87596e350ec39e1
--- /dev/null
+++ b/examples/debugprintfdemo/.vscode/tasks.json
@@ -0,0 +1,56 @@
+{
+	"version": "2.0.0",
+	"tasks": [
+		{
+			"type": "shell",
+			"label": "flash",
+			"presentation": {
+				"echo": true,
+				"focus": false,
+				"group": "build",
+				"panel": "shared",
+				"showReuseMessage" : false
+			},
+			"command": "killall minichlink; make flash",
+		},
+		{
+			"type": "shell",
+			"label": "run_flash_and_gdbserver",
+			"command": "killall minichlink; make flash gdbserver",
+
+			"presentation": {
+				"echo": true,
+				"focus": false,
+				"group": "build",
+				"panel": "shared",
+				"close": true,
+				"showReuseMessage" : false
+			},
+
+			"isBackground": true,
+			"options": {
+				"cwd": "${workspaceFolder}",
+			},
+			"runOptions": {
+				"instanceLimit": 2,
+			},			 
+			"group": "build",
+			"problemMatcher": {
+				"pattern": [
+					{
+						"regexp": ".",
+						"file": 1,
+						"location": 2,
+						"message": 3
+					}
+				],
+
+				"background": {
+					"activeOnStart": false,
+					"beginsPattern": "^.*Image written.*",
+					"endsPattern": "^.*GDBServer*"
+				}
+			},
+		}
+	]
+}
diff --git a/examples/debugprintfdemo/debugprintfdemo.c b/examples/debugprintfdemo/debugprintfdemo.c
index a73faf1dae7912a0bf6626bd416fc244a2012c8e..41a153b03bc1fc0ec762eaf3b2be12f3b3d8c95c 100644
--- a/examples/debugprintfdemo/debugprintfdemo.c
+++ b/examples/debugprintfdemo/debugprintfdemo.c
@@ -34,7 +34,6 @@ int main()
 		GPIOD->BSHR = (1<<16) | (1<<(16+4)); // Turn off GPIODs
 		GPIOC->BSHR = (1<<16);
 		printf( "-%lu\n", count++ );
-		//_write( 0, "xxxxxxx", 7 );
 	}
 }