From 710ca71ba346acb7478119c58e869416154055ca Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 8 Nov 2021 01:14:25 +0100 Subject: [PATCH] added utility files --- .cargo/config.toml | 36 ++++++++++++++++++++++++++++++++++++ jlink.gdb | 10 ++++++++++ memory.x | 10 ++++++++++ 3 files changed, 56 insertions(+) create mode 100644 .cargo/config.toml create mode 100644 jlink.gdb create mode 100644 memory.x diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 0000000..dd54ddd --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,36 @@ +[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" + +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/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..1ca0e97 --- /dev/null +++ b/memory.x @@ -0,0 +1,10 @@ +MEMORY +{ + FLASH : ORIGIN = 0x00000000, LENGTH = 0x20000 /* 128K */ + RAM : ORIGIN = 0x10000000, 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 */ +_stack_start = ORIGIN(RAM) + LENGTH(RAM);