diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 0000000..8643736 --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,37 @@ +[target.'cfg(all(target_arch = "arm", target_os = "none"))'] +# uncomment ONE of these three option to make `cargo run` start a GDB session +# which option to pick depends on your system +# runner = "arm-none-eabi-gdb -q -x jlink.gdb" +# runner = "gdb-multiarch -q -x jlink.gdb" +# runner = "gdb -q -x openocd.gdb" +runner = "gdb-multiarch -q -x jlink.gdb" + +rustflags = [ + # This is needed if your flash or ram addresses are not aligned to 0x10000 in memory.x + # See https://github.com/rust-embedded/cortex-m-quickstart/pull/95 + "-C", "link-arg=--nmagic", + + # LLD (shipped with the Rust toolchain) is used as the default linker + "-C", "link-arg=-Tlink.x", + + # if you run into problems with LLD switch to the GNU linker by commenting out + # this line + # "-C", "linker=arm-none-eabi-ld", + + # if you need to link to pre-compiled C libraries provided by a C toolchain + # use GCC as the linker by commenting out both lines above and then + # uncommenting the three lines below + # "-C", "linker=arm-none-eabi-gcc", + # "-C", "link-arg=-Wl,-Tlink.x", + # "-C", "link-arg=-nostartfiles", +] + +[build] +# Pick ONE of these compilation targets +# target = "thumbv6m-none-eabi" # Cortex-M0 and Cortex-M0+ +# target = "thumbv7m-none-eabi" # Cortex-M3 +# target = "thumbv7em-none-eabi" # Cortex-M4 and Cortex-M7 (no FPU) +target = "thumbv7em-none-eabihf" # Cortex-M4F and Cortex-M7F (with FPU) +# target = "thumbv8m.base-none-eabi" # Cortex-M23 +# target = "thumbv8m.main-none-eabi" # Cortex-M33 (no FPU) +# target = "thumbv8m.main-none-eabihf" # Cortex-M33 (with FPU) \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index dca515c..b3a9b05 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -14,7 +14,7 @@ "device": "VA41620", "svdFile": "./va108xx-rs/svd/va416xx-base.svd", "preLaunchTask": "rust: cargo build led blinky", - "executable": "${workspaceFolder}/target/thumbv6m-none-eabi/debug/examples/blinky-leds", + "executable": "${workspaceFolder}/target/thumbv7em-none-eabihf/debug/examples/blinky", "interface": "swd", "runToMain": true, }, diff --git a/jlink.gdb b/jlink.gdb new file mode 100644 index 0000000..20ff2d5 --- /dev/null +++ b/jlink.gdb @@ -0,0 +1,10 @@ +target remote localhost:2331 + +monitor reset + +# *try* to stop at the user entry point (it might be gone due to inlining) +break main + +load + +continue diff --git a/memory.x b/memory.x new file mode 100644 index 0000000..4d487bb --- /dev/null +++ b/memory.x @@ -0,0 +1,14 @@ +MEMORY +{ + FLASH : ORIGIN = 0x00000000, LENGTH = 0x40000 /* 256K */ + /* RAM is a mandatory region. This RAM refers to the SRAM_0 */ + RAM : ORIGIN = 0x1FFF8000, LENGTH = 0x08000 /* 32K */ + SRAM_1 : ORIGIN = 0x20000000, LENGTH = 0x08000 /* 32K */ +} + +/* This is where the call stack will be allocated. */ +/* The stack is of the full descending type. */ +/* NOTE Do NOT modify `_stack_start` unless you know what you are doing */ +/* SRAM_0 can be used for all busses: Instruction, Data and System */ +/* SRAM_1 only supports the system bus */ +_stack_start = ORIGIN(RAM) + LENGTH(RAM); diff --git a/va416xx-hal b/va416xx-hal index 7aa367e..d59bd2b 160000 --- a/va416xx-hal +++ b/va416xx-hal @@ -1 +1 @@ -Subproject commit 7aa367e9eaaa774f86ef55539b245484e6c7c4fc +Subproject commit d59bd2b41d0c38de187f1e59e410cb0e60953a1f