Giter Club home page Giter Club logo

esp32c3's Introduction

Hi there, I'm Omar ๐Ÿ‘‹

I'm an embedded systems enthusiast thats currently working on improving the learning curve of Embedded Rust ๐Ÿฆ€

Click here to access my blog.

To keep up to date with what I'm doing and my posts you can either follow me on Twitter my handle is @apollolabsdev or you can subscribe to The Embedded Rustacean newsletter here.

๐Ÿ“š Some Recent Blog Posts

esp32c3's People

Contributors

apollolabsdev avatar stappersg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

esp32c3's Issues

`cargo run` fails for `embassy/uart`

I'm trying to run the example, but I get this error:

01:09:03 rajas@esp32c3 uart ยฑ|main|โ†’ cargo run
   Compiling uart v0.1.0 (/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart)
error: linking with `rust-lld` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/var/home/rajas/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/var/home/rajas/anaconda3/bin:/var/home/rajas/.nvm/versions/node/v20.9.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/home/rajas/anaconda3/bin:/var/home/rajas/anaconda3/bin:/var/home/rajas/.nvm/versions/node/v20.9.0/bin:/var/home/rajas/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/var/home/rajas/.local/bin:/var/home/rajas/.local/bin:/var/home/rajas/.local/bin" VSLANG="1033" "rust-lld" "-flavor" "gnu" "/tmp/rustcR8OBsg/symbols.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.10dc4txasfjx62ni.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.10po3j4setdd2f5n.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.1188ju6p6bnxq2y6.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.13pyrez9pamdp3xc.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.1gt9d8xibp70l0s3.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.1itos31izjjc0rbu.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.1sjjtug4vpw3d161.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.1t0t9xs4po6iyjz3.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.1tnv0y33h11t4d6x.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.1ww1wrqtdp8gyn1f.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.1y9n1951cquud1hb.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.21wq31r4kyfzf76u.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.22nbzmy4icp34no4.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.236nks0qfsskpkjs.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.28gi7dh3uscpo30h.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.29bbfgk6vjvszesf.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.29n54cislz6oklsq.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.2an4pmtpuub0kiln.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.2m8nkuk5qempdpop.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.2rbl47j5feeete95.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.2swcitraul00xvi5.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.2zb71u3xps9gp0cj.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.3bcrf6gmh7e3e7yo.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.3bkdo3fkhrbc6b23.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.3gltw2pl5tsdud1g.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.3i7cnju2wnz0degz.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.3j7fg9w5czr413x9.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.3kh9c7whhi6j0002.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.3qphpx3l4eghb12p.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.3thr5g0qysq4sjn0.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.3y0pk931a4py35pi.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.3ysm8jaynmtgcsoh.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.41efqetgwr664c73.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.440hfmjlfnukejaw.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.49e09s3qdopalo57.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.4dfswauo4nmg7ii0.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.4dve3xtrpd83obsq.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.4hu8rsbqwegtw3x5.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.4i90tj0xaglm29w3.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.4ihysxqs6wlgj4lh.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.4mo4cd2y4t8fzv95.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.4o0km6lzy52vq71a.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.4zc85f4p4m4sykmv.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.4zy5o6wk82c1dm7q.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.52nbn1zpqz0xigwm.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.5el1px6lproh0hus.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.6lczk9sh4ig5868.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.c2b1yy06o02cjz2.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.l0zb2zm74q645ag.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.sh4myybr1b2cvk.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.t1kwhju5s8paw34.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.vnljzugp2gck429.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.xwwuaraoym00t3i.rcgu.o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.z96nng6xfm466nd.rcgu.o" "--as-needed" "-L" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps" "-L" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/debug/deps" "-L" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/build/esp32c3-hal-360e064addde475c/out" "-L" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/build/esp-hal-common-a3c6832d3f270a6a/out" "-L" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/build/esp-riscv-rt-19253e89501eb600/out" "-L" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/build/esp32c3-3855d34917a58392/out" "-L" "/var/home/rajas/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/riscv32imc-unknown-none-elf/lib" "-Bstatic" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libesp_backtrace-3800c583c140476c.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libesp_println-a288aaaaa2542067.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libesp32c3_hal-c4dde2dd550d45ea.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libesp_hal_common-f6e13c7304ca2d66.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libriscv_atomic_emulation_trap-ddbc59bfc4e94220.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libbitfield-d33712b50c161c35.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libbitflags-850b31bf1b5efd2b.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libesp32c3-4e3f7d88ea969122.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libvcell-31e99d5c6983d70c.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembedded_can-2fe5eff029796323.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembedded_hal_nb-3f88986179797445.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libstrum-4e8a4ea46652d909.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembassy_futures-8af27410e4b27822.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libcfg_if-67f85a02d5e358b8.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembassy_sync-bc2c06075f6155ff.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libheapless-b44792a244810d2a.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libatomic_polyfill-5dc72a8936a2af56.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libhash32-e85b643e216c8c19.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libfugit-477275b2bff5756b.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libgcd-fee50778cf72adc7.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembedded_dma-5733c2f08061862f.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libstable_deref_trait-7e95962e38c25f45.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libesp_riscv_rt-c888f9e16152eb7e.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libriscv-db6da00db273c432.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libbit_field-3f9a8957fcba99eb.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembedded_hal_async-45a9887a6cb3767b.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembedded_hal-03a652c2a320cc84.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembassy_sync-9d29a7b90d2e1846.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembedded_io_async-bcdca10413ae3d57.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembedded_io-9a40ac6f597fe3dc.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libheapless-1ef86716688320f0.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libhash32-97308281bf713da6.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libbyteorder-daebbb590bd4d562.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembassy_executor-6f33ea90002be96d.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libcritical_section-7d2d2a6a2136b0a3.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembassy_time-d5bdbb43d6a426a7.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libfutures_util-116b2eb45cfa793a.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libpin_project_lite-c505637dfb8ebd48.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libfutures_task-89d4848d4927a3a4.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libpin_utils-a10c1b5fe667d275.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libfutures_core-5cde5f5166365cb3.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembedded_hal-a536ab649810dbdd.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libvoid-ed631fd921791841.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libnb-48936b112471bb89.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libnb-7d78623e5bf177b8.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libportable_atomic-23570840bd2afe55.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/librustc_std_workspace_core-547c285600ee9d25.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libcore-e55e34a49f1a8704.rlib" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libcompiler_builtins-9234d45ec5e53156.rlib" "-Bdynamic" "-z" "noexecstack" "-L" "/var/home/rajas/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/riscv32imc-unknown-none-elf/lib" "-o" "/var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7" "--gc-sections" "-Tlinkall.x"
  = note: rust-lld: error: undefined symbol: __sync_val_compare_and_swap_4
          >>> referenced by atomic.rs:3359 (/var/home/rajas/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:3359)
          >>>               /var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.4dve3xtrpd83obsq.rcgu.o:(core::sync::atomic::atomic_compare_exchange::hade910320faebdee)
          >>> referenced by atomic.rs:3359 (/var/home/rajas/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:3359)
          >>>               /var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.4dve3xtrpd83obsq.rcgu.o:(core::sync::atomic::atomic_compare_exchange::hade910320faebdee)
          >>> referenced by atomic.rs:0 (/var/home/rajas/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:0)
          >>>               /var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/uart-629d881052fa71b7.4dve3xtrpd83obsq.rcgu.o:(core::sync::atomic::atomic_compare_exchange::hade910320faebdee)
          >>> referenced 42 more times
          
          rust-lld: error: undefined symbol: __sync_fetch_and_and_4
          >>> referenced by atomic.rs:0 (/var/home/rajas/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:0)
          >>>               embassy_executor-6f33ea90002be96d.embassy_executor.95488327e8eb877e-cgu.0.rcgu.o:(core::sync::atomic::atomic_and::hc58241c3ad17296e) in archive /var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembassy_executor-6f33ea90002be96d.rlib
          >>> referenced by atomic.rs:0 (/var/home/rajas/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:0)
          >>>               embassy_executor-6f33ea90002be96d.embassy_executor.95488327e8eb877e-cgu.0.rcgu.o:(core::sync::atomic::atomic_and::hc58241c3ad17296e) in archive /var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembassy_executor-6f33ea90002be96d.rlib
          >>> referenced by atomic.rs:0 (/var/home/rajas/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:0)
          >>>               embassy_executor-6f33ea90002be96d.embassy_executor.95488327e8eb877e-cgu.0.rcgu.o:(core::sync::atomic::atomic_and::hc58241c3ad17296e) in archive /var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembassy_executor-6f33ea90002be96d.rlib
          >>> referenced 2 more times
          
          rust-lld: error: undefined symbol: __sync_lock_test_and_set_4
          >>> referenced by atomic.rs:0 (/var/home/rajas/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:0)
          >>>               embassy_executor-6f33ea90002be96d.embassy_executor.95488327e8eb877e-cgu.0.rcgu.o:(core::sync::atomic::atomic_swap::h7d04e6f759f6fc9c) in archive /var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembassy_executor-6f33ea90002be96d.rlib
          >>> referenced by atomic.rs:0 (/var/home/rajas/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:0)
          >>>               embassy_executor-6f33ea90002be96d.embassy_executor.95488327e8eb877e-cgu.0.rcgu.o:(core::sync::atomic::atomic_swap::h7d04e6f759f6fc9c) in archive /var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembassy_executor-6f33ea90002be96d.rlib
          >>> referenced by atomic.rs:0 (/var/home/rajas/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:0)
          >>>               embassy_executor-6f33ea90002be96d.embassy_executor.95488327e8eb877e-cgu.0.rcgu.o:(core::sync::atomic::atomic_swap::h7d04e6f759f6fc9c) in archive /var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembassy_executor-6f33ea90002be96d.rlib
          >>> referenced 2 more times
          
          rust-lld: error: undefined symbol: __sync_fetch_and_or_4
          >>> referenced by atomic.rs:0 (/var/home/rajas/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:0)
          >>>               embassy_executor-6f33ea90002be96d.embassy_executor.95488327e8eb877e-cgu.0.rcgu.o:(core::sync::atomic::atomic_or::h86ff745cc92b4679) in archive /var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembassy_executor-6f33ea90002be96d.rlib
          >>> referenced by atomic.rs:0 (/var/home/rajas/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:0)
          >>>               embassy_executor-6f33ea90002be96d.embassy_executor.95488327e8eb877e-cgu.0.rcgu.o:(core::sync::atomic::atomic_or::h86ff745cc92b4679) in archive /var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembassy_executor-6f33ea90002be96d.rlib
          >>> referenced by atomic.rs:0 (/var/home/rajas/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:0)
          >>>               embassy_executor-6f33ea90002be96d.embassy_executor.95488327e8eb877e-cgu.0.rcgu.o:(core::sync::atomic::atomic_or::h86ff745cc92b4679) in archive /var/home/rajas/Documents/apollo-ESP32C3/embassy/uart/target/riscv32imc-unknown-none-elf/debug/deps/libembassy_executor-6f33ea90002be96d.rlib
          >>> referenced 2 more times
          

error: could not compile `uart` (bin "uart") due to 1 previous error

Any examples for ESP32?

Hello,

I am trying to run Embassy on an ESP32, not ESP32C3. I was able to run the examples from the esp-hal repo, but I wanted to write something from scratch. I tried using code from your repo but looks like it's not working because it targets the wrong arch for my use case.

I would really appreciate it if you could provide some ESP32 examples as well!

Array alternative for std_examples/gpio

Proposal

You can use an array instead of declaring 10 variables (one variable by pin!).
Then you will be able to iterate the array with a for loop.

    // Configure all LED pins to digital outputs
    let mut leds = [
        PinDriver::output(dp.pins.gpio1.downgrade_output()).unwrap(),
        PinDriver::output(dp.pins.gpio10.downgrade_output()).unwrap(),
        PinDriver::output(dp.pins.gpio19.downgrade_output()).unwrap(),
        PinDriver::output(dp.pins.gpio18.downgrade_output()).unwrap(),
        PinDriver::output(dp.pins.gpio4.downgrade_output()).unwrap(),
        PinDriver::output(dp.pins.gpio5.downgrade_output()).unwrap(),
        PinDriver::output(dp.pins.gpio6.downgrade_output()).unwrap(),
        PinDriver::output(dp.pins.gpio7.downgrade_output()).unwrap(),
        PinDriver::output(dp.pins.gpio8.downgrade_output()).unwrap(),
        PinDriver::output(dp.pins.gpio9.downgrade_output()).unwrap(),
    ];

Put the following code in the main loop :

        for mut led in &mut leds {
            // LED n
            led.set_high().unwrap();
            blinkdelay = button_pressed(&button, &blinkdelay);
            FreeRtos::delay_ms(blinkdelay);
            led.set_low().unwrap();
            FreeRtos::delay_ms(100_u32);
        }

I have tested the result on wokwi : https://wokwi.com/projects/370781756466770945

Improvements of std_examples/timer/src/main.rs

Hello Omar,

I read your blog on the ESP32 Standard Library Embedded Rust: Timers.

I was trying to factorize the code like following :

use esp_idf_hal::gpio::*;
use esp_idf_hal::peripherals::Peripherals;
use esp_idf_hal::timer::config::Config;
use esp_idf_hal::timer::TimerDriver;

fn main() {
    esp_idf_sys::link_patches();

    let peripherals = Peripherals::take().unwrap();

    // Configure and Initialize Timer Drivers
    let config = Config::new();
    let mut timer1 = TimerDriver::new(peripherals.timer00, &config).unwrap();
    let mut timer2 = TimerDriver::new(peripherals.timer10, &config).unwrap();

    // Configure Pins that Will Read the Square Wave as Inputs
    let pin1 = PinDriver::input(peripherals.pins.gpio0.downgrade_input()).unwrap();
    let pin2 = PinDriver::input(peripherals.pins.gpio1.downgrade_input()).unwrap();

    // Declare and Init Variables that will Track Pin level
    let mut pin1_old_level: Level = Level::Low;
    let mut pin2_old_level: Level = Level::High;

    // Set Counter Start Value to Zero
    timer1.set_counter(0_u64).unwrap();
    timer2.set_counter(0_u64).unwrap();

    // Enable Counter
    timer1.enable(true).unwrap();
    timer2.enable(true).unwrap();

    loop {
        pin1_old_level = measure_pin(&mut timer1, &pin1, 1, pin1_old_level);
        pin2_old_level = measure_pin(&mut timer2, &pin2, 2, pin2_old_level);
    }
}

fn measure_pin<T: Pin, MODE: esp_idf_hal::gpio::InputMode>(timer: &mut TimerDriver, pin: &PinDriver<T, MODE>, index: u8, pin_previous_level: Level) -> Level {
    // Get Level of pin
    let pin_current_level = pin.get_level();

    if pin_current_level != pin_previous_level {
        match pin_current_level {
            // If pin level changed from Low to High then reset count
            Level::High => timer.set_counter(0).unwrap(),
            // If pin level changed from High to Low then capture count
            Level::Low => {
                let count: u64 = timer.counter().unwrap();
                // Calculate and Print Out the Pulse Width
                // Clock Frequency is 1 MHz According to Code
                println!("Sq Wave {} Pulse Width is {:.1}ms", index, count / 1000);
            }
        }
    }

    pin_current_level
}

I test it with Wokwi and the time accuracy is more precise (and take less emulated CPU).

First, I wonder why, then I understand that you print several time the same count at each iteration loop.
image

In my revised code, I only display the count, when the new measure is available. So the display of the message is triggered by the pin state change. Because Wave 1 pulse is 25ms and Wave 2 pulse is 10ms. We have more wave 2 pulse messages than wave 1 pulse messages.
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.