From 371692d36df7d17aa445b8bc327b46d83e8d43ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Mich=C3=A1lek?= Date: Tue, 15 Nov 2022 06:11:30 +0100 Subject: [PATCH] changes required to make simulator running --- .cargo/config.toml | 14 +- Cargo.lock | 722 +++++++++++---------------------------------- Cargo.toml | 23 +- src/main.rs | 130 ++++---- 4 files changed, 269 insertions(+), 620 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 61fb6e0..940da10 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -2,11 +2,11 @@ runner = "espflash --monitor" [build] -rustflags = [ - "-C", "link-arg=-nostartfiles", - "-C", "link-arg=-Wl,-Tlinkall.x", -] -target = "xtensa-esp32s3-none-elf" +# rustflags = [ +# "-C", "link-arg=-nostartfiles", +# "-C", "link-arg=-Wl,-Tlinkall.x", +# ] +# target = "xtensa-esp32s3-none-elf" -[unstable] -build-std = ["alloc", "core"] +# [unstable] +# build-std = ["alloc", "core"] diff --git a/Cargo.lock b/Cargo.lock index 55e344a..137f30a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,28 +3,16 @@ version = 3 [[package]] -name = "aho-corasick" -version = "0.7.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" -dependencies = [ - "memchr", -] - -[[package]] -name = "anyhow" -version = "1.0.66" +name = "adler" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] -name = "atomic-polyfill" -version = "0.1.10" +name = "adler32" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c041a8d9751a520ee19656232a18971f18946a7900f1520ee4400002244dd89" -dependencies = [ - "critical-section 0.2.7", -] +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" [[package]] name = "autocfg" @@ -39,37 +27,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" [[package]] -name = "bare-metal" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5deb64efa5bd81e31fcd1938615a6d98c82eafcbcd787162b6f63b91d6bac5b3" -dependencies = [ - "rustc_version 0.2.3", -] - -[[package]] -name = "bare-metal" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603" - -[[package]] -name = "bit_field" -version = "0.10.1" +name = "base64" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] -name = "bitfield" -version = "0.13.2" +name = "bitflags" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] -name = "byte-slice-cast" -version = "0.3.5" +name = "bytemuck" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0a5e3906bcbf133e33c1d4d95afc664ad37fbdb9f6568d8043e7ea8c27d93d3" +checksum = "aaa3a8d9a1ca92e282c96a32d6511b695d7d994d1d102ba85d279f9b2756947f" [[package]] name = "byteorder" @@ -84,99 +57,78 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] -name = "core-isa-parser" -version = "0.2.0" +name = "color_quant" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23ec98e54b735872e54b2335c2e5a5c7fa7d9c3bfd45500f75280f84089a0083" -dependencies = [ - "anyhow", - "enum-as-inner", - "regex", - "strum", - "strum_macros", -] +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" [[package]] -name = "cortex-m" -version = "0.7.6" +name = "crc32fast" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70858629a458fdfd39f9675c4dc309411f2a3f83bede76988d81bf1a0ecee9e0" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ - "bare-metal 0.2.5", - "bitfield", - "embedded-hal 0.2.7", - "volatile-register", + "cfg-if", ] [[package]] -name = "critical-section" -version = "0.2.7" +name = "crossbeam-channel" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95da181745b56d4bd339530ec393508910c909c784e8962d15d722bacf0bcbcd" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ - "bare-metal 1.0.0", "cfg-if", - "cortex-m", - "riscv 0.7.0", + "crossbeam-utils", ] [[package]] -name = "critical-section" -version = "1.1.1" +name = "crossbeam-deque" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52" - -[[package]] -name = "darling" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0dd3cd20dc6b5a876612a6e5accfe7f3dd883db6d07acfbf14c128f61550dfa" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ - "darling_core", - "darling_macro", + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] -name = "darling_core" -version = "0.14.2" +name = "crossbeam-epoch" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a784d2ccaf7c98501746bf0be29b2022ba41fd62a2e622af997a03e9f972859f" +checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348" dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn", + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset", + "scopeguard", ] [[package]] -name = "darling_macro" -version = "0.14.2" +name = "crossbeam-utils" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7618812407e9402654622dd402b0a89dff9ba93badd6540781526117b92aab7e" +checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" dependencies = [ - "darling_core", - "quote", - "syn", + "cfg-if", ] [[package]] -name = "display-interface" -version = "0.4.1" +name = "deflate" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7517c040926d7b02b111884aa089177db80878533127f7c1b480d852c5fb4112" +checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174" +dependencies = [ + "adler32", + "byteorder", +] [[package]] -name = "display-interface-spi" -version = "0.4.1" +name = "either" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "489378ad054862146fbd1f09f51d585ccbe4bd1e2feadcda2a13ac33f840e1a5" -dependencies = [ - "byte-slice-cast", - "display-interface", - "embedded-hal 0.2.7", -] +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "embedded-graphics" @@ -202,141 +154,23 @@ dependencies = [ ] [[package]] -name = "embedded-hal" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35949884794ad573cf46071e41c9b60efb0cb311e3ca01f7af807af1debc66ff" -dependencies = [ - "nb 0.1.3", - "void", -] - -[[package]] -name = "embedded-hal" -version = "1.0.0-alpha.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3babfc7fd332142a0b11aebf592992f211f4e01b6222fb04b03aba1bd80018d" -dependencies = [ - "nb 1.0.0", -] - -[[package]] -name = "enum-as-inner" +name = "embedded-graphics-simulator" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21cdad81446a7f7dc43f6a77409efeb9733d2fa65553efef6018ef257c959b73" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "esp-alloc" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747141836aa66f690bb8434f7044781b629c686fa699581aa3940f1b8ffee4ea" +checksum = "e6d001b38c138b55b6cd2183484c685a01316403a07b3742a9bd41b287cb321a" dependencies = [ - "bare-metal 1.0.0", - "linked_list_allocator", - "riscv 0.8.0", - "xtensa-lx", -] - -[[package]] -name = "esp-backtrace" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cc04e4a62fe7905eab18e12715feaded6cb51a5a878a0c067bbe29436bad96a" -dependencies = [ - "esp-println 0.2.2", - "xtensa-lx-rt", -] - -[[package]] -name = "esp-hal-common" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23480b8b25ad0a0d600ef79624b4d6f6c8f3339b56e806f443e87e9f9d0b3a32" -dependencies = [ - "cfg-if", - "critical-section 1.1.1", - "embedded-hal 0.2.7", - "esp-hal-procmacros", - "esp32s3", - "fugit", - "nb 1.0.0", - "paste", - "void", - "xtensa-lx", - "xtensa-lx-rt", -] - -[[package]] -name = "esp-hal-procmacros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd1fb5018ef2c57daadf84e9bbff1c9e48c04958d32bc1469f781a96ec82e8e" -dependencies = [ - "darling", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "esp-println" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dab33baae57ce7c0869c32885ff136f9c8405e0c201d039ccd767c3e7f79502b" - -[[package]] -name = "esp-println" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adcfe5d532cf2029b11996cab6b4af948f41c24b131c76422115634711549aaa" - -[[package]] -name = "esp32s3" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39688fbefe925b6fc7bf5b2ceeadf32b6f6049323c14d58180a98656393b8e9" -dependencies = [ - "bare-metal 1.0.0", - "vcell", - "xtensa-lx", - "xtensa-lx-rt", -] - -[[package]] -name = "esp32s3-hal" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef739950b5071c5f57588592c5c355df439bc82bac0277b929c3b0b7f6cf8401" -dependencies = [ - "bare-metal 1.0.0", - "embedded-hal 0.2.7", - "embedded-hal 1.0.0-alpha.8", - "esp-hal-common", - "xtensa-lx", - "xtensa-lx-rt", + "base64", + "embedded-graphics", + "image", + "sdl2", ] [[package]] name = "esp32s3_box" version = "0.1.0" dependencies = [ - "display-interface-spi", "embedded-graphics", - "esp-alloc", - "esp-backtrace", - "esp-println 0.3.1", - "esp32s3-hal", - "libm", - "mipidsi", - "xtensa-lx-rt", + "embedded-graphics-simulator", ] [[package]] @@ -349,63 +183,52 @@ dependencies = [ ] [[package]] -name = "fnv" -version = "1.0.7" +name = "gif" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "fugit" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab17bb279def6720d058cb6c052249938e7f99260ab534879281a95367a87e5" +checksum = "3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06" dependencies = [ - "gcd", + "color_quant", + "weezl", ] [[package]] -name = "gcd" -version = "2.1.0" +name = "hermit-abi" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f37978dab2ca789938a83b2f8bc1ef32db6633af9051a6cd409eff72cbaaa79a" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ - "paste", + "libc", ] [[package]] -name = "hash32" -version = "0.2.1" +name = "image" +version = "0.23.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1" dependencies = [ + "bytemuck", "byteorder", + "color_quant", + "gif", + "jpeg-decoder", + "num-iter", + "num-rational", + "num-traits", + "png", + "scoped_threadpool", + "tiff", ] [[package]] -name = "heapless" -version = "0.7.16" +name = "jpeg-decoder" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743" +checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2" dependencies = [ - "atomic-polyfill", - "hash32", - "rustc_version 0.4.0", - "spin", - "stable_deref_trait", + "rayon", ] -[[package]] -name = "heck" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - [[package]] name = "lazy_static" version = "1.4.0" @@ -413,36 +236,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] -name = "libm" -version = "0.2.6" +name = "libc" +version = "0.2.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" +checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" [[package]] -name = "linked_list_allocator" -version = "0.10.4" +name = "memoffset" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e322f259d225fbae43a1b053b2dc6a5968a6bdf8b205f5de684dab485b95030e" -dependencies = [ - "spinning_top", -] - -[[package]] -name = "lock_api" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" dependencies = [ "autocfg", - "scopeguard", ] -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - [[package]] name = "micromath" version = "1.1.1" @@ -450,183 +257,116 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc4010833aea396656c2f91ee704d51a6f1329ec2ab56ffd00bfd56f7481ea94" [[package]] -name = "minijinja" -version = "0.15.0" +name = "miniz_oxide" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "359c4820413be7706e93999171652e140578384f85faac14cb22d350bd0fbabf" +checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435" dependencies = [ - "serde", + "adler32", ] [[package]] -name = "mipidsi" -version = "0.4.0" +name = "miniz_oxide" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4447edb8af105ca7e17fdbc68ac24d6409e768f4701658efda66c01f9656fd77" -dependencies = [ - "display-interface", - "embedded-graphics-core", - "embedded-hal 0.2.7", - "heapless", - "nb 1.0.0", -] - -[[package]] -name = "mutex-trait" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4bb1638d419e12f8b1c43d9e639abd0d1424285bdea2f76aa231e233c63cd3a" - -[[package]] -name = "nb" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f" -dependencies = [ - "nb 1.0.0", -] - -[[package]] -name = "nb" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "546c37ac5d9e56f55e73b677106873d9d9f5190605e41a856503623648488cae" - -[[package]] -name = "num-traits" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" dependencies = [ + "adler", "autocfg", ] [[package]] -name = "paste" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9423e2b32f7a043629287a536f21951e8c6a82482d0acb1eeebfc90bc2225b22" - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "num-integer" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" -dependencies = [ - "unicode-ident", + "autocfg", + "num-traits", ] [[package]] -name = "quote" -version = "1.0.21" +name = "num-iter" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" dependencies = [ - "proc-macro2", + "autocfg", + "num-integer", + "num-traits", ] [[package]] -name = "r0" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7a31eed1591dcbc95d92ad7161908e72f4677f8fabf2a32ca49b4237cbf211" - -[[package]] -name = "regex" -version = "1.7.0" +name = "num-rational" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", + "autocfg", + "num-integer", + "num-traits", ] [[package]] -name = "regex-syntax" -version = "0.6.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" - -[[package]] -name = "riscv" -version = "0.7.0" +name = "num-traits" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6907ccdd7a31012b70faf2af85cd9e5ba97657cc3987c4f13f8e4d2c2a088aba" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ - "bare-metal 1.0.0", - "bit_field", - "riscv-target", + "autocfg", ] [[package]] -name = "riscv" -version = "0.8.0" +name = "num_cpus" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e2856a701069e2d262b264750d382407d272d5527f7a51d3777d1805b4e2d3c" +checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" dependencies = [ - "bare-metal 1.0.0", - "bit_field", - "embedded-hal 0.2.7", + "hermit-abi", + "libc", ] [[package]] -name = "riscv-target" -version = "0.1.2" +name = "png" +version = "0.16.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88aa938cda42a0cf62a20cfe8d139ff1af20c2e681212b5b34adb5a58333f222" +checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" dependencies = [ - "lazy_static", - "regex", + "bitflags", + "crc32fast", + "deflate", + "miniz_oxide 0.3.7", ] [[package]] -name = "rustc_version" -version = "0.2.3" +name = "rayon" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" dependencies = [ - "semver 0.9.0", + "autocfg", + "crossbeam-deque", + "either", + "rayon-core", ] [[package]] -name = "rustc_version" -version = "0.4.0" +name = "rayon-core" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" dependencies = [ - "semver 1.0.14", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", ] [[package]] -name = "rustversion" -version = "1.0.9" +name = "scoped_threadpool" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" +checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" [[package]] name = "scopeguard" @@ -635,157 +375,47 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" - -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - -[[package]] -name = "serde" -version = "1.0.147" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" - -[[package]] -name = "spin" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spinning_top" -version = "0.2.4" +name = "sdl2" +version = "0.35.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75adad84ee84b521fb2cca2d4fd0f1dab1d8d026bda3c5bea4ca63b5f9f9293c" +checksum = "f7959277b623f1fb9e04aea73686c3ca52f01b2145f8ea16f4ff30d8b7623b1a" dependencies = [ - "lock_api", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strum" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn", + "bitflags", + "lazy_static", + "libc", + "sdl2-sys", ] [[package]] -name = "syn" -version = "1.0.103" +name = "sdl2-sys" +version = "0.35.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" +checksum = "e3586be2cf6c0a8099a79a12b4084357aa9b3e0b0d7980e3b67aaf7a9d55f9f0" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "unicode-ident" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" - -[[package]] -name = "vcell" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" - -[[package]] -name = "volatile-register" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee8f19f9d74293faf70901bc20ad067dc1ad390d2cbf1e3f75f721ffee908b6" -dependencies = [ - "vcell", + "cfg-if", + "libc", + "version-compare", ] [[package]] -name = "xtensa-lx" -version = "0.7.0" +name = "tiff" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b874b2b60f9c25682e0961fd53a802053e6950f7567bc6f2d6c734fb6d93f45a" +checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437" dependencies = [ - "bare-metal 1.0.0", - "mutex-trait", - "r0", - "spin", + "jpeg-decoder", + "miniz_oxide 0.4.4", + "weezl", ] [[package]] -name = "xtensa-lx-rt" -version = "0.13.0" +name = "version-compare" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33a17a83d25998da4f2dca85afb6456ea340d3bde0211bebac011eb45dcbd2f4" -dependencies = [ - "bare-metal 1.0.0", - "core-isa-parser", - "minijinja", - "r0", - "xtensa-lx-rt-proc-macros", -] +checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" [[package]] -name = "xtensa-lx-rt-proc-macros" -version = "0.1.0" +name = "weezl" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a8200930e2dbd515c231f7a46033bd6dfe1497a8e9a539878f0de8f0cd730b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" diff --git a/Cargo.toml b/Cargo.toml index 35b810c..614c485 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,19 +6,20 @@ edition = "2021" license = "MIT OR Apache-2.0" [dependencies] -esp32s3-hal = "0.2.0" -esp-alloc = { version = "0.1.0", features = ["oom-handler"] } -esp-backtrace = { version = "0.2.0", features = ["esp32s3", "panic-handler", "print-uart"] } -xtensa-lx-rt = { version = "0.13.0", features = ["esp32s3"], optional = true } -esp-println = { version = "0.3.1", features = [ "esp32s3" ] } +# esp32s3-hal = "0.2.0" +# esp-alloc = { version = "0.1.0", features = ["oom-handler"] } +# esp-backtrace = { version = "0.2.0", features = ["esp32s3", "panic-handler", "print-uart"] } +# xtensa-lx-rt = { version = "0.13.0", features = ["esp32s3"], optional = true } +# esp-println = { version = "0.3.1", features = [ "esp32s3" ] } embedded-graphics = "0.7" -mipidsi = "0.4" -display-interface-spi = "0.4" +# mipidsi = "0.4" +# display-interface-spi = "0.4" +embedded-graphics-simulator = "0.4.0" #hallucination dependencies -libm = "0.2.5" +# libm = "0.2.5" -[features] -default = ["rt"] -rt = ["xtensa-lx-rt"] +# [features] +# default = ["rt"] +# rt = ["xtensa-lx-rt"] diff --git a/src/main.rs b/src/main.rs index a099b1d..eedb7e9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,15 @@ -#![no_std] -#![no_main] +// #![no_std] +// #![no_main] -use display_interface_spi::SPIInterfaceNoCS; +// use display_interface_spi::SPIInterfaceNoCS; +use embedded_graphics::{ + pixelcolor::Rgb565, + prelude::*, + primitives::{Circle, PrimitiveStyleBuilder, Sector}, +}; +use embedded_graphics_simulator::{ + OutputSettingsBuilder, SimulatorDisplay, SimulatorEvent, Window, +}; use embedded_graphics::{ prelude::RgbColor, @@ -14,75 +22,79 @@ use embedded_graphics::{ Drawable, }; -use esp32s3_hal::{ - clock::ClockControl, - pac::Peripherals, - prelude::*, - spi, - timer::TimerGroup, - Rtc, - IO, - Delay, -}; +// use esp32s3_hal::{ +// clock::ClockControl, +// pac::Peripherals, +// prelude::*, +// spi, +// timer::TimerGroup, +// Rtc, +// IO, +// Delay, +// }; -use esp_println::println; +// use esp_println::println; -use mipidsi::DisplayOptions; +// use mipidsi::DisplayOptions; -#[allow(unused_imports)] -use esp_backtrace as _; +// #[allow(unused_imports)] +// use esp_backtrace as _; -use xtensa_lx_rt::entry; +// use xtensa_lx_rt::entry; -#[entry] -fn main() -> ! { - let peripherals = Peripherals::take().unwrap(); - let mut system = peripherals.SYSTEM.split(); - let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); +// #[entry] +fn main() -> Result<(), std::convert::Infallible> { + // let peripherals = Peripherals::take().unwrap(); + // let mut system = peripherals.SYSTEM.split(); + // let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); - let mut rtc = Rtc::new(peripherals.RTC_CNTL); - let timer_group0 = TimerGroup::new(peripherals.TIMG0, &clocks); - let mut wdt0 = timer_group0.wdt; - let timer_group1 = TimerGroup::new(peripherals.TIMG1, &clocks); - let mut wdt1 = timer_group1.wdt; + // let mut rtc = Rtc::new(peripherals.RTC_CNTL); + // let timer_group0 = TimerGroup::new(peripherals.TIMG0, &clocks); + // let mut wdt0 = timer_group0.wdt; + // let timer_group1 = TimerGroup::new(peripherals.TIMG1, &clocks); + // let mut wdt1 = timer_group1.wdt; - rtc.rwdt.disable(); + // rtc.rwdt.disable(); - wdt0.disable(); - wdt1.disable(); + // wdt0.disable(); + // wdt1.disable(); - let mut delay = Delay::new(&clocks); + // let mut delay = Delay::new(&clocks); - let io = IO::new(peripherals.GPIO, peripherals.IO_MUX); + // let io = IO::new(peripherals.GPIO, peripherals.IO_MUX); - let sclk = io.pins.gpio7; - let mosi = io.pins.gpio6; + // let sclk = io.pins.gpio7; + // let mosi = io.pins.gpio6; - let spi = spi::Spi::new_no_cs_no_miso( - peripherals.SPI2, - sclk, - mosi, - 4u32.MHz(), - spi::SpiMode::Mode0, - &mut system.peripheral_clock_control, - &clocks, - ); + // let spi = spi::Spi::new_no_cs_no_miso( + // peripherals.SPI2, + // sclk, + // mosi, + // 4u32.MHz(), + // spi::SpiMode::Mode0, + // &mut system.peripheral_clock_control, + // &clocks, + // ); - let mut backlight = io.pins.gpio45.into_push_pull_output(); - backlight.set_high().unwrap(); + // let mut backlight = io.pins.gpio45.into_push_pull_output(); + // backlight.set_high().unwrap(); - let reset = io.pins.gpio48.into_push_pull_output(); + // let reset = io.pins.gpio48.into_push_pull_output(); - let di = SPIInterfaceNoCS::new(spi, io.pins.gpio4.into_push_pull_output()); + // let di = SPIInterfaceNoCS::new(spi, io.pins.gpio4.into_push_pull_output()); - let display_options = DisplayOptions { - orientation: mipidsi::Orientation::PortraitInverted(false), - ..Default::default() - }; + // let display_options = DisplayOptions { + // orientation: mipidsi::Orientation::PortraitInverted(false), + // ..Default::default() + // }; - let mut display = mipidsi::Display::ili9342c_rgb565(di, core::prelude::v1::Some(reset), display_options); - display.init(&mut delay).unwrap(); + let mut display: SimulatorDisplay = SimulatorDisplay::new(Size::new(320, 240)); + let output_settings = OutputSettingsBuilder::new().scale(1).build(); + let mut window = Window::new("ESP32-S3-BOX", &output_settings); + // let mut display = mipidsi::Display::ili9342c_rgb565(di, core::prelude::v1::Some(reset), display_options); + // display.init(&mut delay).unwrap(); + display.clear(Rgb565::WHITE)?; let espressif_style = MonoTextStyleBuilder::new() .font(&FONT_10X20) .text_color(RgbColor::BLACK) @@ -92,7 +104,13 @@ fn main() -> ! { .draw(&mut display) .unwrap(); - println!("Hello World!"); + // println!("Hello World!"); + - loop {} + 'running: loop { + window.update(&display); + if window.events().any(|e| e == SimulatorEvent::Quit) { + break 'running Ok(()); + } + } }