rust:rust_on_rp_install

Raspberry Pi Pico 開発環境のインストール

Rust を最新に更新する🤔

$ rustup self update

info: checking for self-update
  rustup unchanged - 1.26.0

$ rustup update stable

info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: latest update on 2023-12-07, rust version 1.74.1 (a28077b28 2023-12-04)
info: downloading component 'rust-std' for 'arm-unknown-linux-gnueabihf'
 20.8 MiB /  20.8 MiB (100 %)  14.4 KiB/s in  1m 36s ETA:  0s
info: downloading component 'rust-src'
  2.4 MiB /   2.4 MiB (100 %) 472.4 KiB/s in  5s ETA:  0s
info: downloading component 'cargo'
  8.2 MiB /   8.2 MiB (100 %)   1.1 MiB/s in 28s ETA:  0s    
info: downloading component 'clippy'
info: downloading component 'rust-docs'
 14.4 MiB /  14.4 MiB (100 %)   3.9 MiB/s in  3s ETA:  0s
info: downloading component 'rust-std'
 25.8 MiB /  25.8 MiB (100 %)   3.4 MiB/s in  8s ETA:  0s
info: downloading component 'rustc'
 58.2 MiB /  58.2 MiB (100 %)   1.4 MiB/s in 38s ETA:  0s    
info: downloading component 'rustfmt'
  2.4 MiB /   2.4 MiB (100 %)   1.5 MiB/s in  1s ETA:  0s
info: removing previous version of component 'rust-std' for 'arm-unknown-linux-gnueabihf'
info: removing previous version of component 'rust-src'
info: removing previous version of component 'cargo'
info: removing previous version of component 'clippy'
info: removing previous version of component 'rust-docs'
info: removing previous version of component 'rust-std'
info: removing previous version of component 'rustc'
info: removing previous version of component 'rustfmt'
info: installing component 'rust-std' for 'arm-unknown-linux-gnueabihf'
 20.8 MiB /  20.8 MiB (100 %)   8.7 MiB/s in  3s ETA:  0s
info: installing component 'rust-src'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
 14.4 MiB /  14.4 MiB (100 %)   4.6 MiB/s in  2s ETA:  0s
info: installing component 'rust-std'
 25.8 MiB /  25.8 MiB (100 %)   8.6 MiB/s in  3s ETA:  0s
info: installing component 'rustc'
 58.2 MiB /  58.2 MiB (100 %)   8.1 MiB/s in  7s ETA:  0s
info: installing component 'rustfmt'

  stable-x86_64-unknown-linux-gnu updated - rustc 1.74.1 (a28077b28 2023-12-04) (from rustc 1.74.0 (79e9716c9 2023-11-13))

info: checking for self-update

RP2040 ターゲットへクロスコンパイルするのに必要な thumbv6m-none-eabi ターゲットを追加する🤔

$ rustup target add thumbv6m-none-eabi

info: downloading component 'rust-std' for 'thumbv6m-none-eabi'
info: installing component 'rust-std' for 'thumbv6m-none-eabi'

RP2040 USB ブートローダー用の UF2 イメージ作成ツール (elf2uf2-rs) をインストールする🤔

$ cargo install elf2uf2-rs --locked

    Updating crates.io index
  Downloaded elf2uf2-rs v1.3.8
  Downloaded 1 crate (50.8 KB) in 1.86s
  Installing elf2uf2-rs v1.3.8
    Updating crates.io index
    Updating crates.io index
  Downloaded textwrap v0.16.0
  Downloaded clap_lex v0.2.4
  Downloaded unicode-ident v1.0.9
  Downloaded clap_derive v3.2.25
  Downloaded os_str_bytes v6.5.1
  Downloaded num_cpus v1.15.0
  Downloaded pbr v1.1.1
  Downloaded scopeguard v1.1.0
  Downloaded quote v1.0.28
  Downloaded proc-macro2 v1.0.60
  Downloaded clap v3.2.25
  Downloaded libc v0.2.146
  Downloaded zerocopy v0.6.1
  Downloaded zerocopy-derive v0.3.2
  Downloaded assert_into v1.1.0
  Downloaded bitflags v2.0.2
  Downloaded serialport v4.2.1
  Downloaded sysinfo v0.28.4
  Downloaded 18 crates (2.0 MB) in 2.09s
   Compiling autocfg v1.1.0
   Compiling libc v0.2.146
   Compiling proc-macro2 v1.0.60
   Compiling cfg-if v1.0.0
   Compiling quote v1.0.28
   Compiling crossbeam-utils v0.8.16
   Compiling unicode-ident v1.0.9
   Compiling version_check v0.9.4
   Compiling memoffset v0.9.0
   Compiling syn v1.0.109
   Compiling crossbeam-epoch v0.9.15
   Compiling scopeguard v1.1.0
   Compiling proc-macro-error-attr v1.0.4
   Compiling pkg-config v0.3.27
   Compiling libudev-sys v0.1.4
   Compiling crossbeam-channel v0.5.8
   Compiling proc-macro-error v1.0.4
   Compiling rayon-core v1.11.0
   Compiling crossbeam-deque v0.8.3
   Compiling num_cpus v1.15.0
   Compiling indexmap v1.9.3
   Compiling bitflags v1.3.2
   Compiling hashbrown v0.12.3
   Compiling os_str_bytes v6.5.1
   Compiling heck v0.4.1
   Compiling once_cell v1.18.0
   Compiling either v1.8.1
   Compiling static_assertions v1.1.0
   Compiling nix v0.26.2
   Compiling rayon v1.7.0
   Compiling clap_lex v0.2.4
   Compiling zerocopy-derive v0.3.2
   Compiling clap_derive v3.2.25
   Compiling libudev v0.3.0
   Compiling atty v0.2.14
   Compiling termcolor v1.2.0
   Compiling byteorder v1.4.3
   Compiling textwrap v0.16.0
   Compiling bitflags v2.0.2
   Compiling strsim v0.10.0
   Compiling serialport v4.2.1
   Compiling zerocopy v0.6.1
   Compiling sysinfo v0.28.4
   Compiling pbr v1.1.1
   Compiling assert_into v1.1.0
   Compiling clap v3.2.25
   Compiling elf2uf2-rs v1.3.8
    Finished release [optimized] target(s) in 50.34s
  Installing /home/tomoyan/.cargo/bin/elf2uf2-rs
   Installed package `elf2uf2-rs v1.3.8` (executable `elf2uf2-rs`)

rp2040-project-template が依存する flip-link をインストールする🤔

$ cargo install flip-link

    Updating crates.io index
  Downloaded flip-link v0.1.7
  Downloaded 1 crate (22.5 KB) in 1.76s
  Installing flip-link v0.1.7
    Updating crates.io index
  Downloaded libc v0.2.151
  Downloaded 1 crate (736.6 KB) in 1.91s
   Compiling libc v0.2.151
   Compiling cfg-if v1.0.0
   Compiling log v0.4.20
   Compiling memchr v2.6.4
   Compiling env_logger v0.10.1
   Compiling object v0.31.1
   Compiling getrandom v0.2.11
   Compiling flip-link v0.1.7
    Finished release [optimized] target(s) in 12.02s
  Installing /home/tomoyan/.cargo/bin/flip-link
   Installed package `flip-link v0.1.7` (executable `flip-link`)

IEEE 1149.1標準 JTAGインタフェースで SWD ピンを使用してフラッシュする場合は probe-rs をインストールする🤔

$ cargo install probe-rs --features cli --locked

    Updating crates.io index
  Downloaded probe-rs v0.21.1
  Downloaded 1 crate (2.1 MB) in 2.19s
  Installing probe-rs v0.21.1
    Updating crates.io index
warning: package `ahash v0.7.6` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
    Updating crates.io index
  Downloaded Inflector v0.11.4
  Downloaded cassowary v0.3.0
  Downloaded inlinable_string v0.1.15
  Downloaded syn v2.0.32
  Downloaded h2 v0.3.20
  Downloaded sharded-slab v0.1.4
  Downloaded defmt-parser v0.3.3
  Downloaded git-version-macro v0.3.5
  Downloaded scroll_derive v0.11.1
  Downloaded tracing-serde v0.1.3
  Downloaded utf8-width v0.1.6
  Downloaded schemafy_core v0.6.0
  Downloaded termtree v0.4.1
  Downloaded defmt-json-schema v0.1.0
  Downloaded matchers v0.1.0
  Downloaded git-version v0.3.5
  Downloaded serde_repr v0.1.15
  Downloaded proc-macro2-diagnostics v0.10.1
  Downloaded byte-unit v4.0.19
  Downloaded uncased v0.9.9
  Downloaded schemafy_lib v0.6.0
  Downloaded ihex v3.0.0
  Downloaded slab v0.4.8
  Downloaded pretty_env_logger v0.5.0
  Downloaded time-macros v0.2.10
  Downloaded overload v0.1.1
  Downloaded dunce v1.0.4
  Downloaded httpdate v1.0.2
  Downloaded serde_plain v1.0.1
  Downloaded jep106 v0.2.8
  Downloaded tracing-log v0.1.3
  Downloaded pear v0.2.7
  Downloaded nu-ansi-term v0.46.0
  Downloaded bytemuck_derive v1.4.1
  Downloaded boolean_expression v0.3.11
  Downloaded ahash v0.7.6
  Downloaded csv-core v0.1.10
  Downloaded pin-project-lite v0.2.12
  Downloaded scroll v0.11.0
  Downloaded xmlparser v0.13.5
  Downloaded pear_codegen v0.2.7
  Downloaded cargo_toml v0.16.3
  Downloaded svd-rs v0.14.2
  Downloaded jaylink v0.3.0
  Downloaded roxmltree v0.18.0
  Downloaded thiserror-core v1.0.38
  Downloaded itm v0.9.0-rc.1
  Downloaded thiserror-core-impl v1.0.38
  Downloaded svg v0.14.0
  Downloaded bitmatch v0.1.1
  Downloaded strum_macros v0.25.1
  Downloaded uriparse v0.6.4
  Downloaded kmp v0.1.1
  Downloaded plain v0.2.3
  Downloaded bytesize v1.2.0
  Downloaded xmas-elf v0.9.0
  Downloaded svd-parser v0.14.2
  Downloaded probe-rs-target v0.21.1
  Downloaded toml v0.8.2
  Downloaded openssl-sys v0.9.90
  Downloaded serde_yaml v0.9.25
  Downloaded unsafe-libyaml v0.2.9
  Downloaded indoc v2.0.3
  Downloaded figment v0.10.10
  Downloaded defmt-decoder v0.3.9
  Downloaded ron v0.8.1
  Downloaded base64 v0.21.4
  Downloaded cpp_demangle v0.4.2
  Downloaded cargo_metadata v0.18.0
  Downloaded yansi v1.0.0-rc
  Downloaded uf2-decode v0.2.0
  Downloaded toml_edit v0.20.2
  Downloaded rusb v0.9.3
  Downloaded itertools v0.9.0
  Downloaded unicode-linebreak v0.1.4
  Downloaded regex-automata v0.1.10
  Downloaded schemafy v0.6.0
  Downloaded capstone v0.11.0
  Downloaded time v0.3.23
  Downloaded itertools v0.11.0
  Downloaded goblin v0.7.1
  Downloaded portable-atomic v1.4.1
  Downloaded tracing-subscriber v0.3.17
  Downloaded gdbstub v0.6.6
  Downloaded openssl v0.10.55
  Downloaded libusb1-sys v0.6.4
  Downloaded regex-syntax v0.6.29
  Downloaded ratatui v0.23.0
  Downloaded hidapi v2.4.1
  Downloaded csv v1.2.2
  Downloaded encoding_rs v0.8.32
  Downloaded capstone-sys v0.15.0
  Downloaded 92 crates (12.1 MB) in 6.43s (largest was `capstone-sys` at 4.9 MB)
   Compiling proc-macro2 v1.0.66
   Compiling unicode-ident v1.0.11
   Compiling serde v1.0.188
   Compiling libc v0.2.147
   Compiling memchr v2.5.0
   Compiling cfg-if v1.0.0
   Compiling autocfg v1.1.0
   Compiling syn v1.0.109
   Compiling cc v1.0.79
   Compiling version_check v0.9.4
   Compiling quote v1.0.31
   Compiling syn v2.0.32
   Compiling pkg-config v0.3.27
   Compiling once_cell v1.18.0
   Compiling itoa v1.0.9
   Compiling rustix v0.38.4
   Compiling aho-corasick v1.0.2
   Compiling regex-syntax v0.7.4
   Compiling linux-raw-sys v0.4.3
   Compiling regex-automata v0.3.3
   Compiling serde_derive v1.0.188
   Compiling fnv v1.0.7
   Compiling bitflags v1.3.2
   Compiling pin-project-lite v0.2.12
   Compiling thiserror v1.0.49
   Compiling ryu v1.0.15
   Compiling thiserror-impl v1.0.49
   Compiling regex v1.9.1
   Compiling ahash v0.7.6
   Compiling equivalent v1.0.1
   Compiling hashbrown v0.14.0
   Compiling log v0.4.20
   Compiling bitflags v2.3.3
   Compiling mio v0.8.8
   Compiling getrandom v0.2.10
   Compiling indexmap v2.0.0
   Compiling tracing-core v0.1.31
   Compiling is-terminal v0.4.9
   Compiling openssl-sys v0.9.90
   Compiling lock_api v0.4.10
   Compiling scopeguard v1.2.0
   Compiling byteorder v1.4.3
   Compiling futures-core v0.3.28
   Compiling bytes v1.4.0
   Compiling static_assertions v1.1.0
   Compiling heck v0.4.1
   Compiling adler v1.0.2
   Compiling smallvec v1.11.0
   Compiling rustversion v1.0.14
   Compiling miniz_oxide v0.7.1
   Compiling lazy_static v1.4.0
   Compiling semver v1.0.18
   Compiling unicode-width v0.1.10
   Compiling typenum v1.16.0
   Compiling hashbrown v0.12.3
   Compiling serde_spanned v0.6.3
   Compiling toml_datetime v0.6.3
   Compiling tracing-attributes v0.1.26
   Compiling socket2 v0.5.3
   Compiling num_cpus v1.16.0
   Compiling generic-array v0.14.7
   Compiling slab v0.4.8
   Compiling serde_json v1.0.107
   Compiling ident_case v1.0.1
   Compiling futures-task v0.3.28
   Compiling winnow v0.5.0
   Compiling radium v0.7.0
   Compiling strsim v0.10.0
   Compiling crc32fast v1.3.2
   Compiling either v1.9.0
   Compiling darling_core v0.14.4
   Compiling tracing v0.1.37
   Compiling tokio v1.32.0
   Compiling unicode-linebreak v0.1.4
   Compiling indexmap v1.9.3
   Compiling num-traits v0.2.17
   Compiling thiserror-core v1.0.38
   Compiling foreign-types-shared v0.1.1
   Compiling openssl v0.10.55
   Compiling proc-macro-hack v0.5.20+deprecated
   Compiling stable_deref_trait v1.2.0
   Compiling tap v1.0.1
   Compiling futures-util v0.3.28
   Compiling wyz v0.5.1
   Compiling http v0.2.9
   Compiling toml_edit v0.19.15
   Compiling foreign-types v0.3.2
   Compiling rustc_version v0.4.0
   Compiling darling_macro v0.14.4
   Compiling thiserror-core-impl v1.0.38
   Compiling openssl-macros v0.1.1
   Compiling libusb1-sys v0.6.4
   Compiling libudev-sys v0.1.4
   Compiling backtrace v0.3.68
   Compiling proc-macro2-diagnostics v0.10.1
   Compiling gimli v0.27.3
   Compiling futures-channel v0.3.28
   Compiling httparse v1.8.0
   Compiling futures-io v0.3.28
   Compiling utf8parse v0.2.1
   Compiling signal-hook v0.3.17
   Compiling pin-utils v0.1.0
   Compiling futures-sink v0.3.28
   Compiling native-tls v0.2.11
   Compiling parking_lot_core v0.9.8
   Compiling funty v2.0.0
   Compiling rustc-demangle v0.1.23
   Compiling tinyvec_macros v0.1.1
   Compiling tinyvec v1.6.0
   Compiling addr2line v0.20.0
   Compiling bitvec v1.0.1
   Compiling tokio-util v0.7.8
   Compiling schemafy_core v0.6.0
   Compiling flate2 v1.0.27
   Compiling darling v0.14.4
   Compiling heapless v0.7.16
   Compiling proc-macro-crate v1.3.1
   Compiling Inflector v0.11.4
   Compiling uriparse v0.6.4
   Compiling twox-hash v1.6.3
   Compiling object v0.31.1
   Compiling signal-hook-registry v1.4.1
   Compiling paste v1.0.14
   Compiling try-lock v0.2.4
   Compiling base64 v0.21.4
   Compiling openssl-probe v0.1.5
   Compiling smawk v0.3.1
   Compiling percent-encoding v2.3.0
   Compiling anyhow v1.0.75
   Compiling yansi v1.0.0-rc
   Compiling binrw_derive v0.12.0
   Compiling form_urlencoded v1.2.0
   Compiling want v0.3.1
   Compiling schemafy_lib v0.6.0
   Compiling ruzstd v0.4.0
   Compiling git-version-macro v0.3.5
   Compiling deku_derive v0.16.0
   Compiling h2 v0.3.20
   Compiling unicode-normalization v0.1.22
   Compiling anstyle-parse v0.2.1
   Compiling crypto-common v0.1.6
   Compiling block-buffer v0.10.4
   Compiling http-body v0.4.5
   Compiling toml_edit v0.20.2
   Compiling itertools v0.9.0
   Compiling strum_macros v0.24.3
   Compiling strum_macros v0.25.1
   Compiling spin v0.9.8
   Compiling nix v0.26.2
   Compiling hash32 v0.2.1
   Compiling jep106 v0.2.8
   Compiling bytemuck_derive v1.4.1
   Compiling hidapi v2.4.1
   Compiling csv-core v0.1.10
   Compiling capstone-sys v0.15.0
   Compiling socket2 v0.4.9
   Compiling uncased v0.9.9
   Compiling owo-colors v3.5.0
   Compiling anstyle v1.0.1
   Compiling time-core v0.1.1
   Compiling anstyle-query v1.0.0
   Compiling unicode-bidi v0.3.13
   Compiling httpdate v1.0.2
   Compiling portable-atomic v1.4.1
   Compiling unsafe-libyaml v0.2.9
   Compiling tower-service v0.3.2
   Compiling is_ci v1.1.1
   Compiling cpp_demangle v0.4.2
   Compiling colorchoice v1.0.0
   Compiling regex-syntax v0.6.29
   Compiling rusb v0.9.3
   Compiling binrw v0.12.0
   Compiling camino v1.1.6
   Compiling boolean_expression v0.3.11
   Compiling anstream v0.5.0
   Compiling supports-color v2.0.0
   Compiling hyper v0.14.27
   Compiling serde_yaml v0.9.25
   Compiling regex-automata v0.1.10
   Compiling idna v0.4.0
   Compiling probe-rs-target v0.21.1
   Compiling time-macros v0.2.10
   Compiling rand_core v0.6.4
   Compiling bytemuck v1.14.0
   Compiling csv v1.2.2
   Compiling strum v0.25.0
   Compiling strum v0.24.1
   Compiling toml v0.8.2
   Compiling digest v0.10.7
   Compiling deku v0.16.0
   Compiling parking_lot v0.12.1
   Compiling libudev v0.3.0
   Compiling git-version v0.3.5
   Compiling backtrace-ext v0.2.1
   Compiling schemafy v0.6.0
   Compiling object v0.32.1
   Compiling signal-hook-mio v0.2.3
   Compiling tokio-native-tls v0.3.1
   Compiling pear_codegen v0.2.7
   Compiling textwrap v0.15.2
   Compiling parse_int v0.6.0
   Compiling gimli v0.28.0
   Compiling nibble_vec v0.1.0
   Compiling supports-hyperlinks v2.1.0
   Compiling supports-unicode v2.0.0
   Compiling bincode v1.3.3
   Compiling serde_plain v1.0.1
   Compiling scroll_derive v0.11.1
   Compiling miette-derive v5.10.0
   Compiling terminal_size v0.1.17
   Compiling figment v0.10.10
   Compiling unicode-segmentation v1.10.1
   Compiling option-ext v0.2.0
   Compiling endian-type v0.1.2
   Compiling clap_lex v0.5.0
   Compiling cpufeatures v0.2.9
   Compiling array-init v2.1.0
   Compiling minimal-lexical v0.2.1
   Compiling overload v0.1.1
   Compiling ppv-lite86 v0.2.17
   Compiling xmlparser v0.13.5
   Compiling md5 v0.7.0
   Compiling inlinable_string v0.1.15
   Compiling humantime v2.1.0
   Compiling zero v0.1.3
   Compiling num_threads v0.1.6
   Compiling termcolor v1.2.0
   Compiling env_logger v0.10.0
   Compiling time v0.3.23
   Compiling xmas-elf v0.9.0
   Compiling miette v5.10.0
   Compiling pear v0.2.7
   Compiling roxmltree v0.18.0
   Compiling esp-idf-part v0.4.1
   Compiling rand_chacha v0.3.1
   Compiling nu-ansi-term v0.46.0
   Compiling itertools v0.11.0
   Compiling nom v7.1.3
   Compiling sha2 v0.10.8
   Compiling clap_builder v4.4.0
   Compiling radix_trie v0.2.1
   Compiling dirs-sys v0.4.1
   Compiling scroll v0.11.0
   Compiling probe-rs v0.21.1
   Compiling toml v0.7.8
   Compiling hyper-tls v0.5.0
   Compiling crossterm v0.27.0
   Compiling serialport v4.2.2
   Compiling url v2.4.0
   Compiling matchers v0.1.0
   Compiling bitmatch v0.1.1
   Compiling serde_urlencoded v0.7.1
   Compiling console v0.15.7
   Compiling tracing-log v0.1.3
   Compiling sharded-slab v0.1.4
   Compiling colored v2.0.4
   Compiling svd-rs v0.14.2
   Compiling clap_derive v4.4.0
   Compiling tracing-serde v0.1.3
   Compiling fd-lock v3.0.13
   Compiling defmt-parser v0.3.3
   Compiling defmt-json-schema v0.1.0
   Compiling cargo-platform v0.1.3
   Compiling serde_repr v0.1.15
   Compiling thread_local v1.1.7
   Compiling memmap2 v0.5.10
   Compiling encoding_rs v0.8.32
   Compiling mime v0.3.17
   Compiling managed v0.8.0
   Compiling number_prefix v0.4.0
   Compiling plain v0.2.3
   Compiling indoc v2.0.3
   Compiling slip-codec v0.3.4
   Compiling fallible-iterator v0.3.0
   Compiling cassowary v0.3.0
   Compiling ipnet v2.8.0
   Compiling home v0.5.5
   Compiling dissimilar v1.0.7
   Compiling utf8-width v0.1.6
   Compiling byte-unit v4.0.19
   Compiling defmt-decoder v0.3.9
   Compiling rustyline v12.0.0
   Compiling reqwest v0.11.22
   Compiling capstone v0.11.0
   Compiling ratatui v0.23.0
   Compiling addr2line v0.21.0
   Compiling espflash v2.1.0
   Compiling indicatif v0.17.7
   Compiling goblin v0.7.1
   Compiling gdbstub v0.6.6
   Compiling tracing-subscriber v0.3.17
   Compiling clap v4.4.0
   Compiling cargo_metadata v0.18.0
   Compiling svd-parser v0.14.2
   Compiling itm v0.9.0-rc.1
   Compiling enum-primitive-derive v0.2.2
   Compiling jaylink v0.3.0
   Compiling directories v5.0.1
   Compiling rand v0.8.5
   Compiling pretty_env_logger v0.5.0
   Compiling cargo_toml v0.16.3
   Compiling textwrap v0.16.0
   Compiling ron v0.8.1
   Compiling sanitize-filename v0.5.0
   Compiling terminal_size v0.3.0
   Compiling uf2-decode v0.2.0
   Compiling kmp v0.1.1
   Compiling termtree v0.4.1
   Compiling ihex v3.0.0
   Compiling bytesize v1.2.0
   Compiling dunce v1.0.4
   Compiling svg v0.14.0
   Compiling bitfield v0.14.0
    Finished release [optimized] target(s) in 9m 56s
  Installing /home/tomoyan/.cargo/bin/cargo-embed
  Installing /home/tomoyan/.cargo/bin/cargo-flash
  Installing /home/tomoyan/.cargo/bin/probe-rs
   Installed package `probe-rs v0.21.1` (executables `cargo-embed`, `cargo-flash`, `probe-rs`)

公式: rp-rs/rp2040-project-template: A basic rp2040-hal project with blinky and rtt logging example code. With this you can quickly get started on a new rp2040 project 翻訳

cargo-generateのインストール

$ cargo install cargo-generate

    Updating crates.io index
  Downloaded cargo-generate v0.18.5
  Downloaded 1 crate (95.0 KB) in 2.28s
  Installing cargo-generate v0.18.5
    Updating crates.io index
  Downloaded env_logger v0.10.1
  Downloaded cvt v0.1.2
  Downloaded bstr v1.8.0
  Downloaded anymap2 v0.13.0
  Downloaded anstyle v1.0.4
  Downloaded aho-corasick v1.1.2
  Downloaded clap_lex v0.6.0
  Downloaded bitflags v2.4.1
  Downloaded ahash v0.8.6
  Downloaded clap_builder v4.4.8
  Downloaded cpufeatures v0.2.11
  Downloaded git2 v0.18.1
  Downloaded getrandom v0.2.11
  Downloaded gix-config-value v0.14.0
  Downloaded clap v4.4.8
  Downloaded gix-ref v0.38.0
  Downloaded number_prefix v0.4.0
  Downloaded parking_lot_core v0.9.9
  Downloaded shell-words v1.1.0
  Downloaded powerfmt v0.2.0
  Downloaded gix-utils v0.1.5
  Downloaded normpath v1.1.1
  Downloaded paste v1.0.14
  Downloaded doc-comment v0.3.3
  Downloaded num_threads v0.1.6
  Downloaded thiserror v1.0.50
  Downloaded time-core v0.1.2
  Downloaded serde_spanned v0.6.4
  Downloaded globset v0.4.13
  Downloaded gix-actor v0.28.0
  Downloaded faster-hex v0.8.1
  Downloaded remove_dir_all v0.8.2
  Downloaded pest_generator v2.7.5
  Downloaded path-absolutize v3.1.1
  Downloaded termcolor v1.4.0
  Downloaded smartstring v1.0.1
  Downloaded thread_local v1.1.7
  Downloaded thiserror-impl v1.0.50
  Downloaded sha1_smol v1.0.0
  Downloaded pest_derive v2.7.5
  Downloaded errno v0.3.7
  Downloaded ignore v0.4.20
  Downloaded unicode-bom v2.0.3
  Downloaded typenum v1.17.0
  Downloaded num-traits v0.2.17
  Downloaded dialoguer v0.11.0
  Downloaded semver v1.0.20
  Downloaded smallvec v1.11.2
  Downloaded sha2 v0.10.8
  Downloaded lock_api v0.4.11
  Downloaded jobserver v0.1.27
  Downloaded indexmap v2.1.0
  Downloaded time-macros v0.2.15
  Downloaded tempfile v3.8.1
  Downloaded indicatif v0.17.7
  Downloaded toml_datetime v0.6.5
  Downloaded pest_meta v2.7.5
  Downloaded gix-fs v0.8.0
  Downloaded zeroize v1.7.0
  Downloaded openssl-sys v0.9.95
  Downloaded proc-macro2 v1.0.69
  Downloaded ucd-trie v0.1.6
  Downloaded toml v0.8.8
  Downloaded serde_derive v1.0.192
  Downloaded memchr v2.6.4
  Downloaded serde v1.0.192
  Downloaded walkdir v2.4.0
  Downloaded const-random v0.1.17
  Downloaded auth-git2 v0.5.3
  Downloaded const-random-macro v0.1.16
  Downloaded sanitize-filename v0.5.0
  Downloaded path-dedot v3.1.1
  Downloaded fs-err v2.10.0
  Downloaded gix-validate v0.8.0
  Downloaded btoi v0.4.3
  Downloaded clap_derive v4.4.7
  Downloaded hashbrown v0.14.2
  Downloaded pest v2.7.5
  Downloaded deranged v0.3.9
  Downloaded gix-trace v0.1.3
  Downloaded kstring v2.0.0
  Downloaded liquid v0.26.4
  Downloaded terminal-prompt v0.2.3
  Downloaded liquid-derive v0.26.4
  Downloaded gix-sec v0.10.0
  Downloaded gix-path v0.10.0
  Downloaded gix-lock v11.0.0
  Downloaded portable-atomic v1.5.1
  Downloaded gix-features v0.36.0
  Downloaded fs_at v0.1.10
  Downloaded memmap2 v0.7.1
  Downloaded names v0.14.0
  Downloaded rhai_codegen v1.6.0
  Downloaded time v0.3.30
  Downloaded gix-tempfile v11.0.0
  Downloaded gix-hash v0.13.1
  Downloaded gix-date v0.8.0
  Downloaded gix-glob v0.14.0
  Downloaded liquid-lib v0.26.4
  Downloaded gix-object v0.38.0
  Downloaded zerocopy v0.7.26
  Downloaded liquid-core v0.26.4
  Downloaded winnow v0.5.19
  Downloaded toml_edit v0.21.0
  Downloaded syn v2.0.39
  Downloaded gix-config v0.31.0
  Downloaded prodash v26.2.2
  Downloaded regex v1.10.2
  Downloaded rustix v0.38.24
  Downloaded regex-syntax v0.8.2
  Downloaded rhai v1.16.3
  Downloaded regex-automata v0.4.3
  Downloaded libssh2-sys v0.3.0
  Downloaded libc v0.2.150
  Downloaded linux-raw-sys v0.4.11
  Downloaded libgit2-sys v0.16.1+1.7.1
  Downloaded libz-sys v1.1.12
  Downloaded 117 crates (14.4 MB) in 7.01s (largest was `libz-sys` at 3.0 MB)
   Compiling proc-macro2 v1.0.69
   Compiling unicode-ident v1.0.12
   Compiling libc v0.2.150
   Compiling thiserror v1.0.50
   Compiling autocfg v1.1.0
   Compiling memchr v2.6.4
   Compiling serde v1.0.192
   Compiling cfg-if v1.0.0
   Compiling aho-corasick v1.1.2
   Compiling quote v1.0.33
   Compiling regex-syntax v0.8.2
   Compiling syn v2.0.39
   Compiling jobserver v0.1.27
   Compiling bitflags v2.4.1
   Compiling once_cell v1.18.0
   Compiling cc v1.0.83
   Compiling regex-automata v0.4.3
   Compiling pkg-config v0.3.27
   Compiling vcpkg v0.2.15
   Compiling num-traits v0.2.17
   Compiling same-file v1.0.6
   Compiling powerfmt v0.2.0
   Compiling time-core v0.1.2
   Compiling bstr v1.8.0
   Compiling gix-trace v0.1.3
   Compiling thiserror-impl v1.0.50
   Compiling serde_derive v1.0.192
   Compiling rustix v0.38.24
   Compiling time-macros v0.2.15
   Compiling deranged v0.3.9
   Compiling walkdir v2.4.0
   Compiling num_threads v0.1.6
   Compiling linux-raw-sys v0.4.11
   Compiling itoa v1.0.9
   Compiling time v0.3.30
   Compiling libz-sys v1.1.12
   Compiling openssl-sys v0.9.95
   Compiling faster-hex v0.8.1
   Compiling gix-hash v0.13.1
   Compiling sha1_smol v1.0.0
   Compiling smallvec v1.11.2
   Compiling prodash v26.2.2
   Compiling regex v1.10.2
   Compiling gix-features v0.36.0
   Compiling lock_api v0.4.11
   Compiling crunchy v0.2.2
   Compiling ucd-trie v0.1.6
   Compiling fastrand v2.0.1
   Compiling parking_lot_core v0.9.9
   Compiling version_check v0.9.4
   Compiling libssh2-sys v0.3.0
   Compiling getrandom v0.2.11
   Compiling winnow v0.5.19
   Compiling scopeguard v1.2.0
   Compiling pest v2.7.5
   Compiling tiny-keccak v2.0.2
   Compiling lazy_static v1.4.0
   Compiling static_assertions v1.1.0
   Compiling tinyvec_macros v0.1.1
   Compiling percent-encoding v2.3.0
   Compiling tinyvec v1.6.0
   Compiling pest_meta v2.7.5
   Compiling tempfile v3.8.1
   Compiling home v0.5.5
   Compiling log v0.4.20
   Compiling gix-path v0.10.0
   Compiling pest_generator v2.7.5
   Compiling parking_lot v0.12.1
   Compiling unicode-normalization v0.1.22
   Compiling gix-fs v0.8.0
   Compiling gix-date v0.8.0
   Compiling btoi v0.4.3
   Compiling libgit2-sys v0.16.1+1.7.1
   Compiling unicode-bidi v0.3.13
   Compiling either v1.9.0
   Compiling itertools v0.10.5
   Compiling idna v0.4.0
   Compiling gix-actor v0.28.0
   Compiling pest_derive v2.7.5
   Compiling gix-tempfile v11.0.0
   Compiling const-random-macro v0.1.16
   Compiling form_urlencoded v1.2.0
   Compiling kstring v2.0.0
   Compiling ahash v0.8.6
   Compiling smartstring v1.0.1
   Compiling rand_core v0.6.4
   Compiling gix-utils v0.1.5
   Compiling gix-validate v0.8.0
   Compiling liquid-derive v0.26.4
   Compiling anymap2 v0.13.0
   Compiling unicode-width v0.1.11
   Compiling option-ext v0.2.0
   Compiling doc-comment v0.3.3
   Compiling equivalent v1.0.1
   Compiling ppv-lite86 v0.2.17
   Compiling portable-atomic v1.5.1
   Compiling hashbrown v0.14.2
   Compiling bitflags v1.3.2
   Compiling nix v0.26.4
   Compiling rand_chacha v0.3.1
   Compiling indexmap v2.1.0
   Compiling dirs-sys v0.4.1
   Compiling console v0.15.7
   Compiling liquid-core v0.26.4
   Compiling gix-object v0.38.0
   Compiling gix-lock v11.0.0
   Compiling const-random v0.1.17
   Compiling url v2.4.1
   Compiling serde_spanned v0.6.4
   Compiling toml_datetime v0.6.5
   Compiling memmap2 v0.7.1
   Compiling cvt v0.1.2
   Compiling fs-err v2.10.0
   Compiling paste v1.0.14
   Compiling anstyle v1.0.4
   Compiling anyhow v1.0.75
   Compiling heck v0.4.1
   Compiling unicode-segmentation v1.10.1
   Compiling zerocopy v0.7.26
   Compiling openssl-probe v0.1.5
   Compiling semver v1.0.20
   Compiling names v0.14.0
   Compiling fnv v1.0.7
   Compiling clap_lex v0.6.0
   Compiling clap_builder v4.4.8
   Compiling globset v0.4.13
   Compiling liquid-lib v0.26.4
   Compiling clap_derive v4.4.7
   Compiling fs_at v0.1.10
   Compiling gix-ref v0.38.0
   Compiling toml_edit v0.21.0
   Compiling dirs v5.0.1
   Compiling rand v0.8.5
   Compiling gix-config-value v0.14.0
   Compiling gix-glob v0.14.0
   Compiling is-terminal v0.4.9
   Compiling rhai_codegen v1.6.0
   Compiling path-dedot v3.1.1
   Compiling thread_local v1.1.7
   Compiling gix-sec v0.10.0
   Compiling terminal-prompt v0.2.3
   Compiling humantime v2.1.0
   Compiling shell-words v1.1.0
   Compiling zeroize v1.7.0
   Compiling normpath v1.1.1
   Compiling number_prefix v0.4.0
   Compiling termcolor v1.4.0
   Compiling unicode-bom v2.0.3
   Compiling env_logger v0.10.1
   Compiling gix-config v0.31.0
   Compiling rhai v1.16.3
   Compiling remove_dir_all v0.8.2
   Compiling indicatif v0.17.7
   Compiling dialoguer v0.11.0
   Compiling ignore v0.4.20
   Compiling path-absolutize v3.1.1
   Compiling toml v0.8.8
   Compiling liquid v0.26.4
   Compiling clap v4.4.8
   Compiling sanitize-filename v0.5.0
   Compiling git2 v0.18.1
   Compiling auth-git2 v0.5.3
   Compiling cargo-generate v0.18.5
    Finished release [optimized] target(s) in 6m 29s
   Replacing /home/tomoyan/.cargo/bin/cargo-generate
    Replaced package `cargo-generate v0.18.2` with `cargo-generate v0.18.5` (executable `cargo-generate`)

動作確認

$ cargo-generate -V

cargo generate 0.18.5

ローカルテンプレートからプロジェクトを作成する🤔

$ git clone --depth 1 https://github.com/rp-rs/rp2040-project-template.git

Cloning into 'rp2040-project-template'...
remote: Enumerating objects: 26, done.
remote: Counting objects: 100% (26/26), done.
remote: Compressing objects: 100% (22/22), done.
remote: Total 26 (delta 1), reused 16 (delta 0), pack-reused 0
Receiving objects: 100% (26/26), 16.25 KiB | 16.25 MiB/s, done.
Resolving deltas: 100% (1/1), done.

$ cargo generate --path ./rp2040-project-template

🤷   Project Name: haruo-rp2040
🔧   Destination: /home/tomoyan/my_projects/haruo-rp2040 ...
🔧   project-name: haruo-rp2040 ...
🔧   Generating template ...
🔧   Moving generated files into: `/home/tomoyan/my_projects/haruo-rp2040`...
🔧   Initializing a fresh Git repositoryDone! New project created /home/tomoyan/my_projects/haruo-rp2040

  • rust/rust_on_rp_install.txt
  • 最終更新: 2024/01/05 13:25
  • by ともやん