diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..bbe00bd --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1157 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aliasable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "ansi-parser" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcb2392079bf27198570d6af79ecbd9ec7d8f16d3ec6b60933922fdb66287127" +dependencies = [ + "heapless", + "nom", +] + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "as-slice" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45403b49e3954a4b8428a0ac21a4b7afadccf92bfd96273f1a58cd4812496ae0" +dependencies = [ + "generic-array 0.12.4", + "generic-array 0.13.3", + "generic-array 0.14.7", + "stable_deref_trait", +] + +[[package]] +name = "atsamd-hal" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ef309bf38b69dfbf7d5781c9fbce35b876a7f163653a7105848885047827a6" +dependencies = [ + "atsamd21g", + "bitfield", + "bitflags", + "cortex-m", + "embedded-hal", + "embedded-sdmmc", + "modular-bitfield", + "nb 1.1.0", + "num-traits", + "paste", + "rand_core", + "seq-macro", + "typenum", + "usb-device", + "vcell", + "void", +] + +[[package]] +name = "atsamd21g" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec93ce03e1b6c6f852c5b3a1d9f2e489c30c0eddca07487083bb783ebc05bad" +dependencies = [ + "cortex-m", + "cortex-m-rt", + "vcell", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "az" +version = "1.2.1" +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", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "bit_field" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" + +[[package]] +name = "bitfield" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bumpalo" +version = "3.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" + +[[package]] +name = "bytemuck" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "cc" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01" +dependencies = [ + "libc", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "const_fn" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935" + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "cortex-m" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ec610d8f49840a5b376c69663b6369e71f4b34484b9b2eb29fb918d92516cb9" +dependencies = [ + "bare-metal", + "bitfield", + "embedded-hal", + "volatile-register", +] + +[[package]] +name = "cortex-m-rt" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee84e813d593101b1723e13ec38b6ab6abbdbaaa4546553f5395ed274079ddb1" +dependencies = [ + "cortex-m-rt-macros", +] + +[[package]] +name = "cortex-m-rt-macros" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f6f3e36f203cfedbc78b357fb28730aa2c6dc1ab060ee5c2405e843988d3c7" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "deflate" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174" +dependencies = [ + "adler32", + "byteorder", +] + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "embedded-graphics" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "750082c65094fbcc4baf9ba31583ce9a8bb7f52cadfb96f6164b1bc7f922f32b" +dependencies = [ + "az", + "byteorder", + "embedded-graphics-core", + "float-cmp", + "micromath", +] + +[[package]] +name = "embedded-graphics-core" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8b1239db5f3eeb7e33e35bd10bd014e7b2537b17e071f726a09351431337cfa" +dependencies = [ + "az", + "byteorder", +] + +[[package]] +name = "embedded-graphics-simulator" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58b8d57d7c11c2084f7cfedfc661a8714c8ddea793291ffec4e5719e96487e7b" +dependencies = [ + "base64", + "embedded-graphics", + "image", + "ouroboros", + "sdl2", +] + +[[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-layout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7adbc16ba694006a121bce08a8935186d16cb008a4c9e20c5e346517ad1e0ac8" +dependencies = [ + "embedded-graphics", + "embedded-layout-macros", +] + +[[package]] +name = "embedded-layout-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "352186cee85e4cf9104c42b4dfd0295a22901c5d2bf0c26efd47265adcf1c52d" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "embedded-sdmmc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d3bf0a2b5becb87e9a329d9290f131e4d10fec39b56d129926826a7cbea1e7a" +dependencies = [ + "byteorder", + "embedded-hal", + "log", + "nb 0.1.3", +] + +[[package]] +name = "embedded-text" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce4010b774f36bf6bf1497500dc8299c99c3775c83719dd1734b8b66b13f205c" +dependencies = [ + "ansi-parser", + "az", + "embedded-graphics", + "object-chain", +] + +[[package]] +name = "epd-waveshare" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5502a0ed11effff2f47b69b83cf8d4325de86362b5ca37925fa1bf240522bbc" +dependencies = [ + "bit_field", + "embedded-graphics-core", + "embedded-hal", +] + +[[package]] +name = "float-cmp" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4" +dependencies = [ + "num-traits", +] + +[[package]] +name = "generic-array" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" +dependencies = [ + "typenum", +] + +[[package]] +name = "generic-array" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f797e67af32588215eaaab8327027ee8e71b9dd0b2b26996aedf20c030fce309" +dependencies = [ + "typenum", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check 0.9.4", +] + +[[package]] +name = "gif" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "hash32" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4041af86e63ac4298ce40e5cca669066e75b6f1aa3390fe2561ffa5e1d9f4cc" +dependencies = [ + "byteorder", +] + +[[package]] +name = "heapless" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74911a68a1658cfcfb61bc0ccfbd536e3b6e906f8c2f7883ee50157e3e2184f1" +dependencies = [ + "as-slice", + "generic-array 0.13.3", + "hash32", + "stable_deref_trait", +] + +[[package]] +name = "hermit-abi" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" + +[[package]] +name = "iana-time-zone" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "image" +version = "0.23.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "gif", + "jpeg-decoder", + "num-iter", + "num-rational", + "num-traits", + "png", + "scoped_threadpool", + "tiff", +] + +[[package]] +name = "jpeg-decoder" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2" +dependencies = [ + "rayon", +] + +[[package]] +name = "js-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "maduino_zero_4g" +version = "0.10.0" +dependencies = [ + "atsamd-hal", + "cortex-m-rt", + "embedded-sdmmc", + "usb-device", +] + +[[package]] +name = "memchr" +version = "2.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "micromath" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc4010833aea396656c2f91ee704d51a6f1329ec2ab56ffd00bfd56f7481ea94" + +[[package]] +name = "miniz_oxide" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435" +dependencies = [ + "adler32", +] + +[[package]] +name = "miniz_oxide" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" +dependencies = [ + "adler", + "autocfg", +] + +[[package]] +name = "modular-bitfield" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" +dependencies = [ + "modular-bitfield-impl", + "static_assertions", +] + +[[package]] +name = "modular-bitfield-impl" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "nb" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f" +dependencies = [ + "nb 1.1.0", +] + +[[package]] +name = "nb" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d" + +[[package]] +name = "nom" +version = "4.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6" +dependencies = [ + "memchr", + "version_check 0.1.5", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object-chain" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41af26158b0f5530f7b79955006c2727cd23d0d8e7c3109dc316db0a919784dd" + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" + +[[package]] +name = "ouroboros" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db" +dependencies = [ + "aliasable", + "ouroboros_macro", +] + +[[package]] +name = "ouroboros_macro" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7" +dependencies = [ + "Inflector", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "panic-halt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de96540e0ebde571dc55c73d60ef407c653844e6f9a1e2fdbd40c07b9252d812" + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "png" +version = "0.16.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" +dependencies = [ + "bitflags", + "crc32fast", + "deflate", + "miniz_oxide 0.3.7", +] + +[[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 1.0.109", + "version_check 0.9.4", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check 0.9.4", +] + +[[package]] +name = "proc-macro2" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" + +[[package]] +name = "rayon" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver", +] + +[[package]] +name = "rustphone" +version = "0.1.0" +dependencies = [ + "arrayvec", + "atsamd-hal", + "cfg-if", + "embedded-graphics", + "embedded-graphics-simulator", + "embedded-layout", + "embedded-sdmmc", + "embedded-text", + "epd-waveshare", + "maduino_zero_4g", + "panic-halt", + "static_assertions", + "tz-rs", + "tzdb", +] + +[[package]] +name = "scoped_threadpool" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "sdl2" +version = "0.35.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7959277b623f1fb9e04aea73686c3ca52f01b2145f8ea16f4ff30d8b7623b1a" +dependencies = [ + "bitflags", + "lazy_static", + "libc", + "sdl2-sys", +] + +[[package]] +name = "sdl2-sys" +version = "0.35.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3586be2cf6c0a8099a79a12b4084357aa9b3e0b0d7980e3b67aaf7a9d55f9f0" +dependencies = [ + "cfg-if", + "libc", + "version-compare", +] + +[[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-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "seq-macro" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tiff" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437" +dependencies = [ + "jpeg-decoder", + "miniz_oxide 0.4.4", + "weezl", +] + +[[package]] +name = "typenum" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" + +[[package]] +name = "tz-rs" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33851b15c848fad2cf4b105c6bb66eb9512b6f6c44a4b13f57c53c73c707e2b4" +dependencies = [ + "const_fn", +] + +[[package]] +name = "tzdb" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec758958f2fb5069cd7fae385be95cc8eceb8cdfd270c7d14de6034f0108d99e" +dependencies = [ + "iana-time-zone", + "tz-rs", +] + +[[package]] +name = "unicode-ident" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" + +[[package]] +name = "usb-device" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f6cc3adc849b5292b4075fc0d5fdcf2f24866e88e336dd27a8943090a520508" + +[[package]] +name = "vcell" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002" + +[[package]] +name = "version-compare" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" + +[[package]] +name = "version_check" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" + +[[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", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.29", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.29", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" + +[[package]] +name = "weezl" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..ce5a626 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,37 @@ +[package] +name = "rustphone" +version = "0.1.0" +authors = ["tuxmain "] +repository = "https://git.txmn.tk/tuxmain/rustphone" +license = "AGPL-3.0-only" +edition = "2021" + +[dependencies] +arrayvec = { version = "0.7.4", default_features = false } +atsamd-hal = { version = "0.15.1", default_features = false, features = ["samd21g", "samd21g-rt", "usb"] } +cfg-if = "1.0.0" +embedded-graphics = "0.7.1" +embedded-layout = "0.2.0" +embedded-text = "0.5.0" +embedded-sdmmc = { version = "0.3.0", default_features = false } +epd-waveshare = "0.5.0" +maduino_zero_4g = { git = "https://github.com/ZettaScript/atsamd", branch = "maduino-zero-4g", features = ["usb"] } +panic-halt = "0.2.0" +static_assertions = "1.1.0" +tz-rs = { version = "0.6.14", default_features = false, features = ["const"] } +tzdb = { version = "0.5.7", optional = true } + +# simulator +embedded-graphics-simulator = { version = "0.4.1", optional = true } + +[features] +#default = ["simulator"] + +simulator = ["embedded-graphics-simulator", "tzdb"] + +[profile.release] +lto = "fat" +opt-level = 3 + +[patch."https://github.com/ZettaScript/atsamd"] +maduino_zero_4g = { path = "../atsamd/boards/maduino_zero_4g" } diff --git a/README.md b/README.md index 1ab570c..8d44bba 100644 --- a/README.md +++ b/README.md @@ -42,12 +42,6 @@ cargo run --features simulator cargo build --release --target thumbv6m-none-eabi ``` -Read usb: - -```bash -cat /dev/serial/by-id/usb-2222_3333-if00 -``` - ## Pins * D2 @@ -112,25 +106,3 @@ ncb1 upz2 tdk3 eow4 lqh5 age6 sfx7 rmj8 ivy9 ``` - -## OS - -In case we switch to some more powerful MCU like ESP32. - -Using an RTOS would be better than creating a monolithical horror. It would also make it easier to split the software into modular programs and store some programs in different memories (e.g. store kernel in internal flash and user programs in SPI flash). - -Rusty embedded RTOS's: - -* https://bern-rtos.org/ - * does not support Xtensa - * supports Cortex-M - * does not seem to support dynamic programs -* https://www.drone-os.com/ - * does not support Xtensa - * supports Cortex-M - * explicitly does not support dynamic programs - -Needs: -* Kernel writes user programs to SPI flash (can it be done via chip programming or has it do be done by kernel? then USB, SD, debug probe, UART??) -* Handle hardware-specific work (provide high level interfaces for GPIO, SD, screen, modem, wifi, bluetooth...) -* Dynamic threads diff --git a/common/.gitignore b/common/.gitignore deleted file mode 100644 index eb5a316..0000000 --- a/common/.gitignore +++ /dev/null @@ -1 +0,0 @@ -target diff --git a/common/Cargo.lock b/common/Cargo.lock deleted file mode 100644 index 7967553..0000000 --- a/common/Cargo.lock +++ /dev/null @@ -1,16 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "common" -version = "0.1.0" -dependencies = [ - "embedded-hal", -] - -[[package]] -name = "embedded-hal" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89" diff --git a/common/Cargo.toml b/common/Cargo.toml deleted file mode 100644 index 285f4eb..0000000 --- a/common/Cargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "common" -version = "0.1.0" -edition = "2021" - -[dependencies] -embedded-hal = "1.0.0" diff --git a/common/rustfmt.toml b/common/rustfmt.toml deleted file mode 100644 index 26b2841..0000000 --- a/common/rustfmt.toml +++ /dev/null @@ -1,9 +0,0 @@ -hard_tabs = true -newline_style = "Unix" -imports_granularity = "Crate" - -unstable_features = true -format_code_in_doc_comments = true -format_macro_bodies = true -format_macro_matchers = true -format_strings = true diff --git a/common/src/cm.rs b/common/src/cm.rs deleted file mode 100644 index 02a5e1a..0000000 --- a/common/src/cm.rs +++ /dev/null @@ -1,5 +0,0 @@ -/// CPU to Modem -pub enum CMMessage { - Ping(u32), - Pong(u32), -} diff --git a/common/src/lib.rs b/common/src/lib.rs deleted file mode 100644 index 5f482f4..0000000 --- a/common/src/lib.rs +++ /dev/null @@ -1,15 +0,0 @@ -pub mod cm; -pub mod mc; - -pub const VERSION: u32 = 1; - -enum State { - /// Not ready, not even pinged - Idle, - /// Ping failed - Fail, - /// Waiting for pong - Pinging, - /// Ready to work - Ready, -} diff --git a/common/src/mc.rs b/common/src/mc.rs deleted file mode 100644 index 2a0d69c..0000000 --- a/common/src/mc.rs +++ /dev/null @@ -1,26 +0,0 @@ -use crate::{cm::CMMessage, State}; - -/// Modem to CPU -pub enum MCMessage { - Ping(u32), - Pong(u32), -} - -/// Modem-side connection driver -pub struct MCConnection { - spi: SPI, - state: State, -} - -impl MCConnection where SPI: embedded_hal::spi::SpiDevice { - pub fn new(spi: SPI) -> Self { - Self { - spi, - state: State::Idle, - } - } - - fn handle_message(message: CMMessage) { - - } -} diff --git a/esp/.cargo/config.old.toml b/esp/.cargo/config.old.toml deleted file mode 100644 index 7a4ced8..0000000 --- a/esp/.cargo/config.old.toml +++ /dev/null @@ -1,27 +0,0 @@ -[build] -target = "xtensa-esp32-none-elf" - -[target.'cfg(target_arch = "xtensa")'] -#runner = "espflash flash --monitor --flash-size 4mb --chip esp32 --partition-table partition.csv --flash-freq 40mhz --flash-mode qio" -runner = "espflash flash --monitor --flash-size 4mb --chip esp32" -rustflags = [ - # Optimization - "-Z", "location-detail=none", - "-C", "link-args=-Wl,--sort-section=alignment", - "-C", "inline-threshold=7", - - # GNU LD - "-C", "link-arg=-Wl,-Tlinkall.x", - "-C", "link-arg=-nostartfiles", - - # LLD - # "-C", "link-arg=-Tlinkall.x", - # "-C", "linker=rust-lld", -] - -[env] -ESP_LOGLEVEL = "info" - -[unstable] -build-std = ["core", "panic_abort"] -#build-std = ["core"] diff --git a/esp/.cargo/config.toml b/esp/.cargo/config.toml deleted file mode 100644 index b5f3b3a..0000000 --- a/esp/.cargo/config.toml +++ /dev/null @@ -1,17 +0,0 @@ -[target.xtensa-esp32-none-elf] -runner = "espflash flash --monitor" - -[env] -ESP_LOG="info" - -[build] -rustflags = [ - "-C", "link-arg=-Wl,-Tlinkall.x", - "-C", "link-arg=-Trom_functions.x", - "-C", "link-arg=-nostartfiles", -] - -target = "xtensa-esp32-none-elf" - -[unstable] -build-std = ["alloc", "core"] diff --git a/esp/.gitignore b/esp/.gitignore deleted file mode 100644 index 9d71848..0000000 --- a/esp/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -wifi-ssid.txt -wifi-psw.txt -target diff --git a/esp/.vscode/settings.json b/esp/.vscode/settings.json deleted file mode 100644 index daba905..0000000 --- a/esp/.vscode/settings.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "rust-analyzer.cargo.allTargets": false, - "rust-analyzer.cargo.target": "xtensa-esp32-none-elf", -} diff --git a/esp/Cargo.lock b/esp/Cargo.lock deleted file mode 100644 index 5c82451..0000000 --- a/esp/Cargo.lock +++ /dev/null @@ -1,1552 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "anyhow" -version = "1.0.95" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" - -[[package]] -name = "as-slice" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45403b49e3954a4b8428a0ac21a4b7afadccf92bfd96273f1a58cd4812496ae0" -dependencies = [ - "generic-array 0.12.4", - "generic-array 0.13.3", - "generic-array 0.14.7", - "stable_deref_trait", -] - -[[package]] -name = "as-slice" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "516b6b4f0e40d50dcda9365d53964ec74560ad4284da2e7fc97122cd83174516" -dependencies = [ - "stable_deref_trait", -] - -[[package]] -name = "atomic-polyfill" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" -dependencies = [ - "critical-section", -] - -[[package]] -name = "atomic-pool" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58c5fc22e05ec2884db458bf307dc7b278c9428888d2b6e6fad9c0ae7804f5f6" -dependencies = [ - "as-slice 0.1.5", - "as-slice 0.2.1", - "atomic-polyfill", - "stable_deref_trait", -] - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "az" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" - -[[package]] -name = "bare-metal" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603" - -[[package]] -name = "basic-toml" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "823388e228f614e9558c6804262db37960ec8821856535f5c3f59913140558f8" -dependencies = [ - "serde", -] - -[[package]] -name = "bit_field" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" - -[[package]] -name = "bitfield" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f798d2d157e547aa99aab0967df39edd0b70307312b6f8bd2848e6abe40896e0" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bytemuck" -version = "1.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" -dependencies = [ - "num-traits", -] - -[[package]] -name = "critical-section" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" - -[[package]] -name = "darling" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" -dependencies = [ - "darling_core", - "quote", - "syn", -] - -[[package]] -name = "delegate" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc2323e10c92e1cf4d86e11538512e6dc03ceb586842970b6332af3d4046a046" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "document-features" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" -dependencies = [ - "litrs", -] - -[[package]] -name = "embassy-embedded-hal" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5794414bc20e0d750f145bc0e82366b19dd078e9e075e8331fb8dd069a1cb6a2" -dependencies = [ - "embassy-futures", - "embassy-sync 0.6.1", - "embassy-time", - "embedded-hal 0.2.7", - "embedded-hal 1.0.0", - "embedded-hal-async", - "embedded-storage", - "embedded-storage-async", - "nb 1.1.0", -] - -[[package]] -name = "embassy-executor" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64f84599b0f4296b92a4b6ac2109bc02340094bda47b9766c5f9ec6a318ebf8" -dependencies = [ - "critical-section", - "document-features", - "embassy-executor-macros", -] - -[[package]] -name = "embassy-executor-macros" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3577b1e9446f61381179a330fc5324b01d511624c55f25e3c66c9e3c626dbecf" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "embassy-futures" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f878075b9794c1e4ac788c95b728f26aa6366d32eeb10c7051389f898f7d067" - -[[package]] -name = "embassy-net" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cf91dd36dfd623de32242af711fd294d41159f02130052fc93c5c5ba93febe" -dependencies = [ - "as-slice 0.2.1", - "atomic-pool", - "document-features", - "embassy-net-driver", - "embassy-sync 0.5.0", - "embassy-time", - "embedded-io-async", - "embedded-nal-async", - "futures", - "generic-array 0.14.7", - "heapless", - "managed", - "smoltcp", - "stable_deref_trait", -] - -[[package]] -name = "embassy-net-driver" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524eb3c489760508f71360112bca70f6e53173e6fe48fc5f0efd0f5ab217751d" - -[[package]] -name = "embassy-sync" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd938f25c0798db4280fcd8026bf4c2f48789aebf8f77b6e5cf8a7693ba114ec" -dependencies = [ - "cfg-if", - "critical-section", - "embedded-io-async", - "futures-util", - "heapless", -] - -[[package]] -name = "embassy-sync" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3899a6e39fa3f54bf8aaf00979f9f9c0145a522f7244810533abbb748be6ce82" -dependencies = [ - "cfg-if", - "critical-section", - "embedded-io-async", - "futures-sink", - "futures-util", - "heapless", -] - -[[package]] -name = "embassy-time" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "158080d48f824fad101d7b2fae2d83ac39e3f7a6fa01811034f7ab8ffc6e7309" -dependencies = [ - "cfg-if", - "critical-section", - "document-features", - "embassy-time-driver", - "embassy-time-queue-driver", - "embedded-hal 0.2.7", - "embedded-hal 1.0.0", - "embedded-hal-async", - "futures-util", - "heapless", -] - -[[package]] -name = "embassy-time-driver" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c214077aaa9206958b16411c157961fb7990d4ea628120a78d1a5a28aed24" -dependencies = [ - "document-features", -] - -[[package]] -name = "embassy-time-queue-driver" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1177859559ebf42cd24ae7ba8fe6ee707489b01d0bf471f8827b7b12dcb0bc0" - -[[package]] -name = "embedded-can" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9d2e857f87ac832df68fa498d18ddc679175cf3d2e4aa893988e5601baf9438" -dependencies = [ - "nb 1.1.0", -] - -[[package]] -name = "embedded-graphics" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0649998afacf6d575d126d83e68b78c0ab0e00ca2ac7e9b3db11b4cbe8274ef0" -dependencies = [ - "az", - "byteorder", - "embedded-graphics-core", - "float-cmp", - "micromath", -] - -[[package]] -name = "embedded-graphics-core" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba9ecd261f991856250d2207f6d8376946cd9f412a2165d3b75bc87a0bc7a044" -dependencies = [ - "az", - "byteorder", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89" - -[[package]] -name = "embedded-hal-async" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4c685bbef7fe13c3c6dd4da26841ed3980ef33e841cddfa15ce8a8fb3f1884" -dependencies = [ - "embedded-hal 1.0.0", -] - -[[package]] -name = "embedded-hal-nb" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fba4268c14288c828995299e59b12babdbe170f6c6d73731af1b4648142e8605" -dependencies = [ - "embedded-hal 1.0.0", - "nb 1.1.0", -] - -[[package]] -name = "embedded-io" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" - -[[package]] -name = "embedded-io-async" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff09972d4073aa8c299395be75161d582e7629cd663171d62af73c8d50dba3f" -dependencies = [ - "embedded-io", -] - -[[package]] -name = "embedded-layout" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd38d6d83acd193889e7fbdffc9d16bb82d4328d372c7c75826619a8eb8cbcda" -dependencies = [ - "embedded-graphics", - "embedded-layout-macros", -] - -[[package]] -name = "embedded-layout-macros" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f6e621fe4c7e05b695274b722dc0a60bacd1c8696b58191baa0154713d52400" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "embedded-nal" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a943fad5ed3d3f8a00f1e80f6bba371f1e7f0df28ec38477535eb318dc19cc" -dependencies = [ - "nb 1.1.0", - "no-std-net", -] - -[[package]] -name = "embedded-nal-async" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72229137a4fc12d239b0b7f50f04b30790678da6d782a0f3f1909bf57ec4b759" -dependencies = [ - "embedded-io-async", - "embedded-nal", - "no-std-net", -] - -[[package]] -name = "embedded-storage" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21dea9854beb860f3062d10228ce9b976da520a73474aed3171ec276bc0c032" - -[[package]] -name = "embedded-storage-async" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1763775e2323b7d5f0aa6090657f5e21cfa02ede71f5dc40eead06d64dcd15cc" -dependencies = [ - "embedded-storage", -] - -[[package]] -name = "embedded-text" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "005680edc0d075af5e02d5788ca291737bd9aba7fc404ae031cc9dfa715e5f7d" -dependencies = [ - "az", - "embedded-graphics", - "object-chain", -] - -[[package]] -name = "enum-as-inner" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "enumset" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a4b049558765cef5f0c1a273c3fc57084d768b44d2f98127aef4cceb17293" -dependencies = [ - "enumset_derive", -] - -[[package]] -name = "enumset_derive" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59c3b24c345d8c314966bdc1832f6c2635bfcce8e7cf363bd115987bba2ee242" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "epd-waveshare" -version = "0.5.0" -dependencies = [ - "bit_field", - "embedded-graphics-core", - "embedded-hal 1.0.0", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "esp-alloc" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5162b6e9cd99cc974ec2742da3cf8433e7332853ae10fec922d174ff20fa4c5f" -dependencies = [ - "critical-section", - "enumset", - "linked_list_allocator", -] - -[[package]] -name = "esp-backtrace" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7660d85e3e7b0e113aaeeffb1a155e64a09a5035d4104031875acdba4cb68e" -dependencies = [ - "esp-build", - "esp-println", - "semihosting", -] - -[[package]] -name = "esp-build" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94a4b8d74e7cc7baabcca5b2277b41877e039ad9cd49959d48ef94dac7eab4b" -dependencies = [ - "quote", - "syn", - "termcolor", -] - -[[package]] -name = "esp-config" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7584e4cd1dac06201fd92fff1c84b396be5458ac4d93e9457e7a89b1b42c60e" -dependencies = [ - "document-features", -] - -[[package]] -name = "esp-hal" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5605e1518d63f7bf9fbd9885e61d2896060d2e4f28954736bdd74da911b676" -dependencies = [ - "basic-toml", - "bitfield", - "bitflags 2.6.0", - "bytemuck", - "cfg-if", - "chrono", - "critical-section", - "delegate", - "document-features", - "embassy-embedded-hal", - "embassy-futures", - "embassy-sync 0.6.1", - "embedded-can", - "embedded-hal 0.2.7", - "embedded-hal 1.0.0", - "embedded-hal-async", - "embedded-hal-nb", - "embedded-io", - "embedded-io-async", - "enumset", - "esp-build", - "esp-config", - "esp-hal-procmacros", - "esp-metadata", - "esp-riscv-rt", - "esp32", - "fugit", - "log", - "nb 1.1.0", - "paste", - "portable-atomic", - "rand_core", - "serde", - "strum", - "ufmt-write", - "void", - "xtensa-lx", - "xtensa-lx-rt", -] - -[[package]] -name = "esp-hal-embassy" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d0f2537ea2ff9bea26a1c8bfe43ad580d4c89febf27189653a9cf95f1f7961" -dependencies = [ - "critical-section", - "document-features", - "embassy-executor", - "embassy-time-driver", - "esp-build", - "esp-config", - "esp-hal", - "esp-hal-procmacros", - "esp-metadata", - "portable-atomic", - "static_cell", -] - -[[package]] -name = "esp-hal-procmacros" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69a9a8706b7d1182b56335d196e70eeb04e2b70f4b8db96432898bd3c2bdb91e" -dependencies = [ - "darling", - "document-features", - "litrs", - "proc-macro-crate", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "esp-metadata" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9972bbb21dcafe430b87f92efc7a788978a2d17cf8f572d104beeb48602482a" -dependencies = [ - "anyhow", - "basic-toml", - "serde", - "strum", -] - -[[package]] -name = "esp-println" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee38e87bc7e303c299047c0e9bcd0f8ccca7c7e70d1fd78bbb565db14f33beb6" -dependencies = [ - "critical-section", - "esp-build", - "log", - "portable-atomic", -] - -[[package]] -name = "esp-riscv-rt" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94aca65db6157aa5f42d9df6595b21462f28207ca4230b799aa3620352ef6a72" -dependencies = [ - "document-features", - "riscv", - "riscv-rt-macros", -] - -[[package]] -name = "esp-wifi" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00d36018303cd60a30184c6f605a921038c08ff34afc870e22070ea08a6280a2" -dependencies = [ - "cfg-if", - "critical-section", - "document-features", - "embassy-net-driver", - "embassy-sync 0.6.1", - "embedded-io", - "embedded-io-async", - "enumset", - "esp-alloc", - "esp-build", - "esp-config", - "esp-hal", - "esp-metadata", - "esp-wifi-sys", - "fugit", - "heapless", - "libm", - "log", - "num-derive", - "num-traits", - "portable-atomic", - "portable_atomic_enum", - "rand_core", - "smoltcp", - "xtensa-lx-rt", -] - -[[package]] -name = "esp-wifi-sys" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7730d6093853119088bbb793e3383801965ebe8fcf91e0817781d94628aaf718" -dependencies = [ - "anyhow", - "log", -] - -[[package]] -name = "esp32" -version = "0.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7d3208ef4ffd96c3105b3fb6fd19e8512bc128b24cb866dc26a734b09f454c" -dependencies = [ - "critical-section", - "vcell", -] - -[[package]] -name = "float-cmp" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" -dependencies = [ - "num-traits", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "fugit" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17186ad64927d5ac8f02c1e77ccefa08ccd9eaa314d5a4772278aa204a22f7e7" -dependencies = [ - "gcd", -] - -[[package]] -name = "futures" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-io" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-macro", - "futures-sink", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "gcd" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" - -[[package]] -name = "generic-array" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" -dependencies = [ - "typenum", -] - -[[package]] -name = "generic-array" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f797e67af32588215eaaab8327027ee8e71b9dd0b2b26996aedf20c030fce309" -dependencies = [ - "typenum", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "hash32" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" -dependencies = [ - "byteorder", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heapless" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" -dependencies = [ - "hash32", - "portable-atomic", - "stable_deref_trait", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "libm" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" - -[[package]] -name = "linked_list_allocator" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afa463f5405ee81cdb9cc2baf37e08ec7e4c8209442b5d72c04cfb2cd6e6286" - -[[package]] -name = "litrs" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "managed" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca88d725a0a943b096803bd34e73a4437208b6077654cc4ecb2947a5f91618d" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "micromath" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c8dda44ff03a2f238717214da50f65d5a53b45cd213a7370424ffdb6fae815" - -[[package]] -name = "minijinja" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c37e1b517d1dcd0e51dc36c4567b9d5a29262b3ec8da6cb5d35e27a8fb529b5" -dependencies = [ - "serde", -] - -[[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.1.0", -] - -[[package]] -name = "nb" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d" - -[[package]] -name = "no-std-net" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" - -[[package]] -name = "num-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "object-chain" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41af26158b0f5530f7b79955006c2727cd23d0d8e7c3109dc316db0a919784dd" - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "portable-atomic" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" - -[[package]] -name = "portable_atomic_enum" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d48f60c43e0120bb2bb48589a16d4bed2f4b911be41e299f2d0fc0e0e20885" -dependencies = [ - "portable-atomic", - "portable_atomic_enum_macros", -] - -[[package]] -name = "portable_atomic_enum_macros" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33fa6ec7f2047f572d49317cca19c87195de99c6e5b6ee492da701cfe02b053" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "proc-macro-crate" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" -dependencies = [ - "toml_edit", -] - -[[package]] -name = "proc-macro-error-attr2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" -dependencies = [ - "proc-macro2", - "quote", -] - -[[package]] -name = "proc-macro-error2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" -dependencies = [ - "proc-macro-error-attr2", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r0" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7a31eed1591dcbc95d92ad7161908e72f4677f8fabf2a32ca49b4237cbf211" - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" - -[[package]] -name = "riscv" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea8ff73d3720bdd0a97925f0bf79ad2744b6da8ff36be3840c48ac81191d7a7" -dependencies = [ - "critical-section", - "embedded-hal 1.0.0", - "paste", - "riscv-macros", - "riscv-pac", -] - -[[package]] -name = "riscv-macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f265be5d634272320a7de94cea15c22a3bfdd4eb42eb43edc528415f066a1f25" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "riscv-pac" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8188909339ccc0c68cfb5a04648313f09621e8b87dc03095454f1a11f6c5d436" - -[[package]] -name = "riscv-rt-macros" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30f19a85fe107b65031e0ba8ec60c34c2494069fe910d6c297f5e7cb5a6f76d0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "rustphone" -version = "0.1.0" -dependencies = [ - "cfg-if", - "critical-section", - "embassy-embedded-hal", - "embassy-executor", - "embassy-net", - "embassy-sync 0.6.1", - "embassy-time", - "embedded-graphics", - "embedded-hal 0.2.7", - "embedded-hal 1.0.0", - "embedded-io", - "embedded-io-async", - "embedded-layout", - "embedded-text", - "epd-waveshare", - "esp-alloc", - "esp-backtrace", - "esp-hal", - "esp-hal-embassy", - "esp-println", - "esp-wifi", - "log", - "nb 1.1.0", - "rand_core", - "sh1106", - "static_cell", -] - -[[package]] -name = "rustversion" -version = "1.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "semihosting" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1004ff204633065b824d4b952bf5ac84c185d3bd4d43f6b3ae2f049ee318944e" - -[[package]] -name = "serde" -version = "1.0.217" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.217" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_spanned" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" -dependencies = [ - "serde", -] - -[[package]] -name = "sh1106" -version = "0.5.0" -source = "git+https://github.com/techmccat/sh1106?branch=hal-1#637f5ed8bf0d9b66d481f49088b478aeeb50bc2c" -dependencies = [ - "embedded-graphics-core", - "embedded-hal 1.0.0", -] - -[[package]] -name = "smoltcp" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a1a996951e50b5971a2c8c0fa05a381480d70a933064245c4a223ddc87ccc97" -dependencies = [ - "bitflags 1.3.2", - "byteorder", - "cfg-if", - "heapless", - "managed", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -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 = "static_cell" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89b0684884a883431282db1e4343f34afc2ff6996fe1f4a1664519b66e14c1e" -dependencies = [ - "portable-atomic", -] - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "strum" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn", -] - -[[package]] -name = "syn" -version = "2.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ae51629bf965c5c098cc9e87908a3df5301051a9e087d6f9bef5c9771ed126" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "toml" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - -[[package]] -name = "toml_datetime" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.22.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" -dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "ufmt-write" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e87a2ed6b42ec5e28cc3b94c09982969e9227600b2e3dcbc1db927a84c06bd69" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[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.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" - -[[package]] -name = "winapi-util" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winnow" -version = "0.6.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" -dependencies = [ - "memchr", -] - -[[package]] -name = "xtensa-lx" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e758f94e1a1f71758f94052a2766dcb12604998eb372b8b2e30576e3ab1ba1e6" -dependencies = [ - "bare-metal", - "mutex-trait", - "spin", -] - -[[package]] -name = "xtensa-lx-rt" -version = "0.17.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c0307d03dadbf95633942e13901984f2059df4c963367348168cbd21c962669" -dependencies = [ - "anyhow", - "bare-metal", - "document-features", - "enum-as-inner", - "minijinja", - "r0", - "serde", - "strum", - "toml", - "xtensa-lx", - "xtensa-lx-rt-proc-macros", -] - -[[package]] -name = "xtensa-lx-rt-proc-macros" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11277b1e4cbb7ffe44678c668518b249c843c81df249b8f096701757bc50d7ee" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn", -] diff --git a/esp/Cargo.toml b/esp/Cargo.toml deleted file mode 100644 index a250e49..0000000 --- a/esp/Cargo.toml +++ /dev/null @@ -1,53 +0,0 @@ -[package] -name = "rustphone" -version = "0.1.0" -edition = "2021" - -[dependencies] -cfg-if = "1.0.0" -critical-section = "1.2.0" -embassy-embedded-hal = "0.2.0" -embassy-executor = { version = "0.6.3", features = ["task-arena-size-20480"] } -embassy-net = { version = "0.4.0", features = [ "tcp", "udp", "dhcpv4", "medium-ethernet"] } -embassy-sync = "0.6.1" -embassy-time = { version = "0.3.2", features = ["generic-queue-8"] } -embedded-graphics = "0.8.1" -embedded-hal = "1.0.0" -embedded-hal-02 = { version = "0.2.7", package = "embedded-hal", features = ["unproven"] } -embedded-io = "0.6.1" -embedded-io-async = "0.6.1" -embedded-layout = "0.4.1" -embedded-text = "0.7.2" -#embedded-tls = { version = "0.17.0", default-features = false } -epd-waveshare = { path = "../../epd-waveshare", optional = true } -esp-alloc = "0.5.0" -esp-backtrace = { version = "0.14.2", features = ["esp32", "exception-handler", "panic-handler", "println"] } -esp-hal = { version = "0.22.0", features = ["esp32"] } -esp-hal-embassy = { version = "0.5.0", features = ["esp32"] } -esp-println = { version = "0.12.0", features = ["esp32", "log"] } -esp-wifi = { version = "0.11.0", default-features = false, features = ["esp32", "utils", "wifi", "esp-alloc", "log"] } -log = "0.4.21" -#oled_async = { path = "../../oled_async", features = ["spi"] } -nb = "1.1.0" -#panic-halt = "0.2.0" -rand_core = "0.6.4" -#sh1106 = { version = "0.5.0", optional = true } -sh1106 = { git = "https://github.com/techmccat/sh1106", branch = "hal-1", optional = true } -static_cell = { version = "2.1.0", features = ["nightly"] } - -[features] -default = ["display_sh1106"] - -display_epd = ["dep:epd-waveshare"] -display_sh1106 = ["dep:sh1106"] - -[profile.release] -codegen-units = 1 -debug = 2 -debug-assertions = false -incremental = false -opt-level = 's' -lto = 'fat' -overflow-checks = false -#panic = "abort" -strip = true diff --git a/esp/README.md b/esp/README.md deleted file mode 100644 index d5bae83..0000000 --- a/esp/README.md +++ /dev/null @@ -1,11 +0,0 @@ -## Build - -```bash -cargo +esp run --release --target xtensa-esp32-none-elf -``` - -## Links - -https://github.com/ivmarkov/rust-esp32-std-demo/blob/main/src/main.rs#L1505 - -OLED SPI/I2C V2 1.3in SH1106 5/3.3V diff --git a/esp/build.rs b/esp/build.rs deleted file mode 100644 index 6bd5f23..0000000 --- a/esp/build.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn main() { - //println!("cargo:rustc-link-arg-bins=-Tlinkall.x"); - //println!("cargo:rustc-link-arg-bins=-Tesp32_rom_functions.x"); - //println!("cargo:rustc-link-arg-bins=-Tdefmt.x"); -} diff --git a/esp/partition.csv b/esp/partition.csv deleted file mode 100644 index 4ddb555..0000000 --- a/esp/partition.csv +++ /dev/null @@ -1,4 +0,0 @@ -# Name, Type, SubType, Offset, Size, Flags -nvs, data, nvs, 0x9000, 0x7000, -factory, app, factory, 0x10000, 2M, -spiffs, data, spiffs, , 2M, diff --git a/esp/rom_functions.x b/esp/rom_functions.x deleted file mode 100644 index d102380..0000000 --- a/esp/rom_functions.x +++ /dev/null @@ -1,1982 +0,0 @@ -/* -ESP32 ROM address table -Generated for ROM with MD5sum: -ab8282ae908fe9e7a63fb2a4ac2df013 ../../rom_image/prorom.elf -*/ - -PROVIDE ( abort = 0x4000bba4 ); -PROVIDE ( abs = 0x40056340 ); -PROVIDE ( Add2SelfBigHex256 = 0x40015b7c ); -PROVIDE ( AddBigHex256 = 0x40015b28 ); -PROVIDE ( AddBigHexModP256 = 0x40015c98 ); -PROVIDE ( AddP256 = 0x40015c74 ); -PROVIDE ( AddPdiv2_256 = 0x40015ce0 ); -PROVIDE ( aes_128_cbc_decrypt = 0x4005cc7c ); -PROVIDE ( aes_128_cbc_encrypt = 0x4005cc18 ); -PROVIDE ( aes_unwrap = 0x4005ccf0 ); -PROVIDE ( app_gpio_arg = 0x3ffe003c ); -PROVIDE ( app_gpio_handler = 0x3ffe0040 ); -PROVIDE ( __ascii_wctomb = 0x40058ef0 ); -PROVIDE ( asctime = 0x40059588 ); -PROVIDE ( asctime_r = 0x40000ec8 ); -PROVIDE ( asiprintf = 0x40056d9c ); -PROVIDE ( _asiprintf_r = 0x40056d4c ); -PROVIDE ( asniprintf = 0x40056cd8 ); -PROVIDE ( _asniprintf_r = 0x40056c64 ); -PROVIDE ( asnprintf = 0x40056cd8 ); -PROVIDE ( _asnprintf_r = 0x40056c64 ); -PROVIDE ( asprintf = 0x40056d9c ); -PROVIDE ( _asprintf_r = 0x40056d4c ); -PROVIDE ( atoi = 0x400566c4 ); -PROVIDE ( _atoi_r = 0x400566d4 ); -PROVIDE ( atol = 0x400566ec ); -PROVIDE ( _atol_r = 0x400566fc ); -PROVIDE ( base64_decode = 0x4005ced8 ); -PROVIDE ( base64_encode = 0x4005cdbc ); -PROVIDE ( BasePoint_x_256 = 0x3ff97488 ); -PROVIDE ( BasePoint_y_256 = 0x3ff97468 ); -PROVIDE ( bigHexInversion256 = 0x400168f0 ); -PROVIDE ( bigHexP256 = 0x3ff973bc ); -PROVIDE ( btdm_r_ble_bt_handler_tab_p_get = 0x40019b0c ); -PROVIDE ( btdm_r_btdm_option_data_p_get = 0x40010004 ); -PROVIDE ( btdm_r_btdm_rom_version_get = 0x40010078 ); -PROVIDE ( btdm_r_data_init = 0x4001002c ); -PROVIDE ( btdm_r_import_rf_phy_func_p_get = 0x40054298 ); -PROVIDE ( btdm_r_ip_func_p_get = 0x40019af0 ); -PROVIDE ( btdm_r_ip_func_p_set = 0x40019afc ); -PROVIDE ( btdm_r_modules_func_p_get = 0x4005427c ); -PROVIDE ( btdm_r_modules_func_p_set = 0x40054270 ); -PROVIDE ( btdm_r_plf_func_p_set = 0x40054288 ); -PROVIDE ( bt_util_buf_env = 0x3ffb8bd4 ); -PROVIDE ( bzero = 0x4000c1f4 ); -PROVIDE ( cache_flash_mmu_set = 0x400095e0 ); -PROVIDE ( cache_flush = 0x40009a14 ); -PROVIDE ( cache_read_disable = 0x40009ab8 ); -PROVIDE ( cache_read_enable = 0x40009a84 ); -PROVIDE ( cache_read_init = 0x40009950 ); -/* This is static function, but can be used, not generated by script*/ -PROVIDE ( calc_rtc_memory_crc = 0x40008170 ); -PROVIDE ( calloc = 0x4000bee4 ); -PROVIDE ( _calloc_r = 0x4000bbf8 ); -PROVIDE ( check_pos = 0x400068b8 ); -PROVIDE ( _cleanup = 0x40001df8 ); -PROVIDE ( _cleanup_r = 0x40001d48 ); -PROVIDE ( __clear_cache = 0x40063860 ); -PROVIDE ( close = 0x40001778 ); -PROVIDE ( _close_r = 0x4000bd3c ); -PROVIDE ( co_default_bdaddr = 0x3ffae704 ); -PROVIDE ( co_null_bdaddr = 0x3ffb80e0 ); -PROVIDE ( co_sca2ppm = 0x3ff971e8 ); -PROVIDE ( crc16_be = 0x4005d09c ); -PROVIDE ( crc16_le = 0x4005d05c ); -PROVIDE ( crc32_be = 0x4005d024 ); -PROVIDE ( crc32_le = 0x4005cfec ); -PROVIDE ( crc8_be = 0x4005d114 ); -PROVIDE ( crc8_le = 0x4005d0e0 ); -PROVIDE ( creat = 0x40000e8c ); -PROVIDE ( ctime = 0x400595b0 ); -PROVIDE ( ctime_r = 0x400595c4 ); -PROVIDE ( _ctype_ = 0x3ff96354 ); -PROVIDE ( __ctype_ptr__ = 0x3ff96350 ); -PROVIDE ( _data_end = 0x4000d5c8 ); -PROVIDE ( _data_end_btdm_rom = 0x4000d4f8 ); -PROVIDE ( _data_start = 0x4000d4f8 ); -PROVIDE ( _data_start_btdm_rom = 0x4000d4f4 ); -PROVIDE ( _data_start_btdm = 0x3ffae6e0); -PROVIDE ( _data_end_btdm = 0x3ffaff10); -PROVIDE ( _sbss_btdm = 0x3ffb8000); -PROVIDE ( _ebss_btdm = 0x3ffbff70); -PROVIDE ( _daylight = 0x3ffae0a4 ); -PROVIDE ( dbg_default_handler = 0x3ff97218 ); -PROVIDE ( dbg_default_state = 0x3ff97220 ); -PROVIDE ( dbg_state = 0x3ffb8d5d ); -PROVIDE ( DebugE256PublicKey_x = 0x3ff97428 ); -PROVIDE ( DebugE256PublicKey_y = 0x3ff97408 ); -PROVIDE ( DebugE256SecretKey = 0x3ff973e8 ); -PROVIDE ( debug_timer = 0x3ffe042c ); -PROVIDE ( debug_timerfn = 0x3ffe0430 ); -PROVIDE ( dh_group14_generator = 0x3ff9ac60 ); -PROVIDE ( dh_group14_prime = 0x3ff9ab60 ); -PROVIDE ( dh_group15_generator = 0x3ff9ab5f ); -PROVIDE ( dh_group15_prime = 0x3ff9a9df ); -PROVIDE ( dh_group16_generator = 0x3ff9a9de ); -PROVIDE ( dh_group16_prime = 0x3ff9a7de ); -PROVIDE ( dh_group17_generator = 0x3ff9a7dd ); -PROVIDE ( dh_group17_prime = 0x3ff9a4dd ); -PROVIDE ( dh_group18_generator = 0x3ff9a4dc ); -PROVIDE ( dh_group18_prime = 0x3ff9a0dc ); -PROVIDE ( dh_group1_generator = 0x3ff9ae03 ); -PROVIDE ( dh_group1_prime = 0x3ff9ada3 ); -PROVIDE ( dh_group2_generator = 0x3ff9ada2 ); -PROVIDE ( dh_group2_prime = 0x3ff9ad22 ); -PROVIDE ( dh_group5_generator = 0x3ff9ad21 ); -PROVIDE ( dh_group5_prime = 0x3ff9ac61 ); -PROVIDE ( div = 0x40056348 ); -PROVIDE ( _DoubleExceptionVector = 0x400003c0 ); -PROVIDE ( dummy_len_plus = 0x3ffae290 ); -PROVIDE ( __dummy_lock = 0x4000c728 ); -PROVIDE ( __dummy_lock_try = 0x4000c730 ); -PROVIDE ( ecc_env = 0x3ffb8d60 ); -PROVIDE ( ecc_Jacobian_InfinityPoint256 = 0x3ff972e8 ); -PROVIDE ( em_buf_env = 0x3ffb8d74 ); -PROVIDE ( environ = 0x3ffae0b4 ); -PROVIDE ( __env_lock = 0x40001fd4 ); -PROVIDE ( __env_unlock = 0x40001fe0 ); -PROVIDE ( esp_crc8 = 0x4005d144 ); -PROVIDE ( _etext = 0x4000d66c ); -PROVIDE ( ets_aes_crypt = 0x4005c9b8 ); -PROVIDE ( ets_aes_disable = 0x4005c8f8 ); -PROVIDE ( ets_aes_enable = 0x4005c8cc ); -PROVIDE ( ets_aes_set_endian = 0x4005c928 ); -PROVIDE ( ets_aes_setkey_dec = 0x4005c994 ); -PROVIDE ( ets_aes_setkey_enc = 0x4005c97c ); -PROVIDE ( ets_bigint_disable = 0x4005c4e0 ); -PROVIDE ( ets_bigint_enable = 0x4005c498 ); -PROVIDE ( ets_bigint_mod_mult_getz = 0x4005c818 ); -PROVIDE ( ets_bigint_mod_mult_prepare = 0x4005c7b4 ); -PROVIDE ( ets_bigint_mod_power_getz = 0x4005c614 ); -PROVIDE ( ets_bigint_mod_power_prepare = 0x4005c54c ); -PROVIDE ( ets_bigint_montgomery_mult_getz = 0x4005c7a4 ); -PROVIDE ( ets_bigint_montgomery_mult_prepare = 0x4005c6fc ); -PROVIDE ( ets_bigint_mult_getz = 0x4005c6e8 ); -PROVIDE ( ets_bigint_mult_prepare = 0x4005c630 ); -PROVIDE ( ets_bigint_wait_finish = 0x4005c520 ); -PROVIDE ( ets_delay_us = 0x40008534 ); -PROVIDE ( ets_efuse_get_8M_clock = 0x40008710 ); -PROVIDE ( ets_efuse_get_spiconfig = 0x40008658 ); -PROVIDE ( ets_efuse_program_op = 0x40008628 ); -PROVIDE ( ets_efuse_read_op = 0x40008600 ); -PROVIDE ( ets_get_cpu_frequency = 0x4000855c ); -PROVIDE ( ets_get_detected_xtal_freq = 0x40008588 ); -PROVIDE ( ets_get_xtal_scale = 0x4000856c ); -PROVIDE ( ets_update_cpu_frequency_rom = 0x40008550 ); -PROVIDE ( ets_install_putc1 = 0x40007d18 ); -PROVIDE ( ets_install_putc2 = 0x40007d38 ); -PROVIDE ( ets_install_uart_printf = 0x40007d28 ); -PROVIDE ( ets_intr_count = 0x3ffe03fc ); -PROVIDE ( ets_intr_lock = 0x400067b0 ); -PROVIDE ( ets_intr_unlock = 0x400067c4 ); -PROVIDE ( ets_isr_attach = 0x400067ec ); -PROVIDE ( ets_isr_mask = 0x400067fc ); -PROVIDE ( ets_isr_unmask = 0x40006808 ); -PROVIDE ( ets_post = 0x4000673c ); -PROVIDE ( ets_printf = 0x40007d54 ); -PROVIDE ( g_ticks_per_us_pro = 0x3ffe01e0 ); -PROVIDE ( g_ticks_per_us_app = 0x3ffe40f0 ); -PROVIDE ( ets_readySet_ = 0x3ffe01f0 ); -PROVIDE ( ets_run = 0x400066bc ); -PROVIDE ( ets_secure_boot_check = 0x4005cb40 ); -PROVIDE ( ets_secure_boot_check_finish = 0x4005cc04 ); -PROVIDE ( ets_secure_boot_check_start = 0x4005cbcc ); -PROVIDE ( ets_secure_boot_finish = 0x4005ca84 ); -PROVIDE ( ets_secure_boot_hash = 0x4005cad4 ); -PROVIDE ( ets_secure_boot_obtain = 0x4005cb14 ); -PROVIDE ( ets_secure_boot_rd_abstract = 0x4005cba8 ); -PROVIDE ( ets_secure_boot_rd_iv = 0x4005cb84 ); -PROVIDE ( ets_secure_boot_start = 0x4005ca34 ); -PROVIDE ( ets_set_appcpu_boot_addr = 0x4000689c ); -PROVIDE ( ets_set_idle_cb = 0x40006674 ); -PROVIDE ( ets_set_startup_callback = 0x4000688c ); -PROVIDE ( ets_set_user_start = 0x4000687c ); -PROVIDE ( ets_sha_disable = 0x4005c0a8 ); -PROVIDE ( ets_sha_enable = 0x4005c07c ); -PROVIDE ( ets_sha_finish = 0x4005c104 ); -PROVIDE ( ets_sha_init = 0x4005c0d4 ); -PROVIDE ( ets_sha_update = 0x4005c2a0 ); -PROVIDE ( ets_startup_callback = 0x3ffe0404 ); -PROVIDE ( ets_task = 0x40006688 ); -PROVIDE ( ets_timer_arm = 0x40008368 ); -PROVIDE ( ets_timer_arm_us = 0x400083ac ); -PROVIDE ( ets_timer_disarm = 0x400083ec ); -PROVIDE ( ets_timer_done = 0x40008428 ); -PROVIDE ( ets_timer_handler_isr = 0x40008454 ); -PROVIDE ( ets_timer_init = 0x400084e8 ); -PROVIDE ( ets_timer_setfn = 0x40008350 ); -PROVIDE ( ets_unpack_flash_code = 0x40007018 ); -PROVIDE ( ets_unpack_flash_code_legacy = 0x4000694c ); -PROVIDE ( ets_update_cpu_frequency = 0x40008550 ); -PROVIDE ( ets_waiti0 = 0x400067d8 ); -PROVIDE ( exc_cause_table = 0x3ff991d0 ); -PROVIDE ( _exit_r = 0x4000bd28 ); -PROVIDE ( fclose = 0x400020ac ); -PROVIDE ( _fclose_r = 0x40001fec ); -PROVIDE ( fflush = 0x40059394 ); -PROVIDE ( _fflush_r = 0x40059320 ); -PROVIDE ( FilePacketSendDeflatedReqMsgProc = 0x40008b24 ); -PROVIDE ( FilePacketSendReqMsgProc = 0x40008860 ); -PROVIDE ( _findenv_r = 0x40001f44 ); -PROVIDE ( fiprintf = 0x40056efc ); -PROVIDE ( _fiprintf_r = 0x40056ed8 ); -PROVIDE ( fiscanf = 0x40058884 ); -PROVIDE ( _fiscanf_r = 0x400588b4 ); -PROVIDE ( FlashDwnLdDeflatedStartMsgProc = 0x40008ad8 ); -PROVIDE ( FlashDwnLdParamCfgMsgProc = 0x4000891c ); -PROVIDE ( FlashDwnLdStartMsgProc = 0x40008820 ); -PROVIDE ( FlashDwnLdStopDeflatedReqMsgProc = 0x40008c18 ); -PROVIDE ( FlashDwnLdStopReqMsgProc = 0x400088ec ); -PROVIDE ( __fp_lock_all = 0x40001f1c ); -PROVIDE ( fprintf = 0x40056efc ); -PROVIDE ( _fprintf_r = 0x40056ed8 ); -PROVIDE ( __fp_unlock_all = 0x40001f30 ); -PROVIDE ( fputwc = 0x40058ea8 ); -PROVIDE ( __fputwc = 0x40058da0 ); -PROVIDE ( _fputwc_r = 0x40058e4c ); -PROVIDE ( free = 0x4000beb8 ); -PROVIDE ( _free_r = 0x4000bbcc ); -PROVIDE ( fscanf = 0x40058884 ); -PROVIDE ( _fscanf_r = 0x400588b4 ); -PROVIDE ( _fstat_r = 0x4000bccc ); -PROVIDE ( _fwalk = 0x4000c738 ); -PROVIDE ( _fwalk_reent = 0x4000c770 ); -PROVIDE ( _GeneralException = 0x40000e14 ); -PROVIDE ( __get_current_time_locale = 0x40001834 ); -PROVIDE ( _getenv_r = 0x40001fbc ); -PROVIDE ( _getpid_r = 0x4000bcfc ); -PROVIDE ( __getreent = 0x4000be8c ); -PROVIDE ( _gettimeofday_r = 0x4000bc58 ); -PROVIDE ( __gettzinfo = 0x40001fcc ); -PROVIDE ( GetUartDevice = 0x40009598 ); -PROVIDE ( GF_Jacobian_Point_Addition256 = 0x400163a4 ); -PROVIDE ( GF_Jacobian_Point_Double256 = 0x40016260 ); -PROVIDE ( GF_Point_Jacobian_To_Affine256 = 0x40016b0c ); -PROVIDE ( _global_impure_ptr = 0x3ffae0b0 ); -PROVIDE ( gmtime = 0x40059848 ); -PROVIDE ( gmtime_r = 0x40059868 ); -PROVIDE ( g_phyFuns_instance = 0x3ffae0c4 ); -PROVIDE ( gpio_init = 0x40009c20 ); -PROVIDE ( gpio_input_get = 0x40009b88 ); -PROVIDE ( gpio_input_get_high = 0x40009b9c ); -PROVIDE ( gpio_intr_ack = 0x40009dd4 ); -PROVIDE ( gpio_intr_ack_high = 0x40009e1c ); -PROVIDE ( gpio_intr_handler_register = 0x40009e6c ); -PROVIDE ( gpio_intr_pending = 0x40009cec ); -PROVIDE ( gpio_intr_pending_high = 0x40009cf8 ); -PROVIDE ( gpio_matrix_in = 0x40009edc ); -PROVIDE ( gpio_matrix_out = 0x40009f0c ); -PROVIDE ( gpio_output_set = 0x40009b24 ); -PROVIDE ( gpio_output_set_high = 0x40009b5c ); -PROVIDE ( gpio_pad_hold = 0x4000a734 ); -PROVIDE ( gpio_pad_pulldown = 0x4000a348 ); -PROVIDE ( gpio_pad_pullup = 0x4000a22c ); -PROVIDE ( gpio_pad_select_gpio = 0x40009fdc ); -PROVIDE ( gpio_pad_set_drv = 0x4000a11c ); -PROVIDE ( gpio_pad_unhold = 0x4000a484 ); -PROVIDE ( gpio_pending_mask = 0x3ffe0038 ); -PROVIDE ( gpio_pending_mask_high = 0x3ffe0044 ); -PROVIDE ( gpio_pin_intr_state_set = 0x40009d04 ); -PROVIDE ( gpio_pin_wakeup_disable = 0x40009eb0 ); -PROVIDE ( gpio_pin_wakeup_enable = 0x40009e7c ); -PROVIDE ( gpio_register_get = 0x40009cbc ); -PROVIDE ( gpio_register_set = 0x40009bbc ); -PROVIDE ( gTxMsg = 0x3ffe0050 ); -PROVIDE ( hci_cmd_desc_root_tab = 0x3ff976d4 ); -PROVIDE ( hci_cmd_desc_tab_ctrl_bb = 0x3ff97b70 ); -PROVIDE ( hci_cmd_desc_tab_info_par = 0x3ff97b1c ); -PROVIDE ( hci_cmd_desc_tab_le = 0x3ff97870 ); -PROVIDE ( hci_cmd_desc_tab_lk_ctrl = 0x3ff97fc0 ); -PROVIDE ( hci_cmd_desc_tab_lk_pol = 0x3ff97f3c ); -PROVIDE ( hci_cmd_desc_tab_stat_par = 0x3ff97ac8 ); -PROVIDE ( hci_cmd_desc_tab_testing = 0x3ff97a98 ); -PROVIDE ( hci_cmd_desc_tab_vs = 0x3ff97714 ); -PROVIDE ( hci_command_handler = 0x4004c928 ); -PROVIDE ( hci_env = 0x3ffb9350 ); -PROVIDE ( rwip_env = 0x3ffb8bcc ); -PROVIDE ( hci_evt_dbg_desc_tab = 0x3ff9750c ); -PROVIDE ( hci_evt_desc_tab = 0x3ff9751c ); -PROVIDE ( hci_evt_le_desc_tab = 0x3ff974b4 ); -PROVIDE ( hci_fc_env = 0x3ffb9340 ); -PROVIDE ( hmac_md5 = 0x4005d264 ); -PROVIDE ( hmac_md5_vector = 0x4005d17c ); -PROVIDE ( hmac_sha1 = 0x40060acc ); -PROVIDE ( hmac_sha1_vector = 0x400609e4 ); -PROVIDE ( hmac_sha256 = 0x40060d58 ); -PROVIDE ( hmac_sha256_vector = 0x40060c84 ); -PROVIDE ( intr_matrix_set = 0x4000681c ); -PROVIDE ( iprintf = 0x40056978 ); -PROVIDE ( _iprintf_r = 0x40056944 ); -PROVIDE ( isalnum = 0x40000f04 ); -PROVIDE ( isalpha = 0x40000f18 ); -PROVIDE ( isascii = 0x4000c20c ); -PROVIDE ( _isatty_r = 0x40000ea0 ); -PROVIDE ( isblank = 0x40000f2c ); -PROVIDE ( iscanf = 0x40058760 ); -PROVIDE ( _iscanf_r = 0x4005879c ); -PROVIDE ( iscntrl = 0x40000f50 ); -PROVIDE ( isdigit = 0x40000f64 ); -PROVIDE ( isgraph = 0x40000f94 ); -PROVIDE ( islower = 0x40000f78 ); -PROVIDE ( isprint = 0x40000fa8 ); -PROVIDE ( ispunct = 0x40000fc0 ); -PROVIDE ( isspace = 0x40000fd4 ); -PROVIDE ( isupper = 0x40000fe8 ); -PROVIDE ( itoa = 0x400566b4 ); -PROVIDE ( __itoa = 0x40056678 ); -PROVIDE ( jd_decomp = 0x400613e8 ); -PROVIDE ( jd_prepare = 0x40060fa8 ); -PROVIDE ( ke_env = 0x3ffb93cc ); -PROVIDE ( ke_handler_search = 0x4001a430 ); -PROVIDE ( ke_task_env = 0x3ffb81d4 ); -PROVIDE ( _KernelExceptionVector = 0x40000300 ); -PROVIDE ( _kill_r = 0x4000bd10 ); -PROVIDE ( labs = 0x40056370 ); -PROVIDE ( lb_default_handler = 0x3ff982b8 ); -PROVIDE ( lb_default_state_tab_p_get = 0x4001c198 ); -PROVIDE ( lb_env = 0x3ffb9424 ); -PROVIDE ( lb_hci_cmd_handler_tab_p_get = 0x4001c18c ); -PROVIDE ( lb_state = 0x3ffb94e8 ); -PROVIDE ( lc_default_handler = 0x3ff98648 ); -PROVIDE ( lc_default_state_tab_p_get = 0x4002f494 ); -PROVIDE ( lc_env = 0x3ffb94ec ); -PROVIDE ( lc_hci_cmd_handler_tab_p_get = 0x4002f488 ); -PROVIDE ( lc_state = 0x3ffb9508 ); -PROVIDE ( ld_acl_br_sizes = 0x3ff98a2a ); -PROVIDE ( ld_acl_br_types = 0x3ff98a36 ); -PROVIDE ( ld_acl_edr_sizes = 0x3ff98a14 ); -PROVIDE ( ld_acl_edr_types = 0x3ff98a22 ); -PROVIDE ( ld_env = 0x3ffb9510 ); -PROVIDE ( ldiv = 0x40056378 ); -PROVIDE ( ld_pcm_settings_dft = 0x3ff98a0c ); -PROVIDE ( ld_sched_params = 0x3ffb96c0 ); -PROVIDE ( ld_sync_train_channels = 0x3ff98a3c ); -PROVIDE ( _xtensa_level2_from = 0x40000954 ); -PROVIDE ( _xtensa_level2_vector = 0x40000180 ); -PROVIDE ( _xtensa_level3_from = 0x40000a28 ); -PROVIDE ( _xtensa_level3_vector = 0x400001c0 ); -PROVIDE ( _xtensa_level4_from = 0x40000af8 ); -PROVIDE ( _xtensa_level4_vector = 0x40000200 ); -PROVIDE ( _xtensa_level5_from = 0x40000c68 ); -PROVIDE ( _xtensa_level5_vector = 0x40000240 ); -PROVIDE ( _LevelOneInterrupt = 0x40000835 ); -PROVIDE ( _link_r = 0x4000bc9c ); -PROVIDE ( llc_default_handler = 0x3ff98b3c ); -PROVIDE ( llc_default_state_tab_p_get = 0x40046058 ); -PROVIDE ( llc_env = 0x3ffb96d0 ); -PROVIDE ( llc_hci_acl_data_tx_handler = 0x40042398 ); -PROVIDE ( llc_hci_cmd_handler_tab_p_get = 0x40042358 ); -PROVIDE ( llc_hci_command_handler = 0x40042360 ); -PROVIDE ( llcp_pdu_handler_tab_p_get = 0x40043f64 ); -PROVIDE ( llc_state = 0x3ffb96f8 ); -PROVIDE ( lldesc_build_chain = 0x4000a850 ); -PROVIDE ( lldesc_num2link = 0x4000a948 ); -PROVIDE ( lldesc_set_owner = 0x4000a974 ); -PROVIDE ( lld_evt_deferred_elt_push = 0x400466b4 ); -PROVIDE ( lld_evt_deferred_elt_pop = 0x400466dc ); -PROVIDE ( lld_evt_winsize_change = 0x40046730 ); -PROVIDE ( lld_evt_rxwin_compute = 0x400467c8 ); -PROVIDE ( lld_evt_slave_time_compute = 0x40046818 ); -PROVIDE ( lld_evt_env = 0x3ffb9704 ); -PROVIDE ( lld_evt_elt_wait_get = 0x400468e4 ); -PROVIDE ( lld_evt_get_next_free_slot = 0x4004692c ); -PROVIDE ( lld_pdu_adv_pk_desc_tab = 0x3ff98c70 ); -PROVIDE ( lld_pdu_llcp_pk_desc_tab = 0x3ff98b68 ); -PROVIDE ( lld_pdu_tx_flush_list = 0x4004a760 ); -PROVIDE ( lld_pdu_pack = 0x4004ab14 ); -PROVIDE ( LLM_AA_CT1 = 0x3ff98d8a ); -PROVIDE ( LLM_AA_CT2 = 0x3ff98d88 ); -PROVIDE ( llm_default_handler = 0x3ff98d80 ); -PROVIDE ( llm_default_state_tab_p_get = 0x4004e718 ); -PROVIDE ( llm_hci_cmd_handler_tab_p_get = 0x4004c920 ); -PROVIDE ( llm_le_env = 0x3ffb976c ); -PROVIDE ( llm_local_cmds = 0x3ff98d38 ); -PROVIDE ( llm_local_data_len_values = 0x3ff98d1c ); -PROVIDE ( llm_local_le_feats = 0x3ff98d30 ); -PROVIDE ( llm_local_le_states = 0x3ff98d28 ); -PROVIDE ( llm_state = 0x3ffb985c ); -PROVIDE ( lm_default_handler = 0x3ff990e0 ); -PROVIDE ( lm_default_state_tab_p_get = 0x40054268 ); -PROVIDE ( lm_env = 0x3ffb9860 ); -PROVIDE ( lm_hci_cmd_handler_tab_p_get = 0x4005425c ); -PROVIDE ( lm_local_supp_feats = 0x3ff990ee ); -PROVIDE ( lm_n_page_tab = 0x3ff990e8 ); -PROVIDE ( lmp_desc_tab = 0x3ff96e6c ); -PROVIDE ( lmp_ext_desc_tab = 0x3ff96d9c ); -PROVIDE ( lm_state = 0x3ffb9a1c ); -PROVIDE ( __locale_charset = 0x40059540 ); -PROVIDE ( __locale_cjk_lang = 0x40059558 ); -PROVIDE ( localeconv = 0x4005957c ); -PROVIDE ( _localeconv_r = 0x40059560 ); -PROVIDE ( __locale_mb_cur_max = 0x40059548 ); -PROVIDE ( __locale_msgcharset = 0x40059550 ); -PROVIDE ( localtime = 0x400595dc ); -PROVIDE ( localtime_r = 0x400595fc ); -PROVIDE ( _lock_acquire = 0x4000be14 ); -PROVIDE ( _lock_acquire_recursive = 0x4000be28 ); -PROVIDE ( _lock_close = 0x4000bdec ); -PROVIDE ( _lock_close_recursive = 0x4000be00 ); -PROVIDE ( _lock_init = 0x4000bdc4 ); -PROVIDE ( _lock_init_recursive = 0x4000bdd8 ); -PROVIDE ( _lock_release = 0x4000be64 ); -PROVIDE ( _lock_release_recursive = 0x4000be78 ); -PROVIDE ( _lock_try_acquire = 0x4000be3c ); -PROVIDE ( _lock_try_acquire_recursive = 0x4000be50 ); -PROVIDE ( longjmp = 0x400562cc ); -PROVIDE ( _lseek_r = 0x4000bd8c ); -PROVIDE ( malloc = 0x4000bea0 ); -PROVIDE ( _malloc_r = 0x4000bbb4 ); -PROVIDE ( maxSecretKey_256 = 0x3ff97448 ); -PROVIDE ( __mb_cur_max = 0x3ff96530 ); -PROVIDE ( MD5Final = 0x4005db1c ); -PROVIDE ( MD5Init = 0x4005da7c ); -PROVIDE ( MD5Update = 0x4005da9c ); -PROVIDE ( md5_vector = 0x4005db80 ); -PROVIDE ( memccpy = 0x4000c220 ); -PROVIDE ( memchr = 0x4000c244 ); -PROVIDE ( memcmp = 0x4000c260 ); -PROVIDE ( memcpy = 0x4000c2c8 ); -PROVIDE ( MemDwnLdStartMsgProc = 0x40008948 ); -PROVIDE ( MemDwnLdStopReqMsgProc = 0x400089dc ); -PROVIDE ( memmove = 0x4000c3c0 ); -PROVIDE ( MemPacketSendReqMsgProc = 0x40008978 ); -PROVIDE ( memrchr = 0x4000c400 ); -PROVIDE ( memset = 0x4000c44c ); -PROVIDE ( mktime = 0x4005a5e8 ); -PROVIDE ( mmu_init = 0x400095a4 ); -PROVIDE ( __month_lengths = 0x3ff9609c ); -PROVIDE ( MultiplyBigHexByUint32_256 = 0x40016214 ); -PROVIDE ( MultiplyBigHexModP256 = 0x400160b8 ); -PROVIDE ( MultiplyByU32ModP256 = 0x40015fdc ); -PROVIDE ( multofup = 0x4000ab8c ); -PROVIDE ( mz_adler32 = 0x4005edbc ); -PROVIDE ( mz_crc32 = 0x4005ee88 ); -PROVIDE ( mz_free = 0x4005eed4 ); -PROVIDE ( _NMIExceptionVector = 0x400002c0 ); -PROVIDE ( notEqual256 = 0x40015b04 ); -PROVIDE ( one_bits = 0x3ff971f8 ); -PROVIDE ( open = 0x4000178c ); -PROVIDE ( _open_r = 0x4000bd54 ); -PROVIDE ( pbkdf2_sha1 = 0x40060ba4 ); -PROVIDE ( phy_get_romfuncs = 0x40004100 ); -PROVIDE ( __powisf2 = 0x4006389c ); -PROVIDE ( _Pri_4_HandlerAddress = 0x3ffe0648 ); -PROVIDE ( _Pri_5_HandlerAddress = 0x3ffe064c ); -PROVIDE ( printf = 0x40056978 ); -PROVIDE ( _printf_common = 0x40057338 ); -PROVIDE ( _printf_float = 0x4000befc ); -PROVIDE ( _printf_i = 0x40057404 ); -PROVIDE ( _printf_r = 0x40056944 ); -PROVIDE ( qsort = 0x40056424 ); -PROVIDE ( _raise_r = 0x4000bc70 ); -PROVIDE ( rand = 0x40001058 ); -PROVIDE ( rand_r = 0x400010d4 ); -PROVIDE ( r_btdm_option_data = 0x3ffae6e0 ); -PROVIDE ( r_bt_util_buf_acl_rx_alloc = 0x40010218 ); -PROVIDE ( r_bt_util_buf_acl_rx_free = 0x40010234 ); -PROVIDE ( r_bt_util_buf_acl_tx_alloc = 0x40010268 ); -PROVIDE ( r_bt_util_buf_acl_tx_free = 0x40010280 ); -PROVIDE ( r_bt_util_buf_init = 0x400100e4 ); -PROVIDE ( r_bt_util_buf_lmp_tx_alloc = 0x400101d0 ); -PROVIDE ( r_bt_util_buf_lmp_tx_free = 0x400101ec ); -PROVIDE ( r_bt_util_buf_sync_clear = 0x400103c8 ); -PROVIDE ( r_bt_util_buf_sync_init = 0x400102c4 ); -PROVIDE ( r_bt_util_buf_sync_rx_alloc = 0x40010468 ); -PROVIDE ( r_bt_util_buf_sync_rx_free = 0x4001049c ); -PROVIDE ( r_bt_util_buf_sync_tx_alloc = 0x400103ec ); -PROVIDE ( r_bt_util_buf_sync_tx_free = 0x40010428 ); -PROVIDE ( rc4_skip = 0x40060928 ); -PROVIDE ( r_co_bdaddr_compare = 0x40014324 ); -PROVIDE ( r_co_bytes_to_string = 0x400142e4 ); -PROVIDE ( r_co_list_check_size_available = 0x400142c4 ); -PROVIDE ( r_co_list_extract = 0x4001404c ); -PROVIDE ( r_co_list_extract_after = 0x40014118 ); -PROVIDE ( r_co_list_find = 0x4001419c ); -PROVIDE ( r_co_list_init = 0x40013f14 ); -PROVIDE ( r_co_list_insert_after = 0x40014254 ); -PROVIDE ( r_co_list_insert_before = 0x40014200 ); -PROVIDE ( r_co_list_merge = 0x400141bc ); -PROVIDE ( r_co_list_pool_init = 0x40013f30 ); -PROVIDE ( r_co_list_pop_front = 0x40014028 ); -PROVIDE ( r_co_list_push_back = 0x40013fb8 ); -PROVIDE ( r_co_list_push_front = 0x40013ff4 ); -PROVIDE ( r_co_list_size = 0x400142ac ); -PROVIDE ( r_co_nb_good_channels = 0x40014360 ); -PROVIDE ( r_co_slot_to_duration = 0x40014348 ); -PROVIDE ( RcvMsg = 0x4000954c ); -PROVIDE ( r_dbg_init = 0x40014394 ); -PROVIDE ( r_dbg_platform_reset_complete = 0x400143d0 ); -PROVIDE ( r_dbg_swdiag_init = 0x40014470 ); -PROVIDE ( r_dbg_swdiag_read = 0x400144a4 ); -PROVIDE ( r_dbg_swdiag_write = 0x400144d0 ); -PROVIDE ( r_E1 = 0x400108e8 ); -PROVIDE ( r_E21 = 0x40010968 ); -PROVIDE ( r_E22 = 0x400109b4 ); -PROVIDE ( r_E3 = 0x40010a58 ); -PROVIDE ( lm_n192_mod_mul = 0x40011dc0 ); -PROVIDE ( lm_n192_mod_add = 0x40011e9c ); -PROVIDE ( lm_n192_mod_sub = 0x40011eec ); -PROVIDE ( r_ea_alarm_clear = 0x40015ab4 ); -PROVIDE ( r_ea_alarm_set = 0x40015a10 ); -PROVIDE ( read = 0x400017dc ); -PROVIDE ( _read_r = 0x4000bda8 ); -PROVIDE ( r_ea_elt_cancel = 0x400150d0 ); -PROVIDE ( r_ea_elt_create = 0x40015264 ); -PROVIDE ( r_ea_elt_insert = 0x400152a8 ); -PROVIDE ( r_ea_elt_remove = 0x400154f0 ); -PROVIDE ( r_ea_finetimer_isr = 0x400155d4 ); -PROVIDE ( r_ea_init = 0x40015228 ); -PROVIDE ( r_ea_interval_create = 0x4001555c ); -PROVIDE ( r_ea_interval_delete = 0x400155a8 ); -PROVIDE ( r_ea_interval_duration_req = 0x4001597c ); -PROVIDE ( r_ea_interval_insert = 0x4001557c ); -PROVIDE ( r_ea_interval_remove = 0x40015590 ); -PROVIDE ( realloc = 0x4000becc ); -PROVIDE ( _realloc_r = 0x4000bbe0 ); -PROVIDE ( ea_conflict_check = 0x40014e9c ); -PROVIDE ( ea_prog_timer = 0x40014f88 ); -PROVIDE ( r_ea_offset_req = 0x40015748 ); -PROVIDE ( r_ea_sleep_check = 0x40015928 ); -PROVIDE ( r_ea_sw_isr = 0x40015724 ); -PROVIDE ( r_ea_time_get_halfslot_rounded = 0x40015894 ); -PROVIDE ( r_ea_time_get_slot_rounded = 0x400158d4 ); -PROVIDE ( r_ecc_abort_key256_generation = 0x40017070 ); -PROVIDE ( r_ecc_generate_key256 = 0x40016e00 ); -PROVIDE ( r_ecc_gen_new_public_key = 0x400170c0 ); -PROVIDE ( r_ecc_gen_new_secret_key = 0x400170e4 ); -PROVIDE ( r_ecc_get_debug_Keys = 0x40017224 ); -PROVIDE ( r_ecc_init = 0x40016dbc ); -PROVIDE ( ecc_point_multiplication_uint8_256 = 0x40016804 ); -PROVIDE ( RecvBuff = 0x3ffe009c ); -PROVIDE ( recv_packet = 0x40009424 ); -PROVIDE ( r_em_buf_init = 0x4001729c ); -PROVIDE ( r_em_buf_rx_buff_addr_get = 0x400173e8 ); -PROVIDE ( r_em_buf_rx_free = 0x400173c4 ); -PROVIDE ( r_em_buf_tx_buff_addr_get = 0x40017404 ); -PROVIDE ( r_em_buf_tx_free = 0x4001741c ); -PROVIDE ( _rename_r = 0x4000bc28 ); -PROVIDE ( _ResetHandler = 0x40000450 ); -PROVIDE ( _ResetVector = 0x40000400 ); -PROVIDE ( r_F1_256 = 0x400133e4 ); -PROVIDE ( r_F2_256 = 0x40013568 ); -PROVIDE ( r_F3_256 = 0x40013664 ); -PROVIDE ( RFPLL_ICP_TABLE = 0x3ffb8b7c ); -PROVIDE ( r_G_256 = 0x40013470 ); -PROVIDE ( r_H3 = 0x40013760 ); -PROVIDE ( r_H4 = 0x40013830 ); -PROVIDE ( r_h4tl_init = 0x40017878 ); -PROVIDE ( r_h4tl_start = 0x40017924 ); -PROVIDE ( r_h4tl_stop = 0x40017934 ); -PROVIDE ( r_h4tl_write = 0x400178d0 ); -PROVIDE ( r_H5 = 0x400138dc ); -PROVIDE ( r_hashConcat = 0x40013a38 ); -PROVIDE ( r_hci_acl_tx_data_alloc = 0x4001951c ); -PROVIDE ( r_hci_acl_tx_data_received = 0x40019654 ); -PROVIDE ( r_hci_bt_acl_bdaddr_register = 0x40018900 ); -PROVIDE ( r_hci_bt_acl_bdaddr_unregister = 0x400189ac ); -PROVIDE ( r_hci_bt_acl_conhdl_register = 0x4001895c ); -PROVIDE ( r_hci_cmd_get_max_param_size = 0x400192d0 ); -PROVIDE ( r_hci_cmd_received = 0x400192f8 ); -PROVIDE ( r_hci_evt_filter_add = 0x40018a64 ); -PROVIDE ( r_hci_evt_mask_set = 0x400189e4 ); -PROVIDE ( r_hci_fc_acl_buf_size_set = 0x40017988 ); -PROVIDE ( r_hci_fc_acl_en = 0x400179d8 ); -PROVIDE ( r_hci_fc_acl_packet_sent = 0x40017a3c ); -PROVIDE ( r_hci_fc_check_host_available_nb_acl_packets = 0x40017aa4 ); -PROVIDE ( r_hci_fc_check_host_available_nb_sync_packets = 0x40017ac8 ); -PROVIDE ( r_hci_fc_host_nb_acl_pkts_complete = 0x40017a6c ); -PROVIDE ( r_hci_fc_host_nb_sync_pkts_complete = 0x40017a88 ); -PROVIDE ( r_hci_fc_init = 0x40017974 ); -PROVIDE ( r_hci_fc_sync_buf_size_set = 0x400179b0 ); -PROVIDE ( r_hci_fc_sync_en = 0x40017a30 ); -PROVIDE ( r_hci_fc_sync_packet_sent = 0x40017a54 ); -PROVIDE ( r_hci_init = 0x40018538 ); -PROVIDE ( r_hci_look_for_cmd_desc = 0x40018454 ); -PROVIDE ( r_hci_look_for_dbg_evt_desc = 0x400184c4 ); -PROVIDE ( r_hci_look_for_evt_desc = 0x400184a0 ); -PROVIDE ( r_hci_look_for_le_evt_desc = 0x400184e0 ); -PROVIDE ( r_hci_reset = 0x4001856c ); -PROVIDE ( r_hci_send_2_host = 0x400185bc ); -PROVIDE ( r_hci_sync_tx_data_alloc = 0x40019754 ); -PROVIDE ( r_hci_sync_tx_data_received = 0x400197c0 ); -PROVIDE ( r_hci_tl_init = 0x40019290 ); -PROVIDE ( r_hci_tl_send = 0x40019228 ); -PROVIDE ( r_hci_util_pack = 0x40019874 ); -PROVIDE ( r_hci_util_unpack = 0x40019998 ); -PROVIDE ( r_hci_voice_settings_get = 0x40018bdc ); -PROVIDE ( r_hci_voice_settings_set = 0x40018be8 ); -PROVIDE ( r_HMAC = 0x40013968 ); -PROVIDE ( r_import_rf_phy_func = 0x3ffb8354 ); -PROVIDE ( r_import_rf_phy_func_p = 0x3ffafd64 ); -PROVIDE ( r_ip_funcs = 0x3ffae710 ); -PROVIDE ( r_ip_funcs_p = 0x3ffae70c ); -PROVIDE ( r_ke_check_malloc = 0x40019de0 ); -PROVIDE ( r_ke_event_callback_set = 0x40019ba8 ); -PROVIDE ( r_ke_event_clear = 0x40019c2c ); -PROVIDE ( r_ke_event_flush = 0x40019ccc ); -PROVIDE ( r_ke_event_get = 0x40019c78 ); -PROVIDE ( r_ke_event_get_all = 0x40019cc0 ); -PROVIDE ( r_ke_event_init = 0x40019b90 ); -PROVIDE ( r_ke_event_schedule = 0x40019cdc ); -PROVIDE ( r_ke_event_set = 0x40019be0 ); -PROVIDE ( r_ke_flush = 0x4001a374 ); -PROVIDE ( r_ke_free = 0x4001a014 ); -PROVIDE ( r_ke_get_max_mem_usage = 0x4001a1c8 ); -PROVIDE ( r_ke_get_mem_usage = 0x4001a1a0 ); -PROVIDE ( r_ke_init = 0x4001a318 ); -PROVIDE ( r_ke_is_free = 0x4001a184 ); -PROVIDE ( r_ke_malloc = 0x40019eb4 ); -PROVIDE ( r_ke_mem_init = 0x40019d3c ); -PROVIDE ( r_ke_mem_is_empty = 0x40019d8c ); -PROVIDE ( r_ke_msg_alloc = 0x4001a1e0 ); -PROVIDE ( r_ke_msg_dest_id_get = 0x4001a2e0 ); -PROVIDE ( r_ke_msg_discard = 0x4001a850 ); -PROVIDE ( r_ke_msg_forward = 0x4001a290 ); -PROVIDE ( r_ke_msg_forward_new_id = 0x4001a2ac ); -PROVIDE ( r_ke_msg_free = 0x4001a2cc ); -PROVIDE ( r_ke_msg_in_queue = 0x4001a2f8 ); -PROVIDE ( r_ke_msg_save = 0x4001a858 ); -PROVIDE ( r_ke_msg_send = 0x4001a234 ); -PROVIDE ( r_ke_msg_send_basic = 0x4001a26c ); -PROVIDE ( r_ke_msg_src_id_get = 0x4001a2ec ); -PROVIDE ( r_ke_queue_extract = 0x40055fd0 ); -PROVIDE ( r_ke_queue_insert = 0x40056020 ); -PROVIDE ( r_ke_sleep_check = 0x4001a3d8 ); -PROVIDE ( r_ke_state_get = 0x4001a7d8 ); -PROVIDE ( r_ke_state_set = 0x4001a6fc ); -PROVIDE ( r_ke_stats_get = 0x4001a3f0 ); -PROVIDE ( r_ke_task_check = 0x4001a8a4 ); -PROVIDE ( r_ke_task_create = 0x4001a674 ); -PROVIDE ( r_ke_task_delete = 0x4001a6c0 ); -PROVIDE ( r_ke_task_init = 0x4001a650 ); -PROVIDE ( r_ke_task_msg_flush = 0x4001a860 ); -PROVIDE ( r_ke_timer_active = 0x4001ac08 ); -PROVIDE ( r_ke_timer_adjust_all = 0x4001ac30 ); -PROVIDE ( r_ke_timer_clear = 0x4001ab90 ); -PROVIDE ( r_ke_timer_init = 0x4001aa9c ); -PROVIDE ( r_ke_timer_set = 0x4001aac0 ); -PROVIDE ( r_ke_timer_sleep_check = 0x4001ac50 ); -PROVIDE ( r_KPrimC = 0x40010ad4 ); -PROVIDE ( r_lb_clk_adj_activate = 0x4001ae70 ); -PROVIDE ( r_lb_clk_adj_id_get = 0x4001af14 ); -PROVIDE ( r_lb_clk_adj_period_update = 0x4001af20 ); -PROVIDE ( r_lb_init = 0x4001acd4 ); -PROVIDE ( r_lb_mst_key = 0x4001afc0 ); -PROVIDE ( r_lb_mst_key_cmp = 0x4001af74 ); -PROVIDE ( r_lb_mst_key_restart_enc = 0x4001b0d4 ); -PROVIDE ( r_lb_mst_start_act_bcst_enc = 0x4001b198 ); -PROVIDE ( r_lb_mst_stop_act_bcst_enc = 0x4001b24c ); -PROVIDE ( r_lb_reset = 0x4001ad38 ); -PROVIDE ( r_lb_send_lmp = 0x4001adbc ); -PROVIDE ( r_lb_send_pdu_clk_adj = 0x4001af3c ); -PROVIDE ( r_lb_util_get_csb_mode = 0x4001ada4 ); -PROVIDE ( r_lb_util_get_nb_broadcast = 0x4001ad80 ); -PROVIDE ( r_lb_util_get_res_lt_addr = 0x4001ad98 ); -PROVIDE ( r_lb_util_set_nb_broadcast = 0x4001ad8c ); -PROVIDE ( r_lc_afh_set = 0x4001cc74 ); -PROVIDE ( r_lc_afh_start = 0x4001d240 ); -PROVIDE ( r_lc_auth_cmp = 0x4001cd54 ); -PROVIDE ( r_lc_calc_link_key = 0x4001ce7c ); -PROVIDE ( r_lc_chg_pkt_type_cmp = 0x4001d038 ); -PROVIDE ( r_lc_chg_pkt_type_cont = 0x4001cfbc ); -PROVIDE ( r_lc_chg_pkt_type_retry = 0x4001d0ac ); -PROVIDE ( r_lc_chk_to = 0x4001d2a8 ); -PROVIDE ( r_lc_cmd_stat_send = 0x4001c914 ); -PROVIDE ( r_lc_comb_key_svr = 0x4001d30c ); -PROVIDE ( r_lc_con_cmp = 0x4001d44c ); -PROVIDE ( r_lc_con_cmp_evt_send = 0x4001d4fc ); -PROVIDE ( r_lc_conn_seq_done = 0x40021334 ); -PROVIDE ( r_lc_detach = 0x4002037c ); -PROVIDE ( r_lc_dhkey = 0x4001d564 ); -PROVIDE ( r_lc_enc_cmp = 0x4001d8bc ); -PROVIDE ( r_lc_enc_key_refresh = 0x4001d720 ); -PROVIDE ( r_lc_end_chk_colli = 0x4001d858 ); -PROVIDE ( r_lc_end_of_sniff_nego = 0x4001d9a4 ); -PROVIDE ( r_lc_enter_sniff_mode = 0x4001ddb8 ); -PROVIDE ( r_lc_epr_change_lk = 0x4001db38 ); -PROVIDE ( r_lc_epr_cmp = 0x4001da88 ); -PROVIDE ( r_lc_epr_resp = 0x4001e0b4 ); -PROVIDE ( r_lc_epr_rsw_cmp = 0x4001dd40 ); -PROVIDE ( r_lc_ext_feat = 0x40020d6c ); -PROVIDE ( r_lc_feat = 0x40020984 ); -PROVIDE ( r_lc_hl_connect = 0x400209e8 ); -PROVIDE ( r_lc_init = 0x4001c948 ); -PROVIDE ( r_lc_init_calc_f3 = 0x4001deb0 ); -PROVIDE ( r_lc_initiator_epr = 0x4001e064 ); -PROVIDE ( r_lc_init_passkey_loop = 0x4001dfc0 ); -PROVIDE ( r_lc_init_start_mutual_auth = 0x4001df60 ); -PROVIDE ( r_lc_key_exch_end = 0x4001e140 ); -PROVIDE ( r_lc_legacy_pair = 0x4001e1c0 ); -PROVIDE ( r_lc_local_switch = 0x4001e22c ); -PROVIDE ( r_lc_local_trans_mode = 0x4001e2e4 ); -PROVIDE ( r_lc_local_untrans_mode = 0x4001e3a0 ); -PROVIDE ( r_lc_loc_auth = 0x40020ecc ); -PROVIDE ( r_lc_locepr_lkref = 0x4001d648 ); -PROVIDE ( r_lc_locepr_rsw = 0x4001d5d0 ); -PROVIDE ( r_lc_loc_sniff = 0x40020a6c ); -PROVIDE ( r_lc_max_slot_mgt = 0x4001e410 ); -PROVIDE ( r_lc_mst_key = 0x4001e7c0 ); -PROVIDE ( r_lc_mst_qos_done = 0x4001ea80 ); -PROVIDE ( r_lc_mst_send_mst_key = 0x4001e8f4 ); -PROVIDE ( r_lc_mutual_auth_end = 0x4001e670 ); -PROVIDE ( r_lc_mutual_auth_end2 = 0x4001e4f4 ); -PROVIDE ( r_lc_packet_type = 0x40021038 ); -PROVIDE ( r_lc_pair = 0x40020ddc ); -PROVIDE ( r_lc_pairing_cont = 0x4001eafc ); -PROVIDE ( r_lc_passkey_comm = 0x4001ed20 ); -PROVIDE ( r_lc_prepare_all_links_for_clk_adj = 0x40021430 ); -PROVIDE ( r_lc_proc_rcv_dhkey = 0x4001edec ); -PROVIDE ( r_lc_ptt = 0x4001ee2c ); -PROVIDE ( r_lc_ptt_cmp = 0x4001eeec ); -PROVIDE ( r_lc_qos_setup = 0x4001ef50 ); -PROVIDE ( r_lc_rd_rem_name = 0x4001efd0 ); -PROVIDE ( r_lc_release = 0x4001f8a8 ); -PROVIDE ( r_lc_rem_enc = 0x4001f124 ); -PROVIDE ( r_lc_rem_name_cont = 0x4001f290 ); -PROVIDE ( r_lc_rem_nego_trans_mode = 0x4001f1b4 ); -PROVIDE ( r_lc_rem_sniff = 0x40020ca4 ); -PROVIDE ( r_lc_rem_sniff_sub_rate = 0x40020b10 ); -PROVIDE ( r_lc_rem_switch = 0x4001f070 ); -PROVIDE ( r_lc_rem_trans_mode = 0x4001f314 ); -PROVIDE ( r_lc_rem_unsniff = 0x400207a0 ); -PROVIDE ( r_lc_rem_untrans_mode = 0x4001f36c ); -PROVIDE ( r_lc_reset = 0x4001c99c ); -PROVIDE ( r_lc_resp_auth = 0x4001f518 ); -PROVIDE ( r_lc_resp_calc_f3 = 0x4001f710 ); -PROVIDE ( r_lc_resp_num_comp = 0x40020074 ); -PROVIDE ( r_lc_resp_oob_nonce = 0x4001f694 ); -PROVIDE ( r_lc_resp_oob_wait_nonce = 0x4001f66c ); -PROVIDE ( r_lc_resp_pair = 0x400208a4 ); -PROVIDE ( r_lc_resp_sec_auth = 0x4001f4a0 ); -PROVIDE ( r_lc_resp_wait_dhkey_cont = 0x4001f86c ); -PROVIDE ( r_lc_restart_enc = 0x4001f8ec ); -PROVIDE ( r_lc_restart_enc_cont = 0x4001f940 ); -PROVIDE ( r_lc_restore_afh_reporting = 0x4001f028 ); -PROVIDE ( r_lc_restore_to = 0x4001f9e0 ); -PROVIDE ( r_lc_ret_sniff_max_slot_chg = 0x4001fa30 ); -PROVIDE ( r_lc_rsw_clean_up = 0x4001dc70 ); -PROVIDE ( r_lc_rsw_done = 0x4001db94 ); -PROVIDE ( r_lc_sco_baseband_ack = 0x40022b00 ); -PROVIDE ( r_lc_sco_detach = 0x40021e40 ); -PROVIDE ( r_lc_sco_host_accept = 0x40022118 ); -PROVIDE ( r_lc_sco_host_reject = 0x400222b8 ); -PROVIDE ( r_lc_sco_host_request = 0x40021f4c ); -PROVIDE ( r_lc_sco_host_request_disc = 0x4002235c ); -PROVIDE ( r_lc_sco_init = 0x40021dc8 ); -PROVIDE ( r_lc_sco_peer_accept = 0x40022780 ); -PROVIDE ( r_lc_sco_peer_accept_disc = 0x40022a08 ); -PROVIDE ( r_lc_sco_peer_reject = 0x40022824 ); -PROVIDE ( r_lc_sco_peer_reject_disc = 0x40022a8c ); -PROVIDE ( r_lc_sco_peer_request = 0x4002240c ); -PROVIDE ( r_lc_sco_peer_request_disc = 0x400228ec ); -PROVIDE ( r_lc_sco_release = 0x40021eec ); -PROVIDE ( r_lc_sco_reset = 0x40021dfc ); -PROVIDE ( r_lc_sco_timeout = 0x40022bd4 ); -PROVIDE ( r_lc_sec_auth_compute_sres = 0x4001f3ec ); -PROVIDE ( r_lc_semi_key_cmp = 0x40020294 ); -PROVIDE ( r_lc_send_enc_chg_evt = 0x4002134c ); -PROVIDE ( r_lc_send_enc_mode = 0x40020220 ); -PROVIDE ( r_lc_send_lmp = 0x4001c1a8 ); -PROVIDE ( r_lc_send_pdu_acc = 0x4001c21c ); -PROVIDE ( r_lc_send_pdu_acc_ext4 = 0x4001c240 ); -PROVIDE ( r_lc_send_pdu_au_rand = 0x4001c308 ); -PROVIDE ( r_lc_send_pdu_auto_rate = 0x4001c5d0 ); -PROVIDE ( r_lc_send_pdu_clk_adj_ack = 0x4001c46c ); -PROVIDE ( r_lc_send_pdu_clk_adj_req = 0x4001c494 ); -PROVIDE ( r_lc_send_pdu_comb_key = 0x4001c368 ); -PROVIDE ( r_lc_send_pdu_dhkey_chk = 0x4001c8e8 ); -PROVIDE ( r_lc_send_pdu_encaps_head = 0x4001c440 ); -PROVIDE ( r_lc_send_pdu_encaps_payl = 0x4001c410 ); -PROVIDE ( r_lc_send_pdu_enc_key_sz_req = 0x4001c670 ); -PROVIDE ( r_lc_send_pdu_esco_lk_rem_req = 0x4001c5a8 ); -PROVIDE ( r_lc_send_pdu_feats_ext_req = 0x4001c6ec ); -PROVIDE ( r_lc_send_pdu_feats_res = 0x4001c694 ); -PROVIDE ( r_lc_send_pdu_in_rand = 0x4001c338 ); -PROVIDE ( r_lc_send_pdu_io_cap_res = 0x4001c72c ); -PROVIDE ( r_lc_send_pdu_lsto = 0x4001c64c ); -PROVIDE ( r_lc_send_pdu_max_slot = 0x4001c3c8 ); -PROVIDE ( r_lc_send_pdu_max_slot_req = 0x4001c3ec ); -PROVIDE ( r_lc_send_pdu_not_acc = 0x4001c26c ); -PROVIDE ( r_lc_send_pdu_not_acc_ext4 = 0x4001c294 ); -PROVIDE ( r_lc_send_pdu_num_comp_fail = 0x4001c770 ); -PROVIDE ( r_lc_send_pdu_pause_enc_aes_req = 0x4001c794 ); -PROVIDE ( r_lc_send_pdu_paus_enc_req = 0x4001c7c0 ); -PROVIDE ( r_lc_send_pdu_ptt_req = 0x4001c4c0 ); -PROVIDE ( r_lc_send_pdu_qos_req = 0x4001c82c ); -PROVIDE ( r_lc_send_pdu_resu_enc_req = 0x4001c7e4 ); -PROVIDE ( r_lc_send_pdu_sco_lk_rem_req = 0x4001c580 ); -PROVIDE ( r_lc_send_pdu_set_afh = 0x4001c2c8 ); -PROVIDE ( r_lc_send_pdu_setup_cmp = 0x4001c808 ); -PROVIDE ( r_lc_send_pdu_slot_off = 0x4001c854 ); -PROVIDE ( r_lc_send_pdu_sniff_req = 0x4001c5f0 ); -PROVIDE ( r_lc_send_pdu_sp_cfm = 0x4001c518 ); -PROVIDE ( r_lc_send_pdu_sp_nb = 0x4001c4e8 ); -PROVIDE ( r_lc_send_pdu_sres = 0x4001c548 ); -PROVIDE ( r_lc_send_pdu_tim_acc = 0x4001c6cc ); -PROVIDE ( r_lc_send_pdu_unit_key = 0x4001c398 ); -PROVIDE ( r_lc_send_pdu_unsniff_req = 0x4001c894 ); -PROVIDE ( r_lc_send_pdu_vers_req = 0x4001c8b4 ); -PROVIDE ( r_lc_skip_hl_oob_req = 0x400201bc ); -PROVIDE ( r_lc_sniff_init = 0x40022cac ); -PROVIDE ( r_lc_sniff_max_slot_chg = 0x40020590 ); -PROVIDE ( r_lc_sniff_reset = 0x40022cc8 ); -PROVIDE ( r_lc_sniff_slot_unchange = 0x40021100 ); -PROVIDE ( r_lc_sniff_sub_mode = 0x400204fc ); -PROVIDE ( r_lc_sp_end = 0x400213a8 ); -PROVIDE ( r_lc_sp_fail = 0x40020470 ); -PROVIDE ( r_lc_sp_oob_tid_fail = 0x400204cc ); -PROVIDE ( r_lc_ssr_nego = 0x4002125c ); -PROVIDE ( r_lc_start = 0x4001ca28 ); -PROVIDE ( r_lc_start_enc = 0x4001fb28 ); -PROVIDE ( r_lc_start_enc_key_size = 0x4001fd9c ); -PROVIDE ( r_lc_start_key_exch = 0x4001fe10 ); -PROVIDE ( r_lc_start_lmp_to = 0x4001fae8 ); -PROVIDE ( r_lc_start_oob = 0x4001fffc ); -PROVIDE ( r_lc_start_passkey = 0x4001feac ); -PROVIDE ( r_lc_start_passkey_loop = 0x4001ff88 ); -PROVIDE ( r_lc_stop_afh_report = 0x40020184 ); -PROVIDE ( r_lc_stop_enc = 0x40020110 ); -PROVIDE ( r_lc_switch_cmp = 0x40020448 ); -PROVIDE ( r_lc_unit_key_svr = 0x400206d8 ); -PROVIDE ( r_lc_unsniff = 0x40020c50 ); -PROVIDE ( r_lc_unsniff_cmp = 0x40020810 ); -PROVIDE ( r_lc_unsniff_cont = 0x40020750 ); -PROVIDE ( r_lc_upd_to = 0x4002065c ); -PROVIDE ( r_lc_util_convert_pref_rate_to_packet_type = 0x4002f9b0 ); -PROVIDE ( r_lc_util_get_max_packet_size = 0x4002f4ac ); -PROVIDE ( r_lc_util_get_offset_clke = 0x4002f538 ); -PROVIDE ( r_lc_util_get_offset_clkn = 0x4002f51c ); -PROVIDE ( r_lc_util_set_loc_trans_coll = 0x4002f500 ); -PROVIDE ( r_lc_version = 0x40020a30 ); -PROVIDE ( lc_set_encap_pdu_data_p192 = 0x4002e4c8 ); -PROVIDE ( lc_set_encap_pdu_data_p256 = 0x4002e454 ); -PROVIDE ( lm_get_auth_method = 0x40023420 ); -PROVIDE ( lmp_accepted_ext_handler = 0x40027290 ); -PROVIDE ( lmp_not_accepted_ext_handler = 0x40029c54 ); -PROVIDE ( lmp_clk_adj_handler = 0x40027468 ); -PROVIDE ( lmp_clk_adj_ack_handler = 0x400274f4 ); -PROVIDE ( lm_get_auth_method = 0x40023420 ); -PROVIDE ( lmp_accepted_ext_handler = 0x40027290 ); -PROVIDE ( lmp_not_accepted_ext_handler = 0x40029c54 ); -PROVIDE ( lmp_clk_adj_handler = 0x40027468 ); -PROVIDE ( lmp_clk_adj_ack_handler = 0x400274f4 ); -PROVIDE ( lmp_clk_adj_req_handler = 0x4002751c ); -PROVIDE ( lmp_feats_res_ext_handler = 0x4002cac4 ); -PROVIDE ( lmp_feats_req_ext_handler = 0x4002ccb0 ); -PROVIDE ( lmp_pkt_type_tbl_req_handler = 0x40027574 ); -PROVIDE ( lmp_esco_link_req_handler = 0x40027610 ); -PROVIDE ( lmp_rmv_esco_link_req_handler = 0x400276e8 ); -PROVIDE ( lmp_ch_class_req_handler = 0x40027730 ); -PROVIDE ( lmp_ch_class_handler = 0x4002ca18 ); -PROVIDE ( lmp_ssr_req_handler = 0x4002780c ); -PROVIDE ( lmp_ssr_res_handler = 0x40027900 ); -PROVIDE ( lmp_pause_enc_aes_req_handler = 0x400279a4 ); -PROVIDE ( lmp_pause_enc_req_handler = 0x4002df90 ); -PROVIDE ( lmp_resume_enc_req_handler = 0x4002e084 ); -PROVIDE ( lmp_num_comparison_fail_handler = 0x40027a74 ); -PROVIDE ( lmp_passkey_fail_handler = 0x40027aec ); -PROVIDE ( lmp_keypress_notif_handler = 0x4002c5c8 ); -PROVIDE ( lmp_pwr_ctrl_req_handler = 0x400263bc ); -PROVIDE ( lmp_pwr_ctrl_res_handler = 0x40026480 ); -PROVIDE ( lmp_auto_rate_handler = 0x40026548 ); -PROVIDE ( lmp_pref_rate_handler = 0x4002657c ); -PROVIDE ( lmp_name_req_handler = 0x40025050 ); -PROVIDE ( lmp_name_res_handler = 0x400250bc ); -PROVIDE ( lmp_not_accepted_handler = 0x400251d0 ); -PROVIDE ( lmp_accepted_handler = 0x4002e894 ); -PROVIDE ( lmp_clk_off_req_handler = 0x40025a44 ); -PROVIDE ( lmp_clk_off_res_handler = 0x40025ab8 ); -PROVIDE ( lmp_detach_handler = 0x40025b74 ); -PROVIDE ( lmp_tempkey_handler = 0x4002b6b0 ); -PROVIDE ( lmp_temprand_handler = 0x4002b74c ); -PROVIDE ( lmp_sres_handler = 0x4002b840 ); -PROVIDE ( lmp_aurand_handler = 0x4002bda0 ); -PROVIDE ( lmp_unitkey_handler = 0x4002c13c ); -PROVIDE ( lmp_combkey_handler = 0x4002c234 ); -PROVIDE ( lmp_inrand_handler = 0x4002c414 ); -PROVIDE ( lmp_oob_fail_handler = 0x40027b84 ); -PROVIDE ( lmp_ping_req_handler = 0x40027c08 ); -PROVIDE ( lmp_ping_res_handler = 0x40027c5c ); -PROVIDE ( lmp_enc_mode_req_handler = 0x40025c60 ); -PROVIDE ( lmp_enc_key_size_req_handler = 0x40025e54 ); -PROVIDE ( lmp_switch_req_handler = 0x40025f84 ); -PROVIDE ( lmp_start_enc_req_handler = 0x4002e124 ); -PROVIDE ( lmp_stop_enc_req_handler = 0x4002de30 ); -PROVIDE ( lmp_sniff_req_handler = 0x400260c8 ); -PROVIDE ( lmp_unsniff_req_handler = 0x400261e0 ); -PROVIDE ( lmp_incr_pwr_req_handler = 0x4002629c ); -PROVIDE ( lmp_decr_pwr_req_handler = 0x400262f8 ); -PROVIDE ( lmp_max_pwr_handler = 0x40026354 ); -PROVIDE ( lmp_min_pwr_handler = 0x40026388 ); -PROVIDE ( lmp_ver_req_handler = 0x400265f0 ); -PROVIDE ( lmp_ver_res_handler = 0x40026670 ); -PROVIDE ( lmp_qos_handler = 0x40026790 ); -PROVIDE ( lmp_qos_req_handler = 0x40026844 ); -PROVIDE ( lmp_sco_link_req_handler = 0x40026930 ); -PROVIDE ( lmp_rmv_sco_link_req_handler = 0x40026a10 ); -PROVIDE ( lmp_max_slot_handler = 0x40026a54 ); -PROVIDE ( lmp_max_slot_req_handler = 0x40026aac ); -PROVIDE ( lmp_timing_accu_req_handler = 0x40026b54 ); -PROVIDE ( lmp_timing_accu_res_handler = 0x40026bcc ); -PROVIDE ( lmp_setup_cmp_handler = 0x40026c84 ); -PROVIDE ( lmp_feats_res_handler = 0x4002b548 ); -PROVIDE ( lmp_feats_req_handler = 0x4002b620 ); -PROVIDE ( lmp_host_con_req_handler = 0x4002b3d8 ); -PROVIDE ( lmp_use_semi_perm_key_handler = 0x4002b4c4 ); -PROVIDE ( lmp_slot_off_handler = 0x40026cc8 ); -PROVIDE ( lmp_page_mode_req_handler = 0x40026d0c ); -PROVIDE ( lmp_page_scan_mode_req_handler = 0x40026d4c ); -PROVIDE ( lmp_supv_to_handler = 0x40026d94 ); -PROVIDE ( lmp_test_activate_handler = 0x40026e7c ); -PROVIDE ( lmp_test_ctrl_handler = 0x40026ee4 ); -PROVIDE ( lmp_enc_key_size_mask_req_handler = 0x40027038 ); -PROVIDE ( lmp_enc_key_size_mask_res_handler = 0x400270a4 ); -PROVIDE ( lmp_set_afh_handler = 0x4002b2e4 ); -PROVIDE ( lmp_encaps_hdr_handler = 0x40027120 ); -PROVIDE ( lmp_encaps_payl_handler = 0x4002e590 ); -PROVIDE ( lmp_sp_nb_handler = 0x4002acf0 ); -PROVIDE ( lmp_sp_cfm_handler = 0x4002b170 ); -PROVIDE ( lmp_dhkey_chk_handler = 0x4002ab48 ); -PROVIDE ( lmp_pause_enc_aes_req_handler = 0x400279a4 ); -PROVIDE ( lmp_io_cap_res_handler = 0x4002c670 ); -PROVIDE ( lmp_io_cap_req_handler = 0x4002c7a4 ); -PROVIDE ( lc_cmd_cmp_bd_addr_send = 0x4002cec4 ); -PROVIDE ( ld_acl_tx_packet_type_select = 0x4002fb40 ); -PROVIDE ( ld_acl_sched = 0x40033268 ); -PROVIDE ( ld_acl_sniff_sched = 0x4003340c ); -PROVIDE ( ld_acl_rx = 0x4003274c ); -PROVIDE ( ld_acl_tx = 0x4002ffdc ); -PROVIDE ( ld_acl_rx_sync = 0x4002fbec ); -PROVIDE ( ld_acl_rx_sync2 = 0x4002fd8c ); -PROVIDE ( ld_acl_rx_no_sync = 0x4002fe78 ); -PROVIDE ( ld_acl_clk_isr = 0x40030cf8 ); -PROVIDE ( ld_acl_rsw_frm_cbk = 0x40033bb0 ); -PROVIDE ( ld_sco_modify = 0x40031778 ); -PROVIDE ( lm_cmd_cmp_send = 0x40051838 ); -PROVIDE ( ld_sco_frm_cbk = 0x400349dc ); -PROVIDE ( ld_acl_sco_rsvd_check = 0x4002fa94 ); -PROVIDE ( ld_acl_sniff_frm_cbk = 0x4003482c ); -PROVIDE ( ld_inq_end = 0x4003ab48 ); -PROVIDE ( ld_inq_sched = 0x4003aba4 ); -PROVIDE ( ld_inq_frm_cbk = 0x4003ae4c ); -PROVIDE ( ld_pscan_frm_cbk = 0x4003ebe4 ); -PROVIDE ( r_ld_acl_active_hop_types_get = 0x40036e10 ); -PROVIDE ( r_ld_acl_afh_confirm = 0x40036d40 ); -PROVIDE ( r_ld_acl_afh_prepare = 0x40036c84 ); -PROVIDE ( r_ld_acl_afh_set = 0x40036b60 ); -PROVIDE ( r_ld_acl_allowed_tx_packet_types_set = 0x40036810 ); -PROVIDE ( r_ld_acl_bcst_rx_dec = 0x40036394 ); -PROVIDE ( r_ld_acl_bit_off_get = 0x40036b18 ); -PROVIDE ( r_ld_acl_clk_adj_set = 0x40036a00 ); -PROVIDE ( r_ld_acl_clk_off_get = 0x40036b00 ); -PROVIDE ( r_ld_acl_clk_set = 0x40036950 ); -PROVIDE ( r_ld_acl_clock_offset_get = 0x400364c0 ); -PROVIDE ( r_ld_acl_current_tx_power_get = 0x400368f0 ); -PROVIDE ( r_ld_acl_data_flush = 0x400357bc ); -PROVIDE ( r_ld_acl_data_tx = 0x4003544c ); -PROVIDE ( r_ld_acl_edr_set = 0x4003678c ); -PROVIDE ( r_ld_acl_enc_key_load = 0x40036404 ); -PROVIDE ( r_ld_acl_flow_off = 0x40035400 ); -PROVIDE ( r_ld_acl_flow_on = 0x4003541c ); -PROVIDE ( r_ld_acl_flush_timeout_get = 0x40035f9c ); -PROVIDE ( r_ld_acl_flush_timeout_set = 0x40035fe0 ); -PROVIDE ( r_ld_acl_init = 0x40034d08 ); -PROVIDE ( r_ld_acl_lmp_flush = 0x40035d80 ); -PROVIDE ( r_ld_acl_lmp_tx = 0x40035b34 ); -PROVIDE ( r_ld_acl_lsto_get = 0x400366b4 ); -PROVIDE ( r_ld_acl_lsto_set = 0x400366f8 ); -PROVIDE ( r_ld_acl_reset = 0x40034d24 ); -PROVIDE ( r_ld_acl_role_get = 0x40036b30 ); -PROVIDE ( r_ld_acl_rssi_delta_get = 0x40037028 ); -PROVIDE ( r_ld_acl_rsw_req = 0x40035e74 ); -PROVIDE ( r_ld_acl_rx_enc = 0x40036344 ); -PROVIDE ( r_ld_acl_rx_max_slot_get = 0x40036e58 ); -PROVIDE ( r_ld_acl_rx_max_slot_set = 0x40036ea0 ); -PROVIDE ( r_ld_acl_slot_offset_get = 0x4003653c ); -PROVIDE ( r_ld_acl_slot_offset_set = 0x40036658 ); -PROVIDE ( r_ld_acl_sniff = 0x4003617c ); -PROVIDE ( r_ld_acl_sniff_trans = 0x400360a8 ); -PROVIDE ( r_ld_acl_ssr_set = 0x40036274 ); -PROVIDE ( r_ld_acl_start = 0x40034ddc ); -PROVIDE ( r_ld_acl_stop = 0x4003532c ); -PROVIDE ( r_ld_acl_test_mode_set = 0x40036f24 ); -PROVIDE ( r_ld_acl_timing_accuracy_set = 0x4003673c ); -PROVIDE ( r_ld_acl_t_poll_get = 0x40036024 ); -PROVIDE ( r_ld_acl_t_poll_set = 0x40036068 ); -PROVIDE ( r_ld_acl_tx_enc = 0x400362f8 ); -PROVIDE ( ld_acl_frm_cbk = 0x40034414 ); -PROVIDE ( ld_acl_rsw_end = 0x40032bc0 ); -PROVIDE ( ld_acl_end = 0x40033140 ); -PROVIDE ( ld_acl_resched = 0x40033814 ); -PROVIDE ( ld_acl_test_mode_update = 0x40032050 ); -PROVIDE ( r_ld_acl_unsniff = 0x400361e0 ); -PROVIDE ( r_ld_active_check = 0x4003cac4 ); -PROVIDE ( r_ld_afh_ch_assess_data_get = 0x4003caec ); -PROVIDE ( r_ld_bcst_acl_data_tx = 0x40038d3c ); -PROVIDE ( r_ld_bcst_acl_init = 0x40038bd0 ); -PROVIDE ( r_ld_bcst_acl_reset = 0x40038bdc ); -PROVIDE ( r_ld_bcst_acl_start = 0x4003882c ); -PROVIDE ( r_ld_bcst_afh_update = 0x40038f3c ); -PROVIDE ( r_ld_bcst_enc_key_load = 0x4003906c ); -PROVIDE ( r_ld_bcst_lmp_tx = 0x40038bf8 ); -PROVIDE ( r_ld_bcst_tx_enc = 0x40038ff8 ); -PROVIDE ( r_ld_bd_addr_get = 0x4003ca20 ); -PROVIDE ( r_ld_channel_assess = 0x4003c184 ); -PROVIDE ( r_ld_class_of_dev_get = 0x4003ca34 ); -PROVIDE ( r_ld_class_of_dev_set = 0x4003ca50 ); -PROVIDE ( r_ld_csb_rx_afh_update = 0x40039af4 ); -PROVIDE ( r_ld_csb_rx_init = 0x40039690 ); -PROVIDE ( r_ld_csb_rx_reset = 0x4003969c ); -PROVIDE ( r_ld_csb_rx_start = 0x4003972c ); -PROVIDE ( r_ld_csb_rx_stop = 0x40039bb8 ); -PROVIDE ( r_ld_csb_tx_afh_update = 0x4003a5fc ); -PROVIDE ( r_ld_csb_tx_clr_data = 0x4003a71c ); -PROVIDE ( r_ld_csb_tx_dis = 0x4003a5e8 ); -PROVIDE ( r_ld_csb_tx_en = 0x4003a1c0 ); -PROVIDE ( r_ld_csb_tx_init = 0x4003a0e8 ); -PROVIDE ( r_ld_csb_tx_reset = 0x4003a0f8 ); -PROVIDE ( r_ld_csb_tx_set_data = 0x4003a6c0 ); -PROVIDE ( r_ld_fm_clk_isr = 0x4003a7a8 ); -PROVIDE ( r_ld_fm_frame_isr = 0x4003a82c ); -PROVIDE ( r_ld_fm_init = 0x4003a760 ); -PROVIDE ( r_ld_fm_prog_check = 0x4003ab28 ); -PROVIDE ( r_ld_fm_prog_disable = 0x4003a984 ); -PROVIDE ( r_ld_fm_prog_enable = 0x4003a944 ); -PROVIDE ( r_ld_fm_prog_push = 0x4003a9d4 ); -PROVIDE ( r_ld_fm_reset = 0x4003a794 ); -PROVIDE ( r_ld_fm_rx_isr = 0x4003a7f4 ); -PROVIDE ( r_ld_fm_sket_isr = 0x4003a8a4 ); -PROVIDE ( r_ld_init = 0x4003c294 ); -PROVIDE ( r_ld_inq_init = 0x4003b15c ); -PROVIDE ( r_ld_inq_reset = 0x4003b168 ); -PROVIDE ( r_ld_inq_start = 0x4003b1f0 ); -PROVIDE ( r_ld_inq_stop = 0x4003b4f0 ); -PROVIDE ( r_ld_iscan_eir_get = 0x4003c118 ); -PROVIDE ( r_ld_iscan_eir_set = 0x4003bfa0 ); -PROVIDE ( r_ld_iscan_init = 0x4003b9f0 ); -PROVIDE ( r_ld_iscan_reset = 0x4003ba14 ); -PROVIDE ( r_ld_iscan_restart = 0x4003ba44 ); -PROVIDE ( r_ld_iscan_start = 0x4003bb28 ); -PROVIDE ( r_ld_iscan_stop = 0x4003bf1c ); -PROVIDE ( r_ld_iscan_tx_pwr_get = 0x4003c138 ); -PROVIDE ( r_ld_page_init = 0x4003d808 ); -PROVIDE ( r_ld_page_reset = 0x4003d814 ); -PROVIDE ( r_ld_page_start = 0x4003d848 ); -PROVIDE ( r_ld_page_stop = 0x4003da54 ); -PROVIDE ( r_ld_pca_coarse_clock_adjust = 0x4003e324 ); -PROVIDE ( r_ld_pca_init = 0x4003deb4 ); -PROVIDE ( r_ld_pca_initiate_clock_dragging = 0x4003e4ac ); -PROVIDE ( r_ld_pca_local_config = 0x4003df6c ); -PROVIDE ( r_ld_pca_mws_frame_sync = 0x4003e104 ); -PROVIDE ( r_ld_pca_mws_moment_offset_gt = 0x4003e278 ); -PROVIDE ( r_ld_pca_mws_moment_offset_lt = 0x4003e280 ); -PROVIDE ( r_ld_pca_reporting_enable = 0x4003e018 ); -PROVIDE ( r_ld_pca_reset = 0x4003df0c ); -PROVIDE ( r_ld_pca_update_target_offset = 0x4003e050 ); -PROVIDE ( r_ld_pscan_evt_handler = 0x4003f238 ); -PROVIDE ( r_ld_pscan_init = 0x4003f474 ); -PROVIDE ( r_ld_pscan_reset = 0x4003f498 ); -PROVIDE ( r_ld_pscan_restart = 0x4003f4b8 ); -PROVIDE ( r_ld_pscan_start = 0x4003f514 ); -PROVIDE ( r_ld_pscan_stop = 0x4003f618 ); -PROVIDE ( r_ld_read_clock = 0x4003c9e4 ); -PROVIDE ( r_ld_reset = 0x4003c714 ); -PROVIDE ( r_ld_sched_acl_add = 0x4003f978 ); -PROVIDE ( r_ld_sched_acl_remove = 0x4003f99c ); -PROVIDE ( r_ld_sched_compute = 0x4003f6f8 ); -PROVIDE ( r_ld_sched_init = 0x4003f7ac ); -PROVIDE ( r_ld_sched_inq_add = 0x4003f8a8 ); -PROVIDE ( r_ld_sched_inq_remove = 0x4003f8d0 ); -PROVIDE ( r_ld_sched_iscan_add = 0x4003f7e8 ); -PROVIDE ( r_ld_sched_iscan_remove = 0x4003f808 ); -PROVIDE ( r_ld_sched_page_add = 0x4003f910 ); -PROVIDE ( r_ld_sched_page_remove = 0x4003f938 ); -PROVIDE ( r_ld_sched_pscan_add = 0x4003f828 ); -PROVIDE ( r_ld_sched_pscan_remove = 0x4003f848 ); -PROVIDE ( r_ld_sched_reset = 0x4003f7d4 ); -PROVIDE ( r_ld_sched_sco_add = 0x4003fa4c ); -PROVIDE ( r_ld_sched_sco_remove = 0x4003fa9c ); -PROVIDE ( r_ld_sched_sniff_add = 0x4003f9c4 ); -PROVIDE ( r_ld_sched_sniff_remove = 0x4003fa0c ); -PROVIDE ( r_ld_sched_sscan_add = 0x4003f868 ); -PROVIDE ( r_ld_sched_sscan_remove = 0x4003f888 ); -PROVIDE ( r_ld_sco_audio_isr = 0x40037cc8 ); -PROVIDE ( r_ld_sco_data_tx = 0x40037ee8 ); -PROVIDE ( r_ld_sco_start = 0x40037110 ); -PROVIDE ( r_ld_sco_stop = 0x40037c40 ); -PROVIDE ( r_ld_sco_update = 0x40037a74 ); -PROVIDE ( r_ld_sscan_activated = 0x4004031c ); -PROVIDE ( r_ld_sscan_init = 0x400402f0 ); -PROVIDE ( r_ld_sscan_reset = 0x400402fc ); -PROVIDE ( r_ld_sscan_start = 0x40040384 ); -PROVIDE ( r_ld_strain_init = 0x400409f4 ); -PROVIDE ( r_ld_strain_reset = 0x40040a00 ); -PROVIDE ( r_ld_strain_start = 0x40040a8c ); -PROVIDE ( r_ld_strain_stop = 0x40040df0 ); -PROVIDE ( r_ld_timing_accuracy_get = 0x4003caac ); -PROVIDE ( r_ld_util_active_master_afh_map_get = 0x4004131c ); -PROVIDE ( r_ld_util_active_master_afh_map_set = 0x40041308 ); -PROVIDE ( r_ld_util_bch_create = 0x40040fcc ); -PROVIDE ( r_ld_util_fhs_pk = 0x400411c8 ); -PROVIDE ( r_ld_util_fhs_unpk = 0x40040e54 ); -PROVIDE ( r_ld_util_stp_pk = 0x400413f4 ); -PROVIDE ( r_ld_util_stp_unpk = 0x40041324 ); -PROVIDE ( r_ld_version_get = 0x4003ca6c ); -PROVIDE ( r_ld_wlcoex_set = 0x4003caf8 ); -PROVIDE ( r_llc_ch_assess_get_current_ch_map = 0x40041574 ); -PROVIDE ( r_llc_ch_assess_get_local_ch_map = 0x4004150c ); -PROVIDE ( r_llc_ch_assess_local = 0x40041494 ); -PROVIDE ( r_llc_ch_assess_merge_ch = 0x40041588 ); -PROVIDE ( r_llc_ch_assess_reass_ch = 0x400415c0 ); -PROVIDE ( r_llc_common_cmd_complete_send = 0x40044eac ); -PROVIDE ( r_llc_common_cmd_status_send = 0x40044ee0 ); -PROVIDE ( r_llc_common_enc_change_evt_send = 0x40044f6c ); -PROVIDE ( r_llc_common_enc_key_ref_comp_evt_send = 0x40044f38 ); -PROVIDE ( r_llc_common_flush_occurred_send = 0x40044f0c ); -PROVIDE ( r_llc_common_nb_of_pkt_comp_evt_send = 0x40045000 ); -PROVIDE ( r_llc_con_update_complete_send = 0x40044d68 ); -PROVIDE ( r_llc_con_update_finished = 0x4004518c ); -PROVIDE ( r_llc_con_update_ind = 0x40045038 ); -PROVIDE ( r_llc_discon_event_complete_send = 0x40044a30 ); -PROVIDE ( r_llc_end_evt_defer = 0x40046330 ); -PROVIDE ( r_llc_feats_rd_event_send = 0x40044e0c ); -PROVIDE ( r_llc_init = 0x40044778 ); -PROVIDE ( r_llc_le_con_cmp_evt_send = 0x40044a78 ); -PROVIDE ( r_llc_llcp_ch_map_update_pdu_send = 0x40043f94 ); -PROVIDE ( r_llc_llcp_con_param_req_pdu_send = 0x400442fc ); -PROVIDE ( r_llc_llcp_con_param_rsp_pdu_send = 0x40044358 ); -PROVIDE ( r_llc_llcp_con_update_pdu_send = 0x400442c4 ); -PROVIDE ( r_llc_llcp_enc_req_pdu_send = 0x40044064 ); -PROVIDE ( r_llc_llcp_enc_rsp_pdu_send = 0x40044160 ); -PROVIDE ( r_llc_llcp_feats_req_pdu_send = 0x400443b4 ); -PROVIDE ( r_llc_llcp_feats_rsp_pdu_send = 0x400443f0 ); -PROVIDE ( r_llc_llcp_get_autorize = 0x4004475c ); -PROVIDE ( r_llc_llcp_length_req_pdu_send = 0x40044574 ); -PROVIDE ( r_llc_llcp_length_rsp_pdu_send = 0x400445ac ); -PROVIDE ( r_llc_llcp_pause_enc_req_pdu_send = 0x40043fd8 ); -PROVIDE ( r_llc_llcp_pause_enc_rsp_pdu_send = 0x40044010 ); -PROVIDE ( r_llc_llcp_ping_req_pdu_send = 0x4004454c ); -PROVIDE ( r_llc_llcp_ping_rsp_pdu_send = 0x40044560 ); -PROVIDE ( r_llc_llcp_recv_handler = 0x40044678 ); -PROVIDE ( r_llc_llcp_reject_ind_pdu_send = 0x4004425c ); -PROVIDE ( r_llc_llcp_start_enc_req_pdu_send = 0x4004441c ); -PROVIDE ( r_llc_llcp_start_enc_rsp_pdu_send = 0x400441f8 ); -PROVIDE ( r_llc_llcp_terminate_ind_pdu_send = 0x400444b0 ); -PROVIDE ( r_llc_llcp_tester_send = 0x400445e4 ); -PROVIDE ( r_llc_llcp_unknown_rsp_send_pdu = 0x40044534 ); -PROVIDE ( r_llc_llcp_version_ind_pdu_send = 0x40043f6c ); -PROVIDE ( r_llc_lsto_con_update = 0x40045098 ); -PROVIDE ( r_llc_ltk_req_send = 0x40044dc0 ); -PROVIDE ( r_llc_map_update_finished = 0x40045260 ); -PROVIDE ( r_llc_map_update_ind = 0x400450f0 ); -PROVIDE ( r_llc_pdu_acl_tx_ack_defer = 0x400464dc ); -PROVIDE ( r_llc_pdu_defer = 0x40046528 ); -PROVIDE ( r_llc_pdu_llcp_tx_ack_defer = 0x400463ac ); -PROVIDE ( r_llc_reset = 0x400447b8 ); -PROVIDE ( r_llc_start = 0x400447f4 ); -PROVIDE ( r_llc_stop = 0x400449ac ); -PROVIDE ( r_llc_util_bw_mgt = 0x4004629c ); -PROVIDE ( r_llc_util_clear_operation_ptr = 0x40046234 ); -PROVIDE ( r_llc_util_dicon_procedure = 0x40046130 ); -PROVIDE ( r_llc_util_get_free_conhdl = 0x400460c8 ); -PROVIDE ( r_llc_util_get_nb_active_link = 0x40046100 ); -PROVIDE ( r_llc_util_set_auth_payl_to_margin = 0x400461f4 ); -PROVIDE ( r_llc_util_set_llcp_discard_enable = 0x400461c8 ); -PROVIDE ( r_llc_util_update_channel_map = 0x400461ac ); -PROVIDE ( r_llc_version_rd_event_send = 0x40044e60 ); -PROVIDE ( r_lld_adv_start = 0x40048b38 ); -PROVIDE ( r_lld_adv_stop = 0x40048ea0 ); -PROVIDE ( r_lld_ch_map_ind = 0x4004a2f4 ); -PROVIDE ( r_lld_con_param_req = 0x40049f0c ); -PROVIDE ( r_lld_con_param_rsp = 0x40049e00 ); -PROVIDE ( r_lld_con_start = 0x400491f8 ); -PROVIDE ( r_lld_con_stop = 0x40049fdc ); -PROVIDE ( r_lld_con_update_after_param_req = 0x40049bcc ); -PROVIDE ( r_lld_con_update_ind = 0x4004a30c ); -PROVIDE ( r_lld_con_update_req = 0x40049b60 ); -PROVIDE ( r_lld_core_reset = 0x40048a9c ); -PROVIDE ( r_lld_crypt_isr = 0x4004a324 ); -PROVIDE ( r_lld_evt_adv_create = 0x400481f4 ); -PROVIDE ( r_lld_evt_canceled = 0x400485c8 ); -PROVIDE ( r_lld_evt_channel_next = 0x40046aac ); -PROVIDE ( r_lld_evt_deffered_elt_handler = 0x400482bc ); -PROVIDE ( r_lld_evt_delete_elt_handler = 0x40046974 ); -PROVIDE ( r_lld_evt_delete_elt_push = 0x40046a3c ); -PROVIDE ( r_lld_evt_drift_compute = 0x40047670 ); -PROVIDE ( r_lld_evt_elt_delete = 0x40047538 ); -PROVIDE ( r_lld_evt_elt_insert = 0x400474c8 ); -PROVIDE ( r_lld_evt_end = 0x400483e8 ); -PROVIDE ( r_lld_evt_end_isr = 0x4004862c ); -PROVIDE ( r_lld_evt_init = 0x40046b3c ); -PROVIDE ( r_lld_evt_init_evt = 0x40046cd0 ); -PROVIDE ( r_lld_evt_move_to_master = 0x40047ba0 ); -PROVIDE ( r_lld_evt_move_to_slave = 0x40047e18 ); -PROVIDE ( r_lld_evt_prevent_stop = 0x40047adc ); -PROVIDE ( r_lld_evt_restart = 0x40046d50 ); -PROVIDE ( r_lld_evt_rx = 0x40048578 ); -PROVIDE ( r_lld_evt_rx_isr = 0x40048678 ); -PROVIDE ( r_lld_evt_scan_create = 0x40047ae8 ); -PROVIDE ( r_lld_evt_schedule = 0x40047908 ); -PROVIDE ( r_lld_evt_schedule_next = 0x400477dc ); -PROVIDE ( r_lld_evt_schedule_next_instant = 0x400476a8 ); -PROVIDE ( r_lld_evt_slave_update = 0x40048138 ); -PROVIDE ( r_lld_evt_update_create = 0x40047cd8 ); -PROVIDE ( r_lld_get_mode = 0x40049ff8 ); -PROVIDE ( r_lld_init = 0x4004873c ); -PROVIDE ( r_lld_move_to_master = 0x400499e0 ); -PROVIDE ( r_lld_move_to_slave = 0x4004a024 ); -PROVIDE ( r_lld_pdu_adv_pack = 0x4004b488 ); -PROVIDE ( r_lld_pdu_check = 0x4004ac34 ); -PROVIDE ( r_lld_pdu_data_send = 0x4004b018 ); -PROVIDE ( r_lld_pdu_data_tx_push = 0x4004aecc ); -PROVIDE ( r_lld_pdu_rx_handler = 0x4004b4d4 ); -PROVIDE ( r_lld_pdu_send_packet = 0x4004b774 ); -PROVIDE ( r_lld_pdu_tx_flush = 0x4004b414 ); -PROVIDE ( r_lld_pdu_tx_loop = 0x4004ae40 ); -PROVIDE ( r_lld_pdu_tx_prog = 0x4004b120 ); -PROVIDE ( r_lld_pdu_tx_push = 0x4004b080 ); -PROVIDE ( r_lld_ral_renew_req = 0x4004a73c ); -/**************************************************************************** - * boards/xtensa/elf32-core/scripts/esp32_rom.ld - ****************************************************************************/ - -PROVIDE ( r_lld_scan_start = 0x40048ee0 ); -PROVIDE ( r_lld_scan_stop = 0x40049190 ); -PROVIDE ( r_lld_test_mode_rx = 0x4004a540 ); -PROVIDE ( r_lld_test_mode_tx = 0x4004a350 ); -PROVIDE ( r_lld_test_stop = 0x4004a710 ); -PROVIDE ( r_lld_util_anchor_point_move = 0x4004bacc ); -PROVIDE ( r_lld_util_compute_ce_max = 0x4004bc0c ); -PROVIDE ( r_lld_util_connection_param_set = 0x4004ba40 ); -PROVIDE ( r_lld_util_dle_set_cs_fields = 0x4004ba90 ); -PROVIDE ( r_lld_util_eff_tx_time_set = 0x4004bd88 ); -PROVIDE ( r_lld_util_elt_programmed = 0x4004bce0 ); -PROVIDE ( r_lld_util_flush_list = 0x4004bbd8 ); -PROVIDE ( r_lld_util_freq2chnl = 0x4004b9e4 ); -PROVIDE ( r_lld_util_get_bd_address = 0x4004b8ac ); -PROVIDE ( r_lld_util_get_local_offset = 0x4004ba10 ); -PROVIDE ( r_lld_util_get_peer_offset = 0x4004ba24 ); -PROVIDE ( r_lld_util_get_tx_pkt_cnt = 0x4004bd80 ); -PROVIDE ( r_lld_util_instant_get = 0x4004b890 ); -PROVIDE ( r_lld_util_instant_ongoing = 0x4004bbfc ); -PROVIDE ( r_lld_util_priority_set = 0x4004bd10 ); -PROVIDE ( r_lld_util_priority_update = 0x4004bd78 ); -PROVIDE ( r_lld_util_ral_force_rpa_renew = 0x4004b980 ); -PROVIDE ( r_lld_util_set_bd_address = 0x4004b8f8 ); -PROVIDE ( r_lld_wlcoex_set = 0x4004bd98 ); -PROVIDE ( r_llm_ble_ready = 0x4004cc34 ); -PROVIDE ( r_llm_common_cmd_complete_send = 0x4004d288 ); -PROVIDE ( r_llm_common_cmd_status_send = 0x4004d2b4 ); -PROVIDE ( r_llm_con_req_ind = 0x4004cc54 ); -PROVIDE ( r_llm_con_req_tx_cfm = 0x4004d158 ); -PROVIDE ( r_llm_create_con = 0x4004de78 ); -PROVIDE ( r_llm_encryption_done = 0x4004dff8 ); -PROVIDE ( r_llm_encryption_start = 0x4004e128 ); -PROVIDE ( r_llm_end_evt_defer = 0x4004eb6c ); -PROVIDE ( r_llm_init = 0x4004c9f8 ); -PROVIDE ( r_llm_le_adv_report_ind = 0x4004cdf4 ); -PROVIDE ( r_llm_pdu_defer = 0x4004ec48 ); -PROVIDE ( r_llm_ral_clear = 0x4004e1fc ); -PROVIDE ( r_llm_ral_dev_add = 0x4004e23c ); -PROVIDE ( r_llm_ral_dev_rm = 0x4004e3bc ); -PROVIDE ( r_llm_ral_get_rpa = 0x4004e400 ); -PROVIDE ( r_llm_ral_set_timeout = 0x4004e4a0 ); -PROVIDE ( r_llm_ral_update = 0x4004e4f8 ); -PROVIDE ( r_llm_set_adv_data = 0x4004d960 ); -PROVIDE ( r_llm_set_adv_en = 0x4004d7ec ); -PROVIDE ( r_llm_set_adv_param = 0x4004d5f4 ); -PROVIDE ( r_llm_set_scan_en = 0x4004db64 ); -PROVIDE ( r_llm_set_scan_param = 0x4004dac8 ); -PROVIDE ( r_llm_set_scan_rsp_data = 0x4004da14 ); -PROVIDE ( r_llm_test_mode_start_rx = 0x4004d534 ); -PROVIDE ( r_llm_test_mode_start_tx = 0x4004d2fc ); -PROVIDE ( r_llm_util_adv_data_update = 0x4004e8fc ); -PROVIDE ( r_llm_util_apply_bd_addr = 0x4004e868 ); -PROVIDE ( r_llm_util_bd_addr_in_ral = 0x4004eb08 ); -PROVIDE ( r_llm_util_bd_addr_in_wl = 0x4004e788 ); -PROVIDE ( r_llm_util_bd_addr_wl_position = 0x4004e720 ); -PROVIDE ( r_llm_util_bl_add = 0x4004e9ac ); -PROVIDE ( r_llm_util_bl_check = 0x4004e930 ); -PROVIDE ( r_llm_util_bl_rem = 0x4004ea70 ); -PROVIDE ( r_llm_util_check_address_validity = 0x4004e7e4 ); -PROVIDE ( r_llm_util_check_evt_mask = 0x4004e8b0 ); -PROVIDE ( r_llm_util_check_map_validity = 0x4004e800 ); -PROVIDE ( r_llm_util_get_channel_map = 0x4004e8d4 ); -PROVIDE ( r_llm_util_get_supp_features = 0x4004e8e8 ); -PROVIDE ( r_llm_util_set_public_addr = 0x4004e89c ); -PROVIDE ( r_llm_wl_clr = 0x4004dc54 ); -PROVIDE ( r_llm_wl_dev_add = 0x4004dcc0 ); -PROVIDE ( r_llm_wl_dev_add_hdl = 0x4004dd38 ); -PROVIDE ( r_llm_wl_dev_rem = 0x4004dcfc ); -PROVIDE ( r_llm_wl_dev_rem_hdl = 0x4004dde0 ); -PROVIDE ( r_lm_acl_disc = 0x4004f148 ); -PROVIDE ( r_LM_AddSniff = 0x40022d20 ); -PROVIDE ( r_lm_add_sync = 0x40051358 ); -PROVIDE ( r_lm_afh_activate_timer = 0x4004f444 ); -PROVIDE ( r_lm_afh_ch_ass_en_get = 0x4004f3f8 ); -PROVIDE ( r_lm_afh_host_ch_class_get = 0x4004f410 ); -PROVIDE ( r_lm_afh_master_ch_map_get = 0x4004f43c ); -PROVIDE ( r_lm_afh_peer_ch_class_set = 0x4004f418 ); -PROVIDE ( r_lm_check_active_sync = 0x40051334 ); -PROVIDE ( r_LM_CheckEdrFeatureRequest = 0x4002f90c ); -PROVIDE ( r_LM_CheckSwitchInstant = 0x4002f8c0 ); -PROVIDE ( r_lm_check_sync_hl_rsp = 0x4005169c ); -PROVIDE ( r_lm_clk_adj_ack_pending_clear = 0x4004f514 ); -PROVIDE ( r_lm_clk_adj_instant_pending_set = 0x4004f4d8 ); -PROVIDE ( r_LM_ComputePacketType = 0x4002f554 ); -PROVIDE ( r_LM_ComputeSniffSubRate = 0x400233ac ); -PROVIDE ( r_lm_debug_key_compare_192 = 0x4004f3a8 ); -PROVIDE ( r_lm_debug_key_compare_256 = 0x4004f3d0 ); -PROVIDE ( r_lm_dhkey_calc_init = 0x40013234 ); -PROVIDE ( r_lm_dhkey_compare = 0x400132d8 ); -PROVIDE ( r_lm_dut_mode_en_get = 0x4004f3ec ); -PROVIDE ( r_LM_ExtractMaxEncKeySize = 0x4001aca4 ); -PROVIDE ( r_lm_f1 = 0x40012bb8 ); -PROVIDE ( r_lm_f2 = 0x40012cfc ); -PROVIDE ( r_lm_f3 = 0x40013050 ); -PROVIDE ( r_lm_g = 0x40012f90 ); -PROVIDE ( r_LM_GetAFHSwitchInstant = 0x4002f86c ); -PROVIDE ( r_lm_get_auth_en = 0x4004f1ac ); -PROVIDE ( r_lm_get_common_pkt_types = 0x4002fa1c ); -PROVIDE ( r_LM_GetConnectionAcceptTimeout = 0x4004f1f4 ); -PROVIDE ( r_LM_GetFeature = 0x4002f924 ); -PROVIDE ( r_LM_GetLinkTimeout = 0x400233ec ); -PROVIDE ( r_LM_GetLocalNameSeg = 0x4004f200 ); -PROVIDE ( r_lm_get_loopback_mode = 0x4004f248 ); -PROVIDE ( r_LM_GetMasterEncKeySize = 0x4001b29c ); -PROVIDE ( r_LM_GetMasterEncRand = 0x4001b288 ); -PROVIDE ( r_LM_GetMasterKey = 0x4001b260 ); -PROVIDE ( r_LM_GetMasterKeyRand = 0x4001b274 ); -PROVIDE ( r_lm_get_min_sync_intv = 0x400517a8 ); -PROVIDE ( r_lm_get_nb_acl = 0x4004ef9c ); -PROVIDE ( r_lm_get_nb_sync_link = 0x4005179c ); -PROVIDE ( r_lm_get_nonce = 0x400131c4 ); -PROVIDE ( r_lm_get_oob_local_commit = 0x4004f374 ); -PROVIDE ( r_lm_get_oob_local_data_192 = 0x4004f2d4 ); -PROVIDE ( r_lm_get_oob_local_data_256 = 0x4004f318 ); -PROVIDE ( r_LM_GetPINType = 0x4004f1e8 ); -PROVIDE ( r_lm_get_priv_key_192 = 0x4004f278 ); -PROVIDE ( r_lm_get_priv_key_256 = 0x4004f2b8 ); -PROVIDE ( r_lm_get_pub_key_192 = 0x4004f258 ); -PROVIDE ( r_lm_get_pub_key_256 = 0x4004f298 ); -PROVIDE ( r_LM_GetQoSParam = 0x4002f6e0 ); -PROVIDE ( r_lm_get_sec_con_host_supp = 0x4004f1d4 ); -PROVIDE ( r_LM_GetSniffSubratingParam = 0x4002325c ); -PROVIDE ( r_lm_get_sp_en = 0x4004f1c0 ); -PROVIDE ( r_LM_GetSwitchInstant = 0x4002f7f8 ); -PROVIDE ( r_lm_get_synchdl = 0x4005175c ); -PROVIDE ( r_lm_get_sync_param = 0x400503b4 ); -PROVIDE ( r_lm_init = 0x4004ed34 ); -PROVIDE ( r_lm_init_sync = 0x400512d8 ); -PROVIDE ( r_lm_is_acl_con = 0x4004f47c ); -PROVIDE ( r_lm_is_acl_con_role = 0x4004f49c ); -PROVIDE ( r_lm_is_clk_adj_ack_pending = 0x4004f4e8 ); -PROVIDE ( r_lm_is_clk_adj_instant_pending = 0x4004f4c8 ); -PROVIDE ( r_lm_local_ext_fr_configured = 0x4004f540 ); -PROVIDE ( r_lm_look_for_stored_link_key = 0x4002f948 ); -PROVIDE ( r_lm_look_for_sync = 0x40051774 ); -PROVIDE ( r_lm_lt_addr_alloc = 0x4004ef1c ); -PROVIDE ( r_lm_lt_addr_free = 0x4004ef74 ); -PROVIDE ( r_lm_lt_addr_reserve = 0x4004ef48 ); -PROVIDE ( r_LM_MakeCof = 0x4002f84c ); -PROVIDE ( r_LM_MakeRandVec = 0x400112d8 ); -PROVIDE ( r_lm_master_clk_adj_req_handler = 0x40054180 ); -PROVIDE ( r_LM_MaxSlot = 0x4002f694 ); -PROVIDE ( r_lm_modif_sync = 0x40051578 ); -PROVIDE ( r_lm_n_is_zero = 0x40012170 ); -PROVIDE ( r_lm_num_clk_adj_ack_pending_set = 0x4004f500 ); -PROVIDE ( r_lm_oob_f1 = 0x40012e54 ); -PROVIDE ( r_lm_pca_sscan_link_get = 0x4004f560 ); -PROVIDE ( r_lm_pca_sscan_link_set = 0x4004f550 ); -PROVIDE ( nvds_null_read = 0x400542a0 ); -PROVIDE ( nvds_null_write = 0x400542a8 ); -PROVIDE ( nvds_null_erase = 0x400542b0 ); -PROVIDE ( nvds_read = 0x400542c4 ); -PROVIDE ( nvds_write = 0x400542fc ); -PROVIDE ( nvds_erase = 0x40054334 ); -PROVIDE ( nvds_init_memory = 0x40054358 ); -PROVIDE ( r_lmp_pack = 0x4001135c ); -PROVIDE ( r_lmp_unpack = 0x4001149c ); -PROVIDE ( r_lm_read_features = 0x4004f0d8 ); -PROVIDE ( r_LM_RemoveSniff = 0x40023124 ); -PROVIDE ( r_LM_RemoveSniffSubrating = 0x400233c4 ); -PROVIDE ( r_lm_remove_sync = 0x400517c8 ); -PROVIDE ( r_lm_reset_sync = 0x40051304 ); -PROVIDE ( r_lm_role_switch_finished = 0x4004f028 ); -PROVIDE ( r_lm_role_switch_start = 0x4004efe0 ); -PROVIDE ( r_lm_sco_nego_end = 0x40051828 ); -PROVIDE ( r_LM_SniffSubrateNegoRequired = 0x40023334 ); -PROVIDE ( r_LM_SniffSubratingHlReq = 0x40023154 ); -PROVIDE ( r_LM_SniffSubratingPeerReq = 0x400231dc ); -PROVIDE ( r_lm_sp_debug_mode_get = 0x4004f398 ); -PROVIDE ( r_lm_sp_n192_convert_wnaf = 0x400123c0 ); -PROVIDE ( r_lm_sp_n_one = 0x400123a4 ); -PROVIDE ( r_lm_sp_p192_add = 0x40012828 ); -PROVIDE ( r_lm_sp_p192_dbl = 0x4001268c ); -PROVIDE ( r_lm_sp_p192_invert = 0x40012b6c ); -PROVIDE ( r_lm_sp_p192_point_jacobian_to_affine = 0x40012468 ); -PROVIDE ( r_lm_sp_p192_points_jacobian_to_affine = 0x400124e4 ); -PROVIDE ( r_lm_sp_p192_point_to_inf = 0x40012458 ); -PROVIDE ( r_lm_sp_pre_compute_points = 0x40012640 ); -PROVIDE ( r_lm_sp_sha256_calculate = 0x400121a0 ); -PROVIDE ( r_LM_SuppressAclPacket = 0x4002f658 ); -PROVIDE ( r_lm_sync_flow_ctrl_en_get = 0x4004f404 ); -PROVIDE ( r_LM_UpdateAclEdrPacketType = 0x4002f5d8 ); -PROVIDE ( r_LM_UpdateAclPacketType = 0x4002f584 ); -PROVIDE ( r_modules_funcs = 0x3ffafd6c ); -PROVIDE ( r_modules_funcs_p = 0x3ffafd68 ); -PROVIDE ( r_nvds_del = 0x400544c4 ); -PROVIDE ( r_nvds_get = 0x40054488 ); -PROVIDE ( r_nvds_init = 0x40054410 ); -PROVIDE ( r_nvds_lock = 0x400544fc ); -PROVIDE ( r_nvds_put = 0x40054534 ); -PROVIDE ( rom_abs_temp = 0x400054f0 ); -PROVIDE ( rom_bb_bss_bw_40_en = 0x4000401c ); -PROVIDE ( rom_bb_bss_cbw40_dig = 0x40003bac ); -PROVIDE ( rom_bb_rx_ht20_cen_bcov_en = 0x40003734 ); -PROVIDE ( rom_bb_tx_ht20_cen = 0x40003760 ); -PROVIDE ( rom_bb_wdg_test_en = 0x40003b70 ); -PROVIDE ( rom_cbw2040_cfg = 0x400040b0 ); -PROVIDE ( rom_check_noise_floor = 0x40003c78 ); -PROVIDE ( rom_chip_i2c_readReg = 0x40004110 ); -PROVIDE ( rom_chip_i2c_writeReg = 0x40004168 ); -PROVIDE ( rom_chip_v7_bt_init = 0x40004d8c ); -PROVIDE ( rom_chip_v7_rx_init = 0x40004cec ); -PROVIDE ( rom_chip_v7_rx_rifs_en = 0x40003d90 ); -PROVIDE ( rom_chip_v7_tx_init = 0x40004d18 ); -PROVIDE ( rom_clk_force_on_vit = 0x40003710 ); -PROVIDE ( rom_correct_rf_ana_gain = 0x400062a8 ); -PROVIDE ( rom_dc_iq_est = 0x400055c8 ); -PROVIDE ( rom_disable_agc = 0x40002fa4 ); -PROVIDE ( rom_enable_agc = 0x40002fcc ); -PROVIDE ( rom_en_pwdet = 0x4000506c ); -PROVIDE ( rom_gen_rx_gain_table = 0x40003e3c ); -PROVIDE ( rom_get_data_sat = 0x4000312c ); -PROVIDE ( rom_get_fm_sar_dout = 0x40005204 ); -PROVIDE ( rom_get_power_db = 0x40005fc8 ); -PROVIDE ( rom_get_pwctrl_correct = 0x400065d4 ); -PROVIDE ( rom_get_rfcal_rxiq_data = 0x40005bbc ); -PROVIDE ( rom_get_rf_gain_qdb = 0x40006290 ); -PROVIDE ( rom_get_sar_dout = 0x40006564 ); -PROVIDE ( rom_i2c_readreg = 0x40004148 ); -PROVIDE ( rom_i2c_readreg_Mask = 0x400041c0 ); -PROVIDE ( rom_i2c_writereg = 0x400041a4 ); -PROVIDE ( rom_i2c_writereg_Mask = 0x400041fc ); -PROVIDE ( rom_index_to_txbbgain = 0x40004df8 ); -PROVIDE ( rom_iq_est_disable = 0x40005590 ); -PROVIDE ( rom_iq_est_enable = 0x40005514 ); -PROVIDE ( rom_linear_to_db = 0x40005f64 ); -PROVIDE ( rom_loopback_mode_en = 0x400030f8 ); -PROVIDE ( rom_main = 0x400076c4 ); -PROVIDE ( rom_meas_tone_pwr_db = 0x40006004 ); -PROVIDE ( rom_mhz2ieee = 0x4000404c ); -PROVIDE ( rom_noise_floor_auto_set = 0x40003bdc ); -PROVIDE ( rom_pbus_debugmode = 0x40004458 ); -PROVIDE ( rom_pbus_force_mode = 0x40004270 ); -PROVIDE ( rom_pbus_force_test = 0x400043c0 ); -PROVIDE ( rom_pbus_rd = 0x40004414 ); -PROVIDE ( rom_pbus_rd_addr = 0x40004334 ); -PROVIDE ( rom_pbus_rd_shift = 0x40004374 ); -PROVIDE ( rom_pbus_rx_dco_cal = 0x40005620 ); -PROVIDE ( rom_pbus_set_dco = 0x40004638 ); -PROVIDE ( rom_pbus_set_rxgain = 0x40004480 ); -PROVIDE ( rom_pbus_workmode = 0x4000446c ); -PROVIDE ( rom_pbus_xpd_rx_off = 0x40004508 ); -PROVIDE ( rom_pbus_xpd_rx_on = 0x4000453c ); -PROVIDE ( rom_pbus_xpd_tx_off = 0x40004590 ); -PROVIDE ( rom_pbus_xpd_tx_on = 0x400045e0 ); -PROVIDE ( rom_phy_disable_agc = 0x40002f6c ); -PROVIDE ( rom_phy_disable_cca = 0x40003000 ); -PROVIDE ( rom_phy_enable_agc = 0x40002f88 ); -PROVIDE ( rom_phy_enable_cca = 0x4000302c ); -PROVIDE ( rom_phy_freq_correct = 0x40004b44 ); -PROVIDE ( rom_phyFuns = 0x3ffae0c0 ); -PROVIDE ( rom_phy_get_noisefloor = 0x40003c2c ); -PROVIDE ( rom_phy_get_vdd33 = 0x4000642c ); -PROVIDE ( rom_pow_usr = 0x40003044 ); -PROVIDE ( rom_read_sar_dout = 0x400051c0 ); -PROVIDE ( rom_restart_cal = 0x400046e0 ); -PROVIDE ( rom_rfcal_pwrctrl = 0x40006058 ); -PROVIDE ( rom_rfcal_rxiq = 0x40005b4c ); -PROVIDE ( rom_rfcal_txcap = 0x40005dec ); -PROVIDE ( rom_rfpll_reset = 0x40004680 ); -PROVIDE ( rom_rfpll_set_freq = 0x400047f8 ); -PROVIDE ( rom_rtc_mem_backup = 0x40003db4 ); -PROVIDE ( rom_rtc_mem_recovery = 0x40003df4 ); -PROVIDE ( rom_rx_gain_force = 0x4000351c ); -PROVIDE ( rom_rxiq_cover_mg_mp = 0x40005a68 ); -PROVIDE ( rom_rxiq_get_mis = 0x400058e4 ); -PROVIDE ( rom_rxiq_set_reg = 0x40005a00 ); -PROVIDE ( rom_set_cal_rxdc = 0x400030b8 ); -PROVIDE ( rom_set_chan_cal_interp = 0x40005ce0 ); -PROVIDE ( rom_set_channel_freq = 0x40004880 ); -PROVIDE ( rom_set_loopback_gain = 0x40003060 ); -PROVIDE ( rom_set_noise_floor = 0x40003d48 ); -PROVIDE ( rom_set_pbus_mem = 0x400031a4 ); -PROVIDE ( rom_set_rf_freq_offset = 0x40004ca8 ); -PROVIDE ( rom_set_rxclk_en = 0x40003594 ); -PROVIDE ( rom_set_txcap_reg = 0x40005d50 ); -PROVIDE ( rom_set_txclk_en = 0x40003564 ); -PROVIDE ( rom_spur_coef_cfg = 0x40003ac8 ); -PROVIDE ( rom_spur_reg_write_one_tone = 0x400037f0 ); -PROVIDE ( rom_start_tx_tone = 0x400036b4 ); -PROVIDE ( rom_start_tx_tone_step = 0x400035d0 ); -PROVIDE ( rom_stop_tx_tone = 0x40003f98 ); -PROVIDE ( _rom_store = 0x4000d66c ); -PROVIDE ( _rom_store_table = 0x4000d4f8 ); -PROVIDE ( rom_target_power_add_backoff = 0x40006268 ); -PROVIDE ( rom_tx_atten_set_interp = 0x400061cc ); -PROVIDE ( rom_txbbgain_to_index = 0x40004dc0 ); -PROVIDE ( rom_txcal_work_mode = 0x4000510c ); -PROVIDE ( rom_txdc_cal_init = 0x40004e10 ); -PROVIDE ( rom_txdc_cal_v70 = 0x40004ea4 ); -PROVIDE ( rom_txiq_cover = 0x4000538c ); -PROVIDE ( rom_txiq_get_mis_pwr = 0x400052dc ); -PROVIDE ( rom_txiq_set_reg = 0x40005154 ); -PROVIDE ( rom_tx_pwctrl_bg_init = 0x4000662c ); -PROVIDE ( rom_txtone_linear_pwr = 0x40005290 ); -PROVIDE ( rom_wait_rfpll_cal_end = 0x400047a8 ); -PROVIDE ( rom_write_gain_mem = 0x4000348c ); -PROVIDE ( rom_write_rfpll_sdm = 0x40004740 ); -PROVIDE ( roundup2 = 0x4000ab7c ); -PROVIDE ( r_plf_funcs_p = 0x3ffb8360 ); -PROVIDE ( r_rf_rw_bt_init = 0x40054868 ); -PROVIDE ( r_rf_rw_init = 0x40054b0c ); -PROVIDE ( r_rf_rw_le_init = 0x400549d0 ); -PROVIDE ( r_rwble_activity_ongoing_check = 0x40054d8c ); -PROVIDE ( r_rwble_init = 0x40054bf4 ); -PROVIDE ( r_rwble_isr = 0x40054e08 ); -PROVIDE ( r_rwble_reset = 0x40054ce8 ); -PROVIDE ( r_rwble_sleep_check = 0x40054d78 ); -PROVIDE ( r_rwble_version = 0x40054dac ); -PROVIDE ( r_rwbt_init = 0x40055160 ); -PROVIDE ( r_rwbt_isr = 0x40055248 ); -PROVIDE ( r_rwbt_reset = 0x400551bc ); -PROVIDE ( r_rwbt_sleep_check = 0x4005577c ); -PROVIDE ( r_rwbt_sleep_enter = 0x400557a4 ); -PROVIDE ( r_rwbt_sleep_wakeup = 0x400557fc ); -PROVIDE ( r_rwbt_sleep_wakeup_end = 0x400558cc ); -PROVIDE ( r_rwbt_version = 0x4005520c ); -PROVIDE ( r_rwip_assert_err = 0x40055f88 ); -PROVIDE ( r_rwip_check_wakeup_boundary = 0x400558fc ); -PROVIDE ( r_rwip_ext_wakeup_enable = 0x40055f3c ); -PROVIDE ( r_rwip_init = 0x4005595c ); -PROVIDE ( r_rwip_pca_clock_dragging_only = 0x40055f48 ); -PROVIDE ( r_rwip_prevent_sleep_clear = 0x40055ec8 ); -PROVIDE ( r_rwip_prevent_sleep_set = 0x40055e64 ); -PROVIDE ( r_rwip_reset = 0x40055ab8 ); -PROVIDE ( r_rwip_schedule = 0x40055b38 ); -PROVIDE ( r_rwip_sleep = 0x40055b5c ); -PROVIDE ( r_rwip_sleep_enable = 0x40055f30 ); -PROVIDE ( r_rwip_version = 0x40055b20 ); -PROVIDE ( r_rwip_wakeup = 0x40055dc4 ); -PROVIDE ( r_rwip_wakeup_delay_set = 0x40055e4c ); -PROVIDE ( r_rwip_wakeup_end = 0x40055e18 ); -PROVIDE ( r_rwip_wlcoex_set = 0x40055f60 ); -PROVIDE ( r_SHA_256 = 0x40013a90 ); -PROVIDE ( rtc_boot_control = 0x4000821c ); -PROVIDE ( rtc_get_reset_reason = 0x400081d4 ); -PROVIDE ( rtc_get_wakeup_cause = 0x400081f4 ); -PROVIDE ( rtc_select_apb_bridge = 0x40008288 ); -PROVIDE ( rwip_coex_cfg = 0x3ff9914c ); -PROVIDE ( rwip_priority = 0x3ff99159 ); -PROVIDE ( rwip_rf = 0x3ffbdb28 ); -PROVIDE ( rwip_rf_p_get = 0x400558f4 ); -PROVIDE ( r_XorKey = 0x400112c0 ); -PROVIDE ( sbrk = 0x400017f4 ); -PROVIDE ( _sbrk_r = 0x4000bce4 ); -PROVIDE ( scanf = 0x40058760 ); -PROVIDE ( _scanf_chars = 0x40058384 ); -PROVIDE ( _scanf_float = 0x4000bf18 ); -PROVIDE ( _scanf_i = 0x4005845c ); -PROVIDE ( _scanf_r = 0x4005879c ); -PROVIDE ( __sccl = 0x4000c498 ); -PROVIDE ( __sclose = 0x400011b8 ); -PROVIDE ( SelectSpiFunction = 0x40061f84 ); -PROVIDE ( SelectSpiQIO = 0x40061ddc ); -PROVIDE ( SendMsg = 0x40009384 ); -PROVIDE ( send_packet = 0x40009340 ); -PROVIDE ( __seofread = 0x40001148 ); -PROVIDE ( setjmp = 0x40056268 ); -PROVIDE ( setlocale = 0x40059568 ); -PROVIDE ( _setlocale_r = 0x4005950c ); -PROVIDE ( set_rtc_memory_crc = 0x40008208 ); -PROVIDE ( SetSpiDrvs = 0x40061e78 ); -PROVIDE ( __sf_fake_stderr = 0x3ff96458 ); -PROVIDE ( __sf_fake_stdin = 0x3ff96498 ); -PROVIDE ( __sf_fake_stdout = 0x3ff96478 ); -PROVIDE ( __sflush_r = 0x400591e0 ); -PROVIDE ( __sfmoreglue = 0x40001dc8 ); -PROVIDE ( __sfp = 0x40001e90 ); -PROVIDE ( __sfp_lock_acquire = 0x40001e08 ); -PROVIDE ( __sfp_lock_release = 0x40001e14 ); -PROVIDE ( __sfputs_r = 0x40057790 ); -PROVIDE ( __sfvwrite_r = 0x4005893c ); -PROVIDE ( sha1_prf = 0x40060ae8 ); -PROVIDE ( sha1_vector = 0x40060b64 ); -PROVIDE ( sha256_prf = 0x40060d70 ); -PROVIDE ( sha256_vector = 0x40060e08 ); -PROVIDE ( sha_blk_bits = 0x3ff99290 ); -PROVIDE ( sha_blk_bits_bytes = 0x3ff99288 ); -PROVIDE ( sha_blk_hash_bytes = 0x3ff9928c ); -PROVIDE ( sig_matrix = 0x3ffae293 ); -PROVIDE ( __sinit = 0x40001e38 ); -PROVIDE ( __sinit_lock_acquire = 0x40001e20 ); -PROVIDE ( __sinit_lock_release = 0x40001e2c ); -PROVIDE ( sip_after_tx_complete = 0x4000b358 ); -PROVIDE ( sip_alloc_to_host_evt = 0x4000ab9c ); -PROVIDE ( sip_get_ptr = 0x4000b34c ); -PROVIDE ( sip_get_state = 0x4000ae2c ); -PROVIDE ( sip_init_attach = 0x4000ae58 ); -PROVIDE ( sip_install_rx_ctrl_cb = 0x4000ae10 ); -PROVIDE ( sip_install_rx_data_cb = 0x4000ae20 ); -PROVIDE ( sip_is_active = 0x4000b3c0 ); -PROVIDE ( sip_post_init = 0x4000aed8 ); -PROVIDE ( sip_reclaim_from_host_cmd = 0x4000adbc ); -PROVIDE ( sip_reclaim_tx_data_pkt = 0x4000ad5c ); -PROVIDE ( siprintf = 0x40056c08 ); -PROVIDE ( _siprintf_r = 0x40056bbc ); -PROVIDE ( sip_send = 0x4000af54 ); -PROVIDE ( sip_to_host_chain_append = 0x4000aef8 ); -PROVIDE ( sip_to_host_evt_send_done = 0x4000ac04 ); -PROVIDE ( siscanf = 0x400587d0 ); -PROVIDE ( _siscanf_r = 0x40058830 ); -PROVIDE ( slc_add_credits = 0x4000baf4 ); -PROVIDE ( slc_enable = 0x4000b64c ); -PROVIDE ( slc_from_host_chain_fetch = 0x4000b7e8 ); -PROVIDE ( slc_from_host_chain_recycle = 0x4000bb10 ); -PROVIDE ( slc_has_pkt_to_host = 0x4000b5fc ); -PROVIDE ( slc_init_attach = 0x4000b918 ); -PROVIDE ( slc_init_credit = 0x4000badc ); -PROVIDE ( slc_reattach = 0x4000b62c ); -PROVIDE ( slc_send_to_host_chain = 0x4000b6a0 ); -PROVIDE ( slc_set_host_io_max_window = 0x4000b89c ); -PROVIDE ( slc_to_host_chain_recycle = 0x4000b758 ); -PROVIDE ( __smakebuf_r = 0x40059108 ); -PROVIDE ( sniprintf = 0x40056b4c ); -PROVIDE ( _sniprintf_r = 0x40056ae4 ); -PROVIDE ( snprintf = 0x40056b4c ); -PROVIDE ( _snprintf_r = 0x40056ae4 ); -PROVIDE ( software_reset = 0x4000824c ); -PROVIDE ( software_reset_cpu = 0x40008264 ); -PROVIDE ( specialModP256 = 0x4001600c ); -PROVIDE ( spi_cache_sram_init = 0x400626e4 ); -PROVIDE ( SPIClkConfig = 0x40062bc8 ); -PROVIDE ( SPI_Common_Command = 0x4006246c ); -PROVIDE ( spi_dummy_len_fix = 0x40061d90 ); -PROVIDE ( SPI_Encrypt_Write = 0x40062e78 ); -PROVIDE ( SPIEraseArea = 0x400631ac ); -PROVIDE ( SPIEraseBlock = 0x40062c4c ); -PROVIDE ( SPIEraseChip = 0x40062c14 ); -PROVIDE ( SPIEraseSector = 0x40062ccc ); -PROVIDE ( spi_flash_attach = 0x40062a6c ); -PROVIDE ( SPILock = 0x400628f0 ); -PROVIDE ( SPIMasterReadModeCnfig = 0x40062b64 ); -PROVIDE ( spi_modes = 0x3ff99270 ); -PROVIDE ( SPIParamCfg = 0x40063238 ); -PROVIDE ( SPI_Prepare_Encrypt_Data = 0x40062e1c ); -PROVIDE ( SPIRead = 0x40062ed8 ); -PROVIDE ( SPIReadModeCnfig = 0x40062944 ); -/* This is static function, but can be used, not generated by script*/ -PROVIDE ( SPI_read_status = 0x4006226c ); -/* This is static function, but can be used, not generated by script*/ -PROVIDE ( SPI_read_status_high = 0x40062448 ); -PROVIDE ( SPIUnlock = 0x400628b0 ); -PROVIDE ( SPI_user_command_read = 0x400621b0 ); -PROVIDE ( spi_w25q16 = 0x3ffae270 ); -PROVIDE ( SPIWrite = 0x40062d50 ); -/* This is static function, but can be used, not generated by script*/ -PROVIDE ( SPI_write_enable = 0x40062320 ); -PROVIDE ( SPI_Write_Encrypt_Disable = 0x40062e60 ); -PROVIDE ( SPI_Write_Encrypt_Enable = 0x40062df4 ); -/* This is static function, but can be used, not generated by script*/ -PROVIDE ( SPI_write_status = 0x400622f0 ); -PROVIDE ( sprintf = 0x40056c08 ); -PROVIDE ( _sprintf_r = 0x40056bbc ); -PROVIDE ( __sprint_r = 0x400577e4 ); -PROVIDE ( srand = 0x40001004 ); -PROVIDE ( __sread = 0x40001118 ); -PROVIDE ( __srefill_r = 0x400593d4 ); -PROVIDE ( sscanf = 0x400587d0 ); -PROVIDE ( _sscanf_r = 0x40058830 ); -PROVIDE ( __sseek = 0x40001184 ); -PROVIDE ( __ssprint_r = 0x40056ff8 ); -PROVIDE ( __ssputs_r = 0x40056f2c ); -PROVIDE ( __ssrefill_r = 0x40057fec ); -PROVIDE ( __ssvfiscanf_r = 0x4005802c ); -PROVIDE ( __ssvfscanf_r = 0x4005802c ); -PROVIDE ( __stack = 0x3ffe3f20 ); -PROVIDE ( __stack_app = 0x3ffe7e30 ); -PROVIDE ( _stack_sentry = 0x3ffe1320 ); -PROVIDE ( _stack_sentry_app = 0x3ffe5230 ); -PROVIDE ( _start = 0x40000704 ); -PROVIDE ( start_tb_console = 0x4005a980 ); -PROVIDE ( _stat_r = 0x4000bcb4 ); -PROVIDE ( _stext = 0x40000560 ); -PROVIDE ( strcasecmp = 0x400011cc ); -PROVIDE ( strcasestr = 0x40001210 ); -PROVIDE ( strcat = 0x4000c518 ); -PROVIDE ( strchr = 0x4000c53c ); -PROVIDE ( strcmp = 0x40001274 ); -PROVIDE ( strcoll = 0x40001398 ); -PROVIDE ( strcpy = 0x400013ac ); -PROVIDE ( strcspn = 0x4000c558 ); -PROVIDE ( strdup = 0x4000143c ); -PROVIDE ( _strdup_r = 0x40001450 ); -PROVIDE ( strftime = 0x40059ab4 ); -PROVIDE ( strlcat = 0x40001470 ); -PROVIDE ( strlcpy = 0x4000c584 ); -PROVIDE ( strlen = 0x400014c0 ); -PROVIDE ( strlwr = 0x40001524 ); -PROVIDE ( strncasecmp = 0x40001550 ); -PROVIDE ( strncat = 0x4000c5c4 ); -PROVIDE ( strncmp = 0x4000c5f4 ); -PROVIDE ( strncpy = 0x400015d4 ); -PROVIDE ( strndup = 0x400016b0 ); -PROVIDE ( _strndup_r = 0x400016c4 ); -PROVIDE ( strnlen = 0x4000c628 ); -PROVIDE ( strrchr = 0x40001708 ); -PROVIDE ( strsep = 0x40001734 ); -PROVIDE ( strspn = 0x4000c648 ); -PROVIDE ( strstr = 0x4000c674 ); -PROVIDE ( __strtok_r = 0x4000c6a8 ); -PROVIDE ( strtok_r = 0x4000c70c ); -PROVIDE ( strtol = 0x4005681c ); -PROVIDE ( _strtol_r = 0x40056714 ); -PROVIDE ( strtoul = 0x4005692c ); -PROVIDE ( _strtoul_r = 0x40056834 ); -PROVIDE ( strupr = 0x4000174c ); -PROVIDE ( __submore = 0x40058f3c ); -PROVIDE ( SubtractBigHex256 = 0x40015bcc ); -PROVIDE ( SubtractBigHexMod256 = 0x40015e8c ); -PROVIDE ( SubtractBigHexUint32_256 = 0x40015f8c ); -PROVIDE ( SubtractFromSelfBigHex256 = 0x40015c20 ); -PROVIDE ( SubtractFromSelfBigHexSign256 = 0x40015dc8 ); -PROVIDE ( _sungetc_r = 0x40057f6c ); -PROVIDE ( _svfiprintf_r = 0x40057100 ); -PROVIDE ( __svfiscanf_r = 0x40057b08 ); -PROVIDE ( _svfprintf_r = 0x40057100 ); -PROVIDE ( __svfscanf = 0x40057f04 ); -PROVIDE ( __svfscanf_r = 0x40057b08 ); -PROVIDE ( __swbuf = 0x40058cb4 ); -PROVIDE ( __swbuf_r = 0x40058bec ); -PROVIDE ( __swrite = 0x40001150 ); -PROVIDE ( __swsetup_r = 0x40058cc8 ); -PROVIDE ( sw_to_hw = 0x3ffb8d40 ); -PROVIDE ( _SyscallException = 0x400007cf ); -PROVIDE ( syscall_table_ptr_app = 0x3ffae020 ); -PROVIDE ( syscall_table_ptr_pro = 0x3ffae024 ); -PROVIDE ( _system_r = 0x4000bc10 ); -PROVIDE ( tdefl_compress = 0x400600bc ); -PROVIDE ( tdefl_compress_buffer = 0x400607f4 ); -PROVIDE ( tdefl_compress_mem_to_mem = 0x40060900 ); -PROVIDE ( tdefl_compress_mem_to_output = 0x400608e0 ); -PROVIDE ( tdefl_get_adler32 = 0x400608d8 ); -PROVIDE ( tdefl_get_prev_return_status = 0x400608d0 ); -PROVIDE ( tdefl_init = 0x40060810 ); -PROVIDE ( tdefl_write_image_to_png_file_in_memory = 0x4006091c ); -PROVIDE ( tdefl_write_image_to_png_file_in_memory_ex = 0x40060910 ); -PROVIDE ( time = 0x40001844 ); -PROVIDE ( __time_load_locale = 0x4000183c ); -PROVIDE ( times = 0x40001808 ); -PROVIDE ( _times_r = 0x4000bc40 ); -PROVIDE ( _timezone = 0x3ffae0a0 ); -PROVIDE ( tinfl_decompress = 0x4005ef30 ); -PROVIDE ( tinfl_decompress_mem_to_callback = 0x40060090 ); -PROVIDE ( tinfl_decompress_mem_to_mem = 0x40060050 ); -PROVIDE ( toascii = 0x4000c720 ); -PROVIDE ( tolower = 0x40001868 ); -PROVIDE ( toupper = 0x40001884 ); -PROVIDE ( __tzcalc_limits = 0x400018a0 ); -PROVIDE ( __tz_lock = 0x40001a04 ); -PROVIDE ( _tzname = 0x3ffae030 ); -PROVIDE ( tzset = 0x40001a1c ); -PROVIDE ( _tzset_r = 0x40001a28 ); -PROVIDE ( __tz_unlock = 0x40001a10 ); -PROVIDE ( uartAttach = 0x40008fd0 ); -PROVIDE ( uart_baudrate_detect = 0x40009034 ); -PROVIDE ( uart_buff_switch = 0x400093c0 ); -PROVIDE ( UartConnCheck = 0x40008738 ); -PROVIDE ( UartConnectProc = 0x40008a04 ); -PROVIDE ( UartDev = 0x3ffe019c ); -PROVIDE ( uart_div_modify = 0x400090cc ); -PROVIDE ( UartDwnLdProc = 0x40008ce8 ); -PROVIDE ( UartGetCmdLn = 0x40009564 ); -PROVIDE ( Uart_Init = 0x40009120 ); -PROVIDE ( UartRegReadProc = 0x40008a58 ); -PROVIDE ( UartRegWriteProc = 0x40008a14 ); -PROVIDE ( uart_rx_intr_handler = 0x40008f4c ); -PROVIDE ( uart_rx_one_char = 0x400092d0 ); -PROVIDE ( uart_rx_one_char_block = 0x400092a4 ); -PROVIDE ( uart_rx_readbuff = 0x40009394 ); -PROVIDE ( UartRxString = 0x400092fc ); -PROVIDE ( UartSetBaudProc = 0x40008aac ); -PROVIDE ( UartSpiAttachProc = 0x40008a6c ); -PROVIDE ( UartSpiReadProc = 0x40008a80 ); -PROVIDE ( uart_tx_flush = 0x40009258 ); -PROVIDE ( uart_tx_one_char = 0x40009200 ); -PROVIDE ( uart_tx_one_char2 = 0x4000922c ); -PROVIDE ( uart_tx_switch = 0x40009028 ); -PROVIDE ( uart_tx_wait_idle = 0x40009278 ); -PROVIDE ( ungetc = 0x400590f4 ); -PROVIDE ( _ungetc_r = 0x40058fa0 ); -PROVIDE ( _unlink_r = 0x4000bc84 ); -PROVIDE ( user_code_start = 0x3ffe0400 ); -PROVIDE ( _UserExceptionVector = 0x40000340 ); -PROVIDE ( utoa = 0x40056258 ); -PROVIDE ( __utoa = 0x400561f0 ); -PROVIDE ( vasiprintf = 0x40056eb8 ); -PROVIDE ( _vasiprintf_r = 0x40056e80 ); -PROVIDE ( vasniprintf = 0x40056e58 ); -PROVIDE ( _vasniprintf_r = 0x40056df8 ); -PROVIDE ( vasnprintf = 0x40056e58 ); -PROVIDE ( _vasnprintf_r = 0x40056df8 ); -PROVIDE ( vasprintf = 0x40056eb8 ); -PROVIDE ( _vasprintf_r = 0x40056e80 ); -PROVIDE ( VerifyFlashMd5Proc = 0x40008c44 ); -PROVIDE ( veryBigHexP256 = 0x3ff9736c ); -PROVIDE ( vfiprintf = 0x40057ae8 ); -PROVIDE ( _vfiprintf_r = 0x40057850 ); -PROVIDE ( vfiscanf = 0x40057eb8 ); -PROVIDE ( _vfiscanf_r = 0x40057f24 ); -PROVIDE ( vfprintf = 0x40057ae8 ); -PROVIDE ( _vfprintf_r = 0x40057850 ); -PROVIDE ( vfscanf = 0x40057eb8 ); -PROVIDE ( _vfscanf_r = 0x40057f24 ); -PROVIDE ( viprintf = 0x400569b4 ); -PROVIDE ( _viprintf_r = 0x400569e4 ); -PROVIDE ( viscanf = 0x40058698 ); -PROVIDE ( _viscanf_r = 0x400586c8 ); -PROVIDE ( vprintf = 0x400569b4 ); -PROVIDE ( _vprintf_r = 0x400569e4 ); -PROVIDE ( vscanf = 0x40058698 ); -PROVIDE ( _vscanf_r = 0x400586c8 ); -PROVIDE ( vsiprintf = 0x40056ac4 ); -PROVIDE ( _vsiprintf_r = 0x40056a90 ); -PROVIDE ( vsiscanf = 0x40058740 ); -PROVIDE ( _vsiscanf_r = 0x400586f8 ); -PROVIDE ( vsniprintf = 0x40056a68 ); -PROVIDE ( _vsniprintf_r = 0x40056a14 ); -PROVIDE ( vsnprintf = 0x40056a68 ); -PROVIDE ( _vsnprintf_r = 0x40056a14 ); -PROVIDE ( vsprintf = 0x40056ac4 ); -PROVIDE ( _vsprintf_r = 0x40056a90 ); -PROVIDE ( vsscanf = 0x40058740 ); -PROVIDE ( _vsscanf_r = 0x400586f8 ); -PROVIDE ( wcrtomb = 0x40058920 ); -PROVIDE ( _wcrtomb_r = 0x400588d8 ); -PROVIDE ( __wctomb = 0x3ff96540 ); -PROVIDE ( _wctomb_r = 0x40058f14 ); -PROVIDE ( _WindowOverflow12 = 0x40000100 ); -PROVIDE ( _WindowOverflow4 = 0x40000000 ); -PROVIDE ( _WindowOverflow8 = 0x40000080 ); -PROVIDE ( _WindowUnderflow12 = 0x40000140 ); -PROVIDE ( _WindowUnderflow4 = 0x40000040 ); -PROVIDE ( _WindowUnderflow8 = 0x400000c0 ); -PROVIDE ( write = 0x4000181c ); -PROVIDE ( _write_r = 0x4000bd70 ); -PROVIDE ( xthal_bcopy = 0x4000c098 ); -PROVIDE ( xthal_copy123 = 0x4000c124 ); -PROVIDE ( xthal_get_ccompare = 0x4000c078 ); -PROVIDE ( xthal_get_ccount = 0x4000c050 ); -PROVIDE ( xthal_get_interrupt = 0x4000c1e4 ); -PROVIDE ( xthal_get_intread = 0x4000c1e4 ); -PROVIDE ( Xthal_intlevel = 0x3ff9c2b4 ); -PROVIDE ( xthal_memcpy = 0x4000c0bc ); -PROVIDE ( xthal_set_ccompare = 0x4000c058 ); -PROVIDE ( xthal_set_intclear = 0x4000c1ec ); -PROVIDE ( _xtos_set_intlevel = 0x4000bfdc ); -PROVIDE ( g_ticks_per_us_pro = 0x3ffe01e0 ); -PROVIDE ( g_ticks_per_us_app = 0x3ffe40f0 ); -PROVIDE ( esp_rom_spiflash_config_param = 0x40063238 ); -PROVIDE ( esp_rom_spiflash_read_user_cmd = 0x400621b0 ); -PROVIDE ( esp_rom_spiflash_write_encrypted_disable = 0x40062e60 ); -PROVIDE ( esp_rom_spiflash_write_encrypted_enable = 0x40062df4 ); -PROVIDE ( esp_rom_spiflash_prepare_encrypted_data = 0x40062e1c ); -PROVIDE ( esp_rom_spiflash_select_qio_pins = 0x40061ddc ); -PROVIDE ( esp_rom_spiflash_attach = 0x40062a6c ); -PROVIDE ( esp_rom_spiflash_config_clk = 0x40062bc8 ); -PROVIDE ( g_rom_spiflash_chip = 0x3ffae270 ); -PROVIDE ( hci_le_rd_rem_used_feats_cmd_handler = 0x400417b4 ); -PROVIDE ( llcp_length_req_handler = 0x40043808 ); -PROVIDE ( llcp_unknown_rsp_handler = 0x40043ba8 ); -PROVIDE ( llcp_channel_map_req_handler = 0x4004291c ); -PROVIDE ( llcp_con_up_req_handler = 0x400426f0 ); -PROVIDE ( _xtos_alloca_handler = 0x40000010 ); -PROVIDE ( _xtos_cause3_handler = 0x40000dd8 ); -PROVIDE ( _xtos_c_handler_table = 0x3ffe0548 ); -PROVIDE ( _xtos_c_wrapper_handler = 0x40000de8 ); -PROVIDE ( _xtos_enabled = 0x3ffe0650 ); -PROVIDE ( _xtos_exc_handler_table = 0x3ffe0448 ); -PROVIDE ( _xtos_interrupt_mask_table = 0x3ffe0758 ); -PROVIDE ( _xtos_interrupt_table = 0x3ffe0658 ); -PROVIDE ( _xtos_ints_off = 0x4000bfac ); -PROVIDE ( _xtos_ints_on = 0x4000bf88 ); -PROVIDE ( _xtos_intstruct = 0x3ffe0650 ); -PROVIDE ( _xtos_l1int_handler = 0x40000814 ); -PROVIDE ( _xtos_p_none = 0x4000bfd4 ); -PROVIDE ( _xtos_restore_intlevel = 0x40000928 ); -PROVIDE ( _xtos_return_from_exc = 0x4000c034 ); -PROVIDE ( _xtos_set_exception_handler = 0x4000074c ); -PROVIDE ( _xtos_set_interrupt_handler = 0x4000bf78 ); -PROVIDE ( _xtos_set_interrupt_handler_arg = 0x4000bf34 ); -PROVIDE ( _xtos_set_intlevel = 0x4000bfdc ); -PROVIDE ( _xtos_set_min_intlevel = 0x4000bff8 ); -PROVIDE ( _xtos_set_vpri = 0x40000934 ); -PROVIDE ( _xtos_syscall_handler = 0x40000790 ); -PROVIDE ( _xtos_unhandled_exception = 0x4000c024 ); -PROVIDE ( _xtos_unhandled_interrupt = 0x4000c01c ); -PROVIDE ( _xtos_vpri_enabled = 0x3ffe0654 ); -PROVIDE ( g_rom_flashchip = 0x3ffae270 ); -PROVIDE ( g_rom_spiflash_dummy_len_plus = 0x3ffae290 ); -PROVIDE ( esp_rom_spiflash_read_user_cmd = 0x400621b0 ); -PROVIDE ( esp_rom_spiflash_write_encrypted_enable = 0x40062df4 ); -PROVIDE ( esp_rom_spiflash_write_encrypted_disable = 0x40062e60 ); -PROVIDE ( esp_rom_spiflash_prepare_encrypted_data = 0x40062e1c ); - -PROVIDE ( esp_rom_printf = ets_printf ); -PROVIDE ( esp_rom_delay_us = ets_delay_us ); - -PROVIDE ( ld_acl_evt_canceled_cbk = 0x40033944 ); -PROVIDE ( lc_acl_disc_ind_handler = 0x4002f270 ); -PROVIDE ( lc_pwr_max_ind_handler = 0x40028690 ); -PROVIDE ( lc_pwr_incr_ind_handler = 0x400284a8 ); -PROVIDE ( ld_acl_evt_start_cbk = 0x40030ab0 ); -PROVIDE ( ld_acl_evt_stop_cbk = 0x40033870 ); -PROVIDE ( lc_pwr_decr_ind_handler = 0x4002859c ); - -/* Following are static data, but can be used, not generated by script <<<<< btdm data */ - -PROVIDE ( hci_tl_env = 0x3ffb8154 ); -PROVIDE ( ld_acl_env = 0x3ffb8258 ); -PROVIDE ( ea_env = 0x3ffb80ec ); -PROVIDE ( lc_sco_data_path_config = 0x3ffb81f8 ); -PROVIDE ( lc_sco_env = 0x3ffb81fc ); -PROVIDE ( ld_active_ch_map = 0x3ffb8334 ); -PROVIDE ( ld_bcst_acl_env = 0x3ffb8274 ); -PROVIDE ( ld_csb_rx_env = 0x3ffb8278 ); -PROVIDE ( ld_csb_tx_env = 0x3ffb827c ); -PROVIDE ( ld_env = 0x3ffb9510 ); -PROVIDE ( ld_fm_env = 0x3ffb8284 ); -PROVIDE ( ld_inq_env = 0x3ffb82e4 ); -PROVIDE ( ld_iscan_env = 0x3ffb82e8 ); -PROVIDE ( ld_page_env = 0x3ffb82f0 ); -PROVIDE ( ld_pca_env = 0x3ffb82f4 ); -PROVIDE ( ld_pscan_env = 0x3ffb8308 ); -PROVIDE ( ld_sched_env = 0x3ffb830c ); -PROVIDE ( ld_sched_params = 0x3ffb96c0 ); -PROVIDE ( ld_sco_env = 0x3ffb824c ); -PROVIDE ( ld_sscan_env = 0x3ffb832c ); -PROVIDE ( ld_strain_env = 0x3ffb8330 ); -PROVIDE ( LM_Sniff = 0x3ffb8230 ); -PROVIDE ( LM_SniffSubRate = 0x3ffb8214 ); -PROVIDE ( prbs_64bytes = 0x3ff98992 ); -PROVIDE ( nvds_env = 0x3ffb8364 ); -PROVIDE ( nvds_magic_number = 0x3ff9912a ); -PROVIDE ( TASK_DESC_LLD = 0x3ff98b58 ); -/* Above are static data, but can be used, not generated by script >>>>> btdm data */ - -PROVIDE ( __popcountsi2 = 0x40002ed0 ); - -PROVIDE ( esp_rom_crc32_le = crc32_le ); - -PROVIDE ( ld_acl_sniff_exit = 0x400312b4 ); -PROVIDE ( ld_acl_sniff_trans_sched = 0x40033734 ); -PROVIDE ( lm_sync_conf = 0x3ffb8348 ); -PROVIDE ( lm_nb_sync_active = 0x3ffb8346 ); -PROVIDE ( lm_sync_nego = 0x3ffb8345 ); -PROVIDE ( lm_nego_cnt = 0x3ffb8344 ); -PROVIDE ( lm_nego_cntl = 0x3ffb8342 ); -PROVIDE ( lm_nego_max_cnt = 0x3ffb8343 ); -PROVIDE ( lm_nego_pkt_used = 0x3ffb8340 ); - -__bswapsi2 = 0x40064ae0; -__bswapdi2 = 0x40064b08; -__divdc3 = 0x400645a4; diff --git a/esp/rust-toolchain.toml b/esp/rust-toolchain.toml deleted file mode 100644 index a2f5ab5..0000000 --- a/esp/rust-toolchain.toml +++ /dev/null @@ -1,2 +0,0 @@ -[toolchain] -channel = "esp" diff --git a/esp/rustfmt.toml b/esp/rustfmt.toml deleted file mode 100644 index 26b2841..0000000 --- a/esp/rustfmt.toml +++ /dev/null @@ -1,9 +0,0 @@ -hard_tabs = true -newline_style = "Unix" -imports_granularity = "Crate" - -unstable_features = true -format_code_in_doc_comments = true -format_macro_bodies = true -format_macro_matchers = true -format_strings = true diff --git a/esp/src/display.rs b/esp/src/display.rs deleted file mode 100644 index 1b146fa..0000000 --- a/esp/src/display.rs +++ /dev/null @@ -1,9 +0,0 @@ -cfg_if::cfg_if! { - if #[cfg(feature = "display_sh1106")] { - mod sh1106; - pub use sh1106::*; - } else if #[cfg(feature = "display_epd")] { - mod epd; - pub use epd::*; - } -} diff --git a/esp/src/display/epd.rs b/esp/src/display/epd.rs deleted file mode 100644 index 4a1e641..0000000 --- a/esp/src/display/epd.rs +++ /dev/null @@ -1,96 +0,0 @@ -use core::cell::RefCell; - -use embassy_embedded_hal::shared_bus::blocking::spi::SpiDevice; -use embassy_sync::blocking_mutex::{raw::NoopRawMutex, NoopMutex}; -use embedded_graphics::prelude::*; -use epd_waveshare::{ - epd1in54::{Display1in54, Epd1in54}, - prelude::*, -}; -use esp_hal::{ - delay::Delay, - gpio::{GpioPin, Input, InputPin, Level, Output, Pull}, - peripherals::SPI2, - spi::{master::Spi, FullDuplexMode}, -}; -use esp_println::println; -use static_cell::StaticCell; - -type EpdSpi<'a> = - SpiDevice<'a, NoopRawMutex, Spi<'a, SPI2, FullDuplexMode>, Output<'a, GpioPin<15>>>; -type Epd = Epd1in54< - EpdSpi<'static>, - Input<'static, GpioPin<18>>, - Output<'static, GpioPin<19>>, - Output<'static, GpioPin<21>>, - Delay, ->; - -pub type Color = epd_waveshare::color::Color; -pub const BLACK: Color = epd_waveshare::color::Color::Black; -pub const WHITE: Color = epd_waveshare::color::Color::White; - -//static DISPLAY: StaticCell = StaticCell::new(); - -pub fn init( - spi: &mut EpdSpi<'static>, - busy: GpioPin<18>, - dc: GpioPin<19>, - rst: GpioPin<21>, - delay: &mut Delay, -) -> Epd { - Epd::new( - spi, - Input::new(busy, Pull::Down), - Output::new(dc, Level::High), - Output::new(rst, Level::High), - delay, - Some(5), - ) - .unwrap() -} - -#[embassy_executor::task] -pub async fn run(mut spi: EpdSpi<'static>, mut epd: Epd, mut delay: Delay) { - println!("EPD start"); - epd.clear_frame(&mut spi, &mut delay).unwrap(); - epd.display_frame(&mut spi, &mut delay).unwrap(); - let small_buffer = [Color::Black.get_byte_value(); 8]; //8x8 - epd.update_partial_frame(&mut spi, &mut delay, &small_buffer, 96, 96, 8, 8) - .unwrap(); - - // Display updated frame - epd.display_frame(&mut spi, &mut delay).unwrap(); - - delay.delay_millis(5000); - - // Set the EPD to sleep - epd.sleep(&mut spi, &mut delay).unwrap(); - println!("EPD done"); -} - -/*pub struct Display { - epd: Epd, - display: Display1in54, -} - -impl Display { - pub fn new(spi: &mut Spi<_, _>) -> Self { - Self { - epd: Epd1in54::new(&mut spi, cs, busy, dc, rst, &mut delay), - display: Display1in54::default(), - } - } - - pub fn update(&self) { - //self.epd.update_and_display_frame( & mut spi, & self.display.buffer()); - } - - pub fn inner(&self) -> &Display1in54 { - &self.display - } - - pub fn inner_mut(&mut self) -> &mut Display1in54 { - &mut self.display - } -}*/ diff --git a/esp/src/display/sh1106.rs b/esp/src/display/sh1106.rs deleted file mode 100644 index a53ede8..0000000 --- a/esp/src/display/sh1106.rs +++ /dev/null @@ -1,98 +0,0 @@ -use crate::string::String; - -use core::cell::RefCell; -use embassy_embedded_hal::shared_bus::blocking::spi::SpiDevice; -use embassy_sync::{ - blocking_mutex::{ - raw::{CriticalSectionRawMutex, NoopRawMutex}, - NoopMutex, - }, - channel::Channel, -}; -use embedded_graphics::{ - mono_font::{ascii::FONT_5X8, MonoTextStyle}, - pixelcolor::BinaryColor, - prelude::*, - primitives::{PrimitiveStyle, Rectangle}, - text::renderer::CharacterStyle, -}; -use embedded_text::{ - alignment::HorizontalAlignment, - style::{HeightMode, TextBoxStyleBuilder}, - TextBox, -}; -use esp_hal::{ - delay::Delay, - gpio::{AnyPin, GpioPin, Input, InputPin, Level, Output, Pull}, - peripherals::SPI2, - spi::master::Spi, -}; -use esp_println::println; -use sh1106::{prelude::*, Builder}; -use static_cell::StaticCell; - -type OledSpi<'a> = - SpiDevice<'a, NoopRawMutex, Spi<'a, esp_hal::Blocking, SPI2>, Output<'a, GpioPin<15>>>; - -pub static CHANNEL: Channel, 2> = Channel::new(); - -/*pub fn init( - spi: OledSpi<'static>, - dc: GpioPin<19>, -) -> GraphicsMode, Output<'static, GpioPin<19>>>> { - Builder::new() - .connect_spi(spi, Output::new(dc, Level::High)) - .into() -}*/ - -pub fn init( - spi: OledSpi<'static>, - dc: AnyPin, -) -> GraphicsMode, Output<'static, AnyPin>>> { - Builder::new() - .connect_spi(spi, Output::new(dc, Level::High)) - .into() -} - -#[embassy_executor::task] -pub async fn run( - mut display: GraphicsMode, Output<'static, GpioPin<19>>>>, - delay: Delay, -) { - display.init().unwrap(); - display.flush().unwrap(); - - let mut character_style = MonoTextStyle::new(&FONT_5X8, BinaryColor::On); - character_style.set_background_color(Some(BinaryColor::Off)); - let textbox_style = TextBoxStyleBuilder::new() - .height_mode(HeightMode::FitToText) - .alignment(HorizontalAlignment::Left) - .paragraph_spacing(3) - .build(); - - let bounds = Rectangle::new(Point::zero(), Size::new(128, 0)); - - loop { - let buf = CHANNEL.receive().await; - let text = buf.as_ref(); - - display.clear(); - - let text_box = TextBox::with_textbox_style( - &text[0..text.len().min(100)], - bounds, - character_style, - textbox_style, - ); - text_box.draw(&mut display).ok(); - /*Rectangle::with_center(Point::new(20, 20), Size::new(8, 8)) - .into_styled(PrimitiveStyle::with_fill(BinaryColor::On)) - .draw(&mut display) - .ok(); - Rectangle::with_center(Point::new(25, 25), Size::new(8, 8)) - .into_styled(PrimitiveStyle::with_fill(BinaryColor::Off)) - .draw(&mut display) - .ok();*/ - display.flush().ok(); - } -} diff --git a/esp/src/main.rs b/esp/src/main.rs deleted file mode 100644 index 5ef7233..0000000 --- a/esp/src/main.rs +++ /dev/null @@ -1,225 +0,0 @@ -#![no_std] -#![no_main] -#![feature(array_windows)] -#![feature(impl_trait_in_assoc_type)] -#![feature(type_alias_impl_trait)] - -mod display; -mod modem; -//mod rng; -mod string; -#[macro_use] -mod util; -mod wifi; - -use string::String; -use util::*; - -use core::cell::RefCell; -use embassy_embedded_hal::shared_bus::blocking::spi::SpiDevice; -use embassy_sync::blocking_mutex::NoopMutex; -//use embedded_tls::{Aes256GcmSha384, TlsConfig, TlsConnection, TlsContext}; -use embassy_executor::Spawner; -use embassy_net::{tcp::TcpSocket, Ipv4Address}; -use embassy_time::{Duration, Timer}; -use embedded_io_async::Write; -use esp_backtrace as _; -use esp_hal::{ - delay::Delay, - gpio::{self, Level}, - prelude::*, - spi::{self, master::Spi}, - timer::{timg::TimerGroup, AnyTimer, OneShotTimer}, - Blocking, -}; -use esp_println::println; -use log::info; - -#[main] -async fn main(spawner: Spawner) { - let mut peripherals = esp_hal::init({ - let mut config = esp_hal::Config::default(); - config.cpu_clock = CpuClock::max(); - config - }); - - esp_alloc::heap_allocator!(72 * 1024); - esp_println::logger::init_logger_from_env(); - - let timer0 = esp_hal::timer::timg::TimerGroup::new(&mut peripherals.TIMG1); - esp_hal_embassy::init(timer0.timer0); - - info!("Embassy ok"); - - //let timer1 = esp_hal::timer::timg::TimerGroup::new(&mut peripherals.TIMG0); - /*let _init = esp_wifi::init( - timer1.timer0, - esp_hal::rng::Rng::new(&mut peripherals.RNG), - peripherals.RADIO_CLK, - ) - .unwrap();*/ - - //let system = SystemControl::new(peripherals.SYSTEM); - //let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); - //let io = Io::new(peripherals.IO_MUX); - - //rng::init(peripherals.RNG, peripherals.ADC1); - let mut trng = esp_hal::rng::Trng::new(peripherals.RNG, &mut peripherals.ADC1); - let seed = { - let mut buf = [0; 8]; - trng.read(&mut buf); - u64::from_be_bytes(buf) - }; - let rng = trng.downgrade(); - - let sclk = peripherals.GPIO14; - let miso = peripherals.GPIO12; - let mosi = peripherals.GPIO13; - let cs = peripherals.GPIO15; - - let spi = Spi::::new_typed_with_config( - mk_static!(esp_hal::peripherals::SPI2, peripherals.SPI2), - spi::master::Config { - frequency: 400.kHz(), - ..Default::default() - }, - ) - .with_sck(sclk) - .with_mosi(mosi) - .with_miso(miso); - let spi = NoopMutex::new(RefCell::new(spi)); - let spi_dev = SpiDevice::new( - mk_static!( - NoopMutex>>, - spi - ), - gpio::Output::new_typed(cs, Level::High), - ); - - info!("SPI ok"); - - let delay = Delay::new(); - #[cfg(feature = "display_epd")] - let mut display = display::init( - &mut spi_dev, - io.pins.gpio18, - io.pins.gpio19, - io.pins.gpio21, - &mut delay, - ); - - #[cfg(feature = "display_sh1106")] - //let mut display = display::init(spi_dev, io.pins.gpio19); - let display = sh1106::Builder::new() - .connect_spi( - spi_dev, - gpio::Output::new_typed(peripherals.GPIO19, Level::High), - ) - .into(); - - info!("Display ok"); - - let timg0 = TimerGroup::new(peripherals.TIMG0); - let (wifi_interface, wifi_controller) = - wifi::pre_init(timg0.timer0, rng, peripherals.RADIO_CLK, peripherals.WIFI); - - info!("Wifi pre-init ok"); - - /*let timg1 = esp_hal::timer::timg::TimerGroup::new(peripherals.TIMG1); - esp_hal_embassy::init( - mk_static!( - [OneShotTimer; 1], - [OneShotTimer::new(AnyTimer::from(timg1.timer0))] - ), - );*/ - - #[cfg(feature = "display_sh1106")] - let _gpio21 = gpio::Output::new(peripherals.GPIO21, Level::High); - #[cfg(feature = "display_sh1106")] - spawner.spawn(display::run(display, delay)).ok(); - #[cfg(feature = "display_epd")] - spawner.spawn(display::run(spi_dev, display, delay)).ok(); - - let net_stack = wifi::post_init(&spawner, wifi_interface, wifi_controller, seed); - info!("Wifi post-init ok"); - - let mut rx_buffer = [0; 4096]; - let mut tx_buffer = [0; 4096]; - - 'get: loop { - Timer::after(Duration::from_millis(1_000)).await; - - let mut socket = TcpSocket::new(&net_stack, &mut rx_buffer, &mut tx_buffer); - - socket.set_timeout(Some(embassy_time::Duration::from_millis(10_000))); - - let remote_endpoint = (Ipv4Address::new(192, 168, 1, 14), 80); - println!("conn..."); - let r = socket.connect(remote_endpoint).await; - if let Err(e) = r { - println!("conn err: {:?}", e); - continue; - } - println!("conn!"); - - /*let mut read_record_buffer = [0; 16384]; - let mut write_record_buffer = [0; 16384]; - let tls_config = TlsConfig::new().with_server_name("txmn.tk").with_psk(&[], &[]); - let mut tls = TlsConnection::new(socket, &mut read_record_buffer, &mut write_record_buffer); - if let Err(e) = tls.open(TlsContext::new( - &tls_config, - &mut prng, - )) - .await { - println!("TLS err: {:?}", e); - continue; - }*/ - - let mut buf = [0; 1024]; - loop { - /*let r = socket - .write_all(b"GET /fortune.php?raw HTTP/1.0\r\nHost: txmn.tk\r\n\r\n") - .await; - if let Err(e) = r { - println!("w err: {:?}", e); - break; - } - let n = match socket.read(&mut buf).await { - Ok(0) => { - println!("EOF"); - break; - } - Ok(n) => n, - Err(e) => { - println!("r err: {:?}", e); - break; - } - };*/ - socket - .write_all(b"GET /fortune.php?raw HTTP/1.0\r\nHost: txmn.tk\r\n\r\n") - .await - .unwrap(); - socket.flush().await.unwrap(); - let n = match socket.read(&mut buf).await { - Ok(0) => { - println!("EOF"); - break; - } - Ok(n) => n, - Err(e) => { - println!("r err: {:?}", e); - break; - } - }; - println!("{}", core::str::from_utf8(&buf[..n]).unwrap()); - #[cfg(feature = "display_sh1106")] - if let Some(content_start) = buf.array_windows().position(|o| o == b"\r\n\r\n") { - if let Some(text) = String::from_ascii(&buf[content_start + 4..n]) { - display::CHANNEL.send(text).await; - } - } - //break 'get; - } - Timer::after(Duration::from_millis(5_000)).await; - } -} diff --git a/esp/src/modem.rs b/esp/src/modem.rs deleted file mode 100644 index 8b13789..0000000 --- a/esp/src/modem.rs +++ /dev/null @@ -1 +0,0 @@ - diff --git a/esp/src/rng.rs b/esp/src/rng.rs deleted file mode 100644 index d17ffe6..0000000 --- a/esp/src/rng.rs +++ /dev/null @@ -1,13 +0,0 @@ -use core::cell::OnceCell; -use embassy_sync::{mutex::Mutex, blocking_mutex::NoopMutex}; -use esp_hal::{peripherals::Peripherals, rng::Trng}; - -static TRNG: OnceCell, Trng>> = OnceCell::new(); - -pub fn init(rng: Peripherals::RNG, adc1: Peripherals::ADC1) { - TRNG.set(Mutex::new(Trng::new(peripherals.RNG, &mut peripherals.ADC1))).unwrap(); -} - -pub async fn randomize(buf: &mut [u8]) { - TRNG.get().expect("no RNG").lock().await.read(buf) -} diff --git a/esp/src/string.rs b/esp/src/string.rs deleted file mode 100644 index f53d42e..0000000 --- a/esp/src/string.rs +++ /dev/null @@ -1,45 +0,0 @@ -use core::{mem::MaybeUninit, str::from_utf8_unchecked}; - -#[derive(Clone)] -pub struct String { - buf: [u8; N], - len: usize, -} - -impl String { - pub fn from_str(s: &str) -> Self { - let mut buf = [0; N]; - buf[0..s.as_bytes().len()].copy_from_slice(s.as_bytes()); - Self { len: s.len(), buf } - } - - pub fn from_ascii(s: &[u8]) -> Option { - if s.len() < N && s.is_ascii() { - let mut buf = [0; N]; - buf[0..s.len()].copy_from_slice(s); - Some(Self { len: s.len(), buf }) - } else { - None - } - } - - pub fn from_buf_ascii(buf: [u8; N], len: usize) -> Option { - if len < N && buf[0..len].is_ascii() { - Some(Self { buf, len }) - } else { - None - } - } -} - -impl AsRef for String { - fn as_ref(&self) -> &str { - unsafe { core::str::from_utf8_unchecked(&self.buf[0..self.len]) } - } -} - -impl AsMut for String { - fn as_mut(&mut self) -> &mut str { - unsafe { core::str::from_utf8_unchecked_mut(&mut self.buf[0..self.len]) } - } -} diff --git a/esp/src/util.rs b/esp/src/util.rs deleted file mode 100644 index 1036b18..0000000 --- a/esp/src/util.rs +++ /dev/null @@ -1,8 +0,0 @@ -macro_rules! mk_static { - ($t:ty, $val:expr) => {{ - static STATIC_CELL: static_cell::StaticCell<$t> = static_cell::StaticCell::new(); - #[deny(unused_attributes)] - let x = STATIC_CELL.uninit().write(($val)); - x - }}; -} diff --git a/esp/src/wifi.rs b/esp/src/wifi.rs deleted file mode 100644 index a35573d..0000000 --- a/esp/src/wifi.rs +++ /dev/null @@ -1,112 +0,0 @@ -//use crate::rng::randomize; - -use embassy_executor::Spawner; -use embassy_time::{Duration, Timer}; -use esp_hal::{peripheral::Peripheral, rng::Rng}; -use esp_println::println; -use esp_wifi::{ - wifi::{WifiController, WifiDevice, WifiEvent, WifiStaDevice, WifiState}, - EspWifiController, EspWifiTimerSource, -}; -use static_cell::StaticCell; - -const SSID: &str = include_str!("../wifi-ssid.txt"); -const PASSWORD: &str = include_str!("../wifi-psw.txt"); - -static WIFI_CONTROLLER: StaticCell = StaticCell::new(); - -pub fn pre_init<'d, T: EspWifiTimerSource>( - timer: impl Peripheral

+ 'static, - rng: Rng, - radio_clk: esp_hal::peripherals::RADIO_CLK, - wifi: esp_hal::peripherals::WIFI, -) -> ( - WifiDevice<'static, WifiStaDevice>, - &'static mut WifiController<'static>, -) { - let wifi_init = esp_wifi::init(timer, rng, radio_clk).unwrap(); - - let wifi_init = mk_static!(EspWifiController, wifi_init); - - let (wifi_interface, wifi_controller) = - esp_wifi::wifi::new_with_mode(wifi_init, wifi, WifiStaDevice).unwrap(); - (wifi_interface, WIFI_CONTROLLER.init(wifi_controller)) -} - -pub fn post_init( - spawner: &Spawner, - interface: WifiDevice<'static, WifiStaDevice>, - controller: &'static mut WifiController, - seed: u64, -) -> &'static embassy_net::Stack> { - let net_stack = &*mk_static!( - embassy_net::Stack>, - embassy_net::Stack::new( - interface, - embassy_net::Config::dhcpv4(Default::default()), - mk_static!( - embassy_net::StackResources<3>, - embassy_net::StackResources::<3>::new() - ), - seed - ) - ); - - spawner.spawn(connection(controller, &net_stack)).ok(); - spawner.spawn(net_task(&net_stack)).ok(); - net_stack -} - -/// Connection task -/// -/// Reconnects automatically when needed. -#[embassy_executor::task] -pub async fn connection( - controller: &'static mut WifiController<'static>, - stack: &'static embassy_net::Stack>, -) { - loop { - match esp_wifi::wifi::wifi_state() { - WifiState::StaConnected => { - controller.wait_for_event(WifiEvent::StaDisconnected).await; - Timer::after(Duration::from_millis(5000)).await - } - _ => {} - } - if !matches!(controller.is_started(), Ok(true)) { - let client_config = - esp_wifi::wifi::Configuration::Client(esp_wifi::wifi::ClientConfiguration { - ssid: SSID.try_into().unwrap(), - password: PASSWORD.try_into().unwrap(), - auth_method: esp_wifi::wifi::AuthMethod::WPA2Personal, - ..Default::default() - }); - controller.set_configuration(&client_config).unwrap(); - controller.start_async().await.unwrap(); - } - - match controller.connect_async().await { - Ok(_) => { - while !stack.is_link_up() { - Timer::after(Duration::from_millis(500)).await; - } - loop { - if let Some(config) = stack.config_v4() { - println!("IP {}", config.address); - break; - } - Timer::after(Duration::from_millis(500)).await; - } - } - Err(e) => { - println!("Wifi err: {e:?}"); - Timer::after(Duration::from_millis(5000)).await - } - } - } -} - -#[embassy_executor::task] -pub async fn net_task(stack: &'static embassy_net::Stack>) { - stack.run().await -} diff --git a/samd/rustfmt.toml b/rustfmt.toml similarity index 100% rename from samd/rustfmt.toml rename to rustfmt.toml diff --git a/rustphone/rustphone-backups/rustphone-2024-08-26_234826.zip b/rustphone/rustphone-backups/rustphone-2024-08-26_234826.zip deleted file mode 100644 index 3561b3f..0000000 Binary files a/rustphone/rustphone-backups/rustphone-2024-08-26_234826.zip and /dev/null differ diff --git a/rustphone/rustphone-backups/rustphone-2024-09-19_102427.zip b/rustphone/rustphone-backups/rustphone-2024-09-19_102427.zip deleted file mode 100644 index 3561b3f..0000000 Binary files a/rustphone/rustphone-backups/rustphone-2024-09-19_102427.zip and /dev/null differ diff --git a/rustphone/rustphone.kicad_pcb b/rustphone/rustphone.kicad_pcb deleted file mode 100644 index 28b47a1..0000000 --- a/rustphone/rustphone.kicad_pcb +++ /dev/null @@ -1,2 +0,0 @@ -(kicad_pcb (version 20211014) (generator pcbnew) -) \ No newline at end of file diff --git a/rustphone/rustphone.kicad_prl b/rustphone/rustphone.kicad_prl deleted file mode 100644 index 91884e6..0000000 --- a/rustphone/rustphone.kicad_prl +++ /dev/null @@ -1,75 +0,0 @@ -{ - "board": { - "active_layer": 0, - "active_layer_preset": "", - "auto_track_width": true, - "hidden_nets": [], - "high_contrast_mode": 0, - "net_color_mode": 1, - "opacity": { - "pads": 1.0, - "tracks": 1.0, - "vias": 1.0, - "zones": 0.6 - }, - "ratsnest_display_mode": 0, - "selection_filter": { - "dimensions": true, - "footprints": true, - "graphics": true, - "keepouts": true, - "lockedItems": true, - "otherItems": true, - "pads": true, - "text": true, - "tracks": true, - "vias": true, - "zones": true - }, - "visible_items": [ - 0, - 1, - 2, - 3, - 4, - 5, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 32, - 33, - 34, - 35, - 36 - ], - "visible_layers": "fffffff_ffffffff", - "zone_display_mode": 0 - }, - "meta": { - "filename": "rustphone.kicad_prl", - "version": 3 - }, - "project": { - "files": [] - } -} diff --git a/rustphone/rustphone.kicad_pro b/rustphone/rustphone.kicad_pro deleted file mode 100644 index 59b414d..0000000 --- a/rustphone/rustphone.kicad_pro +++ /dev/null @@ -1,326 +0,0 @@ -{ - "board": { - "design_settings": { - "defaults": { - "board_outline_line_width": 0.1, - "copper_line_width": 0.2, - "copper_text_size_h": 1.5, - "copper_text_size_v": 1.5, - "copper_text_thickness": 0.3, - "other_line_width": 0.15, - "silk_line_width": 0.15, - "silk_text_size_h": 1.0, - "silk_text_size_v": 1.0, - "silk_text_thickness": 0.15 - }, - "diff_pair_dimensions": [], - "drc_exclusions": [], - "rules": { - "min_copper_edge_clearance": 0.0, - "solder_mask_clearance": 0.0, - "solder_mask_min_width": 0.0 - }, - "track_widths": [], - "via_dimensions": [] - }, - "layer_presets": [] - }, - "boards": [], - "cvpcb": { - "equivalence_files": [] - }, - "erc": { - "erc_exclusions": [], - "meta": { - "version": 0 - }, - "pin_map": [ - [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 2 - ], - [ - 0, - 2, - 0, - 1, - 0, - 0, - 1, - 0, - 2, - 2, - 2, - 2 - ], - [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 0, - 1, - 2 - ], - [ - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 2, - 1, - 1, - 2 - ], - [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 2 - ], - [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2 - ], - [ - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 2 - ], - [ - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 2 - ], - [ - 0, - 2, - 1, - 2, - 0, - 0, - 1, - 0, - 2, - 2, - 2, - 2 - ], - [ - 0, - 2, - 0, - 1, - 0, - 0, - 1, - 0, - 2, - 0, - 0, - 2 - ], - [ - 0, - 2, - 1, - 1, - 0, - 0, - 1, - 0, - 2, - 0, - 0, - 2 - ], - [ - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2 - ] - ], - "rule_severities": { - "bus_definition_conflict": "error", - "bus_entry_needed": "error", - "bus_label_syntax": "error", - "bus_to_bus_conflict": "error", - "bus_to_net_conflict": "error", - "different_unit_footprint": "error", - "different_unit_net": "error", - "duplicate_reference": "error", - "duplicate_sheet_names": "error", - "extra_units": "error", - "global_label_dangling": "warning", - "hier_label_mismatch": "error", - "label_dangling": "error", - "lib_symbol_issues": "warning", - "multiple_net_names": "warning", - "net_not_bus_member": "warning", - "no_connect_connected": "warning", - "no_connect_dangling": "warning", - "pin_not_connected": "error", - "pin_not_driven": "error", - "pin_to_pin": "warning", - "power_pin_not_driven": "error", - "similar_labels": "warning", - "unannotated": "error", - "unit_value_mismatch": "error", - "unresolved_variable": "error", - "wire_dangling": "error" - } - }, - "libraries": { - "pinned_footprint_libs": [], - "pinned_symbol_libs": [] - }, - "meta": { - "filename": "rustphone.kicad_pro", - "version": 1 - }, - "net_settings": { - "classes": [ - { - "bus_width": 12.0, - "clearance": 0.2, - "diff_pair_gap": 0.25, - "diff_pair_via_gap": 0.25, - "diff_pair_width": 0.2, - "line_style": 0, - "microvia_diameter": 0.3, - "microvia_drill": 0.1, - "name": "Default", - "pcb_color": "rgba(0, 0, 0, 0.000)", - "schematic_color": "rgba(0, 0, 0, 0.000)", - "track_width": 0.25, - "via_diameter": 0.8, - "via_drill": 0.4, - "wire_width": 6.0 - } - ], - "meta": { - "version": 2 - }, - "net_colors": null - }, - "pcbnew": { - "last_paths": { - "gencad": "", - "idf": "", - "netlist": "", - "specctra_dsn": "", - "step": "", - "vrml": "" - }, - "page_layout_descr_file": "" - }, - "schematic": { - "annotate_start_num": 0, - "drawing": { - "default_line_thickness": 6.0, - "default_text_size": 50.0, - "field_names": [], - "intersheets_ref_own_page": false, - "intersheets_ref_prefix": "", - "intersheets_ref_short": false, - "intersheets_ref_show": false, - "intersheets_ref_suffix": "", - "junction_size_choice": 3, - "label_size_ratio": 0.375, - "pin_symbol_size": 25.0, - "text_offset_ratio": 0.15 - }, - "legacy_lib_dir": "", - "legacy_lib_list": [], - "meta": { - "version": 1 - }, - "net_format_name": "", - "ngspice": { - "fix_include_paths": true, - "fix_passive_vals": false, - "meta": { - "version": 0 - }, - "model_mode": 0, - "workbook_filename": "" - }, - "page_layout_descr_file": "", - "plot_directory": "", - "spice_adjust_passive_values": false, - "spice_external_command": "spice \"%I\"", - "subpart_first_id": 65, - "subpart_id_separator": 0 - }, - "sheets": [ - [ - "33d5e076-e860-4c0d-8690-a28c727934d6", - "" - ] - ], - "text_variables": {} -} diff --git a/rustphone/rustphone.kicad_sch b/rustphone/rustphone.kicad_sch deleted file mode 100644 index 5140990..0000000 --- a/rustphone/rustphone.kicad_sch +++ /dev/null @@ -1,421 +0,0 @@ -(kicad_sch (version 20211123) (generator eeschema) - - (uuid 33d5e076-e860-4c0d-8690-a28c727934d6) - - (paper "A4") - - (lib_symbols - (symbol "RF_Module:ESP32-WROOM-32" (in_bom yes) (on_board yes) - (property "Reference" "U" (id 0) (at -12.7 34.29 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Value" "ESP32-WROOM-32" (id 1) (at 1.27 34.29 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Footprint" "RF_Module:ESP32-WROOM-32" (id 2) (at 0 -38.1 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_en.pdf" (id 3) (at -7.62 1.27 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "RF Radio BT ESP ESP32 Espressif onboard PCB antenna" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "RF Module, ESP32-D0WDQ6 SoC, Wi-Fi 802.11b/g/n, Bluetooth, BLE, 32-bit, 2.7-3.6V, onboard antenna, SMD" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_fp_filters" "ESP32?WROOM?32*" (id 6) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "ESP32-WROOM-32_0_1" - (rectangle (start -12.7 33.02) (end 12.7 -33.02) - (stroke (width 0.254) (type default) (color 0 0 0 0)) - (fill (type background)) - ) - ) - (symbol "ESP32-WROOM-32_1_1" - (pin power_in line (at 0 -35.56 90) (length 2.54) - (name "GND" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -12.7 180) (length 2.54) - (name "IO25" (effects (font (size 1.27 1.27)))) - (number "10" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -15.24 180) (length 2.54) - (name "IO26" (effects (font (size 1.27 1.27)))) - (number "11" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -17.78 180) (length 2.54) - (name "IO27" (effects (font (size 1.27 1.27)))) - (number "12" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 10.16 180) (length 2.54) - (name "IO14" (effects (font (size 1.27 1.27)))) - (number "13" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 15.24 180) (length 2.54) - (name "IO12" (effects (font (size 1.27 1.27)))) - (number "14" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 0 -35.56 90) (length 2.54) hide - (name "GND" (effects (font (size 1.27 1.27)))) - (number "15" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 12.7 180) (length 2.54) - (name "IO13" (effects (font (size 1.27 1.27)))) - (number "16" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -5.08 0) (length 2.54) - (name "SHD/SD2" (effects (font (size 1.27 1.27)))) - (number "17" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -7.62 0) (length 2.54) - (name "SWP/SD3" (effects (font (size 1.27 1.27)))) - (number "18" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -12.7 0) (length 2.54) - (name "SCS/CMD" (effects (font (size 1.27 1.27)))) - (number "19" (effects (font (size 1.27 1.27)))) - ) - (pin power_in line (at 0 35.56 270) (length 2.54) - (name "VDD" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -10.16 0) (length 2.54) - (name "SCK/CLK" (effects (font (size 1.27 1.27)))) - (number "20" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 0 0) (length 2.54) - (name "SDO/SD0" (effects (font (size 1.27 1.27)))) - (number "21" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at -15.24 -2.54 0) (length 2.54) - (name "SDI/SD1" (effects (font (size 1.27 1.27)))) - (number "22" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 7.62 180) (length 2.54) - (name "IO15" (effects (font (size 1.27 1.27)))) - (number "23" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 25.4 180) (length 2.54) - (name "IO2" (effects (font (size 1.27 1.27)))) - (number "24" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 30.48 180) (length 2.54) - (name "IO0" (effects (font (size 1.27 1.27)))) - (number "25" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 20.32 180) (length 2.54) - (name "IO4" (effects (font (size 1.27 1.27)))) - (number "26" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 5.08 180) (length 2.54) - (name "IO16" (effects (font (size 1.27 1.27)))) - (number "27" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 2.54 180) (length 2.54) - (name "IO17" (effects (font (size 1.27 1.27)))) - (number "28" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 17.78 180) (length 2.54) - (name "IO5" (effects (font (size 1.27 1.27)))) - (number "29" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -15.24 30.48 0) (length 2.54) - (name "EN" (effects (font (size 1.27 1.27)))) - (number "3" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 0 180) (length 2.54) - (name "IO18" (effects (font (size 1.27 1.27)))) - (number "30" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -2.54 180) (length 2.54) - (name "IO19" (effects (font (size 1.27 1.27)))) - (number "31" (effects (font (size 1.27 1.27)))) - ) - (pin no_connect line (at -12.7 -27.94 0) (length 2.54) hide - (name "NC" (effects (font (size 1.27 1.27)))) - (number "32" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -5.08 180) (length 2.54) - (name "IO21" (effects (font (size 1.27 1.27)))) - (number "33" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 22.86 180) (length 2.54) - (name "RXD0/IO3" (effects (font (size 1.27 1.27)))) - (number "34" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 27.94 180) (length 2.54) - (name "TXD0/IO1" (effects (font (size 1.27 1.27)))) - (number "35" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -7.62 180) (length 2.54) - (name "IO22" (effects (font (size 1.27 1.27)))) - (number "36" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -10.16 180) (length 2.54) - (name "IO23" (effects (font (size 1.27 1.27)))) - (number "37" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 0 -35.56 90) (length 2.54) hide - (name "GND" (effects (font (size 1.27 1.27)))) - (number "38" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 0 -35.56 90) (length 2.54) hide - (name "GND" (effects (font (size 1.27 1.27)))) - (number "39" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -15.24 25.4 0) (length 2.54) - (name "SENSOR_VP" (effects (font (size 1.27 1.27)))) - (number "4" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -15.24 22.86 0) (length 2.54) - (name "SENSOR_VN" (effects (font (size 1.27 1.27)))) - (number "5" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at 15.24 -25.4 180) (length 2.54) - (name "IO34" (effects (font (size 1.27 1.27)))) - (number "6" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at 15.24 -27.94 180) (length 2.54) - (name "IO35" (effects (font (size 1.27 1.27)))) - (number "7" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -20.32 180) (length 2.54) - (name "IO32" (effects (font (size 1.27 1.27)))) - (number "8" (effects (font (size 1.27 1.27)))) - ) - (pin bidirectional line (at 15.24 -22.86 180) (length 2.54) - (name "IO33" (effects (font (size 1.27 1.27)))) - (number "9" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "power:+3.3V" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) - (property "Reference" "#PWR" (id 0) (at 0 -3.81 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "+3.3V" (id 1) (at 0 3.556 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "global power" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Power symbol creates a global label with name \"+3.3V\"" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "+3.3V_0_1" - (polyline - (pts - (xy -0.762 1.27) - (xy 0 2.54) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 0 0) - (xy 0 2.54) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - (polyline - (pts - (xy 0 2.54) - (xy 0.762 1.27) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - ) - (symbol "+3.3V_1_1" - (pin power_in line (at 0 0 90) (length 0) hide - (name "+3.3V" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - ) - ) - (symbol "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) - (property "Reference" "#PWR" (id 0) (at 0 -6.35 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 0 -3.81 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (id 2) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "global power" (id 4) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Power symbol creates a global label with name \"GND\" , ground" (id 5) (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "GND_0_1" - (polyline - (pts - (xy 0 0) - (xy 0 -1.27) - (xy 1.27 -1.27) - (xy 0 -2.54) - (xy -1.27 -1.27) - (xy 0 -1.27) - ) - (stroke (width 0) (type default) (color 0 0 0 0)) - (fill (type none)) - ) - ) - (symbol "GND_1_1" - (pin power_in line (at 0 0 270) (length 0) hide - (name "GND" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - ) - ) - ) - - - (wire (pts (xy 148.59 62.23) (xy 148.59 66.04)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 19d45abe-91d7-44a3-8fc5-e46648ba6dca) - ) - (wire (pts (xy 163.83 73.66) (xy 168.91 73.66)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 20286759-2770-44a3-981c-a9525dd4f09f) - ) - (wire (pts (xy 163.83 78.74) (xy 168.91 78.74)) - (stroke (width 0) (type default) (color 0 0 0 0)) - (uuid 2447ec89-9baa-4310-bb23-4a1a090d8e88) - ) - - (global_label "ESP TX" (shape output) (at 168.91 73.66 0) (fields_autoplaced) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid 88f45ca8-1b2d-438a-95f5-b3f574f8e065) - (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 178.0964 73.5806 0) - (effects (font (size 1.27 1.27)) (justify left) hide) - ) - ) - (global_label "ESP RX" (shape input) (at 168.91 78.74 0) (fields_autoplaced) - (effects (font (size 1.27 1.27)) (justify left)) - (uuid f6d3abd9-3e7f-41d5-b834-6386537d250a) - (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 178.3988 78.6606 0) - (effects (font (size 1.27 1.27)) (justify left) hide) - ) - ) - - (symbol (lib_id "RF_Module:ESP32-WROOM-32") (at 148.59 101.6 0) (unit 1) - (in_bom yes) (on_board yes) (fields_autoplaced) - (uuid 2ddc8287-4db8-4b01-8738-0389a16e3708) - (property "Reference" "U?" (id 0) (at 150.6094 63.5 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Value" "ESP32-WROOM-32" (id 1) (at 150.6094 66.04 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Footprint" "RF_Module:ESP32-WROOM-32" (id 2) (at 148.59 139.7 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_en.pdf" (id 3) (at 140.97 100.33 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 617d04b2-778c-4c17-b858-abcdd87ed5b7)) - (pin "10" (uuid 3004ebc3-bcf5-4092-b803-ca947cf2f90d)) - (pin "11" (uuid d226c80a-1255-43dd-9817-db9552d0dd41)) - (pin "12" (uuid 0c5ca6d6-e9e4-4fae-bfed-eb44cf00a3fc)) - (pin "13" (uuid 152dafdd-42cc-419d-984f-03b43f5ac05f)) - (pin "14" (uuid a4086a5f-6ceb-4da4-950b-0100d4410dd5)) - (pin "15" (uuid 8a142bd5-6085-40f3-a1e2-aa080db5ab7a)) - (pin "16" (uuid 139b4af1-4fda-4b9b-8d0e-3b0ee118e1e3)) - (pin "17" (uuid ee59e263-238a-4c1a-810d-0025094f1a66)) - (pin "18" (uuid 7c47d99e-229e-4aa6-8be1-671b3b997f0e)) - (pin "19" (uuid 4f89f528-213c-495c-88d8-539d701afa14)) - (pin "2" (uuid 78226c67-7fbf-463c-a731-2e441c462c86)) - (pin "20" (uuid d113318f-305a-40cd-bfc5-0bbf3dd34e2d)) - (pin "21" (uuid abf0bcdb-358d-4b4f-9408-6b7af4492045)) - (pin "22" (uuid 465e70d8-3d2b-4572-8fd0-26bdae47888f)) - (pin "23" (uuid 955413b9-9a01-4429-8bb0-744d9a1a79a7)) - (pin "24" (uuid 06863726-082f-414b-8c9b-cd1f5426f031)) - (pin "25" (uuid 47eb2e08-3651-4af6-a977-0b826e8e6b6f)) - (pin "26" (uuid c6f3a5bc-1aae-4b29-a584-7fe00842fe49)) - (pin "27" (uuid 31fe87fa-6ed4-42c7-ab81-85287f0a39cb)) - (pin "28" (uuid 9f8db0f6-f71e-42a6-a3a4-afdb7209929c)) - (pin "29" (uuid 3dafa118-5795-412a-9e7c-4676c3b27c63)) - (pin "3" (uuid 605d6339-d73b-4f8c-9721-5cc90db53fbe)) - (pin "30" (uuid bd5d1957-7306-4457-bb58-c3c54052381a)) - (pin "31" (uuid 6ce6cb43-08a0-43b3-8441-0a76687518e9)) - (pin "32" (uuid 616d353d-5028-4919-a055-f8b5b771ae3d)) - (pin "33" (uuid de4abf6b-d48b-4e4a-a3ae-ef4c26998ae2)) - (pin "34" (uuid 45e26484-7da1-4e9b-a121-6f723b4b0e38)) - (pin "35" (uuid 7ff6d162-54f4-42c5-b530-da891e99bc33)) - (pin "36" (uuid 317cf7e4-2ddf-4397-bce5-34caa6d55514)) - (pin "37" (uuid 5d389f71-e54e-4a5f-b073-f349879cf868)) - (pin "38" (uuid cba4f270-2f67-432f-a3bb-b03a782f4df2)) - (pin "39" (uuid 9ea9dcba-626d-424e-8b66-3a4374e45b8f)) - (pin "4" (uuid 153b854d-e387-49c3-8e17-ad306c73923b)) - (pin "5" (uuid 65e6c4a1-65aa-4587-9d85-55c921c3bcb6)) - (pin "6" (uuid 68676eb5-0218-439e-a23e-ca472fd30102)) - (pin "7" (uuid 9a407737-9e4e-410c-b7d3-34d2fcee2801)) - (pin "8" (uuid 12ed85d5-5bd5-4d63-8061-a225758d357d)) - (pin "9" (uuid addc2c4b-dd27-4fda-be5f-c5712082dcc4)) - ) - - (symbol (lib_id "power:+3.3V") (at 148.59 62.23 0) (unit 1) - (in_bom yes) (on_board yes) (fields_autoplaced) - (uuid 43ce7471-58df-4f74-95ff-b4582314a8a7) - (property "Reference" "#PWR?" (id 0) (at 148.59 66.04 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "+3.3V" (id 1) (at 148.59 57.15 0)) - (property "Footprint" "" (id 2) (at 148.59 62.23 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 148.59 62.23 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 26d213df-d0ad-4c0a-978f-3a5307875fbb)) - ) - - (symbol (lib_id "power:GND") (at 148.59 137.16 0) (unit 1) - (in_bom yes) (on_board yes) (fields_autoplaced) - (uuid 75bdc9a1-b579-426b-add2-c5bee9cca894) - (property "Reference" "#PWR?" (id 0) (at 148.59 143.51 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (id 1) (at 148.59 142.24 0)) - (property "Footprint" "" (id 2) (at 148.59 137.16 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (id 3) (at 148.59 137.16 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 041548c8-17e0-4608-b805-26d5cd153184)) - ) - - (sheet_instances - (path "/" (page "1")) - ) - - (symbol_instances - (path "/43ce7471-58df-4f74-95ff-b4582314a8a7" - (reference "#PWR?") (unit 1) (value "+3.3V") (footprint "") - ) - (path "/75bdc9a1-b579-426b-add2-c5bee9cca894" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") - ) - (path "/2ddc8287-4db8-4b01-8738-0389a16e3708" - (reference "U?") (unit 1) (value "ESP32-WROOM-32") (footprint "RF_Module:ESP32-WROOM-32") - ) - ) -) diff --git a/samd/.cargo/config.toml b/samd/.cargo/config.toml deleted file mode 100644 index f3fab0f..0000000 --- a/samd/.cargo/config.toml +++ /dev/null @@ -1,17 +0,0 @@ -# samd21 is a Cortex-M0 and thus thumbv6m - -[build] -target = "thumbv6m-none-eabi" - -[target.thumbv6m-none-eabi] -runner = 'arm-none-eabi-gdb' -#runner = 'probe-run --chip ATSAMD21G18A' - -rustflags = [ - - # This is needed if your flash or ram addresses are not aligned to 0x10000 in memory.x - # See https://github.com/rust-embedded/cortex-m-quickstart/pull/95 - "-C", "link-arg=--nmagic", - - "-C", "link-arg=-Tlink.x", -] diff --git a/samd/.gitignore b/samd/.gitignore deleted file mode 100644 index eb5a316..0000000 --- a/samd/.gitignore +++ /dev/null @@ -1 +0,0 @@ -target diff --git a/samd/Cargo.lock b/samd/Cargo.lock deleted file mode 100644 index 729bbc0..0000000 --- a/samd/Cargo.lock +++ /dev/null @@ -1,768 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "aes" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", - "opaque-debug", -] - -[[package]] -name = "atsamd-hal" -version = "0.17.0" -dependencies = [ - "aes", - "atsamd-hal-macros", - "atsamd21g", - "bitfield", - "bitflags", - "cipher", - "cortex-m", - "embedded-hal 0.2.7", - "embedded-hal 1.0.0", - "embedded-hal-nb", - "embedded-io", - "embedded-sdmmc", - "fugit", - "modular-bitfield", - "nb 1.1.0", - "num-traits", - "opaque-debug", - "paste", - "rand_core", - "seq-macro", - "typenum", - "usb-device", - "vcell", - "void", -] - -[[package]] -name = "atsamd-hal-macros" -version = "0.1.0" -dependencies = [ - "litrs", - "phf", - "phf_codegen", - "serde", - "serde_yaml", -] - -[[package]] -name = "atsamd21g" -version = "0.13.0" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "critical-section", - "vcell", -] - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[package]] -name = "bare-metal" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5deb64efa5bd81e31fcd1938615a6d98c82eafcbcd787162b6f63b91d6bac5b3" -dependencies = [ - "rustc_version", -] - -[[package]] -name = "bitfield" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "cipher" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" -dependencies = [ - "generic-array", -] - -[[package]] -name = "cortex-m" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ec610d8f49840a5b376c69663b6369e71f4b34484b9b2eb29fb918d92516cb9" -dependencies = [ - "bare-metal", - "bitfield", - "critical-section", - "embedded-hal 0.2.7", - "volatile-register", -] - -[[package]] -name = "cortex-m-rt" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee84e813d593101b1723e13ec38b6ab6abbdbaaa4546553f5395ed274079ddb1" -dependencies = [ - "cortex-m-rt-macros", -] - -[[package]] -name = "cortex-m-rt-macros" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f6f3e36f203cfedbc78b357fb28730aa2c6dc1ab060ee5c2405e843988d3c7" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "cpufeatures" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" -dependencies = [ - "libc", -] - -[[package]] -name = "critical-section" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64009896348fc5af4222e9cf7d7d82a95a256c634ebcf61c53e4ea461422242" - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89" - -[[package]] -name = "embedded-hal-nb" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fba4268c14288c828995299e59b12babdbe170f6c6d73731af1b4648142e8605" -dependencies = [ - "embedded-hal 1.0.0", - "nb 1.1.0", -] - -[[package]] -name = "embedded-io" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" - -[[package]] -name = "embedded-sdmmc" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d3bf0a2b5becb87e9a329d9290f131e4d10fec39b56d129926826a7cbea1e7a" -dependencies = [ - "byteorder", - "embedded-hal 0.2.7", - "log", - "nb 0.1.3", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "fugit" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17186ad64927d5ac8f02c1e77ccefa08ccd9eaa314d5a4772278aa204a22f7e7" -dependencies = [ - "gcd", -] - -[[package]] -name = "futures" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" - -[[package]] -name = "futures-io" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - -[[package]] -name = "futures-macro" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "futures-sink" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" - -[[package]] -name = "futures-task" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" - -[[package]] -name = "futures-util" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" -dependencies = [ - "futures-core", - "futures-macro", - "futures-sink", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "gcd" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "hash32" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" -dependencies = [ - "byteorder", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" - -[[package]] -name = "heapless" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" -dependencies = [ - "hash32", - "stable_deref_trait", -] - -[[package]] -name = "indexmap" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "libc" -version = "0.2.158" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" - -[[package]] -name = "lilos" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090b27a32adb71568314e1c256f3f79b917e74194f0aba4d0e7493537e2820e9" -dependencies = [ - "cfg-if", - "cortex-m", - "cortex-m-rt", - "lilos-list", - "pin-project", -] - -[[package]] -name = "lilos-list" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0f878c972c8b8c28a03b0b433c7f4b0861de43de55fe04546fe44ff7fa32b8" -dependencies = [ - "pin-project", -] - -[[package]] -name = "litrs" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "maduino_zero_4g" -version = "0.1.0" -dependencies = [ - "atsamd-hal", - "cortex-m", - "cortex-m-rt", - "embedded-sdmmc", - "usb-device", -] - -[[package]] -name = "modular-bitfield" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" -dependencies = [ - "modular-bitfield-impl", - "static_assertions", -] - -[[package]] -name = "modular-bitfield-impl" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "nb" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f" -dependencies = [ - "nb 1.1.0", -] - -[[package]] -name = "nb" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d" - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "panic-halt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de96540e0ebde571dc55c73d60ef407c653844e6f9a1e2fdbd40c07b9252d812" - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "phf" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" -dependencies = [ - "phf_shared", -] - -[[package]] -name = "phf_codegen" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a" -dependencies = [ - "phf_generator", - "phf_shared", -] - -[[package]] -name = "phf_generator" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" -dependencies = [ - "phf_shared", - "rand", -] - -[[package]] -name = "phf_shared" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "portable-atomic" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" - -[[package]] -name = "proc-macro2" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" - -[[package]] -name = "rustc_version" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver", -] - -[[package]] -name = "rustphone" -version = "0.1.0" -dependencies = [ - "atsamd-hal", - "cortex-m", - "futures", - "lilos", - "maduino_zero_4g", - "nb 1.1.0", - "panic-halt", - "usb-device", - "usbd-serial", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[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-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - -[[package]] -name = "seq-macro" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" - -[[package]] -name = "serde" -version = "1.0.209" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.209" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "serde_yaml" -version = "0.9.34+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" -dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", -] - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unsafe-libyaml" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" - -[[package]] -name = "usb-device" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98816b1accafbb09085168b90f27e93d790b4bfa19d883466b5e53315b5f06a6" -dependencies = [ - "heapless", - "portable-atomic", -] - -[[package]] -name = "usbd-serial" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065e4eaf93db81d5adac82d9cef8f8da314cb640fa7f89534b972383f1cf80fc" -dependencies = [ - "embedded-hal 0.2.7", - "embedded-io", - "nb 1.1.0", - "usb-device", -] - -[[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.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[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.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de437e2a6208b014ab52972a27e59b33fa2920d3e00fe05026167a1c509d19cc" -dependencies = [ - "vcell", -] diff --git a/samd/Cargo.toml b/samd/Cargo.toml deleted file mode 100644 index 2ba614f..0000000 --- a/samd/Cargo.toml +++ /dev/null @@ -1,48 +0,0 @@ -[package] -name = "rustphone" -version = "0.1.0" -authors = ["tuxmain "] -repository = "https://git.txmn.tk/tuxmain/rustphone" -license = "AGPL-3.0-only" -edition = "2021" - -[dependencies] -#arrayvec = { version = "0.7.4", default_features = false } -atsamd-hal = { git = "https://github.com/ZettaScript/atsamd", branch = "maduino-zero-4g", default_features = false, features = ["dma", "samd21g", "samd21g-rt", "usb"] } -#cfg-if = "1.0.0" -cortex-m = "0.7.7" -#embedded-graphics = "0.8.1" -#embedded-layout = "0.4.1" -#embedded-text = "0.7.0" -#embedded-sdmmc = { version = "0.3.0", default_features = false } -#epd-waveshare = "0.5.0" -#epd-waveshare = { git = "https://github.com/caemor/epd-waveshare.git" } -#epd-waveshare = { path = "../../epd-waveshare" } -futures = { version = "0.3.30", default-features = false, features = ["async-await"] } -lilos = { version = "1.2.0" } -maduino_zero_4g = { git = "https://github.com/ZettaScript/atsamd", branch = "maduino-zero-4g", features = ["dma", "usb"] } -nb = "1.1.0" -panic-halt = "0.2.0" -#static_assertions = "1.1.0" -#tz-rs = { version = "0.6.14", default_features = false, features = ["const"] } -#tzdb = { version = "0.6.1", optional = true } -usbd-serial = "0.2" -usb-device = "0.3.1" - -# simulator -#embedded-graphics-simulator = { version = "0.6.0", optional = true } - -[features] -#default = ["simulator"] - -#simulator = ["embedded-graphics-simulator", "tzdb"] - -[profile.release] -panic = "abort" -lto = "fat" -opt-level = 3 -debug = 0 - -[patch."https://github.com/ZettaScript/atsamd"] -atsamd-hal = { path = "../../atsamd/hal" } -maduino_zero_4g = { path = "../../atsamd/boards/maduino_zero_4g" } diff --git a/samd/flash.sh b/samd/flash.sh deleted file mode 100644 index 1af6511..0000000 --- a/samd/flash.sh +++ /dev/null @@ -1,2 +0,0 @@ -cargo flash --release --target thumbv6m-none-eabi --chip ATSAMD21G18A --protocol swd || exit 1 -probe-run -v --no-flash --chip ATSAMD21G18A target/thumbv6m-none-eabi/release/rustphone diff --git a/samd/memory.x b/samd/memory.x deleted file mode 100644 index 808a44e..0000000 --- a/samd/memory.x +++ /dev/null @@ -1,6 +0,0 @@ -MEMORY -{ - FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 256K - RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K -} -_stack_start = ORIGIN(RAM) + LENGTH(RAM); diff --git a/samd/openocd.sh b/samd/openocd.sh deleted file mode 100644 index 1317a6e..0000000 --- a/samd/openocd.sh +++ /dev/null @@ -1,3 +0,0 @@ -cargo build --release --target thumbv6m-none-eabi || exit 1 -cp target/thumbv6m-none-eabi/release/rustphone /tmp/rustphone.elf || exit 1 -openocd -f /usr/share/openocd/scripts/board/atmel_samd21_xplained_pro.cfg -c "program /tmp/rustphone.elf verify reset exit" diff --git a/samd/src/main.rs b/samd/src/main.rs deleted file mode 100644 index 9980c30..0000000 --- a/samd/src/main.rs +++ /dev/null @@ -1,113 +0,0 @@ -#![no_std] -#![no_main] - -mod usb; - -use core::{convert::Infallible, mem::MaybeUninit, pin::pin, time::Duration}; -use cortex_m::peripheral::NVIC; -use lilos::time::sleep_for; -use maduino_zero_4g::{ - self as bsp, - hal::{ - clock::GenericClockController, - ehal::digital::OutputPin, - pac::{interrupt, CorePeripherals, Peripherals}, - prelude::*, - usb::UsbBus,dmac::{DmaController, PriorityLevel} - }, -}; -use usb_device::{bus::UsbBusAllocator, prelude::*}; -use usbd_serial::{SerialPort, USB_CLASS_CDC}; -use panic_halt as _; - -#[bsp::entry] -fn main() -> ! { - let mut peripherals = Peripherals::take().unwrap(); - let mut pins = maduino_zero_4g::Pins::new(peripherals.PORT); - let mut core = CorePeripherals::take().unwrap(); - let mut clocks = GenericClockController::with_external_32kosc( - peripherals.GCLK, - &mut peripherals.PM, - &mut peripherals.SYSCTRL, - &mut peripherals.NVMCTRL, - ); - let mut dmac = DmaController::init(peripherals.DMAC, &mut peripherals.PM); - - let mut led1 = pins.d9.into_push_pull_output(); - let mut led2 = pins.d8.into_push_pull_output(); - - let mut modem_uart = bsp::setup_modem( - &mut clocks, - (115200).Hz(), - peripherals.SERCOM0, - &mut peripherals.PM, - pins.d0, - pins.d1, - ); - - let bus_allocator = unsafe { - usb::USB_ALLOCATOR = Some(bsp::usb_allocator( - peripherals.USB, - &mut clocks, - &mut peripherals.PM, - pins.usb_dm, - pins.usb_dp, - )); - usb::USB_ALLOCATOR.as_ref().unwrap() - }; - unsafe { - usb::USB_SERIAL = Some(SerialPort::new(bus_allocator)); - usb::USB_BUS = Some( - UsbDeviceBuilder::new(bus_allocator, UsbVidPid(0x2222, 0x3333)) - .device_class(USB_CLASS_CDC) - .build(), - ); - } - unsafe { - core.NVIC.set_priority(interrupt::USB, 1); - NVIC::unmask(interrupt::USB); - } - - let mut delay = atsamd_hal::delay::Delay::new(core.SYST, &mut clocks); - delay.delay_ms(1000u16); - let mut syst = delay.free(); - - lilos::time::initialize_sys_tick(&mut syst, 32_000_000); - /*let (mut rx, mut tx) = modem_uart.split(); - const LENGTH: usize = 256; - let tx_buffer: &'static mut [u8; LENGTH] = - cortex_m::singleton!(: [u8; LENGTH] = [0x00; LENGTH]).unwrap(); - let rx_buffer: &'static mut [u8; LENGTH] = - cortex_m::singleton!(: [u8; LENGTH] = [0x00; LENGTH]).unwrap(); - for (c_buf, c_str) in tx_buffer.iter_mut().zip(b"AT+CGMM\r\n") { - *c_buf = *c_str; - } - let channels = dmac.split(); - let chan0 = channels.0.init(PriorityLevel::LVL0); - let chan1 = channels.1.init(PriorityLevel::LVL0); - let tx_dma = tx.send_with_dma(&mut tx_buffer[..9], chan0, |_| {}); - let (_chan0, _tx, _tx_buffer) = tx_dma.wait(); - let rx_dma = rx.receive_with_dma(rx_buffer, chan1, |_| {}); - let (_chan1, _rx, rx_buffer) = rx_dma.wait(); - cortex_m::interrupt::free(|_| unsafe { - if let Some(serial) = usb::USB_SERIAL.as_mut() { - let _ = serial.write(rx_buffer); - } - });*/ - - let fut1 = pin!(blinky(Duration::from_millis(1000), led1)); - let fut2 = pin!(blinky(Duration::from_millis(333), led2)); - let fut3 = pin!(usb::log_usb(Duration::from_millis(2000))); - //let fut3 = pin!(usb::usb_echo()); - - lilos::exec::run_tasks(&mut [fut1, fut2, fut3], lilos::exec::ALL_TASKS) -} - -async fn blinky(interval: Duration, mut led: P) -> Infallible { - loop { - led.set_high().ok(); - sleep_for(interval).await; - led.set_low().ok(); - sleep_for(interval).await; - } -} diff --git a/samd/src/usb.rs b/samd/src/usb.rs deleted file mode 100644 index a1a097c..0000000 --- a/samd/src/usb.rs +++ /dev/null @@ -1,100 +0,0 @@ -use core::{convert::Infallible, mem::MaybeUninit, time::Duration}; -use usb_device::{bus::UsbBusAllocator, prelude::*}; -use usbd_serial::{embedded_io::{ReadReady, WriteReady}, SerialPort, USB_CLASS_CDC}; -use maduino_zero_4g::{ - self as bsp, - hal::{ - clock::GenericClockController, - ehal::digital::OutputPin, - pac::{interrupt, CorePeripherals, Peripherals}, - prelude::*, - usb::UsbBus, - },pac::USB, -}; -use cortex_m::peripheral::NVIC; - -pub static mut USB_ALLOCATOR: Option> = None; -pub static mut USB_BUS: Option> = None; -pub static mut USB_SERIAL: Option> = None; - -pub async fn usb_echo() -> Infallible { - let mut q_storage: [MaybeUninit; 256] = [MaybeUninit::uninit(); 256]; - let mut q = lilos::spsc::Queue::new(&mut q_storage); - let (q_push, q_pop) = q.split(); - futures::future::join(usb_echo_rx(q_push), usb_echo_tx(q_pop)).await.0 -} - -async fn usb_echo_rx( - mut q: lilos::spsc::Pusher<'_, u8>, -) -> Infallible { - loop { - q.reserve().await.push(usb_recv().await); - } -} - -// https://github.com/cbiffle/lilos/blob/main/examples/stm32f4/uart-echo/src/main.rs -async fn usb_echo_tx( - mut q: lilos::spsc::Popper<'_, u8>, -) -> Infallible { - loop { - usb_send(q.pop().await).await; - } -} - -static TXE: lilos::exec::Notify = lilos::exec::Notify::new(); - -async fn usb_send(c: u8) { - unsafe { - if let Some(serial) = USB_SERIAL.as_mut() { - RXE.until(|| serial.write_ready().unwrap_or(false)).await; - //serial.write(&[c]).ok(); - lilos::time::sleep_for(Duration::from_millis(100)).await; - } - } -} - -static RXE: lilos::exec::Notify = lilos::exec::Notify::new(); - -async fn usb_recv() -> u8 { - unsafe { - if let Some(serial) = USB_SERIAL.as_mut() { - RXE.until(|| serial.read_ready().unwrap_or(false)).await; - let mut buf = [0]; - //serial.read(&mut buf).ok(); - lilos::time::sleep_for(Duration::from_millis(100)).await; - return buf[0]; - } - } - 0 -} - -pub async fn log_usb(interval: Duration) -> Infallible { - loop { - lilos::time::sleep_for(interval).await; - cortex_m::interrupt::free(|_| unsafe { - if let Some(serial) = USB_SERIAL.as_mut() { - let _ = serial.write(b"log line\r\n"); - } - }); - } -} - -fn poll_usb() { - unsafe { - if let Some(usb_dev) = USB_BUS.as_mut() { - if let Some(serial) = USB_SERIAL.as_mut() { - usb_dev.poll(&mut [serial]); - // Make the other side happy - let mut buf = [0u8; 16]; - let _ = serial.read(&mut buf); - } - } - }; -} - -#[interrupt] -fn USB() { - poll_usb(); - //RXE.notify(); - //TXE.notify(); -} diff --git a/samd/src/bak/apps.rs b/src/apps.rs similarity index 100% rename from samd/src/bak/apps.rs rename to src/apps.rs diff --git a/samd/src/bak/apps/clock.rs b/src/apps/clock.rs similarity index 96% rename from samd/src/bak/apps/clock.rs rename to src/apps/clock.rs index f121dea..2667291 100644 --- a/samd/src/bak/apps/clock.rs +++ b/src/apps/clock.rs @@ -1,6 +1,6 @@ use crate::{ apps::{self, App}, - display::*, + display::Display, keypad::*, state::{self, ModeState}, strf, Context, @@ -12,7 +12,6 @@ use embedded_graphics::{ pixelcolor::BinaryColor, prelude::*, text::{Alignment, Text}, - geometry::Dimensions }; pub struct Clock; @@ -53,8 +52,8 @@ impl App for Clock { // TODO move at init let clock_text_style = MonoTextStyleBuilder::new() .font(&FONT_10X20) - .text_color(WHITE) - .background_color(BLACK) + .text_color(BinaryColor::On) + .background_color(BinaryColor::Off) .build(); for key_event in &ctx.key_events { diff --git a/samd/src/bak/apps/dial.rs b/src/apps/dial.rs similarity index 96% rename from samd/src/bak/apps/dial.rs rename to src/apps/dial.rs index 9a8997e..7de9d86 100644 --- a/samd/src/bak/apps/dial.rs +++ b/src/apps/dial.rs @@ -1,6 +1,6 @@ use crate::{ apps::App, - display::*, + display::Display, keypad::{Key, KeyEvent, KeyEventType, KeyEvents, KeyInputMode}, state::{ModeState, State}, Context, @@ -47,8 +47,8 @@ impl App for Dial { // TODO move to init let dial_text_style = MonoTextStyleBuilder::new() .font(&FONT_10X20) - .text_color(WHITE) - .background_color(BLACK) + .text_color(BinaryColor::On) + .background_color(BinaryColor::Off) .build(); let textbox_style = TextBoxStyleBuilder::new() .height_mode(HeightMode::FitToText) diff --git a/samd/src/bak/config.rs b/src/config.rs similarity index 100% rename from samd/src/bak/config.rs rename to src/config.rs diff --git a/samd/src/bak/display.rs b/src/display.rs similarity index 100% rename from samd/src/bak/display.rs rename to src/display.rs diff --git a/samd/src/bak/display/epd.rs b/src/display/epd.rs similarity index 71% rename from samd/src/bak/display/epd.rs rename to src/display/epd.rs index 0f64be8..38c8ebb 100644 --- a/samd/src/bak/display/epd.rs +++ b/src/display/epd.rs @@ -1,10 +1,6 @@ -use embedded_graphics::{prelude::*}; +use embedded_graphics::{pixelcolor::BinaryColor, prelude::*}; use epd_waveshare::epd1in54::{Display1in54, Epd1in54}; -pub type Color = epd_waveshare::color::Color; -pub const BLACK: Color = epd_waveshare::color::Color::Black; -pub const WHITE: Color = epd_waveshare::color::Color::White; - pub struct Display { //epd: Epd1in54, display: Display1in54, diff --git a/samd/src/bak/display/simulator.rs b/src/display/simulator.rs similarity index 90% rename from samd/src/bak/display/simulator.rs rename to src/display/simulator.rs index 4caf875..1ac623b 100644 --- a/samd/src/bak/display/simulator.rs +++ b/src/display/simulator.rs @@ -3,10 +3,6 @@ use embedded_graphics_simulator::{ BinaryColorTheme, OutputSettingsBuilder, SimulatorDisplay, SimulatorEvent, Window, }; -pub type Color = BinaryColor; -pub const BLACK: Color = BinaryColor::Off; -pub const WHITE: Color = BinaryColor::On; - static mut WINDOW: core::mem::MaybeUninit = core::mem::MaybeUninit::uninit(); pub fn window() -> &'static Window { diff --git a/samd/src/bak/energy.rs b/src/energy.rs similarity index 100% rename from samd/src/bak/energy.rs rename to src/energy.rs diff --git a/samd/src/bak/fs.rs b/src/fs.rs similarity index 100% rename from samd/src/bak/fs.rs rename to src/fs.rs diff --git a/samd/src/bak/gui.rs b/src/gui.rs similarity index 100% rename from samd/src/bak/gui.rs rename to src/gui.rs diff --git a/samd/src/bak/keypad.rs b/src/keypad.rs similarity index 100% rename from samd/src/bak/keypad.rs rename to src/keypad.rs diff --git a/samd/src/bak/main.bak.rs b/src/main.rs similarity index 61% rename from samd/src/bak/main.bak.rs rename to src/main.rs index 47807fa..0456869 100644 --- a/samd/src/bak/main.bak.rs +++ b/src/main.rs @@ -14,15 +14,13 @@ mod text_input; mod time; use apps::App; -use display::*; +use display::Display; use energy::EnergyStatus; use keypad::KeyEvents; use state::*; use arrayvec::ArrayString; use core::fmt::Write; -use core::sync::atomic; -use cortex_m::peripheral::NVIC; use embedded_graphics::{ mono_font::{ ascii::{FONT_10X20, FONT_6X10, FONT_9X15}, @@ -36,11 +34,11 @@ use embedded_graphics::{ #[cfg(not(feature = "simulator"))] use maduino_zero_4g::{ self as bsp, - hal::{rtc::Rtc, - clock::{enable_external_32kosc, enable_internal_32kosc, ClockGenId, ClockSource, GenericClockController}, + hal::{ + clock::GenericClockController, delay::Delay, - pac::{CorePeripherals, Peripherals, interrupt, RTC}, - prelude::*,sleeping_delay::SleepingDelay + pac::{CorePeripherals, Peripherals}, + prelude::*, }, }; #[cfg(not(feature = "simulator"))] @@ -63,94 +61,27 @@ static_assertions::const_assert!( )>() < 16 * 1024 ); -static INTERRUPT_FIRED: atomic::AtomicBool = atomic::AtomicBool::new(false); - #[cfg_attr(not(feature = "simulator"), bsp::entry)] fn main() -> ! { cfg_if::cfg_if! { if #[cfg(not(feature = "simulator"))] { let mut peripherals = Peripherals::take().unwrap(); let mut pins = maduino_zero_4g::Pins::new(peripherals.PORT); - let mut core = CorePeripherals::take().unwrap(); + let core = CorePeripherals::take().unwrap(); let mut clocks = GenericClockController::with_external_32kosc( peripherals.GCLK, &mut peripherals.PM, &mut peripherals.SYSCTRL, &mut peripherals.NVMCTRL, ); - - enable_external_32kosc(&mut peripherals.SYSCTRL); - let timer_clock = clocks - .configure_gclk_divider_and_source(ClockGenId::GCLK2, 1, ClockSource::XOSC32K, false) - .unwrap(); + let mut delay = Delay::new(core.SYST, &mut clocks); - /*let mut clocks = GenericClockController::with_internal_8mhz( - peripherals.GCLK, - &mut peripherals.PM, - &mut peripherals.SYSCTRL, - &mut peripherals.NVMCTRL, - ); - - // Get a clock & make a sleeping delay object. use internal 32k clock that runs - // in standby - enable_internal_32kosc(&mut peripherals.SYSCTRL); - let timer_clock = clocks - .configure_gclk_divider_and_source(ClockGenId::GCLK1, 1, ClockSource::OSC32K, false) - .unwrap();*/ - - clocks.configure_standby(ClockGenId::GCLK2, true); - let rtc_clock = clocks.rtc(&timer_clock).unwrap(); - let timer = Rtc::count32_mode(peripherals.RTC, rtc_clock.freq(), &mut peripherals.PM); - let mut sleeping_delay = SleepingDelay::new(timer, &INTERRUPT_FIRED); - - //let mut delay = Delay::new(core.SYST, &mut clocks); - -/* let mut fs = fs::Fs::new(atsamd_hal::sercom::spi::Config::new( + let mut fs = fs::Fs::new(atsamd_hal::sercom::spi::Config::new( &peripherals.PM, peripherals.SERCOM4, atsamd_hal::sercom::spi::Pads::default().data_in(pins.sd_miso).data_out(pins.sd_mosi).sclk(pins.sd_sck), - 10_u32.MHz(), + 10_u32.mhz(), ).enable(), pins.d4.into_push_pull_output()); -*/ - - // We can use the RTC in standby for maximum power savings - core.SCB.set_sleepdeep(); - - // enable interrupts - unsafe { - core.NVIC.set_priority(interrupt::RTC, 2); - NVIC::unmask(interrupt::RTC); - } - - // Turn off unnecessary peripherals - peripherals.PM.ahbmask.modify(|_, w| { - w.usb_().clear_bit(); - w.dmac_().clear_bit() - }); - peripherals.PM.apbamask.modify(|_, w| { - w.eic_().clear_bit(); - w.wdt_().clear_bit(); - w.sysctrl_().clear_bit(); - w.pac0_().clear_bit() - }); - peripherals.PM.apbbmask.modify(|_, w| { - w.usb_().clear_bit(); - w.dmac_().clear_bit(); - w.nvmctrl_().clear_bit(); - w.dsu_().clear_bit(); - w.pac1_().clear_bit() - }); - // Thankfully the only one default on here is ADC - peripherals.PM.apbcmask.modify(|_, w| w.adc_().clear_bit()); - - let mut led = pins.d9.into_push_pull_output(); - - loop { - sleeping_delay.delay_ms(1000u16); - led.set_high().unwrap(); - sleeping_delay.delay_ms(1000u16); - led.set_low().unwrap(); - } } } @@ -170,17 +101,17 @@ fn main() -> ! { let mut display = Display::new(); let mut keypad = keypad::Keypad::default(); - let thin_stroke = PrimitiveStyle::with_stroke(WHITE, 1); - let thick_stroke = PrimitiveStyle::with_stroke(WHITE, 3); - let fill = PrimitiveStyle::with_fill(WHITE); + let thin_stroke = PrimitiveStyle::with_stroke(BinaryColor::On, 1); + let thick_stroke = PrimitiveStyle::with_stroke(BinaryColor::On, 3); + let fill = PrimitiveStyle::with_fill(BinaryColor::On); let statusbar_text_style = MonoTextStyleBuilder::new() .font(&FONT_9X15) - .text_color(WHITE) - .background_color(BLACK) + .text_color(BinaryColor::On) + .background_color(BinaryColor::Off) .build(); let key_label_text_style = MonoTextStyleBuilder::new() .font(&FONT_6X10) - .text_color(WHITE) + .text_color(BinaryColor::On) .build(); Line::new(Point::new(0, 13), Point::new(199, 13)) @@ -210,26 +141,19 @@ fn main() -> ! { if energy_status != ctx.state.energy { ctx.update = true; - /*Text::with_alignment( + Text::with_alignment( unsafe { core::str::from_utf8_unchecked(&strf::fmt_energy(&energy_status)) }, Point::new(0, 9), statusbar_text_style, Alignment::Left, ) .draw(ctx.display.inner_mut()) - .unwrap();*/ + .unwrap(); ctx.state.energy = energy_status; } - //ctx.now = time::now(); - //ctx.now = tz::DateTime::from_timespec(rtc.count32() as i64, 0, tz::TimeZoneRef::utc()).unwrap(); - - if ctx.now.second() % 2 == 0 { - led.set_high().unwrap(); - } else { - led.set_low().unwrap(); - } + ctx.now = time::now(); let hour = ctx.now.hour(); let minute = ctx.now.minute(); @@ -239,19 +163,19 @@ fn main() -> ! { ctx.state.hour = hour; ctx.state.minute = minute; - /*Text::with_alignment( + Text::with_alignment( unsafe { core::str::from_utf8_unchecked(&strf::fmt_time_hm(hour, minute)) }, Point::new(199, 9), statusbar_text_style, Alignment::Right, ) .draw(ctx.display.inner_mut()) - .unwrap();*/ + .unwrap(); } ctx.key_events = keypad.update(); - /*if let Some(new_mode_state) = match &mut mode_state { + if let Some(new_mode_state) = match &mut mode_state { ModeState::Nothing => Some(ModeState::Clock(Default::default())), ModeState::Clock(clock_state) => apps::clock::Clock::update(&mut ctx, clock_state), ModeState::Dial(dial_state) => apps::dial::Dial::update(&mut ctx, dial_state), @@ -271,11 +195,11 @@ fn main() -> ! { } ModeState::Dial(dial_state) => apps::dial::Dial::on_enter(&mut ctx, dial_state), } - }*/ + } - /*if ctx.key_labels_change { + if ctx.key_labels_change { let bg_style = PrimitiveStyleBuilder::new() - .fill_color(BLACK) + .fill_color(BinaryColor::Off) .build(); Rectangle::new(Point::new(0, 190), Size::new(200, 12)) .into_styled(bg_style) @@ -307,7 +231,7 @@ fn main() -> ! { .draw(ctx.display.inner_mut()) .unwrap(); ctx.key_labels_change = false; - }*/ + } #[cfg(feature = "simulator")] { @@ -318,8 +242,8 @@ fn main() -> ! { if ctx.update { ctx.display.update(); } - //#[cfg(not(feature = "simulator"))] - //delay.delay_ms(50_u8); + #[cfg(not(feature = "simulator"))] + delay.delay_ms(50_u8); ctx.update = false; ctx.hm_change = false; @@ -335,17 +259,3 @@ pub struct Context<'a> { pub update: bool, pub key_events: KeyEvents, } - -#[interrupt] -fn RTC() { - // Let the sleepingtimer know that the interrupt fired, and clear it - INTERRUPT_FIRED.store(true, atomic::Ordering::Relaxed); - unsafe { - RTC::ptr() - .as_ref() - .unwrap() - .mode0() - .intflag - .modify(|_, w| w.cmp0().set_bit()); - } -} diff --git a/samd/src/bak/state.rs b/src/state.rs similarity index 100% rename from samd/src/bak/state.rs rename to src/state.rs diff --git a/samd/src/bak/strf.rs b/src/strf.rs similarity index 100% rename from samd/src/bak/strf.rs rename to src/strf.rs diff --git a/samd/src/bak/text_input.rs b/src/text_input.rs similarity index 100% rename from samd/src/bak/text_input.rs rename to src/text_input.rs diff --git a/samd/src/bak/time.rs b/src/time.rs similarity index 100% rename from samd/src/bak/time.rs rename to src/time.rs