diff --git a/.cargo/config b/.cargo/config index 6486a00..c3517d1 100644 --- a/.cargo/config +++ b/.cargo/config @@ -1,13 +1,42 @@ +# +# Cargo Configuration for the https://github.com/rp-rs/rp-hal.git repository. +# +# Copyright (c) The RP-RS Developers, 2021 +# +# You might want to make a similar file in your own repository if you are +# writing programs for Raspberry Silicon microcontrollers. +# +# This file is MIT or Apache-2.0 as per the repository README.md file +# + [build] -# Instruction set of Cortex-M0+ +# Set the default target to match the Cortex-M0+ in the RP2040 target = "thumbv6m-none-eabi" -[target.'cfg(all(target_arch = "arm", target_os = "none"))'] +# Target specific options +[target.thumbv6m-none-eabi] +# Pass some extra options to rustc, some of which get passed on to the linker. +# +# * linker argument --nmagic turns off page alignment of sections (which saves +# flash space) +# * linker argument -Tlink.x tells the linker to use link.x as the linker +# script. This is usually provided by the cortex-m-rt crate, and by default +# the version in that crate will include a file called `memory.x` which +# describes the particular memory layout for your specific chip. +# * inline-threshold=5 makes the compiler more aggressive and inlining functions +# * no-vectorize-loops turns off the loop vectorizer (seeing as the M0+ doesn't +# have SIMD) rustflags = [ "-C", "link-arg=--nmagic", "-C", "link-arg=-Tlink.x", "-C", "inline-threshold=5", "-C", "no-vectorize-loops", ] + +# This runner will make a UF2 file and then copy it to a mounted RP2040 in USB +# Bootloader mode: runner = "elf2uf2-rs -d" + +# This runner will find a supported SWD debug probe and flash your RP2040 over +# SWD: # runner = "probe-run-rp --chip RP2040"