atsams-rs / atsamx7x-rust

Rust HAL, PACs, and examples for the Microship SAM E70/S70/V70/V71
Apache License 2.0
24 stars 11 forks source link

atsame70_xpro example fails to build with blinky_delay and blinky_irq #54

Closed cquick01 closed 6 months ago

cquick01 commented 1 year ago

Getting an error when trying to build the atsame70_xpro example. The other atsamv71_xult one builds fine.

error: linking with `rust-lld` failed: exit status: 1
  |
  = note: "rust-lld" "-flavor" "gnu" "/tmp/rustcvue7Jj/symbols.o" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_delay-873d777b61c44224.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o" "--as-needed" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/deps" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/debug/deps" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/atsame70q21b-99c3868bec83c264/out" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/cortex-m-bb856671e465605e/out" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/cortex-m-rt-6a7ae1b79b44e4b7/out" "-L" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib" "-Bstatic" "/tmp/rustcvue7Jj/libcortex_m_rt-a8a12616f111b1f5.rlib" "--start-group" "/tmp/rustcvue7Jj/libcortex_m-aaa8d6483869b2d6.rlib" "--end-group" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib/libcompiler_builtins-814a2ee6da8588fb.rlib" "-Bdynamic" "--eh-frame-hdr" "-znoexecstack" "-L" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib" "-o" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_delay-873d777b61c44224" "--gc-sections" "-Tlink.x"
  = note: rust-lld: error: undefined symbol: _SEGGER_RTT
          >>> referenced by lib.rs:175 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:175)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_delay-873d777b61c44224.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced by lib.rs:175 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:175)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_delay-873d777b61c44224.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced by lib.rs:181 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:181)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_delay-873d777b61c44224.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced 5 more times

error: could not compile `atsame70_xpro` due to previous error
warning: build failed, waiting for other jobs to finish...
error: linking with `rust-lld` failed: exit status: 1
  |
  = note: "rust-lld" "-flavor" "gnu" "/tmp/rustcjHhWm2/symbols.o" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_irq-59e0ab1a23c855ac.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o" "--as-needed" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/deps" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/debug/deps" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/atsame70q21b-99c3868bec83c264/out" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/cortex-m-bb856671e465605e/out" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/cortex-m-rt-6a7ae1b79b44e4b7/out" "-L" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib" "-Bstatic" "/tmp/rustcjHhWm2/libcortex_m_rt-a8a12616f111b1f5.rlib" "--start-group" "/tmp/rustcjHhWm2/libcortex_m-aaa8d6483869b2d6.rlib" "--end-group" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib/libcompiler_builtins-814a2ee6da8588fb.rlib" "-Bdynamic" "--eh-frame-hdr" "-znoexecstack" "-L" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib" "-o" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_irq-59e0ab1a23c855ac" "--gc-sections" "-Tlink.x"
  = note: rust-lld: error: undefined symbol: _SEGGER_RTT
          >>> referenced by lib.rs:175 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:175)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_irq-59e0ab1a23c855ac.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced by lib.rs:175 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:175)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_irq-59e0ab1a23c855ac.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced by lib.rs:181 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:181)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_irq-59e0ab1a23c855ac.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced 5 more times

error: could not compile `atsame70_xpro` due to previous error
Default host: x86_64-unknown-linux-gnu
rustup home:  /home/cquick/.rustup

installed toolchains
--------------------

stable-x86_64-unknown-linux-gnu (default)
1.63.0-x86_64-unknown-linux-gnu
1.69.0-x86_64-unknown-linux-gnu

installed targets for active toolchain
--------------------------------------

thumbv7em-none-eabihf
x86_64-unknown-linux-gnu

active toolchain
----------------

1.63.0-x86_64-unknown-linux-gnu (overridden by '/home/cquick/atsamx7x-rust/rust-toolchain.toml')
rustc 1.63.0 (4b91a6ea7 2022-08-08)
michalfita commented 1 year ago

I've just run cargo build on the tip of development branch and I don't see any issues. That's with Rust 1.63 as well.

What branch / version you're trying to build?

michalfita commented 1 year ago

Try cargo update first.

cquick01 commented 1 year ago

Sorry for not including more info. Now seeing the same issue on 2 separate machines. Both Ubuntu 22.04 running under WSL2. Will try on bare metal.

Running off development. Just trying to follow the two commands in the README.

➜  ~/atsamx7x-rust git:(development) $ rustup target add thumbv7em-none-eabihf
info: component 'rust-std' for target 'thumbv7em-none-eabihf' is up to date

➜  ~/atsamx7x-rust git:(development) $ cd boards/atsame70_xpro

➜  ~/atsamx7x-rust/boards/atsame70_xpro git:(development) $ git status
On branch development
Your branch is up to date with 'origin/development'.

nothing to commit, working tree clean

➜  ~/atsamx7x-rust/boards/atsame70_xpro git:(development) $ git --no-pager log -n1
commit 8b3258d33c1339eae4400817595aec2b540829cd (HEAD -> development, origin/development, origin/HEAD)
Author: Gabriel Górski <glaeqen@gmail.com>
Date:   Mon Jan 2 23:45:05 2023 +0100

    can: impl for `mcan` crate

    Adds an implementation for the mcan crate.

    Refer to #51.

➜  ~/atsamx7x-rust/boards/atsame70_xpro git:(development) $ cargo build --examples
    Updating crates.io index
   Compiling proc-macro2 v1.0.47
   Compiling quote v1.0.21
   Compiling unicode-ident v1.0.5
   Compiling syn v1.0.103
   Compiling semver-parser v0.7.0
   Compiling version_check v0.9.4
   Compiling cortex-m v0.7.6
   Compiling nb v1.0.0
   Compiling void v1.0.2
   Compiling vcell v0.1.3
   Compiling semver v1.0.14
   Compiling autocfg v1.1.0
   Compiling bitfield v0.13.2
   Compiling cortex-m-rt v0.7.1
   Compiling rustversion v1.0.9
   Compiling paste v1.0.9
   Compiling hashbrown v0.12.3
   Compiling heck v0.4.0
   Compiling byteorder v1.4.3
   Compiling atsame70q21b v0.25.0 (/home/cquick/atsamx7x-rust/pac/atsame70q21b)
   Compiling ufmt-write v0.1.0
   Compiling atsamx7x-hal v0.4.2 (/home/cquick/atsamx7x-rust/hal)
   Compiling stable_deref_trait v1.2.0
   Compiling rtic-monotonic v1.0.0
   Compiling usb-device v0.2.9
   Compiling bit-iter v1.1.1
   Compiling cfg-if v1.0.0
   Compiling rtic-core v1.0.0
   Compiling bare-metal v1.0.0
   Compiling panic-halt v0.2.0
   Compiling volatile-register v0.2.1
   Compiling nb v0.1.3
   Compiling semver v0.9.0
   Compiling hash32 v0.2.1
   Compiling proc-macro-error-attr v1.0.4
   Compiling proc-macro-error v1.0.4
   Compiling cortex-m-rtic v1.1.3
   Compiling embedded-hal v0.2.7
   Compiling indexmap v1.9.1
   Compiling rustc_version v0.2.3
   Compiling usbd-serial v0.1.1
   Compiling rustc_version v0.4.0
   Compiling bare-metal v0.2.5
   Compiling gcd v2.1.0
   Compiling fugit v0.3.6
   Compiling heapless v0.7.16
   Compiling mcan-core v0.2.2
   Compiling rtt-target v0.3.1
   Compiling panic-rtt-target v0.1.2
   Compiling rtic-syntax v1.0.2
   Compiling cortex-m-rt-macros v0.7.0
   Compiling strum_macros v0.24.3
   Compiling cortex-m-rtic-macros v1.1.5
   Compiling strum v0.24.1
   Compiling atsame70_xpro v0.4.2 (/home/cquick/atsamx7x-rust/boards/atsame70_xpro)
error: linking with `rust-lld` failed: exit status: 1
  |
  = note: "rust-lld" "-flavor" "gnu" "/tmp/rustc3kGhVL/symbols.o" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_delay-873d777b61c44224.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o" "--as-needed" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/deps" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/debug/deps" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/atsame70q21b-99c3868bec83c264/out" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/cortex-m-bb856671e465605e/out" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/cortex-m-rt-6a7ae1b79b44e4b7/out" "-L" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib" "-Bstatic" "/tmp/rustc3kGhVL/libcortex_m_rt-a8a12616f111b1f5.rlib" "--start-group" "/tmp/rustc3kGhVL/libcortex_m-aaa8d6483869b2d6.rlib" "--end-group" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib/libcompiler_builtins-814a2ee6da8588fb.rlib" "-Bdynamic" "--eh-frame-hdr" "-znoexecstack" "-L" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib" "-o" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_delay-873d777b61c44224" "--gc-sections" "-Tlink.x"
  = note: rust-lld: error: undefined symbol: _SEGGER_RTT
          >>> referenced by lib.rs:175 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:175)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_delay-873d777b61c44224.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced by lib.rs:175 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:175)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_delay-873d777b61c44224.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced by lib.rs:181 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:181)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_delay-873d777b61c44224.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced 5 more times

error: could not compile `atsame70_xpro` due to previous error
warning: build failed, waiting for other jobs to finish...
error: linking with `rust-lld` failed: exit status: 1
  |
  = note: "rust-lld" "-flavor" "gnu" "/tmp/rustc0JazgZ/symbols.o" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_irq-59e0ab1a23c855ac.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o" "--as-needed" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/deps" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/debug/deps" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/atsame70q21b-99c3868bec83c264/out" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/cortex-m-bb856671e465605e/out" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/cortex-m-rt-6a7ae1b79b44e4b7/out" "-L" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib" "-Bstatic" "/tmp/rustc0JazgZ/libcortex_m_rt-a8a12616f111b1f5.rlib" "--start-group" "/tmp/rustc0JazgZ/libcortex_m-aaa8d6483869b2d6.rlib" "--end-group" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib/libcompiler_builtins-814a2ee6da8588fb.rlib" "-Bdynamic" "--eh-frame-hdr" "-znoexecstack" "-L" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib" "-o" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_irq-59e0ab1a23c855ac" "--gc-sections" "-Tlink.x"
  = note: rust-lld: error: undefined symbol: _SEGGER_RTT
          >>> referenced by lib.rs:175 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:175)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_irq-59e0ab1a23c855ac.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced by lib.rs:175 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:175)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_irq-59e0ab1a23c855ac.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced by lib.rs:181 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:181)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_irq-59e0ab1a23c855ac.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced 5 more times

error: could not compile `atsame70_xpro` due to previous error

Cargo update gives this

➜  ~/atsamx7x-rust/boards/atsame70_xpro git:(development) $ cargo update
    Updating crates.io index
    Removing aho-corasick v0.7.19
    Updating atomic-polyfill v0.1.10 -> v0.1.11
    Removing bit_field v0.10.1
    Updating cortex-m v0.7.6 -> v0.7.7
    Updating cortex-m-rt v0.7.1 -> v0.7.3
    Updating cortex-m-rtic v1.1.3 -> v1.1.4
    Updating cortex-m-rtic-macros v1.1.5 -> v1.1.6
    Updating critical-section v0.2.7 -> v1.1.1
    Updating gcd v2.1.0 -> v2.3.0
    Updating heck v0.4.0 -> v0.4.1
    Updating indexmap v1.9.1 -> v1.9.3
    Removing lazy_static v1.4.0
    Removing memchr v2.5.0
    Updating nb v1.0.0 -> v1.1.0
    Updating paste v1.0.9 -> v1.0.12
    Updating proc-macro2 v1.0.47 -> v1.0.56
    Updating quote v1.0.21 -> v1.0.26
    Removing regex v1.7.0
    Removing regex-syntax v0.6.28
    Removing riscv v0.7.0
    Removing riscv-target v0.1.2
    Updating rtic-syntax v1.0.2 -> v1.0.3
    Updating rustversion v1.0.9 -> v1.0.12
    Updating semver v1.0.14 -> v1.0.17
    Updating spin v0.9.4 -> v0.9.8
    Updating syn v1.0.103 -> v1.0.109
    Updating unicode-ident v1.0.5 -> v1.0.8

But rebuilding still gives the same error, even after cargo clean.

Cargo check does pass, unsurprisingly since it looks like a linker error.

➜  ~/atsamx7x-rust/boards/atsame70_xpro git:(development) $ cargo check --examples
    Checking nb v1.1.0
    Checking void v1.0.2
    Checking vcell v0.1.3
    Checking bitfield v0.13.2
    Checking gcd v2.3.0
    Checking byteorder v1.4.3
    Checking ufmt-write v0.1.0
    Checking usb-device v0.2.9
    Checking stable_deref_trait v1.2.0
    Checking rtic-monotonic v1.0.0
    Checking bare-metal v1.0.0
    Checking bit-iter v1.1.1
    Checking rtic-core v1.0.0
    Checking cfg-if v1.0.0
    Checking panic-halt v0.2.0
    Checking nb v0.1.3
    Checking volatile-register v0.2.1
    Checking fugit v0.3.6
    Checking bare-metal v0.2.5
    Checking cortex-m-rt v0.7.3
    Checking strum v0.24.1
    Checking hash32 v0.2.1
    Checking embedded-hal v0.2.7
    Checking heapless v0.7.16
    Checking cortex-m v0.7.7
    Checking usbd-serial v0.1.1
    Checking mcan-core v0.2.2
    Checking rtt-target v0.3.1
    Checking atsame70q21b v0.25.0 (/home/cquick/atsamx7x-rust/pac/atsame70q21b)
    Checking panic-rtt-target v0.1.2
    Checking cortex-m-rtic v1.1.4
    Checking atsamx7x-hal v0.4.2 (/home/cquick/atsamx7x-rust/hal)
    Checking atsame70_xpro v0.4.2 (/home/cquick/atsamx7x-rust/boards/atsame70_xpro)
    Finished dev [unoptimized + debuginfo] target(s) in 7.76s

Thanks for any help

michalfita commented 1 year ago

Do you have Rust installed on the Windows host as well?

cquick01 commented 1 year ago

Nope, Rust is not installed on the Windows side. Does it need to be? Admittedly I am not nearly as experienced with Rust than say, Python... Thank you for your patience.

The steps I took (in Ubuntu under WSL) are as follows. Are there any dependencies or any other configurations/setup I may be missing?

  1. Install Rust with curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh, add source "$HOME/.cargo/env" to shell config and restart shell.
  2. Clone atsamx7x-rust
  3. Install the ARMv7-EM target: rustup target add thumbv7em-none-eabihf
  4. Build examples: cd boards/atsame70_xpro && cargo build --examples

I am also going to try building on a Manjaro laptop that I have laying around. I'll share those results soon.

Thanks again!

cquick01 commented 1 year ago

Unfortunately, getting the same error on Manjaro too... Was hoping WSL was the culprit somehow but that doesn't seem to be the case. I used the same steps as above to install Rust and everything.

cargo build actually does seem to pass, with just one warning (minor unused import), but of course doesn't produce the examples bins. But I can't get cargo build --examples working anywhere

$ pwd
/home/cquick/atsamx7x-rust/boards/atsame70_xpro
$ uname -a
Linux manjaro 6.1.26-1-MANJARO #1 SMP PREEMPT_DYNAMIC Wed Apr 26 22:07:35 UTC 2023 x86_64 GNU/Linux
$ rustup show
Default host: x86_64-unknown-linux-gnu
rustup home:  /home/cquick/.rustup

installed toolchains
--------------------

stable-x86_64-unknown-linux-gnu (default)
1.63.0-x86_64-unknown-linux-gnu

installed targets for active toolchain
--------------------------------------

thumbv7em-none-eabihf
x86_64-unknown-linux-gnu

active toolchain
----------------

1.63.0-x86_64-unknown-linux-gnu (overridden by '/home/cquick/atsamx7x-rust/rust-toolchain.toml')
rustc 1.63.0 (4b91a6ea7 2022-08-08)

Cargo build

$ cargo build
   Compiling proc-macro2 v1.0.47
   Compiling unicode-ident v1.0.5
   Compiling quote v1.0.21
   Compiling syn v1.0.103
   Compiling semver-parser v0.7.0
   Compiling version_check v0.9.4
   Compiling cortex-m v0.7.6
   Compiling nb v1.0.0
   Compiling void v1.0.2
   Compiling semver v1.0.14
   Compiling vcell v0.1.3
   Compiling autocfg v1.1.0
   Compiling bitfield v0.13.2
   Compiling rustversion v1.0.9
   Compiling cortex-m-rt v0.7.1
   Compiling hashbrown v0.12.3
   Compiling paste v1.0.9
   Compiling heck v0.4.0
   Compiling byteorder v1.4.3
   Compiling atsame70q21b v0.25.0 (/home/cquick/atsamx7x-rust/pac/atsame70q21b)
   Compiling stable_deref_trait v1.2.0
   Compiling rtic-monotonic v1.0.0
   Compiling atsamx7x-hal v0.4.2 (/home/cquick/atsamx7x-rust/hal)
   Compiling usb-device v0.2.9
   Compiling ufmt-write v0.1.0
   Compiling bit-iter v1.1.1
   Compiling cfg-if v1.0.0
   Compiling rtic-core v1.0.0
   Compiling bare-metal v1.0.0
   Compiling panic-halt v0.2.0
   Compiling nb v0.1.3
   Compiling semver v0.9.0
   Compiling volatile-register v0.2.1
   Compiling proc-macro-error-attr v1.0.4
   Compiling proc-macro-error v1.0.4
   Compiling cortex-m-rtic v1.1.3
   Compiling hash32 v0.2.1
   Compiling indexmap v1.9.1
   Compiling embedded-hal v0.2.7
   Compiling rustc_version v0.2.3
   Compiling usbd-serial v0.1.1
   Compiling gcd v2.1.0
   Compiling rustc_version v0.4.0
   Compiling fugit v0.3.6
   Compiling bare-metal v0.2.5
   Compiling mcan-core v0.2.2
   Compiling heapless v0.7.16
   Compiling rtt-target v0.3.1
   Compiling panic-rtt-target v0.1.2
   Compiling rtic-syntax v1.0.2
   Compiling cortex-m-rt-macros v0.7.0
   Compiling strum_macros v0.24.3
   Compiling cortex-m-rtic-macros v1.1.5
   Compiling strum v0.24.1
   Compiling atsame70_xpro v0.4.2 (/home/cquick/atsamx7x-rust/boards/atsame70_xpro)
warning: unused import: `hal::ehal::watchdog::WatchdogDisable`
 --> src/main.rs:9:9
  |
9 |     use hal::ehal::watchdog::WatchdogDisable;
  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: `atsame70_xpro` (bin "atsame70_xpro") generated 1 warning
    Finished dev [unoptimized + debuginfo] target(s) in 25.97s

Cargo build examples

$ cargo build --examples
   Compiling atsame70_xpro v0.4.2 (/home/cquick/atsamx7x-rust/boards/atsame70_xpro)
error: linking with `rust-lld` failed: exit status: 1
  |
  = note: "rust-lld" "-flavor" "gnu" "/tmp/rustcg9e169/symbols.o" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_irq-59e0ab1a23c855ac.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o" "--as-needed" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/deps" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/debug/deps" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/atsame70q21b-99c3868bec83c264/out" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/cortex-m-bb856671e465605e/out" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/cortex-m-rt-6a7ae1b79b44e4b7/out" "-L" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib" "-Bstatic" "/tmp/rustcg9e169/libcortex_m_rt-a8a12616f111b1f5.rlib" "--start-group" "/tmp/rustcg9e169/libcortex_m-aaa8d6483869b2d6.rlib" "--end-group" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib/libcompiler_builtins-814a2ee6da8588fb.rlib" "-Bdynamic" "--eh-frame-hdr" "-znoexecstack" "-L" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib" "-o" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_irq-59e0ab1a23c855ac" "--gc-sections" "-Tlink.x"
  = note: rust-lld: error: undefined symbol: _SEGGER_RTT
          >>> referenced by lib.rs:175 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:175)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_irq-59e0ab1a23c855ac.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced by lib.rs:175 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:175)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_irq-59e0ab1a23c855ac.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced by lib.rs:181 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:181)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_irq-59e0ab1a23c855ac.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced 5 more times

error: could not compile `atsame70_xpro` due to previous error
warning: build failed, waiting for other jobs to finish...
error: linking with `rust-lld` failed: exit status: 1
  |
  = note: "rust-lld" "-flavor" "gnu" "/tmp/rustcJHvQtT/symbols.o" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_delay-873d777b61c44224.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o" "--as-needed" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/deps" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/debug/deps" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/atsame70q21b-99c3868bec83c264/out" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/cortex-m-bb856671e465605e/out" "-L" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/build/cortex-m-rt-6a7ae1b79b44e4b7/out" "-L" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib" "-Bstatic" "/tmp/rustcJHvQtT/libcortex_m_rt-a8a12616f111b1f5.rlib" "--start-group" "/tmp/rustcJHvQtT/libcortex_m-aaa8d6483869b2d6.rlib" "--end-group" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib/libcompiler_builtins-814a2ee6da8588fb.rlib" "-Bdynamic" "--eh-frame-hdr" "-znoexecstack" "-L" "/home/cquick/.rustup/toolchains/1.63.0-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib" "-o" "/home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_delay-873d777b61c44224" "--gc-sections" "-Tlink.x"
  = note: rust-lld: error: undefined symbol: _SEGGER_RTT
          >>> referenced by lib.rs:175 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:175)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_delay-873d777b61c44224.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced by lib.rs:175 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:175)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_delay-873d777b61c44224.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced by lib.rs:181 (/home/cquick/.cargo/registry/src/github.com-1ecc6299db9ec823/rtt-target-0.3.1/src/lib.rs:181)
          >>>               /home/cquick/atsamx7x-rust/boards/atsame70_xpro/target/thumbv7em-none-eabihf/debug/examples/blinky_delay-873d777b61c44224.atsamx7x_hal-d5a980c4e9a39481.101fkh0e4q7472nd.rcgu.o.rcgu.o:(rtt_target::UpChannel::conjure::hb1d03a52c6959c14)
          >>> referenced 5 more times

error: could not compile `atsame70_xpro` due to previous error
michalfita commented 1 year ago

OK, I confirm the problem. However, the issue lies somewhere in dependencies, not our demo code. @tmplt do you know solution to this problem? BTW. CI doesn't seem to run full build only check, that's why this problem slipped there.

cquick01 commented 1 year ago

Diffing against the atsamv71 ones, looks like they are missing rtt_target::rtt_init_print!();. Adding these lines got the builds working

diff --git a/boards/atsame70_xpro/examples/blinky_delay.rs b/boards/atsame70_xpro/examples/blinky_delay.rs
index be22ad1..f35585a 100644
--- a/boards/atsame70_xpro/examples/blinky_delay.rs
+++ b/boards/atsame70_xpro/examples/blinky_delay.rs
@@ -26,6 +26,7 @@ mod app {

     #[init]
     fn init(ctx: init::Context) -> (Shared, Local, init::Monotonics) {
+        rtt_target::rtt_init_print!();
         let clocks = Tokens::new(
             (ctx.device.PMC, ctx.device.SUPC, ctx.device.UTMI),
             &ctx.device.WDT.into(),
diff --git a/boards/atsame70_xpro/examples/blinky_irq.rs b/boards/atsame70_xpro/examples/blinky_irq.rs
index 55db85e..399023f 100644
--- a/boards/atsame70_xpro/examples/blinky_irq.rs
+++ b/boards/atsame70_xpro/examples/blinky_irq.rs
@@ -26,6 +26,7 @@ mod app {

     #[init]
     fn init(ctx: init::Context) -> (Shared, Local, init::Monotonics) {
+        rtt_target::rtt_init_print!();
         let clocks = Tokens::new(
             (ctx.device.PMC, ctx.device.SUPC, ctx.device.UTMI),
             &ctx.device.WDT.into(),

Now unfortunately I'm having trouble getting my same70 board to run these binaries so I can't actually test it, but that's a separate issue I'll have to work out.

michalfita commented 11 months ago

@cquick01 any progress since? Maybe you could PR the changes?

cquick01 commented 11 months ago

I was never able to get the binaries to run. Haven't really looked at it in a month or two.