diff --git a/.vscode/launch.json b/.vscode/launch.json index ee2ce00..ef2f120 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -14,7 +14,7 @@ "cwd": "${workspaceRoot}", "preLaunchTask": "Cargo Build (debug)", "runToEntryPoint": "main", - "executable": "./target/thumbv7m-none-eabi/debug/{{project-name}}", + "executable": "./target/thumbv7m-none-eabi/debug/embedded-rs", /* Run `cargo build --example hello` and uncomment this line to run semi-hosting example */ //"executable": "./target/thumbv7m-none-eabi/debug/examples/hello", "cpu": "cortex-m3", @@ -29,7 +29,7 @@ "cwd": "${workspaceRoot}", "preLaunchTask": "Cargo Build (debug)", "runToEntryPoint": "main", - "executable": "./target/thumbv7em-none-eabihf/debug/{{project-name}}", + "executable": "./target/thumbv7em-none-eabihf/debug/embedded-rs", /* Run `cargo build --example itm` and uncomment this line to run itm example */ // "executable": "./target/thumbv7em-none-eabihf/debug/examples/itm", "device": "STM32F303VCT6", @@ -44,9 +44,17 @@ "swoFrequency": 2000000, "source": "probe", "decoders": [ - { "type": "console", "label": "ITM", "port": 0 } + { + "type": "console", + "label": "ITM", + "port": 0 + } ] - } + }, + "gdbPath": "gdb", + "postLaunchCommands": [ + "monitor arm semihosting enable" + ] } ] -} \ No newline at end of file +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 7f57a27..67c645c 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -10,9 +10,11 @@ * so we can invoke it from the debug launcher. */ "label": "Cargo Build (debug)", - "type": "process", + "type": "shell", "command": "cargo", - "args": ["build"], + "args": [ + "build" + ], "problemMatcher": [ "$rustc" ], @@ -23,9 +25,12 @@ }, { "label": "Cargo Build (release)", - "type": "process", + "type": "shell", "command": "cargo", - "args": ["build", "--release"], + "args": [ + "build", + "--release" + ], "problemMatcher": [ "$rustc" ], @@ -34,8 +39,11 @@ { "label": "Cargo Build Examples (debug)", "type": "process", - "command": "cargo", - "args": ["build","--examples"], + "command": "shell", + "args": [ + "build", + "--examples" + ], "problemMatcher": [ "$rustc" ], @@ -43,9 +51,13 @@ }, { "label": "Cargo Build Examples (release)", - "type": "process", + "type": "shell", "command": "cargo", - "args": ["build","--examples", "--release"], + "args": [ + "build", + "--examples", + "--release" + ], "problemMatcher": [ "$rustc" ], @@ -53,9 +65,11 @@ }, { "label": "Cargo Clean", - "type": "process", + "type": "shell", "command": "cargo", - "args": ["clean"], + "args": [ + "clean" + ], "problemMatcher": [], "group": "build" }, diff --git a/Cargo.toml b/Cargo.toml index 83f1823..6952c45 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,7 @@ cortex-m = { version = "0.7.6", features = ["critical-section-single-core"] } cortex-m-rt = "0.7" cortex-m-semihosting = "0.5" panic-halt = "1.0.0" +panic-semihosting = "0.6" stm32f3 = { version = "0.16.0", features = ["stm32f303"] } stm32f3xx-hal = { version = "0.10.0", features = ["stm32f303xc"] } diff --git a/src/main.rs b/src/main.rs index be73167..84e2f18 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,11 +3,12 @@ use core::fmt::Write; +use cortex_m_semihosting::hprintln; // pick a panicking behavior -use panic_halt as _; // you can put a breakpoint on `rust_begin_unwind` to catch panics - // use panic_abort as _; // requires nightly - // use panic_itm as _; // logs messages over ITM; requires ITM support - // use panic_semihosting as _; // logs messages to the host stderr; requires a debugger +// use panic_halt as _; // you can put a breakpoint on `rust_begin_unwind` to catch panics +// use panic_abort as _; // requires nightly +// use panic_itm as _; // logs messages over ITM; requires ITM support +use panic_semihosting as _; // logs messages to the host stderr; requires a debugger use cortex_m::peripheral::{syst, Peripherals}; use cortex_m_rt::entry; @@ -67,5 +68,6 @@ fn main() -> ! { ld4.toggle().unwrap(); ld5.toggle().unwrap(); uart.write_str("Loop\r\n").unwrap(); + hprintln!("Loop"); } }