+6
.github/workflows/build-demos-nostd.yml
+6
.github/workflows/build-demos-nostd.yml
+1
checkall.sh
+1
checkall.sh
···
10
cargo check --manifest-path=./demos/shared-icd/Cargo.toml
11
cargo check --manifest-path=./demos/shared-icd/Cargo.toml --target=thumbv7em-none-eabi
12
cargo check --all --manifest-path=./demos/std/Cargo.toml
13
cargo check --all --target=thumbv7em-none-eabi --manifest-path=./demos/nrf52840/Cargo.toml
14
cargo check --all --target=thumbv6m-none-eabi --manifest-path=./demos/rp2040/Cargo.toml
15
cargo check --all --target=riscv32imac-unknown-none-elf --manifest-path=./demos/esp32c6/Cargo.toml
···
10
cargo check --manifest-path=./demos/shared-icd/Cargo.toml
11
cargo check --manifest-path=./demos/shared-icd/Cargo.toml --target=thumbv7em-none-eabi
12
cargo check --all --manifest-path=./demos/std/Cargo.toml
13
+
cargo check --all --target=thumbv7em-none-eabi --manifest-path=./demos/microbit/Cargo.toml
14
cargo check --all --target=thumbv7em-none-eabi --manifest-path=./demos/nrf52840/Cargo.toml
15
cargo check --all --target=thumbv6m-none-eabi --manifest-path=./demos/rp2040/Cargo.toml
16
cargo check --all --target=riscv32imac-unknown-none-elf --manifest-path=./demos/esp32c6/Cargo.toml
+1
cleanall.sh
+1
cleanall.sh
···
10
cargo clean --manifest-path=./demos/shared-icd/Cargo.toml
11
cargo clean --manifest-path=./demos/shared-icd/Cargo.toml
12
cargo clean --manifest-path=./demos/std/Cargo.toml
13
cargo clean --manifest-path=./demos/nrf52840/Cargo.toml
14
cargo clean --manifest-path=./demos/rp2040/Cargo.toml
15
cargo clean --manifest-path=./demos/esp32c6/Cargo.toml
···
10
cargo clean --manifest-path=./demos/shared-icd/Cargo.toml
11
cargo clean --manifest-path=./demos/shared-icd/Cargo.toml
12
cargo clean --manifest-path=./demos/std/Cargo.toml
13
+
cargo clean --manifest-path=./demos/microbit/Cargo.toml
14
cargo clean --manifest-path=./demos/nrf52840/Cargo.toml
15
cargo clean --manifest-path=./demos/rp2040/Cargo.toml
16
cargo clean --manifest-path=./demos/esp32c6/Cargo.toml
+2
-1
demos/README.md
+2
-1
demos/README.md
···
2
3
These are various demos that are currently used to showcase specific features, and in many cases, act as basic smoke tests that things are still working.
4
5
-
The demos are split into separate cargo workspaces, one per target platform.
6
7
Currently, there are demos for:
8
···
10
* `esp32c6` - Applications for the ESP32-C6 platform, typically using the `ESP32-C6-DevKitC-1`
11
* `rp2350` - Applications for the RP2350 platform, typically using a `Pico2` development board, with or without a debugger.
12
* `rp2040` - Applications for the RP2040 platform, typically using a `Pico` development board, with or without a debugger.
13
* `nrf52840` - Applications for the `nRF52840` platform, typically using an `nRF52840-DK`
14
15
## End to End Demos
···
2
3
These are various demos that are currently used to showcase specific features, and in many cases, act as basic smoke tests that things are still working.
4
5
+
The demos are split into separate cargo workspaces, one per target platform and/or board.
6
7
Currently, there are demos for:
8
···
10
* `esp32c6` - Applications for the ESP32-C6 platform, typically using the `ESP32-C6-DevKitC-1`
11
* `rp2350` - Applications for the RP2350 platform, typically using a `Pico2` development board, with or without a debugger.
12
* `rp2040` - Applications for the RP2040 platform, typically using a `Pico` development board, with or without a debugger.
13
+
* `microbit` - Applications for the micro:bit v2 board (nrf52833), which has an included debugger.
14
* `nrf52840` - Applications for the `nRF52840` platform, typically using an `nRF52840-DK`
15
16
## End to End Demos
+12
demos/microbit/.cargo/config.toml
+12
demos/microbit/.cargo/config.toml
···
···
1
+
[target.'cfg(all(target_arch = "arm", target_os = "none"))']
2
+
runner = "probe-rs run --chip nrf52833_xxAA --protocol swd"
3
+
4
+
[build]
5
+
target = "thumbv7em-none-eabihf"
6
+
7
+
[env]
8
+
DEFMT_LOG = "debug"
9
+
10
+
[unstable]
11
+
build-std = ["core"]
12
+
build-std-features = ["panic_immediate_abort"]
+1622
demos/microbit/Cargo.lock
+1622
demos/microbit/Cargo.lock
···
···
1
+
# This file is automatically @generated by Cargo.
2
+
# It is not intended for manual editing.
3
+
version = 4
4
+
5
+
[[package]]
6
+
name = "ahash"
7
+
version = "0.8.12"
8
+
source = "registry+https://github.com/rust-lang/crates.io-index"
9
+
checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
10
+
dependencies = [
11
+
"cfg-if",
12
+
"once_cell",
13
+
"version_check",
14
+
"zerocopy",
15
+
]
16
+
17
+
[[package]]
18
+
name = "aho-corasick"
19
+
version = "1.1.3"
20
+
source = "registry+https://github.com/rust-lang/crates.io-index"
21
+
checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
22
+
dependencies = [
23
+
"memchr",
24
+
]
25
+
26
+
[[package]]
27
+
name = "atomic-polyfill"
28
+
version = "1.0.3"
29
+
source = "registry+https://github.com/rust-lang/crates.io-index"
30
+
checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4"
31
+
dependencies = [
32
+
"critical-section",
33
+
]
34
+
35
+
[[package]]
36
+
name = "autocfg"
37
+
version = "1.5.0"
38
+
source = "registry+https://github.com/rust-lang/crates.io-index"
39
+
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
40
+
41
+
[[package]]
42
+
name = "az"
43
+
version = "1.2.1"
44
+
source = "registry+https://github.com/rust-lang/crates.io-index"
45
+
checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973"
46
+
47
+
[[package]]
48
+
name = "bare-metal"
49
+
version = "0.2.5"
50
+
source = "registry+https://github.com/rust-lang/crates.io-index"
51
+
checksum = "5deb64efa5bd81e31fcd1938615a6d98c82eafcbcd787162b6f63b91d6bac5b3"
52
+
dependencies = [
53
+
"rustc_version 0.2.3",
54
+
]
55
+
56
+
[[package]]
57
+
name = "bbq2"
58
+
version = "0.4.2"
59
+
source = "registry+https://github.com/rust-lang/crates.io-index"
60
+
checksum = "25d3e5fd78b60ce3a60e21e9a92b1d5e741328264de8e609193e2bf7616747bd"
61
+
dependencies = [
62
+
"const-init",
63
+
"critical-section",
64
+
"maitake-sync",
65
+
]
66
+
67
+
[[package]]
68
+
name = "bitfield"
69
+
version = "0.13.2"
70
+
source = "registry+https://github.com/rust-lang/crates.io-index"
71
+
checksum = "46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719"
72
+
73
+
[[package]]
74
+
name = "bitfield"
75
+
version = "0.14.0"
76
+
source = "registry+https://github.com/rust-lang/crates.io-index"
77
+
checksum = "2d7e60934ceec538daadb9d8432424ed043a904d8e0243f3c6446bce549a46ac"
78
+
79
+
[[package]]
80
+
name = "bitflags"
81
+
version = "1.3.2"
82
+
source = "registry+https://github.com/rust-lang/crates.io-index"
83
+
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
84
+
85
+
[[package]]
86
+
name = "bitflags"
87
+
version = "2.9.4"
88
+
source = "registry+https://github.com/rust-lang/crates.io-index"
89
+
checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394"
90
+
91
+
[[package]]
92
+
name = "bytemuck"
93
+
version = "1.23.2"
94
+
source = "registry+https://github.com/rust-lang/crates.io-index"
95
+
checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677"
96
+
97
+
[[package]]
98
+
name = "byteorder"
99
+
version = "1.5.0"
100
+
source = "registry+https://github.com/rust-lang/crates.io-index"
101
+
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
102
+
103
+
[[package]]
104
+
name = "cc"
105
+
version = "1.2.36"
106
+
source = "registry+https://github.com/rust-lang/crates.io-index"
107
+
checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54"
108
+
dependencies = [
109
+
"find-msvc-tools",
110
+
"shlex",
111
+
]
112
+
113
+
[[package]]
114
+
name = "cfg-if"
115
+
version = "1.0.3"
116
+
source = "registry+https://github.com/rust-lang/crates.io-index"
117
+
checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9"
118
+
119
+
[[package]]
120
+
name = "cobs"
121
+
version = "0.3.0"
122
+
source = "registry+https://github.com/rust-lang/crates.io-index"
123
+
checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1"
124
+
dependencies = [
125
+
"thiserror",
126
+
]
127
+
128
+
[[package]]
129
+
name = "cobs"
130
+
version = "0.4.0"
131
+
source = "registry+https://github.com/rust-lang/crates.io-index"
132
+
checksum = "fea6d1b751c55bd9c0dda7d4ff752074e98f4765ae969664648bd193bb326d15"
133
+
dependencies = [
134
+
"thiserror",
135
+
]
136
+
137
+
[[package]]
138
+
name = "cobs-acc"
139
+
version = "0.1.0"
140
+
dependencies = [
141
+
"cobs 0.4.0",
142
+
]
143
+
144
+
[[package]]
145
+
name = "const-fnv1a-hash"
146
+
version = "1.1.0"
147
+
source = "registry+https://github.com/rust-lang/crates.io-index"
148
+
checksum = "32b13ea120a812beba79e34316b3942a857c86ec1593cb34f27bb28272ce2cca"
149
+
150
+
[[package]]
151
+
name = "const-init"
152
+
version = "1.0.0"
153
+
source = "registry+https://github.com/rust-lang/crates.io-index"
154
+
checksum = "4bd422bfb4f24a97243f60b6a4443e63d810c925d8da4bb2d8fde26a7c1d57ec"
155
+
156
+
[[package]]
157
+
name = "cordyceps"
158
+
version = "0.3.4"
159
+
source = "registry+https://github.com/rust-lang/crates.io-index"
160
+
checksum = "688d7fbb8092b8de775ef2536f36c8c31f2bc4006ece2e8d8ad2d17d00ce0a2a"
161
+
dependencies = [
162
+
"loom",
163
+
"tracing",
164
+
]
165
+
166
+
[[package]]
167
+
name = "cortex-m"
168
+
version = "0.7.7"
169
+
source = "registry+https://github.com/rust-lang/crates.io-index"
170
+
checksum = "8ec610d8f49840a5b376c69663b6369e71f4b34484b9b2eb29fb918d92516cb9"
171
+
dependencies = [
172
+
"bare-metal",
173
+
"bitfield 0.13.2",
174
+
"critical-section",
175
+
"embedded-hal 0.2.7",
176
+
"volatile-register",
177
+
]
178
+
179
+
[[package]]
180
+
name = "cortex-m-rt"
181
+
version = "0.7.5"
182
+
source = "registry+https://github.com/rust-lang/crates.io-index"
183
+
checksum = "801d4dec46b34c299ccf6b036717ae0fce602faa4f4fe816d9013b9a7c9f5ba6"
184
+
dependencies = [
185
+
"cortex-m-rt-macros",
186
+
]
187
+
188
+
[[package]]
189
+
name = "cortex-m-rt-macros"
190
+
version = "0.7.5"
191
+
source = "registry+https://github.com/rust-lang/crates.io-index"
192
+
checksum = "e37549a379a9e0e6e576fd208ee60394ccb8be963889eebba3ffe0980364f472"
193
+
dependencies = [
194
+
"proc-macro2",
195
+
"quote",
196
+
"syn 2.0.106",
197
+
]
198
+
199
+
[[package]]
200
+
name = "critical-section"
201
+
version = "1.2.0"
202
+
source = "registry+https://github.com/rust-lang/crates.io-index"
203
+
checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b"
204
+
205
+
[[package]]
206
+
name = "crunchy"
207
+
version = "0.2.4"
208
+
source = "registry+https://github.com/rust-lang/crates.io-index"
209
+
checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
210
+
211
+
[[package]]
212
+
name = "darling"
213
+
version = "0.20.11"
214
+
source = "registry+https://github.com/rust-lang/crates.io-index"
215
+
checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee"
216
+
dependencies = [
217
+
"darling_core",
218
+
"darling_macro",
219
+
]
220
+
221
+
[[package]]
222
+
name = "darling_core"
223
+
version = "0.20.11"
224
+
source = "registry+https://github.com/rust-lang/crates.io-index"
225
+
checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e"
226
+
dependencies = [
227
+
"fnv",
228
+
"ident_case",
229
+
"proc-macro2",
230
+
"quote",
231
+
"strsim",
232
+
"syn 2.0.106",
233
+
]
234
+
235
+
[[package]]
236
+
name = "darling_macro"
237
+
version = "0.20.11"
238
+
source = "registry+https://github.com/rust-lang/crates.io-index"
239
+
checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead"
240
+
dependencies = [
241
+
"darling_core",
242
+
"quote",
243
+
"syn 2.0.106",
244
+
]
245
+
246
+
[[package]]
247
+
name = "defmt"
248
+
version = "0.3.100"
249
+
source = "registry+https://github.com/rust-lang/crates.io-index"
250
+
checksum = "f0963443817029b2024136fc4dd07a5107eb8f977eaf18fcd1fdeb11306b64ad"
251
+
dependencies = [
252
+
"defmt 1.0.1",
253
+
]
254
+
255
+
[[package]]
256
+
name = "defmt"
257
+
version = "1.0.1"
258
+
source = "registry+https://github.com/rust-lang/crates.io-index"
259
+
checksum = "548d977b6da32fa1d1fda2876453da1e7df63ad0304c8b3dae4dbe7b96f39b78"
260
+
dependencies = [
261
+
"bitflags 1.3.2",
262
+
"defmt-macros",
263
+
]
264
+
265
+
[[package]]
266
+
name = "defmt-macros"
267
+
version = "1.0.1"
268
+
source = "registry+https://github.com/rust-lang/crates.io-index"
269
+
checksum = "3d4fc12a85bcf441cfe44344c4b72d58493178ce635338a3f3b78943aceb258e"
270
+
dependencies = [
271
+
"defmt-parser",
272
+
"proc-macro-error2",
273
+
"proc-macro2",
274
+
"quote",
275
+
"syn 2.0.106",
276
+
]
277
+
278
+
[[package]]
279
+
name = "defmt-parser"
280
+
version = "1.0.0"
281
+
source = "registry+https://github.com/rust-lang/crates.io-index"
282
+
checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e"
283
+
dependencies = [
284
+
"thiserror",
285
+
]
286
+
287
+
[[package]]
288
+
name = "defmt-rtt"
289
+
version = "1.0.0"
290
+
source = "registry+https://github.com/rust-lang/crates.io-index"
291
+
checksum = "b2cac3b8a5644a9e02b75085ebad3b6deafdbdbdec04bb25086523828aa4dfd1"
292
+
dependencies = [
293
+
"critical-section",
294
+
"defmt 1.0.1",
295
+
]
296
+
297
+
[[package]]
298
+
name = "document-features"
299
+
version = "0.2.11"
300
+
source = "registry+https://github.com/rust-lang/crates.io-index"
301
+
checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d"
302
+
dependencies = [
303
+
"litrs",
304
+
]
305
+
306
+
[[package]]
307
+
name = "embassy-embedded-hal"
308
+
version = "0.3.2"
309
+
source = "registry+https://github.com/rust-lang/crates.io-index"
310
+
checksum = "8c62a3bf127e03832fb97d8b01a058775e617653bc89e2a12c256485a7fb54c1"
311
+
dependencies = [
312
+
"defmt 0.3.100",
313
+
"embassy-embedded-hal 0.4.0",
314
+
"embassy-futures",
315
+
"embassy-sync 0.6.2",
316
+
"embassy-time",
317
+
"embedded-hal 0.2.7",
318
+
"embedded-hal 1.0.0",
319
+
"embedded-hal-async",
320
+
"embedded-storage",
321
+
"embedded-storage-async",
322
+
"nb 1.1.0",
323
+
]
324
+
325
+
[[package]]
326
+
name = "embassy-embedded-hal"
327
+
version = "0.4.0"
328
+
source = "registry+https://github.com/rust-lang/crates.io-index"
329
+
checksum = "d1611b7a7ab5d1fbed84c338df26d56fd9bded58006ebb029075112ed2c5e039"
330
+
dependencies = [
331
+
"embassy-futures",
332
+
"embassy-hal-internal",
333
+
"embassy-sync 0.7.2",
334
+
"embedded-hal 0.2.7",
335
+
"embedded-hal 1.0.0",
336
+
"embedded-hal-async",
337
+
"embedded-storage",
338
+
"embedded-storage-async",
339
+
"nb 1.1.0",
340
+
]
341
+
342
+
[[package]]
343
+
name = "embassy-executor"
344
+
version = "0.7.0"
345
+
source = "registry+https://github.com/rust-lang/crates.io-index"
346
+
checksum = "90327bcc66333a507f89ecc4e2d911b265c45f5c9bc241f98eee076752d35ac6"
347
+
dependencies = [
348
+
"cortex-m",
349
+
"critical-section",
350
+
"defmt 0.3.100",
351
+
"document-features",
352
+
"embassy-executor-macros",
353
+
]
354
+
355
+
[[package]]
356
+
name = "embassy-executor-macros"
357
+
version = "0.6.2"
358
+
source = "registry+https://github.com/rust-lang/crates.io-index"
359
+
checksum = "3577b1e9446f61381179a330fc5324b01d511624c55f25e3c66c9e3c626dbecf"
360
+
dependencies = [
361
+
"darling",
362
+
"proc-macro2",
363
+
"quote",
364
+
"syn 2.0.106",
365
+
]
366
+
367
+
[[package]]
368
+
name = "embassy-futures"
369
+
version = "0.1.2"
370
+
source = "registry+https://github.com/rust-lang/crates.io-index"
371
+
checksum = "dc2d050bdc5c21e0862a89256ed8029ae6c290a93aecefc73084b3002cdebb01"
372
+
373
+
[[package]]
374
+
name = "embassy-hal-internal"
375
+
version = "0.3.0"
376
+
source = "registry+https://github.com/rust-lang/crates.io-index"
377
+
checksum = "95285007a91b619dc9f26ea8f55452aa6c60f7115a4edc05085cd2bd3127cd7a"
378
+
dependencies = [
379
+
"cortex-m",
380
+
"critical-section",
381
+
"defmt 1.0.1",
382
+
"num-traits",
383
+
]
384
+
385
+
[[package]]
386
+
name = "embassy-net-driver"
387
+
version = "0.2.0"
388
+
source = "registry+https://github.com/rust-lang/crates.io-index"
389
+
checksum = "524eb3c489760508f71360112bca70f6e53173e6fe48fc5f0efd0f5ab217751d"
390
+
391
+
[[package]]
392
+
name = "embassy-net-driver-channel"
393
+
version = "0.3.2"
394
+
source = "registry+https://github.com/rust-lang/crates.io-index"
395
+
checksum = "b7b2739fbcf6cd206ae08779c7d709087b16577d255f2ea4a45bc4bbbf305b3f"
396
+
dependencies = [
397
+
"embassy-futures",
398
+
"embassy-net-driver",
399
+
"embassy-sync 0.7.2",
400
+
]
401
+
402
+
[[package]]
403
+
name = "embassy-nrf"
404
+
version = "0.5.0"
405
+
source = "registry+https://github.com/rust-lang/crates.io-index"
406
+
checksum = "6ae20388606f23184ab567537b9c7758eef5ac20cf5f94db3d936a641b9f4b9e"
407
+
dependencies = [
408
+
"bitflags 2.9.4",
409
+
"cfg-if",
410
+
"cortex-m",
411
+
"cortex-m-rt",
412
+
"critical-section",
413
+
"defmt 1.0.1",
414
+
"document-features",
415
+
"embassy-embedded-hal 0.3.2",
416
+
"embassy-hal-internal",
417
+
"embassy-sync 0.7.2",
418
+
"embassy-time",
419
+
"embassy-time-driver",
420
+
"embassy-time-queue-utils",
421
+
"embassy-usb-driver",
422
+
"embedded-hal 0.2.7",
423
+
"embedded-hal 1.0.0",
424
+
"embedded-hal-async",
425
+
"embedded-io",
426
+
"embedded-io-async",
427
+
"embedded-storage",
428
+
"embedded-storage-async",
429
+
"fixed",
430
+
"nrf-pac",
431
+
"rand_core 0.6.4",
432
+
"rand_core 0.9.3",
433
+
]
434
+
435
+
[[package]]
436
+
name = "embassy-sync"
437
+
version = "0.6.2"
438
+
source = "registry+https://github.com/rust-lang/crates.io-index"
439
+
checksum = "8d2c8cdff05a7a51ba0087489ea44b0b1d97a296ca6b1d6d1a33ea7423d34049"
440
+
dependencies = [
441
+
"cfg-if",
442
+
"critical-section",
443
+
"embedded-io-async",
444
+
"futures-sink",
445
+
"futures-util",
446
+
"heapless 0.8.0",
447
+
]
448
+
449
+
[[package]]
450
+
name = "embassy-sync"
451
+
version = "0.7.2"
452
+
source = "registry+https://github.com/rust-lang/crates.io-index"
453
+
checksum = "73974a3edbd0bd286759b3d483540f0ebef705919a5f56f4fc7709066f71689b"
454
+
dependencies = [
455
+
"cfg-if",
456
+
"critical-section",
457
+
"defmt 1.0.1",
458
+
"embedded-io-async",
459
+
"futures-core",
460
+
"futures-sink",
461
+
"heapless 0.8.0",
462
+
]
463
+
464
+
[[package]]
465
+
name = "embassy-time"
466
+
version = "0.4.0"
467
+
source = "registry+https://github.com/rust-lang/crates.io-index"
468
+
checksum = "f820157f198ada183ad62e0a66f554c610cdcd1a9f27d4b316358103ced7a1f8"
469
+
dependencies = [
470
+
"cfg-if",
471
+
"critical-section",
472
+
"defmt 0.3.100",
473
+
"document-features",
474
+
"embassy-time-driver",
475
+
"embedded-hal 0.2.7",
476
+
"embedded-hal 1.0.0",
477
+
"embedded-hal-async",
478
+
"futures-util",
479
+
]
480
+
481
+
[[package]]
482
+
name = "embassy-time-driver"
483
+
version = "0.2.1"
484
+
source = "registry+https://github.com/rust-lang/crates.io-index"
485
+
checksum = "a0a244c7dc22c8d0289379c8d8830cae06bb93d8f990194d0de5efb3b5ae7ba6"
486
+
dependencies = [
487
+
"document-features",
488
+
]
489
+
490
+
[[package]]
491
+
name = "embassy-time-queue-utils"
492
+
version = "0.1.0"
493
+
source = "registry+https://github.com/rust-lang/crates.io-index"
494
+
checksum = "dc55c748d16908a65b166d09ce976575fb8852cf60ccd06174092b41064d8f83"
495
+
dependencies = [
496
+
"embassy-executor",
497
+
"heapless 0.8.0",
498
+
]
499
+
500
+
[[package]]
501
+
name = "embassy-usb"
502
+
version = "0.5.1"
503
+
source = "registry+https://github.com/rust-lang/crates.io-index"
504
+
checksum = "dc4462e48b19a4f401a11901bdd981aab80c6a826608016a0bdc73cbbab31954"
505
+
dependencies = [
506
+
"embassy-futures",
507
+
"embassy-net-driver-channel",
508
+
"embassy-sync 0.7.2",
509
+
"embassy-usb-driver",
510
+
"embedded-io-async",
511
+
"heapless 0.8.0",
512
+
"ssmarshal",
513
+
"usbd-hid",
514
+
]
515
+
516
+
[[package]]
517
+
name = "embassy-usb-driver"
518
+
version = "0.2.0"
519
+
source = "registry+https://github.com/rust-lang/crates.io-index"
520
+
checksum = "17119855ccc2d1f7470a39756b12068454ae27a3eabb037d940b5c03d9c77b7a"
521
+
dependencies = [
522
+
"defmt 1.0.1",
523
+
"embedded-io-async",
524
+
]
525
+
526
+
[[package]]
527
+
name = "embedded-hal"
528
+
version = "0.2.7"
529
+
source = "registry+https://github.com/rust-lang/crates.io-index"
530
+
checksum = "35949884794ad573cf46071e41c9b60efb0cb311e3ca01f7af807af1debc66ff"
531
+
dependencies = [
532
+
"nb 0.1.3",
533
+
"void",
534
+
]
535
+
536
+
[[package]]
537
+
name = "embedded-hal"
538
+
version = "1.0.0"
539
+
source = "registry+https://github.com/rust-lang/crates.io-index"
540
+
checksum = "361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89"
541
+
542
+
[[package]]
543
+
name = "embedded-hal-async"
544
+
version = "1.0.0"
545
+
source = "registry+https://github.com/rust-lang/crates.io-index"
546
+
checksum = "0c4c685bbef7fe13c3c6dd4da26841ed3980ef33e841cddfa15ce8a8fb3f1884"
547
+
dependencies = [
548
+
"embedded-hal 1.0.0",
549
+
]
550
+
551
+
[[package]]
552
+
name = "embedded-io"
553
+
version = "0.6.1"
554
+
source = "registry+https://github.com/rust-lang/crates.io-index"
555
+
checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d"
556
+
557
+
[[package]]
558
+
name = "embedded-io-async"
559
+
version = "0.6.1"
560
+
source = "registry+https://github.com/rust-lang/crates.io-index"
561
+
checksum = "3ff09972d4073aa8c299395be75161d582e7629cd663171d62af73c8d50dba3f"
562
+
dependencies = [
563
+
"embedded-io",
564
+
]
565
+
566
+
[[package]]
567
+
name = "embedded-storage"
568
+
version = "0.3.1"
569
+
source = "registry+https://github.com/rust-lang/crates.io-index"
570
+
checksum = "a21dea9854beb860f3062d10228ce9b976da520a73474aed3171ec276bc0c032"
571
+
572
+
[[package]]
573
+
name = "embedded-storage-async"
574
+
version = "0.4.1"
575
+
source = "registry+https://github.com/rust-lang/crates.io-index"
576
+
checksum = "1763775e2323b7d5f0aa6090657f5e21cfa02ede71f5dc40eead06d64dcd15cc"
577
+
dependencies = [
578
+
"embedded-storage",
579
+
]
580
+
581
+
[[package]]
582
+
name = "encode_unicode"
583
+
version = "0.3.6"
584
+
source = "registry+https://github.com/rust-lang/crates.io-index"
585
+
checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
586
+
587
+
[[package]]
588
+
name = "ergot"
589
+
version = "0.11.0"
590
+
dependencies = [
591
+
"bbq2",
592
+
"cobs 0.3.0",
593
+
"cobs-acc",
594
+
"const-fnv1a-hash",
595
+
"cordyceps",
596
+
"critical-section",
597
+
"defmt 1.0.1",
598
+
"embassy-futures",
599
+
"embassy-time",
600
+
"embassy-usb",
601
+
"heapless 0.9.1",
602
+
"log",
603
+
"maitake-sync",
604
+
"mutex",
605
+
"pin-project",
606
+
"portable-atomic",
607
+
"postcard",
608
+
"postcard-schema",
609
+
"serde",
610
+
"static_cell",
611
+
]
612
+
613
+
[[package]]
614
+
name = "find-msvc-tools"
615
+
version = "0.1.1"
616
+
source = "registry+https://github.com/rust-lang/crates.io-index"
617
+
checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d"
618
+
619
+
[[package]]
620
+
name = "fixed"
621
+
version = "1.29.0"
622
+
source = "registry+https://github.com/rust-lang/crates.io-index"
623
+
checksum = "707070ccf8c4173548210893a0186e29c266901b71ed20cd9e2ca0193dfe95c3"
624
+
dependencies = [
625
+
"az",
626
+
"bytemuck",
627
+
"half",
628
+
"typenum",
629
+
]
630
+
631
+
[[package]]
632
+
name = "fnv"
633
+
version = "1.0.7"
634
+
source = "registry+https://github.com/rust-lang/crates.io-index"
635
+
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
636
+
637
+
[[package]]
638
+
name = "futures-core"
639
+
version = "0.3.31"
640
+
source = "registry+https://github.com/rust-lang/crates.io-index"
641
+
checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
642
+
643
+
[[package]]
644
+
name = "futures-sink"
645
+
version = "0.3.31"
646
+
source = "registry+https://github.com/rust-lang/crates.io-index"
647
+
checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
648
+
649
+
[[package]]
650
+
name = "futures-task"
651
+
version = "0.3.31"
652
+
source = "registry+https://github.com/rust-lang/crates.io-index"
653
+
checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
654
+
655
+
[[package]]
656
+
name = "futures-util"
657
+
version = "0.3.31"
658
+
source = "registry+https://github.com/rust-lang/crates.io-index"
659
+
checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
660
+
dependencies = [
661
+
"futures-core",
662
+
"futures-task",
663
+
"pin-project-lite",
664
+
"pin-utils",
665
+
]
666
+
667
+
[[package]]
668
+
name = "generator"
669
+
version = "0.8.7"
670
+
source = "registry+https://github.com/rust-lang/crates.io-index"
671
+
checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2"
672
+
dependencies = [
673
+
"cc",
674
+
"cfg-if",
675
+
"libc",
676
+
"log",
677
+
"rustversion",
678
+
"windows",
679
+
]
680
+
681
+
[[package]]
682
+
name = "half"
683
+
version = "2.6.0"
684
+
source = "registry+https://github.com/rust-lang/crates.io-index"
685
+
checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9"
686
+
dependencies = [
687
+
"cfg-if",
688
+
"crunchy",
689
+
]
690
+
691
+
[[package]]
692
+
name = "hash32"
693
+
version = "0.2.1"
694
+
source = "registry+https://github.com/rust-lang/crates.io-index"
695
+
checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67"
696
+
dependencies = [
697
+
"byteorder",
698
+
]
699
+
700
+
[[package]]
701
+
name = "hash32"
702
+
version = "0.3.1"
703
+
source = "registry+https://github.com/rust-lang/crates.io-index"
704
+
checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606"
705
+
dependencies = [
706
+
"byteorder",
707
+
]
708
+
709
+
[[package]]
710
+
name = "hashbrown"
711
+
version = "0.13.2"
712
+
source = "registry+https://github.com/rust-lang/crates.io-index"
713
+
checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
714
+
dependencies = [
715
+
"ahash",
716
+
]
717
+
718
+
[[package]]
719
+
name = "heapless"
720
+
version = "0.7.17"
721
+
source = "registry+https://github.com/rust-lang/crates.io-index"
722
+
checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f"
723
+
dependencies = [
724
+
"atomic-polyfill",
725
+
"hash32 0.2.1",
726
+
"rustc_version 0.4.1",
727
+
"serde",
728
+
"spin",
729
+
"stable_deref_trait",
730
+
]
731
+
732
+
[[package]]
733
+
name = "heapless"
734
+
version = "0.8.0"
735
+
source = "registry+https://github.com/rust-lang/crates.io-index"
736
+
checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad"
737
+
dependencies = [
738
+
"hash32 0.3.1",
739
+
"stable_deref_trait",
740
+
]
741
+
742
+
[[package]]
743
+
name = "heapless"
744
+
version = "0.9.1"
745
+
source = "registry+https://github.com/rust-lang/crates.io-index"
746
+
checksum = "b1edcd5a338e64688fbdcb7531a846cfd3476a54784dcb918a0844682bc7ada5"
747
+
dependencies = [
748
+
"defmt 1.0.1",
749
+
"hash32 0.3.1",
750
+
"serde",
751
+
"stable_deref_trait",
752
+
]
753
+
754
+
[[package]]
755
+
name = "ident_case"
756
+
version = "1.0.1"
757
+
source = "registry+https://github.com/rust-lang/crates.io-index"
758
+
checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
759
+
760
+
[[package]]
761
+
name = "lazy_static"
762
+
version = "1.5.0"
763
+
source = "registry+https://github.com/rust-lang/crates.io-index"
764
+
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
765
+
766
+
[[package]]
767
+
name = "libc"
768
+
version = "0.2.175"
769
+
source = "registry+https://github.com/rust-lang/crates.io-index"
770
+
checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543"
771
+
772
+
[[package]]
773
+
name = "litrs"
774
+
version = "0.4.2"
775
+
source = "registry+https://github.com/rust-lang/crates.io-index"
776
+
checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed"
777
+
778
+
[[package]]
779
+
name = "lock_api"
780
+
version = "0.4.13"
781
+
source = "registry+https://github.com/rust-lang/crates.io-index"
782
+
checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765"
783
+
dependencies = [
784
+
"autocfg",
785
+
"scopeguard",
786
+
]
787
+
788
+
[[package]]
789
+
name = "log"
790
+
version = "0.4.28"
791
+
source = "registry+https://github.com/rust-lang/crates.io-index"
792
+
checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
793
+
794
+
[[package]]
795
+
name = "loom"
796
+
version = "0.7.2"
797
+
source = "registry+https://github.com/rust-lang/crates.io-index"
798
+
checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca"
799
+
dependencies = [
800
+
"cfg-if",
801
+
"generator",
802
+
"scoped-tls",
803
+
"tracing",
804
+
"tracing-subscriber",
805
+
]
806
+
807
+
[[package]]
808
+
name = "maitake-sync"
809
+
version = "0.2.2"
810
+
source = "registry+https://github.com/rust-lang/crates.io-index"
811
+
checksum = "748f86d9befd480b602c3bebc9ef30dbf2f3dfc8acc4a73d07b90f0117e6de3f"
812
+
dependencies = [
813
+
"cordyceps",
814
+
"loom",
815
+
"mutex-traits",
816
+
"mycelium-bitfield",
817
+
"pin-project",
818
+
"portable-atomic",
819
+
"tracing",
820
+
]
821
+
822
+
[[package]]
823
+
name = "matchers"
824
+
version = "0.2.0"
825
+
source = "registry+https://github.com/rust-lang/crates.io-index"
826
+
checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9"
827
+
dependencies = [
828
+
"regex-automata",
829
+
]
830
+
831
+
[[package]]
832
+
name = "memchr"
833
+
version = "2.7.5"
834
+
source = "registry+https://github.com/rust-lang/crates.io-index"
835
+
checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
836
+
837
+
[[package]]
838
+
name = "microbit-null"
839
+
version = "0.1.0"
840
+
dependencies = [
841
+
"bbq2",
842
+
"cortex-m",
843
+
"cortex-m-rt",
844
+
"defmt 1.0.1",
845
+
"defmt-rtt",
846
+
"embassy-executor",
847
+
"embassy-nrf",
848
+
"embassy-sync 0.7.2",
849
+
"embassy-time",
850
+
"embassy-usb",
851
+
"ergot",
852
+
"mutex",
853
+
"panic-probe",
854
+
"static_cell",
855
+
]
856
+
857
+
[[package]]
858
+
name = "mutex"
859
+
version = "1.0.2"
860
+
source = "registry+https://github.com/rust-lang/crates.io-index"
861
+
checksum = "f23bf5944734b7a5d1bd0a9b594213dd04de471fd3d3a1bfce672913dd72d606"
862
+
dependencies = [
863
+
"critical-section",
864
+
"mutex-traits",
865
+
]
866
+
867
+
[[package]]
868
+
name = "mutex-traits"
869
+
version = "1.0.1"
870
+
source = "registry+https://github.com/rust-lang/crates.io-index"
871
+
checksum = "3929f2b5633d29cf7b6624992e5f3c1e9334f1193423e12d17be4faf678cde3f"
872
+
873
+
[[package]]
874
+
name = "mycelium-bitfield"
875
+
version = "0.1.5"
876
+
source = "registry+https://github.com/rust-lang/crates.io-index"
877
+
checksum = "24e0cc5e2c585acbd15c5ce911dff71e1f4d5313f43345873311c4f5efd741cc"
878
+
879
+
[[package]]
880
+
name = "nb"
881
+
version = "0.1.3"
882
+
source = "registry+https://github.com/rust-lang/crates.io-index"
883
+
checksum = "801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f"
884
+
dependencies = [
885
+
"nb 1.1.0",
886
+
]
887
+
888
+
[[package]]
889
+
name = "nb"
890
+
version = "1.1.0"
891
+
source = "registry+https://github.com/rust-lang/crates.io-index"
892
+
checksum = "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d"
893
+
894
+
[[package]]
895
+
name = "nrf-pac"
896
+
version = "0.1.0"
897
+
source = "registry+https://github.com/rust-lang/crates.io-index"
898
+
checksum = "d334027d6703534f2a80de0794ae435c0e029358d28278533d3935e69b221b01"
899
+
dependencies = [
900
+
"cortex-m",
901
+
"cortex-m-rt",
902
+
]
903
+
904
+
[[package]]
905
+
name = "nu-ansi-term"
906
+
version = "0.50.1"
907
+
source = "registry+https://github.com/rust-lang/crates.io-index"
908
+
checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399"
909
+
dependencies = [
910
+
"windows-sys",
911
+
]
912
+
913
+
[[package]]
914
+
name = "num-traits"
915
+
version = "0.2.19"
916
+
source = "registry+https://github.com/rust-lang/crates.io-index"
917
+
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
918
+
dependencies = [
919
+
"autocfg",
920
+
]
921
+
922
+
[[package]]
923
+
name = "once_cell"
924
+
version = "1.21.3"
925
+
source = "registry+https://github.com/rust-lang/crates.io-index"
926
+
checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
927
+
928
+
[[package]]
929
+
name = "panic-probe"
930
+
version = "1.0.0"
931
+
source = "registry+https://github.com/rust-lang/crates.io-index"
932
+
checksum = "fd402d00b0fb94c5aee000029204a46884b1262e0c443f166d86d2c0747e1a1a"
933
+
dependencies = [
934
+
"cortex-m",
935
+
"defmt 1.0.1",
936
+
]
937
+
938
+
[[package]]
939
+
name = "pin-project"
940
+
version = "1.1.10"
941
+
source = "registry+https://github.com/rust-lang/crates.io-index"
942
+
checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a"
943
+
dependencies = [
944
+
"pin-project-internal",
945
+
]
946
+
947
+
[[package]]
948
+
name = "pin-project-internal"
949
+
version = "1.1.10"
950
+
source = "registry+https://github.com/rust-lang/crates.io-index"
951
+
checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861"
952
+
dependencies = [
953
+
"proc-macro2",
954
+
"quote",
955
+
"syn 2.0.106",
956
+
]
957
+
958
+
[[package]]
959
+
name = "pin-project-lite"
960
+
version = "0.2.16"
961
+
source = "registry+https://github.com/rust-lang/crates.io-index"
962
+
checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
963
+
964
+
[[package]]
965
+
name = "pin-utils"
966
+
version = "0.1.0"
967
+
source = "registry+https://github.com/rust-lang/crates.io-index"
968
+
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
969
+
970
+
[[package]]
971
+
name = "portable-atomic"
972
+
version = "1.11.1"
973
+
source = "registry+https://github.com/rust-lang/crates.io-index"
974
+
checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
975
+
976
+
[[package]]
977
+
name = "postcard"
978
+
version = "1.1.3"
979
+
source = "registry+https://github.com/rust-lang/crates.io-index"
980
+
checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24"
981
+
dependencies = [
982
+
"cobs 0.3.0",
983
+
"heapless 0.7.17",
984
+
"serde",
985
+
]
986
+
987
+
[[package]]
988
+
name = "postcard-derive"
989
+
version = "0.2.2"
990
+
source = "registry+https://github.com/rust-lang/crates.io-index"
991
+
checksum = "e0232bd009a197ceec9cc881ba46f727fcd8060a2d8d6a9dde7a69030a6fe2bb"
992
+
dependencies = [
993
+
"proc-macro2",
994
+
"quote",
995
+
"syn 2.0.106",
996
+
]
997
+
998
+
[[package]]
999
+
name = "postcard-schema"
1000
+
version = "0.2.5"
1001
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1002
+
checksum = "9475666d89f42231a0a57da32d5f6ca7f9b5cd4c335ea1fe8f3278215b7a21ff"
1003
+
dependencies = [
1004
+
"heapless 0.9.1",
1005
+
"postcard-derive",
1006
+
"serde",
1007
+
]
1008
+
1009
+
[[package]]
1010
+
name = "proc-macro-error-attr2"
1011
+
version = "2.0.0"
1012
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1013
+
checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
1014
+
dependencies = [
1015
+
"proc-macro2",
1016
+
"quote",
1017
+
]
1018
+
1019
+
[[package]]
1020
+
name = "proc-macro-error2"
1021
+
version = "2.0.1"
1022
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1023
+
checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
1024
+
dependencies = [
1025
+
"proc-macro-error-attr2",
1026
+
"proc-macro2",
1027
+
"quote",
1028
+
"syn 2.0.106",
1029
+
]
1030
+
1031
+
[[package]]
1032
+
name = "proc-macro2"
1033
+
version = "1.0.101"
1034
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1035
+
checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de"
1036
+
dependencies = [
1037
+
"unicode-ident",
1038
+
]
1039
+
1040
+
[[package]]
1041
+
name = "quote"
1042
+
version = "1.0.40"
1043
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1044
+
checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
1045
+
dependencies = [
1046
+
"proc-macro2",
1047
+
]
1048
+
1049
+
[[package]]
1050
+
name = "rand_core"
1051
+
version = "0.6.4"
1052
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1053
+
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
1054
+
1055
+
[[package]]
1056
+
name = "rand_core"
1057
+
version = "0.9.3"
1058
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1059
+
checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
1060
+
1061
+
[[package]]
1062
+
name = "regex-automata"
1063
+
version = "0.4.10"
1064
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1065
+
checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6"
1066
+
dependencies = [
1067
+
"aho-corasick",
1068
+
"memchr",
1069
+
"regex-syntax",
1070
+
]
1071
+
1072
+
[[package]]
1073
+
name = "regex-syntax"
1074
+
version = "0.8.6"
1075
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1076
+
checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001"
1077
+
1078
+
[[package]]
1079
+
name = "rustc_version"
1080
+
version = "0.2.3"
1081
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1082
+
checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
1083
+
dependencies = [
1084
+
"semver 0.9.0",
1085
+
]
1086
+
1087
+
[[package]]
1088
+
name = "rustc_version"
1089
+
version = "0.4.1"
1090
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1091
+
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
1092
+
dependencies = [
1093
+
"semver 1.0.26",
1094
+
]
1095
+
1096
+
[[package]]
1097
+
name = "rustversion"
1098
+
version = "1.0.22"
1099
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1100
+
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
1101
+
1102
+
[[package]]
1103
+
name = "scoped-tls"
1104
+
version = "1.0.1"
1105
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1106
+
checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
1107
+
1108
+
[[package]]
1109
+
name = "scopeguard"
1110
+
version = "1.2.0"
1111
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1112
+
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
1113
+
1114
+
[[package]]
1115
+
name = "semver"
1116
+
version = "0.9.0"
1117
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1118
+
checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
1119
+
dependencies = [
1120
+
"semver-parser",
1121
+
]
1122
+
1123
+
[[package]]
1124
+
name = "semver"
1125
+
version = "1.0.26"
1126
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1127
+
checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
1128
+
1129
+
[[package]]
1130
+
name = "semver-parser"
1131
+
version = "0.7.0"
1132
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1133
+
checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
1134
+
1135
+
[[package]]
1136
+
name = "serde"
1137
+
version = "1.0.219"
1138
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1139
+
checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
1140
+
dependencies = [
1141
+
"serde_derive",
1142
+
]
1143
+
1144
+
[[package]]
1145
+
name = "serde_derive"
1146
+
version = "1.0.219"
1147
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1148
+
checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
1149
+
dependencies = [
1150
+
"proc-macro2",
1151
+
"quote",
1152
+
"syn 2.0.106",
1153
+
]
1154
+
1155
+
[[package]]
1156
+
name = "sharded-slab"
1157
+
version = "0.1.7"
1158
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1159
+
checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
1160
+
dependencies = [
1161
+
"lazy_static",
1162
+
]
1163
+
1164
+
[[package]]
1165
+
name = "shlex"
1166
+
version = "1.3.0"
1167
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1168
+
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
1169
+
1170
+
[[package]]
1171
+
name = "smallvec"
1172
+
version = "1.15.1"
1173
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1174
+
checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
1175
+
1176
+
[[package]]
1177
+
name = "spin"
1178
+
version = "0.9.8"
1179
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1180
+
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
1181
+
dependencies = [
1182
+
"lock_api",
1183
+
]
1184
+
1185
+
[[package]]
1186
+
name = "ssmarshal"
1187
+
version = "1.0.0"
1188
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1189
+
checksum = "f3e6ad23b128192ed337dfa4f1b8099ced0c2bf30d61e551b65fda5916dbb850"
1190
+
dependencies = [
1191
+
"encode_unicode",
1192
+
"serde",
1193
+
]
1194
+
1195
+
[[package]]
1196
+
name = "stable_deref_trait"
1197
+
version = "1.2.0"
1198
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1199
+
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
1200
+
1201
+
[[package]]
1202
+
name = "static_cell"
1203
+
version = "2.1.1"
1204
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1205
+
checksum = "0530892bb4fa575ee0da4b86f86c667132a94b74bb72160f58ee5a4afec74c23"
1206
+
dependencies = [
1207
+
"portable-atomic",
1208
+
]
1209
+
1210
+
[[package]]
1211
+
name = "strsim"
1212
+
version = "0.11.1"
1213
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1214
+
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
1215
+
1216
+
[[package]]
1217
+
name = "syn"
1218
+
version = "1.0.109"
1219
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1220
+
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
1221
+
dependencies = [
1222
+
"proc-macro2",
1223
+
"quote",
1224
+
"unicode-ident",
1225
+
]
1226
+
1227
+
[[package]]
1228
+
name = "syn"
1229
+
version = "2.0.106"
1230
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1231
+
checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6"
1232
+
dependencies = [
1233
+
"proc-macro2",
1234
+
"quote",
1235
+
"unicode-ident",
1236
+
]
1237
+
1238
+
[[package]]
1239
+
name = "thiserror"
1240
+
version = "2.0.16"
1241
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1242
+
checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0"
1243
+
dependencies = [
1244
+
"thiserror-impl",
1245
+
]
1246
+
1247
+
[[package]]
1248
+
name = "thiserror-impl"
1249
+
version = "2.0.16"
1250
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1251
+
checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960"
1252
+
dependencies = [
1253
+
"proc-macro2",
1254
+
"quote",
1255
+
"syn 2.0.106",
1256
+
]
1257
+
1258
+
[[package]]
1259
+
name = "thread_local"
1260
+
version = "1.1.9"
1261
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1262
+
checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185"
1263
+
dependencies = [
1264
+
"cfg-if",
1265
+
]
1266
+
1267
+
[[package]]
1268
+
name = "tracing"
1269
+
version = "0.1.41"
1270
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1271
+
checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
1272
+
dependencies = [
1273
+
"pin-project-lite",
1274
+
"tracing-attributes",
1275
+
"tracing-core",
1276
+
]
1277
+
1278
+
[[package]]
1279
+
name = "tracing-attributes"
1280
+
version = "0.1.30"
1281
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1282
+
checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903"
1283
+
dependencies = [
1284
+
"proc-macro2",
1285
+
"quote",
1286
+
"syn 2.0.106",
1287
+
]
1288
+
1289
+
[[package]]
1290
+
name = "tracing-core"
1291
+
version = "0.1.34"
1292
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1293
+
checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678"
1294
+
dependencies = [
1295
+
"once_cell",
1296
+
"valuable",
1297
+
]
1298
+
1299
+
[[package]]
1300
+
name = "tracing-log"
1301
+
version = "0.2.0"
1302
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1303
+
checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
1304
+
dependencies = [
1305
+
"log",
1306
+
"once_cell",
1307
+
"tracing-core",
1308
+
]
1309
+
1310
+
[[package]]
1311
+
name = "tracing-subscriber"
1312
+
version = "0.3.20"
1313
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1314
+
checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5"
1315
+
dependencies = [
1316
+
"matchers",
1317
+
"nu-ansi-term",
1318
+
"once_cell",
1319
+
"regex-automata",
1320
+
"sharded-slab",
1321
+
"smallvec",
1322
+
"thread_local",
1323
+
"tracing",
1324
+
"tracing-core",
1325
+
"tracing-log",
1326
+
]
1327
+
1328
+
[[package]]
1329
+
name = "typenum"
1330
+
version = "1.18.0"
1331
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1332
+
checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
1333
+
1334
+
[[package]]
1335
+
name = "unicode-ident"
1336
+
version = "1.0.19"
1337
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1338
+
checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d"
1339
+
1340
+
[[package]]
1341
+
name = "usb-device"
1342
+
version = "0.3.2"
1343
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1344
+
checksum = "98816b1accafbb09085168b90f27e93d790b4bfa19d883466b5e53315b5f06a6"
1345
+
dependencies = [
1346
+
"heapless 0.8.0",
1347
+
"portable-atomic",
1348
+
]
1349
+
1350
+
[[package]]
1351
+
name = "usbd-hid"
1352
+
version = "0.8.2"
1353
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1354
+
checksum = "e6f291ab53d428685cc780f08a2eb9d5d6ff58622db2b36e239a4f715f1e184c"
1355
+
dependencies = [
1356
+
"serde",
1357
+
"ssmarshal",
1358
+
"usb-device",
1359
+
"usbd-hid-macros",
1360
+
]
1361
+
1362
+
[[package]]
1363
+
name = "usbd-hid-descriptors"
1364
+
version = "0.8.2"
1365
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1366
+
checksum = "0eee54712c5d778d2fb2da43b1ce5a7b5060886ef7b09891baeb4bf36910a3ed"
1367
+
dependencies = [
1368
+
"bitfield 0.14.0",
1369
+
]
1370
+
1371
+
[[package]]
1372
+
name = "usbd-hid-macros"
1373
+
version = "0.8.2"
1374
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1375
+
checksum = "bb573c76e7884035ac5e1ab4a81234c187a82b6100140af0ab45757650ccda38"
1376
+
dependencies = [
1377
+
"byteorder",
1378
+
"hashbrown",
1379
+
"log",
1380
+
"proc-macro2",
1381
+
"quote",
1382
+
"serde",
1383
+
"syn 1.0.109",
1384
+
"usbd-hid-descriptors",
1385
+
]
1386
+
1387
+
[[package]]
1388
+
name = "valuable"
1389
+
version = "0.1.1"
1390
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1391
+
checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
1392
+
1393
+
[[package]]
1394
+
name = "vcell"
1395
+
version = "0.1.3"
1396
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1397
+
checksum = "77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002"
1398
+
1399
+
[[package]]
1400
+
name = "version_check"
1401
+
version = "0.9.5"
1402
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1403
+
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
1404
+
1405
+
[[package]]
1406
+
name = "void"
1407
+
version = "1.0.2"
1408
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1409
+
checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
1410
+
1411
+
[[package]]
1412
+
name = "volatile-register"
1413
+
version = "0.2.2"
1414
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1415
+
checksum = "de437e2a6208b014ab52972a27e59b33fa2920d3e00fe05026167a1c509d19cc"
1416
+
dependencies = [
1417
+
"vcell",
1418
+
]
1419
+
1420
+
[[package]]
1421
+
name = "windows"
1422
+
version = "0.61.3"
1423
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1424
+
checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893"
1425
+
dependencies = [
1426
+
"windows-collections",
1427
+
"windows-core",
1428
+
"windows-future",
1429
+
"windows-link",
1430
+
"windows-numerics",
1431
+
]
1432
+
1433
+
[[package]]
1434
+
name = "windows-collections"
1435
+
version = "0.2.0"
1436
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1437
+
checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8"
1438
+
dependencies = [
1439
+
"windows-core",
1440
+
]
1441
+
1442
+
[[package]]
1443
+
name = "windows-core"
1444
+
version = "0.61.2"
1445
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1446
+
checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3"
1447
+
dependencies = [
1448
+
"windows-implement",
1449
+
"windows-interface",
1450
+
"windows-link",
1451
+
"windows-result",
1452
+
"windows-strings",
1453
+
]
1454
+
1455
+
[[package]]
1456
+
name = "windows-future"
1457
+
version = "0.2.1"
1458
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1459
+
checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e"
1460
+
dependencies = [
1461
+
"windows-core",
1462
+
"windows-link",
1463
+
"windows-threading",
1464
+
]
1465
+
1466
+
[[package]]
1467
+
name = "windows-implement"
1468
+
version = "0.60.0"
1469
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1470
+
checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836"
1471
+
dependencies = [
1472
+
"proc-macro2",
1473
+
"quote",
1474
+
"syn 2.0.106",
1475
+
]
1476
+
1477
+
[[package]]
1478
+
name = "windows-interface"
1479
+
version = "0.59.1"
1480
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1481
+
checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8"
1482
+
dependencies = [
1483
+
"proc-macro2",
1484
+
"quote",
1485
+
"syn 2.0.106",
1486
+
]
1487
+
1488
+
[[package]]
1489
+
name = "windows-link"
1490
+
version = "0.1.3"
1491
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1492
+
checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a"
1493
+
1494
+
[[package]]
1495
+
name = "windows-numerics"
1496
+
version = "0.2.0"
1497
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1498
+
checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1"
1499
+
dependencies = [
1500
+
"windows-core",
1501
+
"windows-link",
1502
+
]
1503
+
1504
+
[[package]]
1505
+
name = "windows-result"
1506
+
version = "0.3.4"
1507
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1508
+
checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"
1509
+
dependencies = [
1510
+
"windows-link",
1511
+
]
1512
+
1513
+
[[package]]
1514
+
name = "windows-strings"
1515
+
version = "0.4.2"
1516
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1517
+
checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57"
1518
+
dependencies = [
1519
+
"windows-link",
1520
+
]
1521
+
1522
+
[[package]]
1523
+
name = "windows-sys"
1524
+
version = "0.52.0"
1525
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1526
+
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
1527
+
dependencies = [
1528
+
"windows-targets",
1529
+
]
1530
+
1531
+
[[package]]
1532
+
name = "windows-targets"
1533
+
version = "0.52.6"
1534
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1535
+
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
1536
+
dependencies = [
1537
+
"windows_aarch64_gnullvm",
1538
+
"windows_aarch64_msvc",
1539
+
"windows_i686_gnu",
1540
+
"windows_i686_gnullvm",
1541
+
"windows_i686_msvc",
1542
+
"windows_x86_64_gnu",
1543
+
"windows_x86_64_gnullvm",
1544
+
"windows_x86_64_msvc",
1545
+
]
1546
+
1547
+
[[package]]
1548
+
name = "windows-threading"
1549
+
version = "0.1.0"
1550
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1551
+
checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6"
1552
+
dependencies = [
1553
+
"windows-link",
1554
+
]
1555
+
1556
+
[[package]]
1557
+
name = "windows_aarch64_gnullvm"
1558
+
version = "0.52.6"
1559
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1560
+
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
1561
+
1562
+
[[package]]
1563
+
name = "windows_aarch64_msvc"
1564
+
version = "0.52.6"
1565
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1566
+
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
1567
+
1568
+
[[package]]
1569
+
name = "windows_i686_gnu"
1570
+
version = "0.52.6"
1571
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1572
+
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
1573
+
1574
+
[[package]]
1575
+
name = "windows_i686_gnullvm"
1576
+
version = "0.52.6"
1577
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1578
+
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
1579
+
1580
+
[[package]]
1581
+
name = "windows_i686_msvc"
1582
+
version = "0.52.6"
1583
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1584
+
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
1585
+
1586
+
[[package]]
1587
+
name = "windows_x86_64_gnu"
1588
+
version = "0.52.6"
1589
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1590
+
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
1591
+
1592
+
[[package]]
1593
+
name = "windows_x86_64_gnullvm"
1594
+
version = "0.52.6"
1595
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1596
+
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
1597
+
1598
+
[[package]]
1599
+
name = "windows_x86_64_msvc"
1600
+
version = "0.52.6"
1601
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1602
+
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
1603
+
1604
+
[[package]]
1605
+
name = "zerocopy"
1606
+
version = "0.8.27"
1607
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1608
+
checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c"
1609
+
dependencies = [
1610
+
"zerocopy-derive",
1611
+
]
1612
+
1613
+
[[package]]
1614
+
name = "zerocopy-derive"
1615
+
version = "0.8.27"
1616
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1617
+
checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831"
1618
+
dependencies = [
1619
+
"proc-macro2",
1620
+
"quote",
1621
+
"syn 2.0.106",
1622
+
]
+42
demos/microbit/Cargo.toml
+42
demos/microbit/Cargo.toml
···
···
1
+
[workspace]
2
+
members = [
3
+
"microbit-null",
4
+
]
5
+
resolver = "2"
6
+
7
+
[workspace.dependencies]
8
+
ergot = { path = "../../crates/ergot", features = ["embassy-usb-v0_5"] }
9
+
10
+
bbq2 = { version = "0.4.1", default-features = false, features = ["critical-section", "maitake-sync-0_2"] }
11
+
cortex-m = { version = "0.7.7", features = ["inline-asm", "critical-section-single-core"] }
12
+
embassy-executor = { version = "0.7.0", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "executor-interrupt", "defmt"] }
13
+
embassy-nrf = { version = "0.5.0", features = ["defmt", "nrf52833", "time-driver-rtc1", "gpiote", "unstable-pac", "time"] }
14
+
embassy-time = { version = "0.4.0", features = ["defmt", "defmt-timestamp-uptime"] }
15
+
mutex = { version = "1.0.2", features = ["impl-unsafe-cortex-m-single-core"] }
16
+
panic-probe = { version = "1.0.0", features = ["print-defmt"] }
17
+
18
+
cortex-m-rt = "0.7.5"
19
+
defmt = "1.0.1"
20
+
defmt-rtt = "1.0.0"
21
+
static_cell = "2.1.1"
22
+
embassy-usb = "0.5.0"
23
+
embassy-sync = "0.7.0"
24
+
25
+
[profile.release]
26
+
debug = 2
27
+
lto = true
28
+
opt-level = 'z'
29
+
codegen-units = 1
30
+
incremental = false
31
+
32
+
[profile.ci]
33
+
inherits = "dev"
34
+
debug = false
35
+
strip = true
36
+
debug-assertions = true
37
+
overflow-checks = true
38
+
lto = false
39
+
panic = 'unwind'
40
+
incremental = false
41
+
codegen-units = 256
42
+
rpath = false
+26
demos/microbit/README.md
+26
demos/microbit/README.md
···
···
1
+
# Ergot demos for the micro:bit v2
2
+
3
+
These demos show how to use ergot on the micro:bit v2, which uses the nrf52833 chip.
4
+
The demos are similar to the nrf52840 ones, but adopting to the different hardware
5
+
and specific to this board, which you might already have laying around.
6
+
7
+
No board support crate is used, and we drive the hardware, for simplicity, directly with `embassy_nrf`.
8
+
9
+
This demos are board specific to provide the simplest possible starting experience
10
+
utilizing a low-cost and widely available board.
11
+
In that spirit, code comments are sprinkled throughout more extensively than usual.
12
+
13
+
To run these demos, you need a micro:bit v2 board, a USB cable, and [probe-rs](https://probe.rs/).
14
+
A good summary of how to get started with Rust and the micro:bit v2 is available in the
15
+
[Embedded Rust Discovery Book](https://docs.rust-embedded.org/discovery-mb2/index.html).
16
+
17
+
## Demos currently implemented:
18
+
19
+
- `microbit-null`: A minimal demo that does not communicate with the outside world.
20
+
Message passing between tasks is implemented with ergot. After loading, press the two buttons and/or
21
+
the touch logo to see some LEDs light up.
22
+
23
+
## Further information:
24
+
25
+
- [micro:bit Circuit Schematics, assembly and test point map](https://tech.microbit.org/hardware/schematic/)
26
+
- [micro:bit Hardware schematic](https://github.com/microbit-foundation/microbit-v2-hardware)
+22
demos/microbit/microbit-null/Cargo.toml
+22
demos/microbit/microbit-null/Cargo.toml
···
···
1
+
[package]
2
+
name = "microbit-null"
3
+
version = "0.1.0"
4
+
edition = "2021"
5
+
6
+
[dependencies]
7
+
ergot = { workspace = true }
8
+
9
+
bbq2 = { workspace = true }
10
+
cortex-m = { workspace = true }
11
+
embassy-executor = { workspace = true }
12
+
embassy-nrf = { workspace = true }
13
+
embassy-time = { workspace = true }
14
+
mutex = { workspace = true }
15
+
panic-probe = { workspace = true }
16
+
17
+
cortex-m-rt = { workspace = true }
18
+
defmt = { workspace = true }
19
+
defmt-rtt = { workspace = true }
20
+
static_cell = { workspace = true }
21
+
embassy-usb = { workspace = true }
22
+
embassy-sync = { workspace = true }
+35
demos/microbit/microbit-null/build.rs
+35
demos/microbit/microbit-null/build.rs
···
···
1
+
//! This build script copies the `memory.x` file from the crate root into
2
+
//! a directory where the linker can always find it at build time.
3
+
//! For many projects this is optional, as the linker always searches the
4
+
//! project root directory -- wherever `Cargo.toml` is. However, if you
5
+
//! are using a workspace or have a more complicated build setup, this
6
+
//! build script becomes required. Additionally, by requesting that
7
+
//! Cargo re-run the build script whenever `memory.x` is changed,
8
+
//! updating `memory.x` ensures a rebuild of the application with the
9
+
//! new memory settings.
10
+
11
+
use std::env;
12
+
use std::fs::File;
13
+
use std::io::Write;
14
+
use std::path::PathBuf;
15
+
16
+
fn main() {
17
+
// Put `memory.x` in our output directory and ensure it's
18
+
// on the linker search path.
19
+
let out = &PathBuf::from(env::var_os("OUT_DIR").unwrap());
20
+
File::create(out.join("memory.x"))
21
+
.unwrap()
22
+
.write_all(include_bytes!("memory.x"))
23
+
.unwrap();
24
+
println!("cargo:rustc-link-search={}", out.display());
25
+
26
+
// By default, Cargo will re-run a build script whenever
27
+
// any file in the project changes. By specifying `memory.x`
28
+
// here, we ensure the build script is only re-run when
29
+
// `memory.x` is changed.
30
+
println!("cargo:rerun-if-changed=memory.x");
31
+
32
+
println!("cargo:rustc-link-arg-bins=--nmagic");
33
+
println!("cargo:rustc-link-arg-bins=-Tlink.x");
34
+
println!("cargo:rustc-link-arg-bins=-Tdefmt.x");
35
+
}
+6
demos/microbit/microbit-null/memory.x
+6
demos/microbit/microbit-null/memory.x
+147
demos/microbit/microbit-null/src/main.rs
+147
demos/microbit/microbit-null/src/main.rs
···
···
1
+
//! ergot null-interface demo for microbit
2
+
3
+
#![no_std]
4
+
#![no_main]
5
+
6
+
use core::{mem, pin::pin};
7
+
8
+
use defmt::info;
9
+
use embassy_executor::{task, Spawner};
10
+
use embassy_nrf::{
11
+
config::{Config as NrfConfig, HfclkSource},
12
+
gpio::{Input, Level, Output, OutputDrive, Pull},
13
+
};
14
+
use embassy_time::{Duration, WithTimeout};
15
+
use ergot::{endpoint, interface_manager::profiles::null::Null, topic, Address, NetStack};
16
+
use mutex::raw_impls::cs::CriticalSectionRawMutex;
17
+
18
+
use {defmt_rtt as _, panic_probe as _};
19
+
20
+
pub static STACK: NetStack<CriticalSectionRawMutex, Null> = NetStack::new();
21
+
22
+
// Define an endpoint for toggling an LED and a topic for button presses
23
+
endpoint!(LedEndpoint, bool, (), "led/set");
24
+
topic!(ButtonPressedTopic, u8, "button/press");
25
+
26
+
#[embassy_executor::main]
27
+
async fn main(spawner: Spawner) {
28
+
// SYSTEM INIT
29
+
info!("Start");
30
+
let mut config = NrfConfig::default();
31
+
config.hfclk_source = HfclkSource::ExternalXtal;
32
+
let p = embassy_nrf::init(Default::default());
33
+
34
+
// Tasks continue running after main returns.
35
+
36
+
// Configure the LED pins that we use.
37
+
let led_pins = [
38
+
Output::new(p.P0_28, Level::High, OutputDrive::Standard), // LED col 1
39
+
Output::new(p.P0_31, Level::High, OutputDrive::Standard), // LED col 3
40
+
Output::new(p.P0_30, Level::High, OutputDrive::Standard), // LED col 5
41
+
];
42
+
43
+
let led_names = ["LED1", "LED2", "LED3"];
44
+
45
+
// Put common anode to high and prevent it from being dropped when main returns.
46
+
let row3 = Output::new(p.P0_15, Level::High, OutputDrive::Standard);
47
+
mem::forget(row3);
48
+
49
+
// Configure the button pins that we use.
50
+
let btn_pins = [
51
+
Input::new(p.P0_14, Pull::Up), // Button A = 1
52
+
Input::new(p.P1_04, Pull::None), // Touch Logo = 2, must be floating
53
+
Input::new(p.P0_23, Pull::Up), // Button B = 3
54
+
];
55
+
56
+
// Spawn the LED servers, which will toggle the LEDs when adequate messages are received.
57
+
for (name, led) in led_names.iter().zip(led_pins.into_iter()) {
58
+
spawner.must_spawn(led_server(name, led));
59
+
}
60
+
61
+
// Spawn the button workers, which will listen for button presses and message these events
62
+
for ((btn_idx, name), btn) in led_names.iter().enumerate().zip(btn_pins.into_iter()) {
63
+
// Note: the following `usize` to `u8` cast is safe, as we have only 3 buttons
64
+
spawner.must_spawn(button_worker(btn, name, (btn_idx + 1) as u8));
65
+
}
66
+
67
+
// Then start two tasks that just both listen and log every button press event
68
+
spawner.must_spawn(press_listener(1));
69
+
spawner.must_spawn(press_listener(2));
70
+
}
71
+
72
+
/// A task that listens to button press broadcast messages.
73
+
///
74
+
/// It subscribes to the `ButtonPressedTopic` and logs every message it receives.
75
+
#[task(pool_size = 2)]
76
+
async fn press_listener(idx: u8) {
77
+
// Declare and subscribe to the button pressed topic
78
+
let recv = STACK
79
+
.topics()
80
+
.bounded_receiver::<ButtonPressedTopic, 4>(None);
81
+
let recv = pin!(recv);
82
+
let mut recv = recv.subscribe();
83
+
84
+
loop {
85
+
// Now we wait for messages and log them when they arrive
86
+
let msg = recv.recv().await;
87
+
defmt::info!("Listener #{=u8}, button {=u8} pressed", idx, msg.t);
88
+
}
89
+
}
90
+
91
+
/// A task to run the LED server.
92
+
///
93
+
/// Creates a socket for the `LedEndpoint` and waits for the incoming messages.
94
+
#[task(pool_size = 4)]
95
+
async fn led_server(name: &'static str, mut led: Output<'static>) {
96
+
let socket = STACK
97
+
.endpoints()
98
+
.bounded_server::<LedEndpoint, 4>(Some(name));
99
+
let socket = pin!(socket);
100
+
let mut hdl = socket.attach();
101
+
102
+
loop {
103
+
let _ = hdl
104
+
.serve(async |on| {
105
+
defmt::info!("{=str} set {=bool}", name, *on);
106
+
if *on {
107
+
led.set_low();
108
+
} else {
109
+
led.set_high();
110
+
}
111
+
})
112
+
.await;
113
+
}
114
+
}
115
+
116
+
/// A task to handle button presses.
117
+
///
118
+
/// When a button is pressed, it sends a message to the corresponding `LedEndpoint` to turn the
119
+
/// specific LED on/off. It also broadcasts a message to the `ButtonPressedTopic`.
120
+
#[task(pool_size = 4)]
121
+
async fn button_worker(mut btn: Input<'static>, name: &'static str, btn_idx: u8) {
122
+
// Create a client for the corresponding `LedENdpoint`.
123
+
let client = STACK
124
+
.endpoints()
125
+
.client::<LedEndpoint>(Address::unknown(), Some(name));
126
+
loop {
127
+
btn.wait_for_low().await;
128
+
let res = btn
129
+
.wait_for_high()
130
+
.with_timeout(Duration::from_millis(5))
131
+
.await;
132
+
if res.is_ok() {
133
+
continue;
134
+
}
135
+
136
+
// So the button was pressed, turn on the LED by sending a message...
137
+
client.request(&true).await.unwrap();
138
+
// ... and broadcast to the `ButtonPressedTopic`
139
+
let _ = STACK
140
+
.topics()
141
+
.broadcast::<ButtonPressedTopic>(&btn_idx, None);
142
+
143
+
btn.wait_for_high().await;
144
+
// Button released, turn off the LED
145
+
client.request(&false).await.unwrap();
146
+
}
147
+
}
+2
demos/microbit/rust-toolchain.toml
+2
demos/microbit/rust-toolchain.toml
+1
fmtall.sh
+1
fmtall.sh
···
9
# Format all the demo workspaces
10
cargo fmt --manifest-path=./demos/shared-icd/Cargo.toml
11
cargo fmt --all --manifest-path=./demos/std/Cargo.toml
12
cargo fmt --all --manifest-path=./demos/nrf52840/Cargo.toml
13
cargo fmt --all --manifest-path=./demos/rp2040/Cargo.toml
14
cargo fmt --all --manifest-path=./demos/rp2350/Cargo.toml
···
9
# Format all the demo workspaces
10
cargo fmt --manifest-path=./demos/shared-icd/Cargo.toml
11
cargo fmt --all --manifest-path=./demos/std/Cargo.toml
12
+
cargo fmt --all --manifest-path=./demos/microbit/Cargo.toml
13
cargo fmt --all --manifest-path=./demos/nrf52840/Cargo.toml
14
cargo fmt --all --manifest-path=./demos/rp2040/Cargo.toml
15
cargo fmt --all --manifest-path=./demos/rp2350/Cargo.toml