-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
Had a quick search with the error,
error[E0787]: the `asm!` macro is not allowed in naked functions
Found this:
PacktPublishing/Asynchronous-Programming-in-Rust#31
rust-lang/rust#128651
looks like the "asm!" macro is not allowed in naked functions, and need to be updated to use "naked_asm!" macro.
Guessing the fix would include updating the "esp-display-interface-spi-dma" package, so it can use newer version of "esp-hal" to avoid this error ?
https://github.com/esp-rs/xtensa-lx-rt
https://github.com/esp-rs/xtensa-lx
https://github.com/esp-rs/esp-hal/
https://github.com/georgik/esp-display-interface-spi-dma
$ cd esp32
$ cargo run --release --features esp32-wrover-kit
Updating crates.io index
Downloaded compiler_builtins v0.1.138
Downloaded object v0.36.5
Downloaded 2 crates (528.5 KB) in 0.63s
Compiling compiler_builtins v0.1.138
Compiling core v0.0.0 (C:\Users\Ted\.rustup\toolchains\esp\lib\rustlib\src\rust\library\core)
Compiling proc-macro2 v1.0.94
Compiling unicode-ident v1.0.18
Compiling serde v1.0.219
Compiling windows_x86_64_msvc v0.52.6
Compiling autocfg v1.4.0
Compiling rustversion v1.0.20
Compiling heck v0.5.0
Compiling anyhow v1.0.97
Compiling fnv v1.0.7
Compiling strsim v0.11.1
Compiling ident_case v1.0.1
Compiling hashbrown v0.15.2
Compiling az v1.2.1
Compiling heapless v0.8.0
Compiling equivalent v1.0.2
Compiling winnow v0.7.4
Compiling xtensa-lx v0.9.0
Compiling typenum v1.18.0
Compiling windows-targets v0.52.6
Compiling windows-sys v0.59.0
Compiling version_check v0.9.5
Compiling embedded-hal-async v1.0.0
Compiling embassy-time-driver v0.1.0
Compiling embedded-io-async v0.6.1
Compiling embassy-time-queue-driver v0.1.0
Compiling portable-atomic v1.11.0
Compiling log v0.4.26
Compiling zerocopy v0.8.23
Compiling embassy-sync v0.6.2
Compiling cfg-if v1.0.0
Compiling indexmap v2.8.0
Compiling esp32 v0.34.0
Compiling paste v1.0.15
Compiling spooky-esp32 v0.11.0 (C:\r\esp32-spooky-maze-game\esp32)
Compiling num-traits v0.2.19
Compiling lock_api v0.4.12
Compiling generic-array v0.14.7
Compiling quote v1.0.40
Compiling litrs v0.4.1
Compiling syn v2.0.100
Compiling proc-macro-error-attr2 v2.0.0
Compiling document-features v0.2.11
Compiling winapi-util v0.1.9
Compiling termcolor v1.4.1
Compiling esp-config v0.2.0
Compiling darling_core v0.20.10
Compiling proc-macro-error2 v2.0.1
Compiling serde_derive v1.0.219
Compiling esp-build v0.1.0
Compiling strum_macros v0.26.4
Compiling enum-as-inner v0.6.1
Compiling delegate v0.13.2
Compiling esp-println v0.12.0
Compiling esp-backtrace v0.14.2
Compiling darling_macro v0.20.10
Compiling darling v0.20.10
Compiling enumset_derive v0.10.0
Compiling xtensa-lx-rt-proc-macros v0.2.2
Compiling strum v0.26.3
Compiling rustc-std-workspace-core v1.99.0 (C:\Users\Ted\.rustup\toolchains\esp\lib\rustlib\src\rust\library\rustc-std-workspace-core)
Compiling alloc v0.0.0 (C:\Users\Ted\.rustup\toolchains\esp\lib\rustlib\src\rust\library\alloc)
Compiling toml_datetime v0.6.8
Compiling serde_spanned v0.6.8
Compiling basic-toml v0.1.10
Compiling minijinja v2.8.0
Compiling toml_edit v0.22.24
Compiling esp-metadata v0.4.0
Compiling esp-hal v0.22.0
Compiling byteorder v1.5.0
Compiling stable_deref_trait v1.2.0
Compiling nb v1.1.0
Compiling embedded-hal v1.0.0
Compiling critical-section v1.2.0
Compiling rand_core v0.6.4
Compiling scopeguard v1.2.0
Compiling micromath v2.1.0
Compiling pin-project-lite v0.2.16
Compiling futures-core v0.3.31
Compiling futures-task v0.3.31
Compiling pin-utils v0.1.0
Compiling nb v0.1.3
Compiling void v1.0.2
Compiling futures-util v0.3.31
Compiling hash32 v0.3.1
Compiling embedded-io v0.6.1
Compiling embedded-hal v0.2.7
Compiling embedded-dma v0.2.0
Compiling bare-metal v1.0.0
Compiling display-interface v0.5.0
Compiling spin v0.9.8
Compiling futures-sink v0.3.31
Compiling embedded-storage v0.3.1
Compiling mutex-trait v0.2.0
Compiling enumset v1.1.5
Compiling vcell v0.1.3
Compiling gcd v2.3.0
Compiling embedded-storage-async v0.4.1
Compiling r0 v1.0.0
Compiling embassy-futures v0.1.1
Compiling fugit v0.3.7
Compiling toml v0.8.20
Compiling proc-macro-crate v3.3.0
Compiling rand v0.8.5
Compiling embedded-hal-nb v1.0.0
Compiling embedded-can v0.4.1
Compiling bitfield v0.17.0
Compiling ufmt-write v0.1.0
Compiling byte-slice-cast v1.2.3
Compiling bitflags v2.9.0
Compiling bytemuck v1.22.0
Compiling float-cmp v0.9.0
Compiling chrono v0.4.40
Compiling linked_list_allocator v0.10.5
Compiling display-interface-spi v0.5.0
Compiling esp-bsp v0.4.1
Compiling embedded-graphics-core v0.4.0
Compiling esp-alloc v0.5.0
Compiling micromath v1.1.1
Compiling accelerometer v0.12.0
Compiling embassy-time v0.3.2
Compiling icm42670 v0.2.0
Compiling embedded-graphics v0.8.1
Compiling mipidsi v0.8.0
Compiling ppv-lite86 v0.2.21
Compiling esp-hal-procmacros v0.15.0
Compiling embassy-embedded-hal v0.2.0
Compiling rand_chacha v0.3.1
Compiling tinybmp v0.6.0
Compiling embedded-graphics-framebuf v0.3.0 (https://github.com/georgik/embedded-graphics-framebuf.git?branch=feature%2Fembedded-graphics-0.8#26b1aa5e)
Compiling xtensa-lx-rt v0.17.2
Compiling spooky-core v0.7.0 (C:\r\esp32-spooky-maze-game\spooky-core)
Compiling spooky-embedded v0.11.0 (C:\r\esp32-spooky-maze-game\spooky-embedded)
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\lib.rs:158:9
|
158 | asm!($($x)* $($opts)*)
| ^^^^^^^^^^^^^^^^^^^^^^ consider using the `naked_asm!` macro instead
|
::: C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\asm.rs:116:5
|
116 | / cfg_asm!(
117 | | {
118 | | "
119 | | s32i a2, sp, +XT_STK_A2
... |
268 | | options(noreturn)
269 | | );
| |_____- in this macro invocation
|
= note: this error originates in the macro `cfg_asm` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\lib.rs:158:9
|
158 | asm!($($x)* $($opts)*)
| ^^^^^^^^^^^^^^^^^^^^^^ consider using the `naked_asm!` macro instead
|
::: C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\asm.rs:359:5
|
359 | / cfg_asm!(
360 | | {
361 | | "
362 | | l32i a3, sp, +XT_STK_SAR
... |
467 | | ",
468 | | }, options(noreturn));
| |_________________________- in this macro invocation
|
= note: this error originates in the macro `cfg_asm` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\asm.rs:507:5
|
507 | / asm!(
508 | | "
509 | | SAVE_CONTEXT 1
... |
537 | | options(noreturn)
538 | | )
| |_____^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\asm.rs:551:5
|
551 | / asm!(
552 | | "
553 | | mov a0, a1 // save a1/sp
554 | | addmi sp, sp, -XT_STK_FRMSZ // only allow multiple of 256
... |
596 | | options(noreturn)
597 | | )
| |_____^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\asm.rs:629:5
|
629 | asm!("HANDLE_INTERRUPT_LEVEL 2", options(noreturn));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\asm.rs:641:5
|
641 | asm!("HANDLE_INTERRUPT_LEVEL 3", options(noreturn));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\asm.rs:653:5
|
653 | asm!("HANDLE_INTERRUPT_LEVEL 4", options(noreturn));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\asm.rs:665:5
|
665 | asm!("HANDLE_INTERRUPT_LEVEL 5", options(noreturn));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\asm.rs:677:5
|
677 | asm!("HANDLE_INTERRUPT_LEVEL 6", options(noreturn));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\asm.rs:689:5
|
689 | asm!("HANDLE_INTERRUPT_LEVEL 7", options(noreturn));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\context.rs:179:5
|
179 | / asm!(
180 | | "
181 | | wsr a0, EXCSAVE1 // preserve a0
182 | | rsr a0, EXCCAUSE // get exception cause
... |
188 | | options(noreturn)
189 | | );
| |_____^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\context.rs:196:5
|
196 | / asm!(
197 | | "
198 | | wsr a0, EXCSAVE1 // preserve a0
199 | | rsr a0, EXCCAUSE // get exception cause
... |
208 | | options(noreturn)
209 | | );
| |_____^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\context.rs:216:5
|
216 | / asm!(
217 | | "
218 | | wsr a0, EXCSAVE1 // preserve a0 (EXCSAVE1 can be reused as long as there
219 | | // is no double exception in the first exception until
... |
223 | | options(noreturn)
224 | | );
| |_____^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\context.rs:231:5
|
231 | / asm!(
232 | | "
233 | | wsr a0, EXCSAVE2 // preserve a0
234 | | call0 __naked_level_2_interrupt // used as long jump
235 | | ",
236 | | options(noreturn)
237 | | );
| |_____^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\context.rs:244:5
|
244 | / asm!(
245 | | "
246 | | wsr a0, EXCSAVE3 // preserve a0
247 | | call0 __naked_level_3_interrupt // used as long jump
248 | | ",
249 | | options(noreturn)
250 | | );
| |_____^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\context.rs:257:5
|
257 | / asm!(
258 | | "
259 | | wsr a0, EXCSAVE4 // preserve a0
260 | | call0 __naked_level_4_interrupt // used as long jump
261 | | ",
262 | | options(noreturn)
263 | | );
| |_____^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\context.rs:270:5
|
270 | / asm!(
271 | | "
272 | | wsr a0, EXCSAVE5 // preserve a0
273 | | call0 __naked_level_5_interrupt // used as long jump
274 | | ",
275 | | options(noreturn)
276 | | );
| |_____^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\context.rs:283:5
|
283 | / asm!(
284 | | "
285 | | wsr a0, EXCSAVE6 // preserve a0
286 | | call0 __naked_level_6_interrupt // used as long jump
287 | | ",
288 | | options(noreturn)
289 | | );
| |_____^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\context.rs:296:5
|
296 | / asm!(
297 | | "
298 | | wsr a0, EXCSAVE7 // preserve a0
299 | | call0 __naked_level_7_interrupt // used as long jump
300 | | ",
301 | | options(noreturn)
302 | | );
| |_____^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\context.rs:309:5
|
309 | / asm!(
310 | | "
311 | | s32e a0, a5, -16
312 | | s32e a1, a5, -12
... |
317 | | options(noreturn)
318 | | );
| |_____^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\context.rs:325:5
325 | / asm!(
326 | | "
327 | | l32e a0, a5, -16
328 | | l32e a1, a5, -12
... |
355 | | options(noreturn)
356 | | );
| |_____^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\context.rs:363:5
|
363 | / asm!(
364 | | "
365 | | s32e a0, a9, -16
366 | | l32e a0, a1, -12
... |
377 | | options(noreturn)
378 | | );
| |_____^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\context.rs:385:5
|
385 | / asm!(
386 | | "
387 | | l32e a0, a9, -16
388 | | l32e a1, a9, -12
... |
399 | | options(noreturn)
400 | | );
| |_____^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\context.rs:407:5
|
407 | / asm!(
408 | | "
409 | | s32e a0, a13, -16
410 | | l32e a0, a1, -12
... |
425 | | options(noreturn)
426 | | );
| |_____^ consider using the `naked_asm!` macro instead
error[E0787]: the `asm!` macro is not allowed in naked functions
--> C:\Users\Ted\.cargo\registry\src\index.crates.io-6f17d22bba15001f\xtensa-lx-rt-0.17.2\src\exception\context.rs:433:5
|
433 | / asm!(
434 | | "
435 | | l32e a0, a13, -16
436 | | l32e a1, a13, -12
... |
451 | | options(noreturn)
452 | | );
| |_____^ consider using the `naked_asm!` macro instead
For more information about this error, try `rustc --explain E0787`.
error: could not compile `xtensa-lx-rt` (lib) due to 25 previous errors
warning: build failed, waiting for other jobs to finish...
Metadata
Metadata
Assignees
Labels
No labels