DW1000/DWM1001 Repository
This repository contains a DW1000 driver and a DWM1001 board support crate. Please see their respective README.md files for more info.
Rust driver crate for the Decawave DW1000 UWB transceiver
This repository contains a DW1000 driver and a DWM1001 board support crate. Please see their respective README.md files for more info.
Original issue: hannobraun/rust-dwm1001#13
Led
currently uses the generic pin type (P0_Pin
), however, each instance is actually restricted to a specific pin, making the struct not as type-safe as it could be. It would be safer, if it had a type parameter to identify the pin. Then the pin each instance needs could be made obvious in Leds
.
This issue is blocked until nrf-rs/nrf-hal#8 is accepted and implemented.
Original issue: hannobraun/rust-dwm1001#94
embedded-hal
has released new versions of the digital I/O traits and deprecated the old ones. This results in deprecation warnings in the code.
This isn't something we can fix here, as nrf52832-hal
needs to be updated.
Currently the field access code only supports unsigned integers as types for the fields. It would be great to support bool
and custom enums, too.
I think this should be relatively straight-forward to add. It might even be possible to extend the macro syntax to generate custom field enums.
error: `[Frame::write]` cannot be resolved, ignoring it...
--> /home/james/.cargo/git/checkouts/ieee-802.15.4-2c4cb3c4e568cea2/6d2059f/src/mac.rs:74:12
|
74 | /// Tells [`Frame::write`] whether to write the footer
| ^^^^^^^^^^^^^^ cannot be resolved, ignoring
|
note: lint level defined here
--> rust-dw1000/src/lib.rs:7:9
|
7 | #![deny(warnings)]
| ^^^^^^^^
= note: #[deny(intra_doc_link_resolution_failure)] implied by #[deny(warnings)]
= help: to escape `[` and `]` characters, just add '\' before them like `\[` or `\]`
error: `[Ping]` cannot be resolved, ignoring it...
--> rust-dw1000/src/ranging/mod.rs:16:43
|
16 | //! 2. Anchors regularly send out pings ([`Ping`]).
| ^^^^^^ cannot be resolved, ignoring
|
= help: to escape `[` and `]` characters, just add '\' before them like `\[` or `\]`
error: `[Request]` cannot be resolved, ignoring it...
--> rust-dw1000/src/ranging/mod.rs:18:10
|
18 | //! ([`Request`]) for each ping they receive.
| ^^^^^^^^^ cannot be resolved, ignoring
|
= help: to escape `[` and `]` characters, just add '\' before them like `\[` or `\]`
error: `[Response]` cannot be resolved, ignoring it...
--> rust-dw1000/src/ranging/mod.rs:20:19
|
20 | //! response ([`Response`]).
| ^^^^^^^^^^ cannot be resolved, ignoring
|
= help: to escape `[` and `]` characters, just add '\' before them like `\[` or `\]`
error: Could not document `dw1000`.
Probably worth adding cargo doc
to the CI.
According to the DW1000 data sheet, the transmit power can vary based on the supply voltage. This can have effects on ranging accuracy.
Consider taking that into account, somehow, when measuring range.
The DW1000 register interface allows for addressing within a register by using a sub-index. This can be required for accessing larger registers, especially since the nRF52832's[1] SPIM peripheral is somewhat restricted in the buffer sizes it supports (also see jamesmunns/nrf52-hal#14).
[1] The nRF52832 is especially relevant to this crate, as it's the microcontroller used on the DWM1001 board.
I've purchased and mounted two dwm1000 modules onto breakout boards which I have wired up to some raspberry pi picos as a first test for an indoor positioning system I'm working on. I was able to get the dw1000_id.rs example working and got correct id values back, but when I built one of my picos for tx and one for rx, I never receive a message on the rx programmed device.
After some searching I found https://decaforum.decawave.com/t/i-can-not-receive/838 which seems similar to my issue (no received messages) and the decawave folks suggest inspecting (or printing out) the sys_status register to see if the receiving module changes that register at all when a message is expected.
I then started digging through the dw1000 module code to see if there was a way I could access that information from the high level api, but it seems like its only available through flags in the low level api.
TLDR: is there a way to access the sys_status flags in the high level api and or how would you recommend debugging a lack of receiving (or sending) messages ?
The current unit tests are really not sufficient and a maintenance burden (I'm likely to remove them in an upcoming pull request).
Once embedded-hal is supported, an integration test suite should be added. This issue is currently blocked by #5.
RX_BUFFER
and TX_BUFFER
both have a length of 1024 octets, but only 127 of those are supported in the code right now. To support the full size of the register, we'd need one of the following capabilities:
127 happens to the maximum length of UWB frames according to the IEEE 802.15.4 standard, but the DW1000 support longer, non-standard frame lengths. Therefore it would be nice to support the full sizes of RX_BUFFER
and TX_BUFFER
.
#147 formats the code using cargo fmt
, but doesn't update the CI build to enforce that. I think this should be done, as otherwise the formatting is going to drift again, over time.
When doing that, it might be worth deciding whether to include any formatting configuration that deviates from the default. Personally, I'm always changing the maximum line width to 80 characters (max_width = 80
), as any other value is objectively too long or too short (no doubt about it ๐).
Blocked on #128.
This crate contains custom field access code. Since this code isn't in any way specific to this crate, I think it would be better to move it out.
I looked for libraries before implementing the code. The only thing that came close to what I needed was bitfield, but that doesn't support byte slices as the type of the bit field, which is what I needed.
I think this issue could be solved in either of these 3 ways:
Right now, you need to do something like this to read
/write
/modify
registers:
dw1000.write::<dw1000::EUI, _>(|w| ... );
I'd like it to look more like this:
dw1000.eui.write(|w| ... );
Many fields use data types that are too large to fit into the field (like using u8
for a field of 3 bits). The field access code truncates values before writing them to a field. This should be documented somewhere.
This crate should depend on embedded-hal, not any specific HAL implementation. Right now it depends on nrf52-hal though, making this crate unusable with any other microcontroller.
This can be changed once nrf52-hal implements the SPI traits from embedded-hal. This might require changes to the embedded-hal traits. I'm going to open issues in the proper repositories and link them here once I do.
I'd like to merge this repository with the dwm1001
repository. I created separate repositories at first because they seem like different pieces of software, but in practice, they're tied together pretty closely:
dwm1001
repository to test any changes.dwm1001
is my primary means of verifying the sanity of API changes. This means between dw1000
releases, I either need to add a Git dependency to dwm1001
's Cargo.toml
, or I need to have a long-running pull request open.If both lived in the same repository, they could just evolve together.
I'm pretty much convinced that this is the right thing to do, but I might not have looked at it from every perspective. My main question right now is what the repository name should be. I'm leaning towards just merging the dwm1001
repository into this one and keep the rust-dw1000
name.
@jamesmunns Any thoughts?
Hi Hanno!
I just wanted to make you aware that in the latest version of the DW1000 register datasheet the SYS_STATE
register is finally specified with all the internal states of the chip.
This could be used to make the low-level driver more complete. :)
BR Emil
Hi!
So, the title says a lot.
I've done work on this library up until about half a year ago.
I was going to upstream it in nice chunks, at least that was the idea.
But now the project has been cancelled and I'm putting all my free time in renovating my house.
It's a waste though to let all these nice features go to waste in an unmaintained fork.
https://github.com/diondokter/rust-dw1000
Things that have been added:
It all did work though... All of these were used successfully in my project before it was cancelled.
I don't want to burden you with this, so I'll leave it up to you.
Do you want me to make the PR? Apparently there will be no merge conflicts, so it is up-to-date enough with the current master I think.
Original issue: hannobraun/rust-dwm1001#18
Both are connected to pins on the nRF52. They should be supported in the same way that the LEDs are explicitely supported.
I've seen overflows when running the dw1000_ranging_tag
example in debug mode (with a dw1000_ranging_anchor` running on another board) and weird readings (high measured distance when distance should be low) in release mode. I suspect both problems originate in the same code.
So far, I haven't investigated further.
A lot of this driver's API doesn't have examples, because writing them would be tedious. There are some examples, but they contain their own stub implementations of embedded-hal
traits.
I believe both of these issues could be improved using embedded-hal-mock
. By mocking embedded-hal
traits, we should be able to write API examples that are relatively straight-forward.
The actionable items here are:
embedded-hal-mock
cloud help here.embedded-hal-mock
. I don't it implements all the traits we require.Original issue: hannobraun/rust-dwm1001#55
The measured distance value is usually too large. To get a more accurate result, a bias needs to be applied. Strictly speaking, the value of this bias depends on the received signal strength. For the DWM1001, it should be accurate enough to apply the bias for the measured range. This is described in Application Note APS011.
The bias correction is implemented in Decawave's driver code. The code for that is available, but there's no license that would allow us to use that code. The following description is intended to serve as a specification, to make it possible to create a clean-room implementation.
The range bias value is applied using the following formular:
<corrected distance> = <measured distance> + <range bias>
The range bias value consists of two parts according to the following formular:
<range bias> = <base part> + <distance-dependent part>
The range bias value depends on the following parameters:
Channels are grouped into two groups:
The base part values are:
-23 cm
for 16 MHz PRF, narrow-band channel-28 cm
for 16 MHz PRF, wide-band channel-17 cm
for 64 MHz PRF, narrow-band channel-30 cm
for 64 MHz PRF, wide-band channelThe following lists provide the distance-dependent part. There is one list for each combination of channel and PRF setting. Each list item provides the distance-dependent part of the range bias for an interval of measure distances.
Since all of this would be extremely tedious to write manually, I've also prepared a TOML file to aid code generation: range-tables.zip
Distance-dependent part values for channel 1, 16 MHz PRF:
0 cm
for 0 cm <= d <= 25 cm
1 cm
for 25 cm < d <= 75 cm
2 cm
for 75 cm < d <= 100 cm
3 cm
for 100 cm < d <= 125 cm
4 cm
for 125 cm < d <= 175 cm
5 cm
for 175 cm < d <= 225 cm
6 cm
for 225 cm < d <= 275 cm
7 cm
for 275 cm < d <= 300 cm
8 cm
for 300 cm < d <= 325 cm
9 cm
for 325 cm < d <= 375 cm
10 cm
for 375 cm < d <= 450 cm
11 cm
for 450 cm < d <= 500 cm
12 cm
for 500 cm < d <= 575 cm
13 cm
for 575 cm < d <= 625 cm
14 cm
for 625 cm < d <= 700 cm
15 cm
for 700 cm < d <= 750 cm
16 cm
for 750 cm < d <= 825 cm
17 cm
for 825 cm < d <= 900 cm
18 cm
for 900 cm < d <= 1000 cm
19 cm
for 1000 cm < d <= 1075 cm
20 cm
for 1075 cm < d <= 1175 cm
21 cm
for 1175 cm < d <= 1250 cm
22 cm
for 1250 cm < d <= 1350 cm
23 cm
for 1350 cm < d <= 1450 cm
24 cm
for 1450 cm < d <= 1575 cm
25 cm
for 1575 cm < d <= 1650 cm
26 cm
for 1650 cm < d <= 1775 cm
27 cm
for 1775 cm < d <= 1900 cm
28 cm
for 1900 cm < d <= 2050 cm
29 cm
for 2050 cm < d <= 2225 cm
30 cm
for 2225 cm < d <= 2450 cm
31 cm
for 2450 cm < d <= 2725 cm
32 cm
for 2725 cm < d <= 3175 cm
33 cm
for 3175 cm < d <= 3875 cm
34 cm
for 3875 cm < d <= 5550 cm
35 cm
for d > 5550 cm
Distance-dependent part values for channel 2, 16 MHz PRF:
0 cm
for 0 cm <= d <= 25 cm
1 cm
for 25 cm < d <= 50 cm
2 cm
for 50 cm < d <= 100 cm
3 cm
for 100 cm < d <= 125 cm
4 cm
for 125 cm < d <= 150 cm
5 cm
for 150 cm < d <= 200 cm
6 cm
for 200 cm < d <= 225 cm
7 cm
for 225 cm < d <= 250 cm
8 cm
for 250 cm < d <= 300 cm
9 cm
for 300 cm < d <= 325 cm
10 cm
for 325 cm < d <= 375 cm
11 cm
for 375 cm < d <= 450 cm
12 cm
for 450 cm < d <= 500 cm
13 cm
for 500 cm < d <= 550 cm
14 cm
for 550 cm < d <= 600 cm
15 cm
for 600 cm < d <= 675 cm
16 cm
for 675 cm < d <= 725 cm
17 cm
for 725 cm < d <= 800 cm
18 cm
for 800 cm < d <= 875 cm
19 cm
for 875 cm < d <= 950 cm
20 cm
for 950 cm < d <= 1025 cm
21 cm
for 1025 cm < d <= 1100 cm
22 cm
for 1100 cm < d <= 1175 cm
23 cm
for 1175 cm < d <= 1275 cm
24 cm
for 1275 cm < d <= 1375 cm
25 cm
for 1375 cm < d <= 1450 cm
26 cm
for 1450 cm < d <= 1550 cm
27 cm
for 1550 cm < d <= 1650 cm
28 cm
for 1650 cm < d <= 1775 cm
29 cm
for 1775 cm < d <= 1950 cm
30 cm
for 1950 cm < d <= 2125 cm
31 cm
for 2125 cm < d <= 2400 cm
32 cm
for 2400 cm < d <= 2775 cm
33 cm
for 2775 cm < d <= 3375 cm
34 cm
for 3375 cm < d <= 4850 cm
35 cm
for 4850 cm < d <= 6000 cm
36 cm
for d > 6000 cm
Distance-dependent part values for channel 3, 16 MHz PRF:
0 cm
for 0 cm <= d <= 25 cm
1 cm
for 25 cm < d <= 50 cm
2 cm
for 50 cm < d <= 75 cm
3 cm
for 75 cm < d <= 100 cm
4 cm
for 100 cm < d <= 125 cm
5 cm
for 125 cm < d <= 175 cm
6 cm
for 175 cm < d <= 200 cm
7 cm
for 200 cm < d <= 225 cm
8 cm
for 225 cm < d <= 250 cm
9 cm
for 250 cm < d <= 300 cm
10 cm
for 300 cm < d <= 350 cm
11 cm
for 350 cm < d <= 400 cm
12 cm
for 400 cm < d <= 450 cm
13 cm
for 450 cm < d <= 500 cm
14 cm
for 500 cm < d <= 550 cm
15 cm
for 550 cm < d <= 600 cm
16 cm
for 600 cm < d <= 650 cm
17 cm
for 650 cm < d <= 700 cm
18 cm
for 700 cm < d <= 775 cm
19 cm
for 775 cm < d <= 825 cm
20 cm
for 825 cm < d <= 900 cm
21 cm
for 900 cm < d <= 975 cm
22 cm
for 975 cm < d <= 1050 cm
23 cm
for 1050 cm < d <= 1125 cm
24 cm
for 1125 cm < d <= 1225 cm
25 cm
for 1225 cm < d <= 1300 cm
26 cm
for 1300 cm < d <= 1375 cm
27 cm
for 1375 cm < d <= 1475 cm
28 cm
for 1475 cm < d <= 1575 cm
29 cm
for 1575 cm < d <= 1725 cm
30 cm
for 1725 cm < d <= 1900 cm
31 cm
for 1900 cm < d <= 2125 cm
32 cm
for 2125 cm < d <= 2450 cm
33 cm
for 2450 cm < d <= 3000 cm
34 cm
for 3000 cm < d <= 4325 cm
35 cm
for 4325 cm < d <= 5325 cm
36 cm
for d > 5325 cm
Distance-dependent part values for channel 4, 16 MHz PRF:
0 cm
for 0 cm <= d <= 175 cm
2 cm
for 175 cm < d <= 200 cm
3 cm
for 200 cm < d <= 225 cm
5 cm
for 225 cm < d <= 250 cm
6 cm
for 250 cm < d <= 275 cm
8 cm
for 275 cm < d <= 300 cm
9 cm
for 300 cm < d <= 325 cm
10 cm
for 325 cm < d <= 350 cm
11 cm
for 350 cm < d <= 375 cm
12 cm
for 375 cm < d <= 400 cm
13 cm
for 400 cm < d <= 425 cm
14 cm
for 425 cm < d <= 450 cm
15 cm
for 450 cm < d <= 475 cm
16 cm
for 475 cm < d <= 500 cm
17 cm
for 500 cm < d <= 525 cm
18 cm
for 525 cm < d <= 550 cm
19 cm
for 550 cm < d <= 575 cm
20 cm
for 575 cm < d <= 600 cm
21 cm
for 600 cm < d <= 650 cm
22 cm
for 650 cm < d <= 675 cm
23 cm
for 675 cm < d <= 700 cm
24 cm
for 700 cm < d <= 750 cm
25 cm
for 750 cm < d <= 775 cm
26 cm
for 775 cm < d <= 800 cm
27 cm
for 800 cm < d <= 850 cm
28 cm
for 850 cm < d <= 900 cm
29 cm
for 900 cm < d <= 950 cm
30 cm
for 950 cm < d <= 1000 cm
31 cm
for 1000 cm < d <= 1050 cm
32 cm
for 1050 cm < d <= 1100 cm
33 cm
for 1100 cm < d <= 1150 cm
34 cm
for 1150 cm < d <= 1200 cm
35 cm
for 1200 cm < d <= 1250 cm
36 cm
for 1250 cm < d <= 1300 cm
37 cm
for 1300 cm < d <= 1375 cm
38 cm
for 1375 cm < d <= 1425 cm
39 cm
for 1425 cm < d <= 1475 cm
40 cm
for 1475 cm < d <= 1525 cm
41 cm
for 1525 cm < d <= 1575 cm
42 cm
for 1575 cm < d <= 1650 cm
43 cm
for 1650 cm < d <= 1700 cm
44 cm
for 1700 cm < d <= 1775 cm
45 cm
for 1775 cm < d <= 1850 cm
46 cm
for 1850 cm < d <= 1950 cm
47 cm
for 1950 cm < d <= 2025 cm
48 cm
for 2025 cm < d <= 2125 cm
49 cm
for 2125 cm < d <= 2225 cm
50 cm
for 2225 cm < d <= 2350 cm
51 cm
for 2350 cm < d <= 2475 cm
52 cm
for 2475 cm < d <= 2600 cm
53 cm
for 2600 cm < d <= 2750 cm
54 cm
for 2750 cm < d <= 2900 cm
55 cm
for 2900 cm < d <= 3075 cm
56 cm
for 3075 cm < d <= 3250 cm
57 cm
for 3250 cm < d <= 3475 cm
58 cm
for 3475 cm < d <= 3750 cm
59 cm
for 3750 cm < d <= 4100 cm
60 cm
for 4100 cm < d <= 4550 cm
61 cm
for 4550 cm < d <= 5175 cm
62 cm
for 5175 cm < d <= 5950 cm
63 cm
for d > 5950 cm
Distance-dependent part values for channel 5, 16 MHz PRF:
0 cm
for 0 cm <= d <= 25 cm
2 cm
for 25 cm < d <= 50 cm
3 cm
for 50 cm < d <= 75 cm
4 cm
for 75 cm < d <= 100 cm
5 cm
for 100 cm < d <= 125 cm
6 cm
for 125 cm < d <= 150 cm
8 cm
for 150 cm < d <= 175 cm
9 cm
for 175 cm < d <= 200 cm
10 cm
for 200 cm < d <= 225 cm
11 cm
for 225 cm < d <= 275 cm
12 cm
for 275 cm < d <= 300 cm
13 cm
for 300 cm < d <= 350 cm
14 cm
for 350 cm < d <= 375 cm
15 cm
for 375 cm < d <= 400 cm
16 cm
for 400 cm < d <= 450 cm
17 cm
for 450 cm < d <= 500 cm
18 cm
for 500 cm < d <= 525 cm
19 cm
for 525 cm < d <= 575 cm
20 cm
for 575 cm < d <= 625 cm
21 cm
for 625 cm < d <= 675 cm
22 cm
for 675 cm < d <= 725 cm
23 cm
for 725 cm < d <= 775 cm
24 cm
for 775 cm < d <= 850 cm
25 cm
for 850 cm < d <= 900 cm
26 cm
for 900 cm < d <= 950 cm
27 cm
for 950 cm < d <= 1025 cm
28 cm
for 1025 cm < d <= 1100 cm
29 cm
for 1100 cm < d <= 1200 cm
30 cm
for 1200 cm < d <= 1325 cm
31 cm
for 1325 cm < d <= 1475 cm
32 cm
for 1475 cm < d <= 1700 cm
33 cm
for 1700 cm < d <= 2075 cm
34 cm
for 2075 cm < d <= 3000 cm
35 cm
for 3000 cm < d <= 3700 cm
36 cm
for d > 3700 cm
Distance-dependent part values for channel 7, 16 MHz PRF:
0 cm
for 0 cm <= d <= 100 cm
1 cm
for 100 cm < d <= 125 cm
4 cm
for 125 cm < d <= 150 cm
6 cm
for 150 cm < d <= 175 cm
9 cm
for 175 cm < d <= 200 cm
10 cm
for 200 cm < d <= 225 cm
12 cm
for 225 cm < d <= 250 cm
14 cm
for 250 cm < d <= 275 cm
16 cm
for 275 cm < d <= 300 cm
17 cm
for 300 cm < d <= 325 cm
19 cm
for 325 cm < d <= 350 cm
20 cm
for 350 cm < d <= 375 cm
21 cm
for 375 cm < d <= 400 cm
22 cm
for 400 cm < d <= 425 cm
24 cm
for 425 cm < d <= 450 cm
25 cm
for 450 cm < d <= 475 cm
26 cm
for 475 cm < d <= 500 cm
27 cm
for 500 cm < d <= 525 cm
28 cm
for 525 cm < d <= 550 cm
29 cm
for 550 cm < d <= 575 cm
30 cm
for 575 cm < d <= 625 cm
31 cm
for 625 cm < d <= 650 cm
32 cm
for 650 cm < d <= 675 cm
33 cm
for 675 cm < d <= 725 cm
34 cm
for 725 cm < d <= 750 cm
35 cm
for 750 cm < d <= 775 cm
36 cm
for 775 cm < d <= 800 cm
37 cm
for 800 cm < d <= 850 cm
38 cm
for 850 cm < d <= 875 cm
39 cm
for 875 cm < d <= 900 cm
40 cm
for 900 cm < d <= 950 cm
41 cm
for 950 cm < d <= 975 cm
42 cm
for 975 cm < d <= 1000 cm
43 cm
for 1000 cm < d <= 1050 cm
44 cm
for 1050 cm < d <= 1100 cm
45 cm
for 1100 cm < d <= 1150 cm
46 cm
for 1150 cm < d <= 1200 cm
47 cm
for 1200 cm < d <= 1250 cm
48 cm
for 1250 cm < d <= 1300 cm
49 cm
for 1300 cm < d <= 1375 cm
50 cm
for 1375 cm < d <= 1450 cm
51 cm
for 1450 cm < d <= 1525 cm
52 cm
for 1525 cm < d <= 1600 cm
53 cm
for 1600 cm < d <= 1700 cm
54 cm
for 1700 cm < d <= 1800 cm
55 cm
for 1800 cm < d <= 1875 cm
56 cm
for 1875 cm < d <= 2000 cm
57 cm
for 2000 cm < d <= 2125 cm
58 cm
for 2125 cm < d <= 2300 cm
59 cm
for 2300 cm < d <= 2525 cm
60 cm
for 2525 cm < d <= 2800 cm
61 cm
for 2800 cm < d <= 3175 cm
62 cm
for 3175 cm < d <= 3675 cm
63 cm
for 3675 cm < d <= 4200 cm
64 cm
for 4200 cm < d <= 4550 cm
65 cm
for 4550 cm < d <= 4850 cm
66 cm
for 4850 cm < d <= 5125 cm
67 cm
for d > 5125 cm
Distance-dependent part values for channel 1, 64 MHz PRF:
0 cm
for 0 cm <= d <= 25 cm
1 cm
for 25 cm < d <= 50 cm
3 cm
for 50 cm < d <= 75 cm
4 cm
for 75 cm < d <= 100 cm
5 cm
for 100 cm < d <= 125 cm
6 cm
for 125 cm < d <= 175 cm
7 cm
for 175 cm < d <= 250 cm
8 cm
for 250 cm < d <= 325 cm
9 cm
for 325 cm < d <= 400 cm
10 cm
for 400 cm < d <= 475 cm
11 cm
for 475 cm < d <= 550 cm
12 cm
for 550 cm < d <= 600 cm
13 cm
for 600 cm < d <= 675 cm
14 cm
for 675 cm < d <= 750 cm
15 cm
for 750 cm < d <= 800 cm
16 cm
for 800 cm < d <= 875 cm
17 cm
for 875 cm < d <= 950 cm
18 cm
for 950 cm < d <= 1075 cm
19 cm
for 1075 cm < d <= 1200 cm
20 cm
for 1200 cm < d <= 1400 cm
21 cm
for 1400 cm < d <= 1950 cm
22 cm
for 1950 cm < d <= 2525 cm
23 cm
for 2525 cm < d <= 3000 cm
24 cm
for 3000 cm < d <= 3925 cm
25 cm
for d > 3925 cm
Distance-dependent part values for channel 2, 64 MHz PRF:
0 cm
for 0 cm <= d <= 25 cm
1 cm
for 25 cm < d <= 50 cm
3 cm
for 50 cm < d <= 75 cm
4 cm
for 75 cm < d <= 100 cm
6 cm
for 100 cm < d <= 150 cm
7 cm
for 150 cm < d <= 225 cm
8 cm
for 225 cm < d <= 300 cm
9 cm
for 300 cm < d <= 350 cm
10 cm
for 350 cm < d <= 425 cm
11 cm
for 425 cm < d <= 475 cm
12 cm
for 475 cm < d <= 525 cm
13 cm
for 525 cm < d <= 600 cm
14 cm
for 600 cm < d <= 650 cm
15 cm
for 650 cm < d <= 700 cm
16 cm
for 700 cm < d <= 775 cm
17 cm
for 775 cm < d <= 825 cm
18 cm
for 825 cm < d <= 925 cm
19 cm
for 925 cm < d <= 1050 cm
20 cm
for 1050 cm < d <= 1225 cm
21 cm
for 1225 cm < d <= 1700 cm
22 cm
for 1700 cm < d <= 2225 cm
23 cm
for 2225 cm < d <= 2625 cm
24 cm
for 2625 cm < d <= 3450 cm
25 cm
for d > 3450 cm
Distance-dependent part values for channel 3, 64 MHz PRF:
0 cm
for 0 cm <= d <= 25 cm
2 cm
for 25 cm < d <= 50 cm
3 cm
for 50 cm < d <= 75 cm
5 cm
for 75 cm < d <= 100 cm
6 cm
for 100 cm < d <= 125 cm
7 cm
for 125 cm < d <= 200 cm
8 cm
for 200 cm < d <= 250 cm
9 cm
for 250 cm < d <= 325 cm
10 cm
for 325 cm < d <= 375 cm
11 cm
for 375 cm < d <= 425 cm
12 cm
for 425 cm < d <= 475 cm
13 cm
for 475 cm < d <= 525 cm
14 cm
for 525 cm < d <= 575 cm
15 cm
for 575 cm < d <= 625 cm
16 cm
for 625 cm < d <= 675 cm
17 cm
for 675 cm < d <= 750 cm
18 cm
for 750 cm < d <= 825 cm
19 cm
for 825 cm < d <= 925 cm
20 cm
for 925 cm < d <= 1100 cm
21 cm
for 1100 cm < d <= 1500 cm
22 cm
for 1500 cm < d <= 1975 cm
23 cm
for 1975 cm < d <= 2325 cm
24 cm
for 2325 cm < d <= 3050 cm
25 cm
for d > 3050 cm
Distance-dependent part values for channel 4, 64 MHz PRF:
0 cm
for 0 cm <= d <= 175 cm
1 cm
for 175 cm < d <= 200 cm
3 cm
for 200 cm < d <= 225 cm
5 cm
for 225 cm < d <= 250 cm
6 cm
for 250 cm < d <= 275 cm
7 cm
for 275 cm < d <= 300 cm
8 cm
for 300 cm < d <= 325 cm
10 cm
for 325 cm < d <= 350 cm
11 cm
for 350 cm < d <= 375 cm
12 cm
for 375 cm < d <= 400 cm
14 cm
for 400 cm < d <= 425 cm
15 cm
for 425 cm < d <= 450 cm
16 cm
for 450 cm < d <= 475 cm
18 cm
for 475 cm < d <= 500 cm
19 cm
for 500 cm < d <= 525 cm
20 cm
for 525 cm < d <= 550 cm
21 cm
for 550 cm < d <= 600 cm
22 cm
for 600 cm < d <= 625 cm
23 cm
for 625 cm < d <= 675 cm
24 cm
for 675 cm < d <= 700 cm
25 cm
for 700 cm < d <= 725 cm
26 cm
for 725 cm < d <= 750 cm
27 cm
for 750 cm < d <= 800 cm
28 cm
for 800 cm < d <= 825 cm
29 cm
for 825 cm < d <= 850 cm
30 cm
for 850 cm < d <= 875 cm
31 cm
for 875 cm < d <= 925 cm
32 cm
for 925 cm < d <= 975 cm
33 cm
for 975 cm < d <= 1025 cm
34 cm
for 1025 cm < d <= 1075 cm
35 cm
for 1075 cm < d <= 1125 cm
36 cm
for 1125 cm < d <= 1200 cm
37 cm
for 1200 cm < d <= 1250 cm
38 cm
for 1250 cm < d <= 1325 cm
39 cm
for 1325 cm < d <= 1400 cm
40 cm
for 1400 cm < d <= 1500 cm
41 cm
for 1500 cm < d <= 1600 cm
42 cm
for 1600 cm < d <= 1700 cm
43 cm
for 1700 cm < d <= 1850 cm
44 cm
for 1850 cm < d <= 2025 cm
45 cm
for 2025 cm < d <= 2225 cm
46 cm
for 2225 cm < d <= 2450 cm
47 cm
for 2450 cm < d <= 2725 cm
48 cm
for 2725 cm < d <= 3050 cm
49 cm
for 3050 cm < d <= 3400 cm
50 cm
for 3400 cm < d <= 3650 cm
51 cm
for 3650 cm < d <= 3850 cm
52 cm
for 3850 cm < d <= 4050 cm
53 cm
for 4050 cm < d <= 4450 cm
54 cm
for 4450 cm < d <= 5500 cm
55 cm
for 5500 cm < d <= 6225 cm
56 cm
for d > 6225 cm
Distance-dependent part values for channel 5, 64 MHz PRF:
0 cm
for 0 cm <= d <= 25 cm
3 cm
for 25 cm < d <= 50 cm
5 cm
for 50 cm < d <= 75 cm
6 cm
for 75 cm < d <= 100 cm
7 cm
for 100 cm < d <= 150 cm
8 cm
for 150 cm < d <= 175 cm
9 cm
for 175 cm < d <= 225 cm
10 cm
for 225 cm < d <= 250 cm
11 cm
for 250 cm < d <= 300 cm
12 cm
for 300 cm < d <= 325 cm
13 cm
for 325 cm < d <= 375 cm
14 cm
for 375 cm < d <= 400 cm
15 cm
for 400 cm < d <= 425 cm
16 cm
for 425 cm < d <= 475 cm
17 cm
for 475 cm < d <= 525 cm
18 cm
for 525 cm < d <= 575 cm
19 cm
for 575 cm < d <= 650 cm
20 cm
for 650 cm < d <= 750 cm
21 cm
for 750 cm < d <= 1050 cm
22 cm
for 1050 cm < d <= 1375 cm
23 cm
for 1375 cm < d <= 1625 cm
24 cm
for 1625 cm < d <= 2125 cm
25 cm
for d > 2125 cm
Distance-dependent part values for channel 7, 64 MHz PRF:
0 cm
for 0 cm <= d <= 100 cm
1 cm
for 100 cm < d <= 125 cm
4 cm
for 125 cm < d <= 150 cm
6 cm
for 150 cm < d <= 175 cm
8 cm
for 175 cm < d <= 200 cm
10 cm
for 200 cm < d <= 225 cm
12 cm
for 225 cm < d <= 250 cm
15 cm
for 250 cm < d <= 275 cm
17 cm
for 275 cm < d <= 300 cm
18 cm
for 300 cm < d <= 325 cm
20 cm
for 325 cm < d <= 350 cm
21 cm
for 350 cm < d <= 375 cm
22 cm
for 375 cm < d <= 400 cm
24 cm
for 400 cm < d <= 425 cm
25 cm
for 425 cm < d <= 450 cm
26 cm
for 450 cm < d <= 475 cm
28 cm
for 475 cm < d <= 500 cm
29 cm
for 500 cm < d <= 525 cm
30 cm
for 525 cm < d <= 550 cm
31 cm
for 550 cm < d <= 575 cm
32 cm
for 575 cm < d <= 600 cm
33 cm
for 600 cm < d <= 625 cm
34 cm
for 625 cm < d <= 650 cm
35 cm
for 650 cm < d <= 700 cm
36 cm
for 700 cm < d <= 725 cm
37 cm
for 725 cm < d <= 775 cm
38 cm
for 775 cm < d <= 825 cm
39 cm
for 825 cm < d <= 875 cm
40 cm
for 875 cm < d <= 925 cm
41 cm
for 925 cm < d <= 975 cm
42 cm
for 975 cm < d <= 1050 cm
43 cm
for 1050 cm < d <= 1150 cm
44 cm
for 1150 cm < d <= 1250 cm
45 cm
for 1250 cm < d <= 1350 cm
46 cm
for 1350 cm < d <= 1500 cm
47 cm
for 1500 cm < d <= 1675 cm
48 cm
for 1675 cm < d <= 1875 cm
49 cm
for 1875 cm < d <= 2075 cm
50 cm
for 2075 cm < d <= 2250 cm
51 cm
for 2250 cm < d <= 2375 cm
52 cm
for 2375 cm < d <= 2500 cm
53 cm
for 2500 cm < d <= 2750 cm
54 cm
for 2750 cm < d <= 3375 cm
55 cm
for 3375 cm < d <= 3825 cm
56 cm
for 3825 cm < d <= 4300 cm
57 cm
for 4300 cm < d <= 4800 cm
58 cm
for d > 4800 cm
I haven't figured out why, but when I pull my tag off USB and leave it on its own power, the calculations in compute_distance fail and panic.
The error happens on this line:
let time_of_flight = (rtt_product - rt_product) / sum;
Apparently, the rt_product becomes larger than rtt_product (not sure how) and the subtraction fails.
On USB. (rtt-rt) = 4875522386940746496 - 4875520436757001728 = 1,950,183,744,768
INFO
Ping reply time: 2179770156
Ping round trip time: 2179753344
Request reply time: 2236713088
Request round trip time: 2236731234
โโ dw1000_ranging_basestation::__cortex_m_rt_main @ examples/dw1000_ranging_basestation.rs:230
INFO
rtt_product: 4875522386940746496
rt_product: 4875520436757001728
rt_sum: 4416483244
rtt_sum: 4416484578
sum: 8832967822
โโ dw1000_ranging_basestation::__cortex_m_rt_main @ examples/dw1000_ranging_basestation.rs:256
On battery: ( 4811215469605391972 - 4811217180826287836) = -1,711,220,895,864
INFO
Ping reply time: 2174124223
Ping round trip time: 2174103004
Request reply time: 2212944932
Request round trip time: 2212965743
โโ dw1000_ranging_basestation::__cortex_m_rt_main @ examples/dw1000_ranging_basestation.rs:230
INFO
rtt_product: 4811215469605391972
rt_product: 4811217180826287836
rt_sum: 4387069155
rtt_sum: 4387068747
sum: 8774137902
My guess is that my batteries are really old and the tag briefly browns out leading to unusual numbers.
Since timing is very important for the range measurement, the TX/RX delay cause by the antenna and any components between it and the DW1000, need to be taken into account.
There's a section about antenna delay calibration in the DW1000 user manual, and I think I've seen application notes about it. I think it would be good to somehow implement the calibration procedure, to help users figure out their antenna delay values.
This does not affect use of the DWM1001, as there are known antenna delay values that can be used for that (see ranging examples in the dwm1001
crate).
Manually implementing the low-level register interface is pretty tedious. Maybe the register description in the user manual was generated from a structured data format. If that were the case, and if we could get our hands on this data, we could generate the whole interface.
I don't know if this is practical. I couldn't find anything in my initial search. But maybe Decawave would be willing to give out this information, if it exists.
It seems that the LL registers generate a lot of code:
Compiling ...
Analyzing target/thumbv7em-none-eabihf/debug/examples/dw1000_only_rx
File .text Size Crate Name
0.0% 0.0% 0B [0 Others]
0.1% 1.6% 2.3KiB dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.1% 1.5% 2.1KiB dw1000 <dw1000::hl::RxFuture<'r, SPI>>::wait
0.1% 1.2% 1.7KiB ieee802154 ieee802154::mac::Header::read
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::rf_txctrl::W::txmq
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::pmsc_ctrl0::W::softreset
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::rxprej
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::rxsfdto
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::clkpll_ll
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::rxpto
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::rxovrr
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::ldeerr
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::rxrfto
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_ctrl::W::trxoff
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::rf_txctrl::W::txmtune
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::ec_ctrl::W::pllldt
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_cfg::W::ffam
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_cfg::W::ffaa
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_cfg::W::ffad
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_cfg::W::ffab
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::otp_ctrl::W::ldeload
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::otp_ctrl::W::otpread
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::rxrscs
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::rxrfsl
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::rxfce
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::rxfcg
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::rxdfr
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::rxphe
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::rxphd
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::ldedone
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::rxsfdd
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::cplock
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_ctrl::W::rxenab
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::lde_cfg1::W::ntm
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::lde_cfg2::W::value
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::pmsc_ctrl0::W::sysclks
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_cfg::W::ffen
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::otp_addr::W::value
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::agc_tune1::W::value
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::otp_ctrl::W::otprden
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::sys_status::W::rxprd
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::fs_plltune::W::value
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::tc_pgdelay::W::value
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::ldotune::W::value
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::agc_tune2::W::value
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::tx_power::W::value
0.0% 0.7% 1.0KiB dw1000 dw1000::ll::drx_tune2::W::value
0.0% 0.6% 890B std core::fmt::Formatter::pad_integral
0.0% 0.6% 888B std core::fmt::Formatter::pad
0.0% 0.6% 870B [Unknown] main
0.0% 0.6% 844B cortex_m_semihosting core::char::methods::<impl char>::encode_utf8
0.0% 0.6% 806B std core::str::slice_error_fail
0.0% 0.5% 748B std <str as core::fmt::Debug>::fmt
0.0% 0.5% 716B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Ready>>:...
0.0% 0.4% 638B dw1000 <dw1000::hl::Error as core::fmt::Debug>::fmt
0.0% 0.4% 632B dw1000 dw1000::ll::rx_time::R::rx_stamp
0.0% 0.4% 624B dw1000 dw1000::ll::otp_rdat::R::value
0.0% 0.4% 606B dw1000 dw1000::ll::sys_ctrl::R::trxoff
0.0% 0.4% 606B dw1000 dw1000::ll::otp_ctrl::R::ldeload
0.0% 0.4% 606B dw1000 dw1000::ll::otp_ctrl::R::otpread
0.0% 0.4% 606B dw1000 dw1000::ll::sys_status::R::rxsfdto
0.0% 0.4% 606B dw1000 dw1000::ll::sys_status::R::rxpto
0.0% 0.4% 606B dw1000 dw1000::ll::sys_status::R::rxovrr
0.0% 0.4% 606B dw1000 dw1000::ll::sys_status::R::rxrfto
0.0% 0.4% 606B dw1000 dw1000::ll::sys_status::R::rxfce
0.0% 0.4% 606B dw1000 dw1000::ll::sys_status::R::rxdfr
0.0% 0.4% 606B dw1000 dw1000::ll::sys_status::R::rxphe
0.0% 0.4% 606B dw1000 dw1000::ll::sys_status::R::ldedone
0.0% 0.4% 602B dw1000 dw1000::ll::rx_finfo::R::rxflen
0.0% 0.4% 602B dw1000 dw1000::ll::sys_status::R::rxrfsl
0.0% 0.4% 576B std core::fmt::write
0.0% 0.4% 560B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::read
0.0% 0.3% 478B dwm1001 dwm1001::DWM1001::new
0.0% 0.3% 466B std core::slice::memchr::memchr
0.0% 0.3% 448B ieee802154 ieee802154::mac::Frame::read
0.0% 0.3% 418B ieee802154 <ieee802154::mac::Header as core::fmt::Debug>...
0.0% 0.3% 402B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::modify
0.0% 0.3% 402B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::modify
0.0% 0.3% 402B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::modify
0.0% 0.3% 402B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::modify
0.0% 0.3% 402B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::modify
0.0% 0.3% 402B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::modify
0.0% 0.3% 402B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::modify
0.0% 0.3% 402B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::modify
0.0% 0.3% 394B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::write
0.0% 0.3% 390B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::modify
0.0% 0.3% 390B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::modify
0.0% 0.3% 390B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::modify
0.0% 0.3% 390B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::modify
0.0% 0.3% 374B dw1000 <u64 as dw1000::ll::ToBytes>::to_bytes
0.0% 0.3% 366B std core::fmt::num::<impl core::fmt::Debug for us...
0.0% 0.2% 348B ieee802154 <ieee802154::mac::ReadError as core::fmt::Deb...
0.0% 0.2% 344B std <core::fmt::builders::PadAdapter<'_> as core:...
0.0% 0.2% 342B ieee802154 core::slice::<impl [T]>::copy_from_slice
0.0% 0.2% 326B std <char as core::fmt::Debug>::fmt
0.0% 0.2% 322B ssmarshal <ssmarshal::Error as core::fmt::Debug>::fmt
0.0% 0.2% 318B nrf52_hal_common <nrf52_hal_common::uarte::Uarte<T>>::new
0.0% 0.2% 314B std core::fmt::builders::DebugStruct::field
0.0% 0.2% 302B nrf52_hal_common <nrf52_hal_common::twim::Twim<T>>::new
0.0% 0.2% 300B cortex_m_semihosting cortex_m_semihosting::hio::write_all
0.0% 0.2% 292B dw1000 <u64 as dw1000::ll::FromBytes>::from_bytes
0.0% 0.2% 290B ieee802154 ieee802154::mac::Address::read
0.0% 0.2% 284B std <core::result::Result<T, E>>::map_err
0.0% 0.2% 282B std <core::result::Result<T, E>>::map_err
0.0% 0.2% 282B std <core::result::Result<T, E>>::map_err
0.0% 0.2% 280B dw1000 <u8 as dw1000::ll::ToBytes>::to_bytes
0.0% 0.2% 278B dw1000 <u16 as dw1000::ll::ToBytes>::to_bytes
0.0% 0.2% 274B std core::ptr::swap_nonoverlapping_bytes
0.0% 0.2% 266B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Ready>>:...
0.0% 0.2% 264B std <core::result::Result<T, E>>::map_err
0.0% 0.2% 262B std core::fmt::builders::DebugTuple::field
0.0% 0.2% 260B dw1000 <u32 as dw1000::ll::ToBytes>::to_bytes
0.0% 0.2% 260B std <core::result::Result<T, E>>::map_err
0.0% 0.2% 260B dw1000 dw1000::ll::init_header
0.0% 0.2% 260B dw1000 dw1000::ll::init_header
0.0% 0.2% 260B dw1000 dw1000::ll::init_header
0.0% 0.2% 260B dw1000 dw1000::ll::init_header
0.0% 0.2% 260B dw1000 dw1000::ll::init_header
0.0% 0.2% 260B dw1000 dw1000::ll::init_header
0.0% 0.2% 260B dw1000 dw1000::ll::init_header
0.0% 0.2% 260B dw1000 dw1000::ll::init_header
0.0% 0.2% 260B dw1000 dw1000::ll::init_header
0.0% 0.2% 260B dw1000 dw1000::ll::init_header
0.0% 0.2% 260B dw1000 dw1000::ll::init_header
0.0% 0.2% 260B dw1000 dw1000::ll::init_header
0.0% 0.2% 258B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::read
0.0% 0.2% 258B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::read
0.0% 0.2% 256B dw1000 dw1000::ll::init_header
0.0% 0.2% 256B dw1000 dw1000::ll::init_header
0.0% 0.2% 256B dw1000 dw1000::ll::init_header
0.0% 0.2% 256B dw1000 dw1000::ll::init_header
0.0% 0.2% 256B dw1000 dw1000::ll::init_header
0.0% 0.2% 256B dw1000 dw1000::ll::init_header
0.0% 0.2% 256B dw1000 dw1000::ll::init_header
0.0% 0.2% 256B dw1000 dw1000::ll::init_header
0.0% 0.2% 256B dw1000 dw1000::ll::init_header
0.0% 0.2% 252B std core::fmt::num::<impl core::fmt::Display for ...
0.0% 0.2% 252B std core::fmt::num::<impl core::fmt::Display for ...
0.0% 0.2% 252B std core::unicode::bool_trie::BoolTrie::lookup
0.0% 0.2% 252B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::read
0.0% 0.2% 252B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::read
0.0% 0.2% 250B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::read
0.0% 0.2% 250B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::read
0.0% 0.2% 250B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::read
0.0% 0.2% 250B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::read
0.0% 0.2% 250B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::read
0.0% 0.2% 250B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::read
0.0% 0.2% 244B std core::unicode::printable::is_printable
0.0% 0.2% 240B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::read
0.0% 0.2% 240B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::read
0.0% 0.2% 236B std <core::result::Result<T, E>>::map_err
0.0% 0.2% 234B dw1000 <u8 as dw1000::ll::FromBytes>::from_bytes
0.0% 0.2% 232B std core::unicode::printable::check
0.0% 0.2% 232B std <core::panic::PanicInfo<'_> as core::fmt::Dis...
0.0% 0.2% 226B dw1000 <u32 as dw1000::ll::FromBytes>::from_bytes
0.0% 0.2% 220B nrf52832_pac nrf52832_pac::uarte0::baudrate::BAUDRATEW::_bits
0.0% 0.1% 214B std core::fmt::num::<impl core::fmt::UpperHex for...
0.0% 0.1% 214B std core::fmt::num::<impl core::fmt::UpperHex for...
0.0% 0.1% 214B std core::fmt::num::<impl core::fmt::UpperHex for...
0.0% 0.1% 214B std core::fmt::num::<impl core::fmt::UpperHex for...
0.0% 0.1% 214B std core::fmt::num::<impl core::fmt::LowerHex for...
0.0% 0.1% 214B std core::fmt::num::<impl core::fmt::LowerHex for...
0.0% 0.1% 214B std core::fmt::num::<impl core::fmt::LowerHex for...
0.0% 0.1% 214B std core::fmt::num::<impl core::fmt::LowerHex for...
0.0% 0.1% 214B nrf52_hal_common <nrf52_hal_common::delay::Delay as embedded_h...
0.0% 0.1% 212B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::write
0.0% 0.1% 212B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::write
0.0% 0.1% 210B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::new
0.0% 0.1% 210B dw1000 <dw1000::hl::RxFuture<'r, SPI>>::wait::{{clos...
0.0% 0.1% 208B ieee802154 <core::option::Option<T>>::ok_or
0.0% 0.1% 206B std core::fmt::num::<impl core::fmt::Display for ...
0.0% 0.1% 206B dw1000_only_rx dw1000_only_rx::f02886639q908n7u::{{closure}}
0.0% 0.1% 204B dw1000_only_rx dw1000_only_rx::f02886639q908n7u::{{closure}}
0.0% 0.1% 202B std core::fmt::builders::DebugInner::entry
0.0% 0.1% 202B ieee802154 <ieee802154::mac::Frame<'p> as core::fmt::Deb...
0.0% 0.1% 198B std core::fmt::Formatter::pad_integral::{{closure}}
0.0% 0.1% 196B cortex_m_semihosting cortex_m_semihosting::hio::open
0.0% 0.1% 196B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::write
0.0% 0.1% 192B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::write
0.0% 0.1% 192B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::write
0.0% 0.1% 192B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::write
0.0% 0.1% 190B std core::fmt::num::<impl core::fmt::UpperHex for...
0.0% 0.1% 190B std core::fmt::num::<impl core::fmt::UpperHex for...
0.0% 0.1% 190B std core::fmt::num::<impl core::fmt::LowerHex for...
0.0% 0.1% 190B std core::fmt::num::<impl core::fmt::LowerHex for...
0.0% 0.1% 190B cortex_m_semihosting <core::result::Result<T, E>>::map
0.0% 0.1% 188B nrf52_hal_common <nrf52_hal_common::spim::Error as core::fmt::...
0.0% 0.1% 188B ieee802154 <ieee802154::mac::FrameType as core::fmt::Deb...
0.0% 0.1% 188B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::write
0.0% 0.1% 188B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::write
0.0% 0.1% 188B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::write
0.0% 0.1% 188B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::write
0.0% 0.1% 188B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::write
0.0% 0.1% 188B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::write
0.0% 0.1% 188B dw1000 <dw1000::ll::RegAccessor<'s, R, SPI>>::write
0.0% 0.1% 184B ieee802154 <core::option::Option<T>>::ok_or
0.0% 0.1% 184B ieee802154 <core::option::Option<T>>::ok_or
0.0% 0.1% 180B cortex_m_semihosting <core::result::Result<T, E>>::map_err
0.0% 0.1% 174B ssmarshal <core::option::Option<T>>::map
0.0% 0.1% 174B dw1000 <core::option::Option<T>>::map
0.0% 0.1% 166B cortex_m cortex_m::peripheral::syst::<impl cortex_m::p...
0.0% 0.1% 166B std <core::cell::RefCell<T>>::try_borrow_mut
0.0% 0.1% 164B dwm1001 dwm1001::DWM1001::take
0.0% 0.1% 160B std <core::slice::IterMut<'a, T> as core::iter::i...
0.0% 0.1% 160B std <core::slice::Iter<'a, T> as core::iter::iter...
0.0% 0.1% 160B std <core::slice::Iter<'a, T> as core::iter::iter...
0.0% 0.1% 160B std <core::slice::Iter<'a, T> as core::iter::iter...
0.0% 0.1% 158B ieee802154 <ieee802154::mac::Address as core::fmt::Debug...
0.0% 0.1% 156B dw1000? <dw1000::util::TimeoutError<T> as core::fmt::...
0.0% 0.1% 154B std core::result::unwrap_failed
0.0% 0.1% 154B std core::iter::range::<impl core::iter::iterator...
0.0% 0.1% 150B [Unknown] __aeabi_memcpy4
0.0% 0.1% 150B panic_semihosting rust_begin_unwind
0.0% 0.1% 150B std core::fmt::Write::write_char
0.0% 0.1% 150B std <core::result::Result<T, E>>::expect
0.0% 0.1% 148B std core::result::unwrap_failed
0.0% 0.1% 148B std core::result::unwrap_failed
0.0% 0.1% 144B nrf52_hal_common core::slice::<impl [T]>::iter_mut
0.0% 0.1% 144B nrf52_hal_common core::slice::<impl [T]>::iter
0.0% 0.1% 144B ieee802154 core::fmt::builders::DebugList::entries
0.0% 0.1% 144B ieee802154 core::slice::<impl [T]>::iter
0.0% 0.1% 142B dwm1001 <core::option::Option<T>>::ok_or
0.0% 0.1% 142B dwm1001 <core::option::Option<T>>::ok_or
0.0% 0.1% 142B dwm1001 <nrf52_hal_common::gpio::p0::P0_Pin<MODE>>::i...
0.0% 0.1% 140B nrf52_hal_common <nrf52_hal_common::gpio::p0::P0_24<MODE>>::in...
0.0% 0.1% 138B std <core::ops::range::Range<usize> as core::slic...
0.0% 0.1% 138B std <core::ops::range::Range<usize> as core::slic...
0.0% 0.1% 138B std <core::ops::range::Range<usize> as core::slic...
0.0% 0.1% 132B cortex_m? <cortex_m::register::primask::Primask as core...
0.0% 0.1% 130B std <core::result::Result<T, E>>::expect
0.0% 0.1% 128B std core::fmt::num::<impl core::fmt::Display for ...
0.0% 0.1% 128B encode_unicode core::cmp::Ord::min
0.0% 0.1% 126B byteorder <byteorder::LittleEndian as byteorder::ByteOr...
0.0% 0.1% 120B nrf52_hal_common <nrf52_hal_common::uarte::Uarte<T>>::new::{{c...
0.0% 0.1% 120B nrf52_hal_common <nrf52_hal_common::uarte::Uarte<T>>::new::{{c...
0.0% 0.1% 118B ieee802154 ieee802154::mac::FrameType::from_bits
0.0% 0.1% 116B std memcmp
0.0% 0.1% 116B nrf52_hal_common <nrf52_hal_common::twim::Twim<T>>::new::{{clo...
0.0% 0.1% 116B dwm1001 <nrf52_hal_common::gpio::p0::P0_Pin<MODE>>::i...
0.0% 0.1% 116B dwm1001 <nrf52_hal_common::gpio::p0::P0_29<MODE>>::in...
0.0% 0.1% 116B dwm1001 <nrf52_hal_common::gpio::p0::P0_28<MODE>>::in...
0.0% 0.1% 116B dwm1001 <nrf52_hal_common::gpio::p0::P0_24<MODE>>::in...
0.0% 0.1% 116B dwm1001 <nrf52_hal_common::gpio::p0::P0_20<MODE>>::in...
0.0% 0.1% 116B dwm1001 <nrf52_hal_common::gpio::p0::P0_19<MODE>>::in...
0.0% 0.1% 116B dwm1001 <nrf52_hal_common::gpio::p0::P0_18<MODE>>::in...
0.0% 0.1% 116B dwm1001 <nrf52_hal_common::gpio::p0::P0_17<MODE>>::in...
0.0% 0.1% 116B dwm1001 <nrf52_hal_common::gpio::p0::P0_16<MODE>>::in...
0.0% 0.1% 116B dwm1001 <nrf52_hal_common::gpio::p0::P0_11<MODE>>::in...
0.0% 0.1% 116B dwm1001 <nrf52_hal_common::gpio::p0::P0_05<MODE>>::in...
0.0% 0.1% 116B nrf52_hal_common <nrf52_hal_common::gpio::p0::P0_24<MODE>>::in...
0.0% 0.1% 114B std core::fmt::builders::DebugTuple::finish
0.0% 0.1% 114B ieee802154 core::fmt::num::<impl core::fmt::Debug for us...
0.0% 0.1% 114B ieee802154 core::fmt::num::<impl core::fmt::Debug for u1...
0.0% 0.1% 114B ieee802154 core::fmt::num::<impl core::fmt::Debug for u8...
0.0% 0.1% 114B std <i32 as core::iter::range::Step>::add_usize
0.0% 0.1% 110B cortex_m <core::result::Result<T, E>>::ok
0.0% 0.1% 108B nrf52832_pac nrf52832_pac::p0::pin_cnf::DRIVEW::_bits
0.0% 0.1% 108B nrf52832_pac nrf52832_pac::p0::pin_cnf::DRIVEW::_bits
0.0% 0.1% 108B nrf52832_pac nrf52832_pac::p0::pin_cnf::DRIVEW::_bits
0.0% 0.1% 106B nrf52_hal_common <nrf52_hal_common::gpio::p0::P0_24<MODE>>::in...
0.0% 0.1% 102B cortex_m_rt r0::init_data
0.0% 0.1% 102B nrf52_hal_common <nrf52_hal_common::timer::Timer<T>>::wait
0.0% 0.1% 102B std <core::result::Result<T, E>>::expect
0.0% 0.1% 100B std <core::option::Option<T>>::unwrap
0.0% 0.1% 100B dwm1001 dwm1001::DW_RST::reset_dw1000
0.0% 0.1% 98B nrf52832_pac nrf52832_pac::spim0::frequency::FREQUENCYW::_...
0.0% 0.1% 96B panic_semihosting core::fmt::Arguments::new_v1_formatted
0.0% 0.1% 96B cortex_m_semihosting core::fmt::Arguments::new_v1_formatted
0.0% 0.1% 96B ieee802154 core::fmt::Arguments::new_v1_formatted
0.0% 0.1% 96B std core::fmt::Arguments::new_v1_formatted
0.0% 0.1% 94B [Unknown] __aeabi_memcpy
0.0% 0.1% 94B std core::fmt::num::<impl core::fmt::UpperHex for...
0.0% 0.1% 94B std core::fmt::num::<impl core::fmt::UpperHex for...
0.0% 0.1% 94B std core::fmt::num::<impl core::fmt::LowerHex for...
0.0% 0.1% 94B std core::fmt::num::<impl core::fmt::LowerHex for...
0.0% 0.1% 94B cortex_m_semihosting <cortex_m_semihosting::hio::HStdout as core::...
0.0% 0.1% 92B std core::fmt::builders::DebugList::finish
0.0% 0.1% 88B nrf52_hal_common <nrf52_hal_common::timer::Timer<T>>::start
0.0% 0.1% 86B std core::ptr::swap_nonoverlapping_one
0.0% 0.1% 84B cortex_m_rt Reset
0.0% 0.1% 84B std <[T] as core::fmt::Debug>::fmt
0.0% 0.1% 82B std <core::ops::range::Range<usize> as core::slic...
0.0% 0.1% 82B nrf52_hal_common <nrf52_hal_common::uarte::Uarte<T>>::new::{{c...
0.0% 0.1% 82B nrf52_hal_common <nrf52_hal_common::gpio::p0::P0_Pin<nrf52_hal...
0.0% 0.1% 82B nrf52_hal_common nrf52832_pac::uarte0::config::<impl nrf52832_...
0.0% 0.1% 82B std <core::ops::range::Range<usize> as core::slic...
0.0% 0.1% 82B std <core::ops::range::Range<usize> as core::slic...
0.0% 0.1% 82B std <core::ops::range::Range<usize> as core::slic...
0.0% 0.1% 82B dwm1001 <nrf52_hal_common::gpio::p0::P0_20<MODE>>::in...
0.0% 0.1% 82B dwm1001 <nrf52_hal_common::gpio::p0::P0_17<MODE>>::in...
0.0% 0.1% 82B dwm1001 <nrf52_hal_common::gpio::p0::P0_16<MODE>>::in...
0.0% 0.1% 82B dwm1001 <nrf52_hal_common::gpio::p0::P0_11<MODE>>::in...
0.0% 0.1% 82B dwm1001 <nrf52_hal_common::gpio::p0::P0_05<MODE>>::in...
0.0% 0.1% 82B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_Pin<nrf52_hal...
0.0% 0.1% 82B cortex_m cortex_m::interrupt::free
0.0% 0.1% 82B cortex_m cortex_m::interrupt::free
0.0% 0.1% 82B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Ready>>:...
0.0% 0.1% 82B std core::ptr::swap_nonoverlapping_one
0.0% 0.1% 82B std core::ptr::swap_nonoverlapping_one
0.0% 0.1% 80B std <core::ops::range::RangeFrom<usize> as core::...
0.0% 0.1% 80B dw1000 dw1000::hl::<impl core::convert::From<dw1000:...
0.0% 0.1% 80B std <core::result::Result<T, E>>::expect
0.0% 0.1% 80B std core::ptr::read
0.0% 0.1% 78B [Unknown] __aeabi_memset
0.0% 0.1% 78B cortex_m_semihosting core::fmt::Write::write_char
0.0% 0.1% 78B dwm1001 cortex_m::interrupt::free
0.0% 0.1% 78B dwm1001 cortex_m::interrupt::free
0.0% 0.1% 76B std core::char::methods::<impl char>::len_utf8
0.0% 0.1% 76B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::new::{{clo...
0.0% 0.1% 76B ieee802154 <ieee802154::mac::PanIdCompress as core::fmt:...
0.0% 0.1% 76B ieee802154 <ieee802154::mac::Security as core::fmt::Debu...
0.0% 0.1% 76B ieee802154 core::fmt::Arguments::new_v1
0.0% 0.1% 74B std core::slice::slice_index_order_fail
0.0% 0.1% 74B std core::slice::slice_index_len_fail
0.0% 0.1% 74B cortex_m_semihosting core::fmt::Write::write_fmt
0.0% 0.1% 74B nrf52_hal_common <nrf52_hal_common::timer::Timer<T>>::new
0.0% 0.1% 74B nrf52_hal_common nrf52_hal_common::gpio::p0::OpenDrainConfig::...
0.0% 0.1% 74B dw1000 dw1000::ll::rx_buffer::R::data
0.0% 0.0% 72B cortex_m_rt r0::zero_bss
0.0% 0.0% 72B cortex_m cortex_m::peripheral::syst::<impl cortex_m::p...
0.0% 0.0% 72B cortex_m cortex_m::peripheral::syst::<impl cortex_m::p...
0.0% 0.0% 72B nrf52832_pac nrf52832_pac::p0::pin_cnf::SENSEW::_bits
0.0% 0.0% 72B nrf52832_pac nrf52832_pac::p0::pin_cnf::PULLW::_bits
0.0% 0.0% 72B nrf52832_pac nrf52832_pac::timer0::bitmode::BITMODEW::_bits
0.0% 0.0% 72B nrf52_hal_common <nrf52832_pac::SPIM2 as nrf52_hal_common::spi...
0.0% 0.0% 72B dw1000 core::num::<impl u8>::count_ones
0.0% 0.0% 72B nrf52832_pac nrf52832_pac::p0::pin_cnf::SENSEW::_bits
0.0% 0.0% 72B nrf52832_pac nrf52832_pac::p0::pin_cnf::PULLW::_bits
0.0% 0.0% 72B nrf52832_pac nrf52832_pac::p0::pin_cnf::SENSEW::_bits
0.0% 0.0% 72B nrf52832_pac nrf52832_pac::p0::pin_cnf::PULLW::_bits
0.0% 0.0% 70B std core::panicking::panic_bounds_check
0.0% 0.0% 70B std <core::ops::range::RangeTo<usize> as core::sl...
0.0% 0.0% 70B nrf52_hal_common nrf52832_pac::twim0::frequency::<impl nrf5283...
0.0% 0.0% 70B nrf52_hal_common <nrf52_hal_common::twim::Twim<T>>::new::{{clo...
0.0% 0.0% 70B nrf52_hal_common <nrf52_hal_common::twim::Twim<T>>::new::{{clo...
0.0% 0.0% 70B nrf52_hal_common <nrf52_hal_common::uarte::Uarte<T>>::new::{{c...
0.0% 0.0% 70B nrf52_hal_common <nrf52_hal_common::uarte::Uarte<T>>::new::{{c...
0.0% 0.0% 70B nrf52832_pac nrf52832_pac::twim0::frequency::FREQUENCYW::_...
0.0% 0.0% 70B nrf52_hal_common nrf52832_pac::uarte0::baudrate::<impl nrf5283...
0.0% 0.0% 70B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::new::{{clo...
0.0% 0.0% 70B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::new::{{clo...
0.0% 0.0% 70B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::new::{{clo...
0.0% 0.0% 70B std <core::ops::range::RangeTo<usize> as core::sl...
0.0% 0.0% 70B std <core::ops::range::RangeTo<usize> as core::sl...
0.0% 0.0% 70B nrf52832_pac nrf52832_pac::p0::pin_cnf::<impl nrf52832_pac...
0.0% 0.0% 68B nrf52_hal_common <nrf52_hal_common::delay::Delay as embedded_h...
0.0% 0.0% 68B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 68B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 68B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 66B std <core::ops::range::Range<Idx> as core::fmt::D...
0.0% 0.0% 66B nrf52_hal_common nrf52832_pac::uarte0::psel::txd::<impl nrf528...
0.0% 0.0% 66B nrf52_hal_common nrf52832_pac::uarte0::psel::rxd::<impl nrf528...
0.0% 0.0% 66B nrf52_hal_common nrf52832_pac::uarte0::psel::rts::<impl nrf528...
0.0% 0.0% 66B nrf52_hal_common nrf52832_pac::uarte0::psel::cts::<impl nrf528...
0.0% 0.0% 66B nrf52_hal_common nrf52832_pac::spim0::psel::mosi::<impl nrf528...
0.0% 0.0% 66B nrf52_hal_common nrf52832_pac::spim0::psel::miso::<impl nrf528...
0.0% 0.0% 66B nrf52_hal_common nrf52832_pac::spim0::psel::sck::<impl nrf5283...
0.0% 0.0% 66B nrf52_hal_common nrf52832_pac::p0::outset::<impl nrf52832_pac:...
0.0% 0.0% 66B nrf52_hal_common nrf52832_pac::twim0::psel::sda::<impl nrf5283...
0.0% 0.0% 66B nrf52_hal_common nrf52832_pac::twim0::psel::scl::<impl nrf5283...
0.0% 0.0% 66B dwm1001 nrf52832_pac::p0::outclr::<impl nrf52832_pac:...
0.0% 0.0% 66B nrf52832_pac nrf52832_pac::spim0::txd::maxcnt::<impl nrf52...
0.0% 0.0% 66B nrf52832_pac nrf52832_pac::spim0::txd::maxcnt::<impl nrf52...
0.0% 0.0% 66B nrf52832_pac nrf52832_pac::spim0::txd::ptr::<impl nrf52832...
0.0% 0.0% 66B nrf52832_pac nrf52832_pac::spim0::txd::ptr::<impl nrf52832...
0.0% 0.0% 66B std <core::option::Option<T>>::unwrap
0.0% 0.0% 66B nrf52832_pac nrf52832_pac::spim0::rxd::maxcnt::<impl nrf52...
0.0% 0.0% 66B nrf52832_pac nrf52832_pac::spim0::rxd::ptr::<impl nrf52832...
0.0% 0.0% 66B std core::ptr::swap_nonoverlapping
0.0% 0.0% 66B std core::ptr::swap_nonoverlapping
0.0% 0.0% 66B std core::ptr::swap_nonoverlapping
0.0% 0.0% 66B nrf52832_pac nrf52832_pac::timer0::cc::<impl nrf52832_pac:...
0.0% 0.0% 64B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 64B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 64B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::write::{{c...
0.0% 0.0% 64B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::write::{{c...
0.0% 0.0% 64B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::read::{{cl...
0.0% 0.0% 64B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::read::{{cl...
0.0% 0.0% 64B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::read::{{cl...
0.0% 0.0% 64B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::read::{{cl...
0.0% 0.0% 62B std core::fmt::builders::DebugStruct::finish
0.0% 0.0% 62B cortex_m_rt core::sync::atomic::compiler_fence
0.0% 0.0% 62B cortex_m_rt core::ptr::read
0.0% 0.0% 62B cortex_m cortex_m::peripheral::syst::<impl cortex_m::p...
0.0% 0.0% 62B std core::sync::atomic::compiler_fence
0.0% 0.0% 62B std core::cell::BorrowRefMut::new
0.0% 0.0% 62B std core::ptr::read
0.0% 0.0% 62B std core::ptr::read
0.0% 0.0% 60B std core::fmt::Formatter::debug_list
0.0% 0.0% 60B ieee802154 core::array::<impl core::fmt::Debug for [T; _...
0.0% 0.0% 60B dwm1001 cortex_m::register::primask::read
0.0% 0.0% 60B cortex_m cortex_m::register::primask::read
0.0% 0.0% 58B std core::panicking::panic
0.0% 0.0% 58B cortex_m cortex_m::peripheral::syst::<impl cortex_m::p...
0.0% 0.0% 58B nrf52_hal_common nrf52832_pac::timer0::prescaler::<impl nrf528...
0.0% 0.0% 58B nrf52_hal_common nrf52832_pac::timer0::bitmode::<impl nrf52832...
0.0% 0.0% 58B nrf52_hal_common nrf52832_pac::timer0::shorts::<impl nrf52832_...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::pin_cnf::_SENSEW::bits
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::pin_cnf::_INPUTW::variant
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::pin_cnf::_DRIVEW::bits
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::pin_cnf::_PULLW::bits
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::pin_cnf::_DIRW::variant
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::uarte0::config::_PARITYW::bits
0.0% 0.0% 58B nrf52_hal_common nrf52832_pac::twim0::enable::<impl nrf52832_p...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::spim0::config::_ORDERW::variant
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::spim0::config::_CPOLW::variant
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::spim0::config::_CPHAW::variant
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::uarte0::psel::rxd::_CONNECTW::v...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::spim0::psel::sck::_CONNECTW::va...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::uarte0::psel::txd::_CONNECTW::v...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::twim0::psel::sda::_CONNECTW::va...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::twim0::psel::scl::_CONNECTW::va...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::spim0::psel::miso::_CONNECTW::v...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::uarte0::psel::rts::_CONNECTW::v...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::uarte0::psel::cts::_CONNECTW::v...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::spim0::psel::mosi::_CONNECTW::v...
0.0% 0.0% 58B nrf52_hal_common nrf52832_pac::uarte0::enable::<impl nrf52832_...
0.0% 0.0% 58B nrf52_hal_common nrf52832_pac::spim0::frequency::<impl nrf5283...
0.0% 0.0% 58B nrf52_hal_common nrf52832_pac::spim0::enable::<impl nrf52832_p...
0.0% 0.0% 58B nrf52_hal_common nrf52832_pac::spim0::config::<impl nrf52832_p...
0.0% 0.0% 58B nrf52_hal_common nrf52832_pac::spim0::orc::<impl nrf52832_pac:...
0.0% 0.0% 58B nrf52_hal_common nrf52832_pac::p0::pin_cnf::<impl nrf52832_pac...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::timer0::shorts::_COMPARE0_CLEAR...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::timer0::shorts::_COMPARE0_STOPW...
0.0% 0.0% 58B nrf52_hal_common <nrf52832_pac::UARTE0 as nrf52_hal_common::ua...
0.0% 0.0% 58B ieee802154 core::slice::<impl core::ops::index::Index<I>...
0.0% 0.0% 58B dwm1001 cortex_m::peripheral::Peripherals::take::{{cl...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::pin_cnf::<impl nrf52832_pac...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::pin_cnf::<impl nrf52832_pac...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::pin_cnf::<impl nrf52832_pac...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::pin_cnf::<impl nrf52832_pac...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::pin_cnf::<impl nrf52832_pac...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::pin_cnf::<impl nrf52832_pac...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::pin_cnf::<impl nrf52832_pac...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::pin_cnf::<impl nrf52832_pac...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::pin_cnf::<impl nrf52832_pac...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::pin_cnf::<impl nrf52832_pac...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::pin_cnf::<impl nrf52832_pac...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::outset::<impl nrf52832_pac:...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::outset::<impl nrf52832_pac:...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::outset::<impl nrf52832_pac:...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::outset::<impl nrf52832_pac:...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::outset::<impl nrf52832_pac:...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::outclr::<impl nrf52832_pac:...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::outclr::<impl nrf52832_pac:...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::outclr::<impl nrf52832_pac:...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::outclr::<impl nrf52832_pac:...
0.0% 0.0% 58B dwm1001 nrf52832_pac::p0::outclr::<impl nrf52832_pac:...
0.0% 0.0% 58B dwm1001 nrf52832_pac::Peripherals::take::{{closure}}
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::pin_cnf::_SENSEW::bits
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::pin_cnf::_INPUTW::variant
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::pin_cnf::_DRIVEW::bits
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::pin_cnf::_PULLW::bits
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::pin_cnf::_DIRW::variant
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::pin_cnf::<impl nrf52832_pac...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::outset::<impl nrf52832_pac:...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::outclr::<impl nrf52832_pac:...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::spim0::tasks_start::<impl nrf52...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::spim0::tasks_start::<impl nrf52...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::spim0::events_end::<impl nrf528...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::spim0::events_end::<impl nrf528...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::spim0::rxd::maxcnt::<impl nrf52...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::timer0::events_compare::<impl n...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::timer0::tasks_start::<impl nrf5...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::timer0::tasks_clear::<impl nrf5...
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::pin_cnf::_SENSEW::bits
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::pin_cnf::_INPUTW::variant
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::pin_cnf::_DRIVEW::bits
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::pin_cnf::_PULLW::bits
0.0% 0.0% 58B nrf52832_pac nrf52832_pac::p0::pin_cnf::_DIRW::variant
0.0% 0.0% 56B std <usize as core::slice::SliceIndex<[T]>>::get_...
0.0% 0.0% 56B std <core::fmt::Write::write_fmt::Adapter<'_, T> ...
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::p0::pin_cnf::INPUTW::_bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::p0::pin_cnf::DIRW::_bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::uarte0::config::PARITYW::_bits
0.0% 0.0% 56B nrf52_hal_common <nrf52_hal_common::timer::Timer<T>>::new::{{c...
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::spim0::config::ORDERW::_bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::spim0::config::CPOLW::_bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::spim0::config::CPHAW::_bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::uarte0::psel::rxd::CONNECTW::_bits
0.0% 0.0% 56B nrf52_hal_common nrf52832_pac::uarte0::psel::rxd::_PINW::bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::spim0::psel::sck::CONNECTW::_bits
0.0% 0.0% 56B nrf52_hal_common nrf52832_pac::spim0::psel::sck::_PINW::bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::uarte0::psel::txd::CONNECTW::_bits
0.0% 0.0% 56B nrf52_hal_common nrf52832_pac::uarte0::psel::txd::_PINW::bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::twim0::psel::sda::CONNECTW::_bits
0.0% 0.0% 56B nrf52_hal_common nrf52832_pac::twim0::psel::sda::_PINW::bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::twim0::psel::scl::CONNECTW::_bits
0.0% 0.0% 56B nrf52_hal_common nrf52832_pac::twim0::psel::scl::_PINW::bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::spim0::psel::miso::CONNECTW::_bits
0.0% 0.0% 56B nrf52_hal_common nrf52832_pac::spim0::psel::miso::_PINW::bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::uarte0::psel::rts::CONNECTW::_bits
0.0% 0.0% 56B nrf52_hal_common nrf52832_pac::uarte0::psel::rts::_PINW::bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::uarte0::psel::cts::CONNECTW::_bits
0.0% 0.0% 56B nrf52_hal_common nrf52832_pac::uarte0::psel::cts::_PINW::bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::spim0::psel::mosi::CONNECTW::_bits
0.0% 0.0% 56B nrf52_hal_common nrf52832_pac::spim0::psel::mosi::_PINW::bits
0.0% 0.0% 56B nrf52_hal_common <core::option::Option<T>>::is_some
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::uarte0::enable::_ENABLEW::bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::uarte0::enable::ENABLEW::_bits
0.0% 0.0% 56B nrf52_hal_common nrf52832_pac::timer0::prescaler::_PRESCALERW:...
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::timer0::bitmode::_BITMODEW::bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::timer0::shorts::COMPARE0_CLEARW...
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::timer0::shorts::COMPARE0_STOPW:...
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::twim0::enable::_ENABLEW::bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::twim0::enable::ENABLEW::_bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::spim0::enable::_ENABLEW::bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::spim0::enable::ENABLEW::_bits
0.0% 0.0% 56B dwm1001 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::p0::pin_cnf::INPUTW::_bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::p0::pin_cnf::DIRW::_bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::p0::pin_cnf::INPUTW::_bits
0.0% 0.0% 56B nrf52832_pac nrf52832_pac::p0::pin_cnf::DIRW::_bits
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::Peripherals::steal
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::p0::pin_cnf::_SENSEW::variant
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::p0::pin_cnf::_INPUTW::bit
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::p0::pin_cnf::_DRIVEW::variant
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::p0::pin_cnf::_PULLW::variant
0.0% 0.0% 54B nrf52_hal_common nrf52832_pac::uarte0::config::_PARITYW::variant
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::spim0::config::_CPOLW::bit
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::spim0::config::_CPHAW::bit
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::uarte0::psel::rxd::_CONNECTW::bit
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::spim0::psel::sck::_CONNECTW::bit
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::uarte0::psel::txd::_CONNECTW::bit
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::twim0::psel::sda::_CONNECTW::bit
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::twim0::psel::scl::_CONNECTW::bit
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::spim0::psel::miso::_CONNECTW::bit
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::uarte0::psel::rts::_CONNECTW::bit
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::uarte0::psel::cts::_CONNECTW::bit
0.0% 0.0% 54B nrf52_hal_common nrf52832_pac::twim0::frequency::_FREQUENCYW::...
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::spim0::psel::mosi::_CONNECTW::bit
0.0% 0.0% 54B nrf52_hal_common nrf52832_pac::uarte0::baudrate::_BAUDRATEW::v...
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::uarte0::enable::_ENABLEW::variant
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::timer0::bitmode::_BITMODEW::var...
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::timer0::shorts::_COMPARE0_STOPW...
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::twim0::enable::_ENABLEW::variant
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::spim0::enable::_ENABLEW::variant
0.0% 0.0% 54B nrf52_hal_common <nrf52832_pac::TWIM1 as nrf52_hal_common::twi...
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::spim0::frequency::_FREQUENCYW::...
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::p0::pin_cnf::_SENSEW::variant
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::p0::pin_cnf::_INPUTW::bit
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::p0::pin_cnf::_DRIVEW::variant
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::p0::pin_cnf::_PULLW::variant
0.0% 0.0% 54B std <core::cell::RefCell<T>>::borrow_mut
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::p0::pin_cnf::_SENSEW::variant
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::p0::pin_cnf::_INPUTW::bit
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::p0::pin_cnf::_DRIVEW::variant
0.0% 0.0% 54B nrf52832_pac nrf52832_pac::p0::pin_cnf::_PULLW::variant
0.0% 0.0% 52B cortex_m cortex_m::peripheral::syst::<impl cortex_m::p...
0.0% 0.0% 52B std <core::fmt::Write::write_fmt::Adapter<'_, T> ...
0.0% 0.0% 52B cortex_m_semihosting cortex_m_semihosting::hio::HStdout::write_all
0.0% 0.0% 52B std <&T as core::fmt::Display>::fmt
0.0% 0.0% 52B nrf52832_pac nrf52832_pac::p0::pin_cnf::_DIRW::bit
0.0% 0.0% 52B nrf52_hal_common nrf52832_pac::uarte0::config::_HWFCW::bit
0.0% 0.0% 52B nrf52832_pac nrf52832_pac::spim0::config::_ORDERW::bit
0.0% 0.0% 52B nrf52832_pac nrf52832_pac::timer0::shorts::_COMPARE0_CLEAR...
0.0% 0.0% 52B nrf52_hal_common nrf52832_pac::spim0::orc::_ORCW::bits
0.0% 0.0% 52B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 52B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 52B nrf52832_pac nrf52832_pac::p0::pin_cnf::_DIRW::bit
0.0% 0.0% 52B nrf52832_pac nrf52832_pac::spim0::rxd::maxcnt::_MAXCNTW::bits
0.0% 0.0% 52B nrf52832_pac nrf52832_pac::spim0::txd::maxcnt::_MAXCNTW::bits
0.0% 0.0% 52B nrf52832_pac nrf52832_pac::p0::pin_cnf::_DIRW::bit
0.0% 0.0% 50B panic_semihosting core::fmt::ArgumentV1::new
0.0% 0.0% 50B cortex_m core::slice::<impl [T]>::get_unchecked_mut
0.0% 0.0% 50B cortex_m core::fmt::ArgumentV1::new
0.0% 0.0% 50B cortex_m core::fmt::ArgumentV1::new
0.0% 0.0% 50B cortex_m cortex_m::peripheral::Peripherals::steal
0.0% 0.0% 50B cortex_m_semihosting cortex_m_semihosting::hio::hstdout
0.0% 0.0% 50B cast core::fmt::ArgumentV1::new
0.0% 0.0% 50B nrf52_hal_common nrf52_hal_common::delay::Delay::new
0.0% 0.0% 50B encode_unicode core::slice::<impl core::ops::index::IndexMut...
0.0% 0.0% 50B encode_unicode core::slice::<impl core::ops::index::Index<I>...
0.0% 0.0% 50B ieee802154 core::slice::<impl core::ops::index::Index<I>...
0.0% 0.0% 50B ieee802154 core::fmt::ArgumentV1::new
0.0% 0.0% 50B ieee802154 core::fmt::ArgumentV1::new
0.0% 0.0% 50B dwm1001 dwm1001::Led::new
0.0% 0.0% 50B std core::fmt::ArgumentV1::new
0.0% 0.0% 50B std core::fmt::ArgumentV1::new
0.0% 0.0% 50B std core::fmt::ArgumentV1::new
0.0% 0.0% 50B std core::fmt::ArgumentV1::new
0.0% 0.0% 50B std core::fmt::ArgumentV1::new
0.0% 0.0% 48B std core::panicking::panic_fmt
0.0% 0.0% 48B nrf52_hal_common <nrf52_hal_common::twim::Twim<T>>::new::{{clo...
0.0% 0.0% 48B nrf52_hal_common <nrf52_hal_common::uarte::Uarte<T>>::new::{{c...
0.0% 0.0% 48B nrf52_hal_common nrf52_hal_common::clocks::ClocksCfg::freeze
0.0% 0.0% 48B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 48B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 48B std <T as core::convert::Into<U>>::into
0.0% 0.0% 48B dw1000 <dw1000::hl::RxFuture<'r, SPI>>::wait::{{clos...
0.0% 0.0% 46B cortex_m core::slice::<impl [T]>::get_unchecked_mut
0.0% 0.0% 46B std <core::iter::Enumerate<I> as core::iter::iter...
0.0% 0.0% 46B std <core::iter::Enumerate<I> as core::iter::iter...
0.0% 0.0% 46B nrf52_hal_common <nrf52_hal_common::timer::Timer<T>>::start::{...
0.0% 0.0% 46B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 46B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 46B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 44B nrf52832_pac nrf52832_pac::twim0::frequency::_FREQUENCYW::...
0.0% 0.0% 44B nrf52832_pac nrf52832_pac::uarte0::baudrate::_BAUDRATEW::bits
0.0% 0.0% 44B nrf52832_pac nrf52832_pac::spim0::frequency::_FREQUENCYW::...
0.0% 0.0% 44B std <core::iter::Enumerate<I> as core::iter::iter...
0.0% 0.0% 44B ieee802154 ieee802154::mac::PanIdCompress::from_bits
0.0% 0.0% 44B ieee802154 ieee802154::mac::Security::from_bits
0.0% 0.0% 44B dw1000 <dw1000::ll::FS_PLLTUNE as dw1000::ll::Writab...
0.0% 0.0% 44B dw1000 <dw1000::ll::TC_PGDELAY as dw1000::ll::Writab...
0.0% 0.0% 44B std <core::iter::Enumerate<I> as core::iter::iter...
0.0% 0.0% 44B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 44B nrf52832_pac nrf52832_pac::spim0::txd::ptr::_PTRW::bits
0.0% 0.0% 44B std <core::cell::Cell<T>>::replace
0.0% 0.0% 44B nrf52832_pac nrf52832_pac::timer0::cc::_CCW::bits
0.0% 0.0% 44B nrf52832_pac nrf52832_pac::spim0::rxd::ptr::_PTRW::bits
0.0% 0.0% 42B dw1000 <dw1000::ll::RX_TIME as dw1000::ll::Readable>...
0.0% 0.0% 42B dw1000 <dw1000::ll::RX_BUFFER as dw1000::ll::Readabl...
0.0% 0.0% 42B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Ready>>:...
0.0% 0.0% 42B std <core::option::Option<T>>::take
0.0% 0.0% 40B std <&T as core::fmt::Display>::fmt
0.0% 0.0% 40B std <bool as core::fmt::Display>::fmt
0.0% 0.0% 40B cortex_m cortex_m::register::primask::Primask::is_active
0.0% 0.0% 40B cortex_m core::slice::<impl [T]>::is_empty
0.0% 0.0% 40B std <core::fmt::Write::write_fmt::Adapter<'_, T> ...
0.0% 0.0% 40B nrf52_hal_common <nrf52_hal_common::gpio::p0::P0_Pin<nrf52_hal...
0.0% 0.0% 40B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 40B std core::cmp::impls::<impl core::cmp::PartialOrd...
0.0% 0.0% 40B ssmarshal core::iter::iterator::Iterator::enumerate
0.0% 0.0% 40B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 40B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 40B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 40B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 40B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 40B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 40B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 40B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 40B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 40B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 40B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 40B std <T as core::convert::From<T>>::from
0.0% 0.0% 40B dw1000 core::iter::iterator::Iterator::enumerate
0.0% 0.0% 40B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 40B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 40B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 40B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_Pin<nrf52_hal...
0.0% 0.0% 40B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 40B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 40B std core::cmp::impls::<impl core::cmp::PartialOrd...
0.0% 0.0% 40B std <core::cell::Cell<T>>::set
0.0% 0.0% 40B std <core::cell::BorrowRefMut<'_> as core::ops::d...
0.0% 0.0% 38B std <&T as core::fmt::Display>::fmt
0.0% 0.0% 38B std core::fmt::Formatter::debug_tuple
0.0% 0.0% 38B std <core::fmt::Write::write_fmt::Adapter<'_, T> ...
0.0% 0.0% 38B cortex_m core::slice::from_raw_parts_mut
0.0% 0.0% 38B cortex_m core::slice::from_raw_parts
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::p0::pin_cnf::_SENSEW::disabled
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::p0::pin_cnf::_INPUTW::connect
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::p0::pin_cnf::_DRIVEW::s0d1
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::p0::pin_cnf::_PULLW::pullup
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::p0::pin_cnf::_DIRW::input
0.0% 0.0% 38B nrf52_hal_common core::ptr::<impl *const T>::is_null
0.0% 0.0% 38B nrf52_hal_common core::ptr::<impl *mut T>::is_null
0.0% 0.0% 38B nrf52_hal_common <nrf52_hal_common::timer::Timer<T>>::new::{{c...
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::spim0::config::_ORDERW::msb_first
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::spim0::config::_CPOLW::active_high
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::spim0::config::_CPHAW::leading
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::uarte0::psel::rxd::_CONNECTW::c...
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::spim0::psel::sck::_CONNECTW::co...
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::uarte0::psel::txd::_CONNECTW::c...
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::twim0::psel::sda::_CONNECTW::co...
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::twim0::psel::scl::_CONNECTW::co...
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::spim0::psel::miso::_CONNECTW::c...
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::uarte0::psel::rts::_CONNECTW::c...
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::uarte0::psel::rts::_CONNECTW::d...
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::uarte0::psel::cts::_CONNECTW::c...
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::uarte0::psel::cts::_CONNECTW::d...
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::spim0::psel::mosi::_CONNECTW::c...
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::uarte0::enable::_ENABLEW::enabled
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::timer0::bitmode::_BITMODEW::_32bit
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::timer0::shorts::_COMPARE0_CLEAR...
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::timer0::shorts::_COMPARE0_STOPW...
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::twim0::enable::_ENABLEW::enabled
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::spim0::enable::_ENABLEW::enabled
0.0% 0.0% 38B nrf52_hal_common nrf52832_pac::spim0::frequency::_FREQUENCYW::...
0.0% 0.0% 38B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::new::{{clo...
0.0% 0.0% 38B encode_unicode core::ptr::<impl *const T>::is_null
0.0% 0.0% 38B encode_unicode core::slice::from_raw_parts_mut
0.0% 0.0% 38B encode_unicode core::slice::from_raw_parts
0.0% 0.0% 38B ieee802154 core::ptr::<impl *const T>::is_null
0.0% 0.0% 38B ieee802154 core::slice::<impl core::ops::index::Index<I>...
0.0% 0.0% 38B ieee802154 core::slice::from_raw_parts
0.0% 0.0% 38B std <bool as core::fmt::Debug>::fmt
0.0% 0.0% 38B dw1000 <dw1000::ll::LDOTUNE as dw1000::ll::Writable>...
0.0% 0.0% 38B dwm1001 nrf52832_pac::p0::pin_cnf::_SENSEW::disabled
0.0% 0.0% 38B dwm1001 nrf52832_pac::p0::pin_cnf::_INPUTW::connect
0.0% 0.0% 38B dwm1001 nrf52832_pac::p0::pin_cnf::_INPUTW::disconnect
0.0% 0.0% 38B dwm1001 nrf52832_pac::p0::pin_cnf::_DRIVEW::s0s1
0.0% 0.0% 38B dwm1001 nrf52832_pac::p0::pin_cnf::_PULLW::disabled
0.0% 0.0% 38B dwm1001 nrf52832_pac::p0::pin_cnf::_DIRW::output
0.0% 0.0% 38B dwm1001 nrf52832_pac::p0::pin_cnf::_DIRW::input
0.0% 0.0% 38B nrf52832_pac nrf52832_pac::spim0::txd::amount::<impl nrf52...
0.0% 0.0% 38B nrf52832_pac nrf52832_pac::spim0::events_end::<impl nrf528...
0.0% 0.0% 38B std core::mem::replace
0.0% 0.0% 38B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::write::{{c...
0.0% 0.0% 38B nrf52832_pac nrf52832_pac::timer0::events_compare::<impl n...
0.0% 0.0% 38B nrf52832_pac nrf52832_pac::p0::pin_cnf::_SENSEW::disabled
0.0% 0.0% 38B nrf52832_pac nrf52832_pac::p0::pin_cnf::_INPUTW::connect
0.0% 0.0% 38B nrf52832_pac nrf52832_pac::p0::pin_cnf::_INPUTW::disconnect
0.0% 0.0% 38B nrf52832_pac nrf52832_pac::p0::pin_cnf::_DRIVEW::s0s1
0.0% 0.0% 38B nrf52832_pac nrf52832_pac::p0::pin_cnf::_PULLW::disabled
0.0% 0.0% 38B nrf52832_pac nrf52832_pac::p0::pin_cnf::_DIRW::output
0.0% 0.0% 38B nrf52832_pac nrf52832_pac::p0::pin_cnf::_DIRW::input
0.0% 0.0% 38B nrf52832_pac nrf52832_pac::spim0::rxd::amount::<impl nrf52...
0.0% 0.0% 36B std core::fmt::Write::write_fmt
0.0% 0.0% 36B cortex_m_rt core::ptr::<impl *const T>::offset
0.0% 0.0% 36B cortex_m_rt core::ptr::<impl *mut T>::offset
0.0% 0.0% 36B nrf52_hal_common <nrf52_hal_common::twim::Twim<T>>::new::{{clo...
0.0% 0.0% 36B nrf52_hal_common <nrf52_hal_common::timer::Timer<T>>::new::{{c...
0.0% 0.0% 36B nrf52_hal_common <nrf52_hal_common::uarte::Uarte<T>>::new::{{c...
0.0% 0.0% 36B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::new::{{clo...
0.0% 0.0% 36B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::new::{{clo...
0.0% 0.0% 36B std <I as core::iter::traits::IntoIterator>::into...
0.0% 0.0% 36B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 36B std <I as core::iter::traits::IntoIterator>::into...
0.0% 0.0% 36B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_20<nrf52_hal_...
0.0% 0.0% 36B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_20<nrf52_hal_...
0.0% 0.0% 36B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_17<nrf52_hal_...
0.0% 0.0% 36B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_17<nrf52_hal_...
0.0% 0.0% 36B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_16<nrf52_hal_...
0.0% 0.0% 36B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_16<nrf52_hal_...
0.0% 0.0% 36B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_11<nrf52_hal_...
0.0% 0.0% 36B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_11<nrf52_hal_...
0.0% 0.0% 36B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 36B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 36B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_24<nrf52_hal_...
0.0% 0.0% 36B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_24<nrf52_hal_...
0.0% 0.0% 34B std <core::fmt::Arguments<'_> as core::fmt::Displ...
0.0% 0.0% 34B r0 core::ptr::<impl *const T>::wrapping_offset
0.0% 0.0% 34B r0 core::ptr::<impl *const T>::wrapping_add
0.0% 0.0% 34B cortex_m core::ptr::<impl *const T>::offset
0.0% 0.0% 34B cortex_m core::ptr::<impl *mut T>::offset
0.0% 0.0% 34B cortex_m core::ptr::<impl *mut T>::add
0.0% 0.0% 34B nrf52_hal_common core::ptr::<impl *const T>::add
0.0% 0.0% 34B nrf52_hal_common core::ptr::<impl *mut T>::wrapping_offset
0.0% 0.0% 34B nrf52_hal_common core::ptr::<impl *mut T>::wrapping_add
0.0% 0.0% 34B nrf52_hal_common core::array::<impl core::iter::traits::IntoIt...
0.0% 0.0% 34B encode_unicode core::ptr::<impl *const T>::offset
0.0% 0.0% 34B encode_unicode core::ptr::<impl *const T>::add
0.0% 0.0% 34B encode_unicode core::ptr::<impl *const T>::wrapping_offset
0.0% 0.0% 34B encode_unicode core::ptr::<impl *mut T>::offset
0.0% 0.0% 34B encode_unicode core::ptr::<impl *mut T>::add
0.0% 0.0% 34B hash32 core::ptr::<impl *const T>::offset
0.0% 0.0% 34B hash32 core::ptr::<impl *const T>::add
0.0% 0.0% 34B ieee802154 core::ptr::<impl *const T>::wrapping_offset
0.0% 0.0% 34B ieee802154 core::ptr::<impl *const T>::wrapping_add
0.0% 0.0% 34B std <core::option::Option<T> as core::ops::try::T...
0.0% 0.0% 34B std <core::option::Option<T> as core::ops::try::T...
0.0% 0.0% 34B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_20<nrf52_hal_...
0.0% 0.0% 34B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_20<nrf52_hal_...
0.0% 0.0% 34B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_17<nrf52_hal_...
0.0% 0.0% 34B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_17<nrf52_hal_...
0.0% 0.0% 34B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_16<nrf52_hal_...
0.0% 0.0% 34B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_16<nrf52_hal_...
0.0% 0.0% 34B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_11<nrf52_hal_...
0.0% 0.0% 34B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_11<nrf52_hal_...
0.0% 0.0% 34B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_05<nrf52_hal_...
0.0% 0.0% 34B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_05<nrf52_hal_...
0.0% 0.0% 34B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_05<nrf52_hal_...
0.0% 0.0% 34B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_05<nrf52_hal_...
0.0% 0.0% 34B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 34B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 34B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 34B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 34B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 34B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Ready>>:...
0.0% 0.0% 34B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Ready>>:...
0.0% 0.0% 34B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Ready>>:...
0.0% 0.0% 34B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Ready>>:...
0.0% 0.0% 34B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 34B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_24<nrf52_hal_...
0.0% 0.0% 34B nrf52_hal_common? <nrf52_hal_common::gpio::p0::P0_24<nrf52_hal_...
0.0% 0.0% 34B std core::num::<impl u32>::wrapping_add
0.0% 0.0% 32B dwm1001 dwm1001::DW_RST::new
0.0% 0.0% 32B std core::ptr::real_drop_in_place
0.0% 0.0% 32B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 32B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 32B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 32B bare_metal <bare_metal::Mutex<T>>::borrow
0.0% 0.0% 32B std core::mem::replace
0.0% 0.0% 30B std core::fmt::Formatter::debug_struct
0.0% 0.0% 30B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 30B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 30B std <T as core::convert::From<T>>::from
0.0% 0.0% 30B dwm1001 <nrf52_hal_common::gpio::p0::P0_29<MODE>>::in...
0.0% 0.0% 30B dwm1001 <nrf52_hal_common::gpio::p0::P0_28<MODE>>::in...
0.0% 0.0% 30B dwm1001 <nrf52_hal_common::gpio::p0::P0_24<MODE>>::in...
0.0% 0.0% 30B dwm1001 <nrf52_hal_common::gpio::p0::P0_19<MODE>>::in...
0.0% 0.0% 30B dwm1001 <nrf52_hal_common::gpio::p0::P0_18<MODE>>::in...
0.0% 0.0% 30B nrf52_hal_common <nrf52_hal_common::timer::Timer<T>>::start::{...
0.0% 0.0% 30B nrf52_hal_common <nrf52_hal_common::timer::Timer<T>>::start::{...
0.0% 0.0% 30B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 30B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 30B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 30B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Uninitia...
0.0% 0.0% 30B dw1000 <dw1000::hl::DW1000<SPI, dw1000::hl::Ready>>:...
0.0% 0.0% 30B nrf52_hal_common <nrf52_hal_common::gpio::p0::P0_24<MODE>>::in...
0.0% 0.0% 30B std core::mem::swap
0.0% 0.0% 30B std core::mem::swap
0.0% 0.0% 30B std core::mem::swap
0.0% 0.0% 30B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::write::{{c...
0.0% 0.0% 30B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::read::{{cl...
0.0% 0.0% 28B cortex_m_rt HardFault_
0.0% 0.0% 28B cortex_m core::slice::<impl [T]>::len
0.0% 0.0% 28B encode_unicode core::slice::<impl [T]>::len
0.0% 0.0% 28B hash32 core::slice::<impl [T]>::len
0.0% 0.0% 28B dw1000 <dw1000::hl::Error as core::convert::From<nrf...
0.0% 0.0% 28B dw1000 <dw1000::ll::PMSC_CTRL0 as dw1000::ll::Writab...
0.0% 0.0% 28B dw1000 <dw1000::ll::PMSC_CTRL0 as dw1000::ll::Readab...
0.0% 0.0% 28B dw1000 <dw1000::ll::LDE_CFG2 as dw1000::ll::Writable...
0.0% 0.0% 28B dw1000 <dw1000::ll::OTP_RDAT as dw1000::ll::Readable...
0.0% 0.0% 28B dw1000 <dw1000::ll::RF_TXCTRL as dw1000::ll::Writabl...
0.0% 0.0% 28B dw1000 <dw1000::ll::RF_TXCTRL as dw1000::ll::Readabl...
0.0% 0.0% 28B dw1000 <dw1000::ll::DRX_TUNE2 as dw1000::ll::Writabl...
0.0% 0.0% 28B dw1000 <dw1000::ll::EC_CTRL as dw1000::ll::Writable>...
0.0% 0.0% 28B dw1000 <dw1000::ll::EC_CTRL as dw1000::ll::Readable>...
0.0% 0.0% 28B dw1000 <dw1000::ll::AGC_TUNE2 as dw1000::ll::Writabl...
0.0% 0.0% 28B dw1000 <dw1000::ll::TX_POWER as dw1000::ll::Writable...
0.0% 0.0% 28B dw1000 <dw1000::ll::RX_FINFO as dw1000::ll::Readable...
0.0% 0.0% 28B dw1000 <dw1000::ll::SYS_STATUS as dw1000::ll::Writab...
0.0% 0.0% 28B dw1000 <dw1000::ll::SYS_STATUS as dw1000::ll::Readab...
0.0% 0.0% 28B dw1000 <dw1000::ll::SYS_CTRL as dw1000::ll::Writable...
0.0% 0.0% 28B dw1000 <dw1000::ll::SYS_CTRL as dw1000::ll::Readable...
0.0% 0.0% 28B dw1000 <dw1000::ll::SYS_CFG as dw1000::ll::Writable>...
0.0% 0.0% 28B dw1000 <dw1000::ll::SYS_CFG as dw1000::ll::Readable>...
0.0% 0.0% 28B dw1000 <dw1000::hl::RxFuture<'r, SPI>>::wait::{{clos...
0.0% 0.0% 28B dw1000 <dw1000::hl::RxFuture<'r, SPI>>::wait::{{clos...
0.0% 0.0% 28B dw1000 <dw1000::hl::RxFuture<'r, SPI>>::wait::{{clos...
0.0% 0.0% 28B dw1000 <dw1000::hl::RxFuture<'r, SPI>>::wait::{{clos...
0.0% 0.0% 28B dw1000 <dw1000::hl::RxFuture<'r, SPI>>::wait::{{clos...
0.0% 0.0% 28B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 28B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 28B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 28B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 28B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 28B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 28B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 28B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 28B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 28B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 28B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 28B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 28B std <core::cell::Cell<T>>::get
0.0% 0.0% 28B std core::ptr::write
0.0% 0.0% 26B cortex_m_rt core::ptr::write_volatile
0.0% 0.0% 26B cortex_m core::ptr::write_volatile
0.0% 0.0% 26B cortex_m core::ptr::read_volatile
0.0% 0.0% 26B nrf52_hal_common nrf52832_pac::p0::outset::W::bits
0.0% 0.0% 26B dwm1001 nrf52832_pac::p0::outset::W::bits
0.0% 0.0% 26B dwm1001 <dw1000::ll::DW1000<SPI>>::new
0.0% 0.0% 26B dwm1001 nrf52832_pac::p0::outclr::W::bits
0.0% 0.0% 26B nrf52832_pac nrf52832_pac::timer0::tasks_start::W::bits
0.0% 0.0% 26B nrf52832_pac nrf52832_pac::p0::outclr::W::bits
0.0% 0.0% 26B nrf52832_pac nrf52832_pac::timer0::tasks_clear::W::bits
0.0% 0.0% 26B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 26B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 26B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 26B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 26B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 26B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 26B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 26B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 26B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 26B std core::num::ptr_try_from_impls::<impl core::co...
0.0% 0.0% 26B nrf52832_pac nrf52832_pac::p0::outset::W::bits
0.0% 0.0% 26B nrf52832_pac nrf52832_pac::spim0::tasks_start::W::bits
0.0% 0.0% 24B cortex_m_rt core::ptr::write
0.0% 0.0% 24B cortex_m <cortex_m::peripheral::SYST as core::ops::der...
0.0% 0.0% 24B cortex_m_semihosting core::char::convert::from_u32_unchecked
0.0% 0.0% 24B nrf52832_pac <nrf52832_pac::SPIM2 as core::ops::deref::Der...
0.0% 0.0% 24B nrf52832_pac <nrf52832_pac::TIMER0 as core::ops::deref::De...
0.0% 0.0% 24B nrf52832_pac <nrf52832_pac::TWIM1 as core::ops::deref::Der...
0.0% 0.0% 24B nrf52832_pac <nrf52832_pac::UARTE0 as core::ops::deref::De...
0.0% 0.0% 24B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 24B ieee802154 core::mem::size_of_val
0.0% 0.0% 24B std core::ptr::real_drop_in_place
0.0% 0.0% 24B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 24B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 24B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 24B std core::ptr::write
0.0% 0.0% 24B std core::ptr::write
0.0% 0.0% 22B cortex_m_rt DefaultHandler_
0.0% 0.0% 22B cortex_m_semihosting core::str::from_utf8_unchecked_mut
0.0% 0.0% 22B std <core::ops::range::RangeFull as core::slice::...
0.0% 0.0% 22B std <I as core::iter::traits::IntoIterator>::into...
0.0% 0.0% 22B std <core::option::Option<T> as core::ops::try::T...
0.0% 0.0% 22B dwm1001 cortex_m::peripheral::Peripherals::take
0.0% 0.0% 22B dwm1001 nrf52832_pac::Peripherals::take
0.0% 0.0% 22B dwm1001 dwm1001::Led::disable
0.0% 0.0% 22B dwm1001 dwm1001::Led::enable
0.0% 0.0% 22B std core::ptr::real_drop_in_place
0.0% 0.0% 22B std <I as core::iter::traits::IntoIterator>::into...
0.0% 0.0% 20B cortex_m core::slice::<impl [T]>::as_ptr
0.0% 0.0% 20B cortex_m core::slice::<impl [T]>::as_mut_ptr
0.0% 0.0% 20B encode_unicode core::slice::<impl [T]>::as_ptr
0.0% 0.0% 20B encode_unicode core::slice::<impl [T]>::as_mut_ptr
0.0% 0.0% 20B hash32 core::slice::<impl [T]>::as_ptr
0.0% 0.0% 20B hash32 core::slice::<impl [T]>::as_mut_ptr
0.0% 0.0% 18B std <core::fmt::Error as core::fmt::Debug>::fmt
0.0% 0.0% 18B std core::str::traits::<impl core::slice::SliceIn...
0.0% 0.0% 18B std <core::cell::BorrowMutError as core::fmt::Deb...
0.0% 0.0% 18B std <T as core::any::Any>::get_type_id
0.0% 0.0% 18B cortex_m_rt core::mem::zeroed
0.0% 0.0% 18B cortex_m cortex_m::peripheral::syst::<impl cortex_m::p...
0.0% 0.0% 18B cortex_m cortex_m::peripheral::syst::<impl cortex_m::p...
0.0% 0.0% 18B cortex_m cortex_m::peripheral::syst::<impl cortex_m::p...
0.0% 0.0% 18B cortex_m cortex_m::peripheral::syst::<impl cortex_m::p...
0.0% 0.0% 18B cortex_m core::mem::size_of
0.0% 0.0% 18B cortex_m_semihosting cortex_m_semihosting::hio::hstdout::{{closure}}
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::p0::pin_cnf::W::sense
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::p0::pin_cnf::W::input
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::p0::pin_cnf::W::drive
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::p0::pin_cnf::W::pull
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::p0::pin_cnf::W::dir
0.0% 0.0% 18B nrf52_hal_common <u32 as nrf52_hal_common::time::U32Ext>::hz
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::uarte0::config::W::parity
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::uarte0::config::W::hwfc
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::spim0::config::W::order
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::spim0::config::W::cpol
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::spim0::config::W::cpha
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::uarte0::psel::rxd::W::connect
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::uarte0::psel::rxd::W::pin
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::spim0::psel::sck::W::connect
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::spim0::psel::sck::W::pin
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::uarte0::psel::txd::W::connect
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::uarte0::psel::txd::W::pin
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::twim0::psel::sda::W::connect
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::twim0::psel::sda::W::pin
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::twim0::psel::scl::W::connect
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::twim0::psel::scl::W::pin
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::spim0::psel::miso::W::connect
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::spim0::psel::miso::W::pin
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::uarte0::psel::rts::W::connect
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::uarte0::psel::rts::W::pin
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::uarte0::psel::cts::W::connect
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::uarte0::psel::cts::W::pin
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::twim0::frequency::W::frequency
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::spim0::psel::mosi::W::connect
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::spim0::psel::mosi::W::pin
0.0% 0.0% 18B nrf52_hal_common core::mem::size_of
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::uarte0::baudrate::W::baudrate
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::uarte0::enable::W::enable
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::timer0::prescaler::W::prescaler
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::timer0::bitmode::W::bitmode
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::timer0::shorts::W::compare0_clear
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::timer0::shorts::W::compare0_stop
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::twim0::enable::W::enable
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::spim0::enable::W::enable
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::spim0::frequency::W::frequency
0.0% 0.0% 18B nrf52_hal_common nrf52832_pac::spim0::orc::W::orc
0.0% 0.0% 18B encode_unicode core::mem::size_of
0.0% 0.0% 18B hash32 core::mem::size_of
0.0% 0.0% 18B ieee802154 core::num::<impl u16>::to_le
0.0% 0.0% 18B ieee802154 core::mem::size_of
0.0% 0.0% 18B ieee802154 core::mem::size_of
0.0% 0.0% 18B dw1000 <dw1000::ll::PMSC_CTRL0 as dw1000::ll::Writab...
0.0% 0.0% 18B dw1000 <dw1000::ll::PMSC_CTRL0 as dw1000::ll::Readab...
0.0% 0.0% 18B dw1000 <dw1000::ll::LDE_CFG2 as dw1000::ll::Writable...
0.0% 0.0% 18B dw1000 <dw1000::ll::LDE_CFG1 as dw1000::ll::Writable...
0.0% 0.0% 18B dw1000 <dw1000::ll::LDE_CFG1 as dw1000::ll::Readable...
0.0% 0.0% 18B dw1000 <dw1000::ll::OTP_RDAT as dw1000::ll::Readable...
0.0% 0.0% 18B dw1000 <dw1000::ll::OTP_CTRL as dw1000::ll::Writable...
0.0% 0.0% 18B dw1000 <dw1000::ll::OTP_CTRL as dw1000::ll::Readable...
0.0% 0.0% 18B dw1000 <dw1000::ll::OTP_ADDR as dw1000::ll::Writable...
0.0% 0.0% 18B dw1000 <dw1000::ll::FS_PLLTUNE as dw1000::ll::Writab...
0.0% 0.0% 18B dw1000 <dw1000::ll::TC_PGDELAY as dw1000::ll::Writab...
0.0% 0.0% 18B dw1000 <dw1000::ll::LDOTUNE as dw1000::ll::Writable>...
0.0% 0.0% 18B dw1000 <dw1000::ll::RF_TXCTRL as dw1000::ll::Writabl...
0.0% 0.0% 18B dw1000 <dw1000::ll::RF_TXCTRL as dw1000::ll::Readabl...
0.0% 0.0% 18B dw1000 <dw1000::ll::DRX_TUNE2 as dw1000::ll::Writabl...
0.0% 0.0% 18B dw1000 <dw1000::ll::EC_CTRL as dw1000::ll::Writable>...
0.0% 0.0% 18B dw1000 <dw1000::ll::EC_CTRL as dw1000::ll::Readable>...
0.0% 0.0% 18B dw1000 <dw1000::ll::AGC_TUNE2 as dw1000::ll::Writabl...
0.0% 0.0% 18B dw1000 <dw1000::ll::AGC_TUNE1 as dw1000::ll::Writabl...
0.0% 0.0% 18B dw1000 <dw1000::ll::TX_POWER as dw1000::ll::Writable...
0.0% 0.0% 18B dw1000 <dw1000::ll::RX_TIME as dw1000::ll::Readable>...
0.0% 0.0% 18B dw1000 <dw1000::ll::RX_FINFO as dw1000::ll::Readable...
0.0% 0.0% 18B dw1000 <dw1000::ll::SYS_STATUS as dw1000::ll::Writab...
0.0% 0.0% 18B dw1000 <dw1000::ll::SYS_STATUS as dw1000::ll::Readab...
0.0% 0.0% 18B dw1000 <dw1000::ll::SYS_CTRL as dw1000::ll::Writable...
0.0% 0.0% 18B dw1000 <dw1000::ll::SYS_CTRL as dw1000::ll::Readable...
0.0% 0.0% 18B dw1000 <dw1000::ll::SYS_CFG as dw1000::ll::Writable>...
0.0% 0.0% 18B dw1000 <dw1000::ll::SYS_CFG as dw1000::ll::Readable>...
0.0% 0.0% 18B dw1000 <dw1000::ll::RX_BUFFER as dw1000::ll::Readabl...
0.0% 0.0% 18B dw1000 core::mem::size_of
0.0% 0.0% 18B dwm1001 nrf52832_pac::p0::pin_cnf::W::sense
0.0% 0.0% 18B dwm1001 nrf52832_pac::p0::pin_cnf::W::input
0.0% 0.0% 18B dwm1001 nrf52832_pac::p0::pin_cnf::W::drive
0.0% 0.0% 18B dwm1001 nrf52832_pac::p0::pin_cnf::W::pull
0.0% 0.0% 18B dwm1001 nrf52832_pac::p0::pin_cnf::W::dir
0.0% 0.0% 18B nrf52832_pac nrf52832_pac::spim0::rxd::maxcnt::W::maxcnt
0.0% 0.0% 18B std <core::result::Result<T, E> as core::ops::try...
0.0% 0.0% 18B nrf52832_pac nrf52832_pac::spim0::txd::ptr::W::ptr
0.0% 0.0% 18B nrf52832_pac nrf52832_pac::spim0::txd::maxcnt::W::maxcnt
0.0% 0.0% 18B nrf52832_pac nrf52832_pac::timer0::cc::W::cc
0.0% 0.0% 18B std core::mem::size_of
0.0% 0.0% 18B std core::mem::size_of
0.0% 0.0% 18B std core::mem::size_of
0.0% 0.0% 18B std <T as core::convert::From<T>>::from
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::rx_buffer
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::rf_txctrl
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::drx_tune2
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::agc_tune2
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::agc_tune1
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::tx_power
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::sys_ctrl
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::rx_finfo
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::otp_rdat
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::otp_ctrl
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::otp_addr
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::lde_cfg2
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::lde_cfg1
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::sys_cfg
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::rx_time
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::ldotune
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::ec_ctrl
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::tc_pgdelay
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::sys_status
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::pmsc_ctrl0
0.0% 0.0% 18B dw1000 <dw1000::ll::DW1000<SPI>>::fs_plltune
0.0% 0.0% 18B nrf52832_pac nrf52832_pac::spim0::rxd::ptr::W::ptr
0.0% 0.0% 18B nrf52832_pac nrf52832_pac::p0::pin_cnf::W::sense
0.0% 0.0% 18B nrf52832_pac nrf52832_pac::p0::pin_cnf::W::input
0.0% 0.0% 18B nrf52832_pac nrf52832_pac::p0::pin_cnf::W::drive
0.0% 0.0% 18B nrf52832_pac nrf52832_pac::p0::pin_cnf::W::pull
0.0% 0.0% 18B nrf52832_pac nrf52832_pac::p0::pin_cnf::W::dir
0.0% 0.0% 16B nrf52_hal_common nrf52_hal_common::clocks::Clocks::hfclk
0.0% 0.0% 16B dw1000 <dw1000::ll::LDE_CFG1 as dw1000::ll::Writable...
0.0% 0.0% 16B dw1000 <dw1000::ll::LDE_CFG1 as dw1000::ll::Readable...
0.0% 0.0% 16B dw1000 <dw1000::ll::OTP_CTRL as dw1000::ll::Writable...
0.0% 0.0% 16B dw1000 <dw1000::ll::OTP_CTRL as dw1000::ll::Readable...
0.0% 0.0% 16B dw1000 <dw1000::ll::OTP_ADDR as dw1000::ll::Writable...
0.0% 0.0% 16B dw1000 <dw1000::ll::AGC_TUNE1 as dw1000::ll::Writabl...
0.0% 0.0% 16B dwm1001 <nrf52_hal_common::gpio::p0::P0_31<MODE>>::de...
0.0% 0.0% 16B dwm1001 <nrf52_hal_common::gpio::p0::P0_30<MODE>>::de...
0.0% 0.0% 16B dwm1001 <nrf52_hal_common::gpio::p0::P0_29<MODE>>::de...
0.0% 0.0% 16B dwm1001 <nrf52_hal_common::gpio::p0::P0_28<MODE>>::de...
0.0% 0.0% 16B dwm1001 <nrf52_hal_common::gpio::p0::P0_22<MODE>>::de...
0.0% 0.0% 16B dwm1001 <nrf52_hal_common::gpio::p0::P0_20<MODE>>::de...
0.0% 0.0% 16B dwm1001 <nrf52_hal_common::gpio::p0::P0_18<MODE>>::de...
0.0% 0.0% 16B dwm1001 <nrf52_hal_common::gpio::p0::P0_17<MODE>>::de...
0.0% 0.0% 16B dwm1001 <nrf52_hal_common::gpio::p0::P0_16<MODE>>::de...
0.0% 0.0% 16B dwm1001 <nrf52_hal_common::gpio::p0::P0_14<MODE>>::de...
0.0% 0.0% 16B dwm1001 <nrf52_hal_common::gpio::p0::P0_11<MODE>>::de...
0.0% 0.0% 16B dwm1001 <nrf52_hal_common::gpio::p0::P0_05<MODE>>::de...
0.0% 0.0% 16B nrf52832_pac nrf52832_pac::spim0::events_end::R::bits
0.0% 0.0% 16B nrf52832_pac nrf52832_pac::spim0::rxd::amount::R::bits
0.0% 0.0% 16B std <core::cell::RefMut<'_, T> as core::ops::dere...
0.0% 0.0% 16B nrf52832_pac nrf52832_pac::timer0::events_compare::R::bits
0.0% 0.0% 16B nrf52832_pac nrf52832_pac::spim0::txd::amount::R::bits
0.0% 0.0% 14B std <&T as core::fmt::Display>::fmt
0.0% 0.0% 14B cortex_m <core::cell::UnsafeCell<T>>::get
0.0% 0.0% 14B nrf52_hal_common nrf52832_pac::uarte0::psel::rxd::W::reset_value
0.0% 0.0% 14B nrf52_hal_common nrf52832_pac::spim0::psel::sck::W::reset_value
0.0% 0.0% 14B nrf52_hal_common nrf52832_pac::uarte0::psel::txd::W::reset_value
0.0% 0.0% 14B nrf52_hal_common nrf52832_pac::twim0::psel::sda::W::reset_value
0.0% 0.0% 14B nrf52_hal_common nrf52832_pac::twim0::psel::scl::W::reset_value
0.0% 0.0% 14B nrf52_hal_common nrf52832_pac::spim0::psel::miso::W::reset_value
0.0% 0.0% 14B nrf52_hal_common nrf52832_pac::uarte0::psel::rts::W::reset_value
0.0% 0.0% 14B nrf52_hal_common nrf52832_pac::uarte0::psel::cts::W::reset_value
0.0% 0.0% 14B nrf52_hal_common nrf52832_pac::twim0::frequency::W::reset_value
0.0% 0.0% 14B nrf52_hal_common nrf52832_pac::spim0::psel::mosi::W::reset_value
0.0% 0.0% 14B nrf52_hal_common nrf52832_pac::uarte0::baudrate::W::reset_value
0.0% 0.0% 14B nrf52_hal_common <nrf52832_pac::TIMER0 as nrf52_hal_common::ti...
0.0% 0.0% 14B nrf52_hal_common nrf52832_pac::spim0::frequency::W::reset_value
0.0% 0.0% 14B dwm1001 dwm1001::DW_IRQ::new
0.0% 0.0% 14B nrf52_hal_common <nrf52_hal_common::timer::Timer<T>>::wait::{{...
0.0% 0.0% 14B dw1000 <dw1000::hl::DW1000<SPI, State>>::ll
0.0% 0.0% 14B std <core::cell::UnsafeCell<T>>::get
0.0% 0.0% 14B std <core::cell::UnsafeCell<T>>::get
0.0% 0.0% 14B std <core::cell::UnsafeCell<T>>::get
0.0% 0.0% 14B std core::mem::drop
0.0% 0.0% 14B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::write::{{c...
0.0% 0.0% 14B nrf52_hal_common <nrf52_hal_common::spim::Spim<T>>::read::{{cl...
0.0% 0.0% 12B std <&T as core::fmt::Display>::fmt
0.0% 0.0% 12B std <str as core::fmt::Display>::fmt
0.0% 0.0% 12B std core::fmt::builders::DebugSet::entry
0.0% 0.0% 12B std core::fmt::builders::DebugList::entry
0.0% 0.0% 12B cortex_m_semihosting core::ptr::real_drop_in_place
0.0% 0.0% 12B nrf52_hal_common nrf52832_pac::p0::pin_cnf::W::reset_value
0.0% 0.0% 12B nrf52_hal_common nrf52832_pac::uarte0::config::W::reset_value
0.0% 0.0% 12B nrf52_hal_common nrf52832_pac::spim0::config::W::reset_value
0.0% 0.0% 12B nrf52_hal_common nrf52832_pac::uarte0::enable::W::reset_value
0.0% 0.0% 12B nrf52_hal_common nrf52832_pac::timer0::prescaler::W::reset_value
0.0% 0.0% 12B nrf52_hal_common nrf52832_pac::timer0::bitmode::W::reset_value
0.0% 0.0% 12B nrf52_hal_common nrf52832_pac::timer0::shorts::W::reset_value
0.0% 0.0% 12B nrf52_hal_common nrf52832_pac::twim0::enable::W::reset_value
0.0% 0.0% 12B nrf52_hal_common nrf52832_pac::spim0::enable::W::reset_value
0.0% 0.0% 12B nrf52_hal_common nrf52832_pac::spim0::orc::W::reset_value
0.0% 0.0% 12B nrf52_hal_common nrf52832_pac::p0::outset::W::reset_value
0.0% 0.0% 12B ssmarshal core::ptr::real_drop_in_place
0.0% 0.0% 12B ieee802154 core::ptr::real_drop_in_place
0.0% 0.0% 12B ieee802154 core::ptr::real_drop_in_place
0.0% 0.0% 12B ieee802154 core::ptr::real_drop_in_place
0.0% 0.0% 12B ieee802154 core::ptr::real_drop_in_place
0.0% 0.0% 12B ieee802154 core::ptr::real_drop_in_place
0.0% 0.0% 12B ieee802154 core::ptr::real_drop_in_place
0.0% 0.0% 12B ieee802154 core::ptr::real_drop_in_place
0.0% 0.0% 12B ieee802154 core::ptr::real_drop_in_place
0.0% 0.0% 12B ieee802154 core::ptr::real_drop_in_place
0.0% 0.0% 12B ieee802154 core::ptr::real_drop_in_place
0.0% 0.0% 12B dw1000 core::ptr::real_drop_in_place
0.0% 0.0% 12B dw1000 core::ptr::real_drop_in_place
0.0% 0.0% 12B dw1000 core::ptr::real_drop_in_place
0.0% 0.0% 12B dw1000 core::ptr::real_drop_in_place
0.0% 0.0% 12B dwm1001 nrf52832_pac::p0::outset::W::reset_value
0.0% 0.0% 12B dwm1001 nrf52832_pac::p0::outclr::W::reset_value
0.0% 0.0% 12B dwm1001 nrf52832_pac::p0::pin_cnf::W::reset_value
0.0% 0.0% 12B nrf52832_pac nrf52832_pac::spim0::rxd::maxcnt::W::reset_value
0.0% 0.0% 12B nrf52832_pac nrf52832_pac::timer0::tasks_start::W::reset_v...
0.0% 0.0% 12B nrf52832_pac nrf52832_pac::spim0::events_end::W::reset_value
0.0% 0.0% 12B nrf52832_pac nrf52832_pac::p0::outclr::W::reset_value
0.0% 0.0% 12B nrf52832_pac nrf52832_pac::timer0::tasks_clear::W::reset_v...
0.0% 0.0% 12B std core::ptr::real_drop_in_place
0.0% 0.0% 12B nrf52832_pac nrf52832_pac::spim0::txd::ptr::W::reset_value
0.0% 0.0% 12B nrf52832_pac nrf52832_pac::spim0::txd::maxcnt::W::reset_value
0.0% 0.0% 12B nrf52832_pac nrf52832_pac::timer0::cc::W::reset_value
0.0% 0.0% 12B nrf52832_pac nrf52832_pac::timer0::events_compare::W::rese...
0.0% 0.0% 12B nrf52832_pac nrf52832_pac::p0::outset::W::reset_value
0.0% 0.0% 12B nrf52832_pac nrf52832_pac::spim0::tasks_start::W::reset_value
0.0% 0.0% 12B nrf52832_pac nrf52832_pac::spim0::rxd::ptr::W::reset_value
0.0% 0.0% 12B nrf52832_pac nrf52832_pac::p0::pin_cnf::W::reset_value
0.0% 0.0% 10B panic_semihosting cortex_m::interrupt::disable
0.0% 0.0% 10B cortex_m cortex_m::peripheral::SYST::ptr
0.0% 0.0% 10B nrf52832_pac nrf52832_pac::SPIM2::ptr
0.0% 0.0% 10B nrf52832_pac nrf52832_pac::TIMER0::ptr
0.0% 0.0% 10B nrf52832_pac nrf52832_pac::UARTE0::ptr
0.0% 0.0% 10B dwm1001 cortex_m::interrupt::disable
0.0% 0.0% 10B dwm1001 cortex_m::interrupt::enable
0.0% 0.0% 10B cortex_m cortex_m::interrupt::disable
0.0% 0.0% 10B cortex_m cortex_m::interrupt::enable
0.0% 0.0% 8B std core::fmt::Formatter::debug_upper_hex
0.0% 0.0% 8B std core::fmt::Formatter::debug_lower_hex
0.0% 0.0% 6B [Unknown] __aeabi_memclr
0.0% 0.0% 6B std <core::fmt::Write::write_fmt::Adapter<'_, T> ...
0.0% 0.0% 6B std <core::fmt::Write::write_fmt::Adapter<'_, T> ...
0.0% 0.0% 6B cortex_m_rt ResetTrampoline
0.0% 0.0% 6B bare_metal bare_metal::CriticalSection::new
0.0% 0.0% 6B cortex_m_semihosting <cortex_m_semihosting::hio::HStdout as core::...
0.0% 0.0% 6B nrf52832_pac nrf52832_pac::P0::ptr
0.0% 0.0% 6B nrf52832_pac nrf52832_pac::TWIM1::ptr
0.0% 0.0% 6B nrf52_hal_common nrf52_hal_common::gpio::p0::<impl nrf52_hal_c...
0.0% 0.0% 6B nrf52_hal_common <nrf52832_pac::CLOCK as nrf52_hal_common::clo...
0.0% 0.0% 6B std <T as core::convert::From<T>>::from
0.0% 0.0% 4B std core::fmt::ArgumentV1::show_usize
0.0% 0.0% 4B r0 core::ptr::null
0.0% 0.0% 4B nrf52_hal_common core::ptr::null_mut
0.0% 0.0% 4B encode_unicode core::ptr::null
0.0% 0.0% 4B ieee802154 core::ptr::null
0.0% 0.0% 4B std core::num::<impl u8>::max_value
0.0% 0.0% 2B std core::ptr::real_drop_in_place
0.0% 0.0% 2B std core::ptr::real_drop_in_place
0.0% 0.0% 2B std core::ptr::real_drop_in_place
0.0% 0.0% 2B cortex_m_rt DefaultPreInit
0.0% 0.0% 2B dwm1001 dwm1001::debug::init
6.0% 100.0% 141.3KiB .text section size, the file size is 2.3MiB
This disappears in release:
Compiling ...
Analyzing target/thumbv7em-none-eabihf/release/examples/dw1000_only_rx
File .text Size Crate Name
0.0% 0.0% 0B [0 Others]
3.7% 42.1% 11.2KiB [Unknown] main
0.3% 3.7% 996B std <&T as core::fmt::Debug>::fmt
0.3% 3.5% 964B std core::fmt::Formatter::pad
0.3% 3.4% 914B std core::fmt::Formatter::pad_integral
0.3% 3.2% 860B std core::str::slice_error_fail
0.2% 2.2% 610B cortex_m_rt Reset
0.2% 2.2% 606B std core::fmt::num::<impl core::fmt::Debug for usize>...
0.2% 2.2% 600B dw1000 <dw1000::hl::Error as core::fmt::Debug>::fmt
0.2% 2.0% 550B std <char as core::fmt::Debug>::fmt
0.2% 1.9% 528B std core::fmt::write
0.2% 1.8% 496B std <&T as core::fmt::Debug>::fmt
0.2% 1.8% 490B std core::slice::memchr::memchr
0.1% 1.4% 368B std <core::fmt::builders::PadAdapter<'_> as core::fmt...
0.1% 1.2% 332B std <&T as core::fmt::Debug>::fmt
0.1% 1.2% 314B std core::fmt::builders::DebugStruct::field
0.1% 1.1% 306B std <&T as core::fmt::Debug>::fmt
0.1% 1.1% 304B std <&T as core::fmt::Debug>::fmt
0.1% 1.1% 290B std <&T as core::fmt::Debug>::fmt
0.1% 1.1% 288B std core::unicode::bool_trie::BoolTrie::lookup
0.1% 1.0% 278B std <&T as core::fmt::Debug>::fmt
0.1% 1.0% 262B std core::fmt::builders::DebugTuple::field
0.1% 0.9% 256B std core::fmt::ArgumentV1::show_usize
0.1% 0.9% 256B std core::fmt::num::<impl core::fmt::Display for u32>...
0.1% 0.9% 254B std core::unicode::printable::check
0.1% 0.9% 234B std <&T as core::fmt::Display>::fmt
0.1% 0.8% 216B std <core::fmt::Write::write_fmt::Adapter<'_, T> as c...
0.1% 0.8% 214B std <&T as core::fmt::Debug>::fmt
0.1% 0.8% 212B std <&T as core::fmt::Debug>::fmt
0.1% 0.8% 208B std core::fmt::num::<impl core::fmt::UpperHex for i32...
0.1% 0.8% 208B std core::fmt::num::<impl core::fmt::LowerHex for i32...
0.1% 0.7% 204B std core::fmt::builders::DebugSet::entry
0.1% 0.7% 204B dw1000? <dw1000::util::TimeoutError<T> as core::fmt::Debu...
0.1% 0.7% 198B std core::fmt::Formatter::pad_integral::{{closure}}
0.1% 0.7% 198B ieee802154 <ieee802154::mac::Frame<'p> as core::fmt::Debug>:...
0.1% 0.6% 176B std <core::fmt::Write::write_fmt::Adapter<'_, T> as c...
0.1% 0.6% 174B std core::fmt::Write::write_char
0.1% 0.6% 156B std <&T as core::fmt::Debug>::fmt
0.0% 0.6% 150B [Unknown] __aeabi_memcpy4
0.0% 0.5% 136B [Unknown] __aeabi_memset4
0.0% 0.4% 116B std memcmp
0.0% 0.4% 114B panic_semihosting rust_begin_unwind
0.0% 0.4% 98B std <&T as core::fmt::Debug>::fmt
0.0% 0.4% 98B std <&T as core::fmt::Debug>::fmt
0.0% 0.4% 96B std <core::fmt::Write::write_fmt::Adapter<'_, T> as c...
0.0% 0.3% 94B [Unknown] __aeabi_memcpy
0.0% 0.3% 92B std core::result::unwrap_failed
0.0% 0.3% 92B std core::result::unwrap_failed
0.0% 0.3% 80B std core::result::unwrap_failed
0.0% 0.3% 78B [Unknown] __aeabi_memset
0.0% 0.3% 74B std core::slice::slice_index_order_fail
0.0% 0.3% 74B std core::slice::slice_index_len_fail
0.0% 0.3% 70B std core::panicking::panic_bounds_check
0.0% 0.2% 66B std <core::ops::range::Range<Idx> as core::fmt::Debug...
0.0% 0.2% 58B std core::panicking::panic
0.0% 0.2% 48B std core::panicking::panic_fmt
0.0% 0.2% 42B std <&T as core::fmt::Debug>::fmt
0.0% 0.1% 38B std <core::fmt::Write::write_fmt::Adapter<'_, T> as c...
0.0% 0.1% 38B std <&T as core::fmt::Display>::fmt
0.0% 0.1% 38B std <core::fmt::Write::write_fmt::Adapter<'_, T> as c...
0.0% 0.1% 38B std <core::fmt::Write::write_fmt::Adapter<'_, T> as c...
0.0% 0.1% 36B std core::fmt::Write::write_fmt
0.0% 0.1% 22B std <&T as core::fmt::Debug>::fmt
0.0% 0.1% 22B std <&T as core::fmt::Debug>::fmt
0.0% 0.1% 18B std <core::fmt::Error as core::fmt::Debug>::fmt
0.0% 0.1% 18B std core::str::traits::<impl core::slice::SliceIndex<...
0.0% 0.1% 18B std <core::cell::BorrowMutError as core::fmt::Debug>:...
0.0% 0.1% 18B std <T as core::any::Any>::get_type_id
0.0% 0.1% 14B std <&T as core::fmt::Display>::fmt
0.0% 0.0% 12B std <&T as core::fmt::Display>::fmt
0.0% 0.0% 6B [Unknown] __aeabi_memclr4
0.0% 0.0% 6B [Unknown] __aeabi_memclr8
0.0% 0.0% 6B std <core::fmt::Write::write_fmt::Adapter<'_, T> as c...
0.0% 0.0% 6B cortex_m_rt ResetTrampoline
0.0% 0.0% 6B std <&T as core::fmt::Debug>::fmt
0.0% 0.0% 2B cortex_m_rt HardFault_
0.0% 0.0% 2B std core::ptr::real_drop_in_place
0.0% 0.0% 2B std core::ptr::real_drop_in_place
0.0% 0.0% 2B cortex_m_rt DefaultPreInit
0.0% 0.0% 2B cortex_m_rt DefaultHandler_
0.0% 0.0% 2B std core::ptr::real_drop_in_place
8.8% 100.0% 26.6KiB .text section size, the file size is 301.8KiB
After getting set up with this crate - downloading the most recent version published to crates.io (0.4.0), I got an application set up, and tried to copy the "blinky" LED example as a basic check that things worked.
Unfortunately, the compiler complained - even the simple rust blinky example broke, because of a version mismatch: the version on crates.io still depends on nrf52832-hal version 0.8.1, even though that's been fixed on master to point to a more recent revision.
Would it be possible to publish a version 0.5.0 of this crate? That would make the crates.io documentation stay in sync with the repo. I've also seen folks using git tags to identify "which revision of the source code + examples are consistent with what can be downloaded from crates.io"
This happens from time to time:
panicked at 'Failed to send ranging request: Timeout', examples/dw1000_ranging_tag.rs:136:13
I've observed this in both release and debug mode.
When running dw1000_only_rx
on one board, and another one that should be sending on the other (I tried dw1000_only_tx
, dw1000_delayed_tx
, and dw1000_ranging_anchor
), I'm not seeing any activity on the receiving side.
I haven't looked into it yet more deeper than that.
This crate re-exports ieee802154::mac
. When running cargo doc
, this produces errors that don't occur in the original, and when checking the documentation, indeed there are intra-doc links that don't work anymore.
Not sure if there's something I'm doing wrong, or if this is a cargo doc
problem.
Application Note APS014 - Antenna Delay Calibration mentions that range measurements can vary due to temperature. We should consider adding support for that to the ranging code.
With a fairly recent nightly:
active toolchain
----------------
nightly-x86_64-unknown-linux-gnu (default)
rustc 1.32.0-nightly (6e9b84296 2018-11-10)
I am unable to get the examples working in --release
builds. Normal builds work correctly, and I see the output.
I have a sneaking suspicion that nrf-rs/nrf-hal#33 is related, however I have tried this using the beta.4
release of nrf52832-hal
, which contains fixes for this.
I also sometimes get errors that look like this via semihosting on the tag side: panicked at 'Failed to initialize DW1000: Spi(Transmit)', libcore/result.rs:1009:5
Just curious - how are you flashing the DWM1001? Are you using an external debugger/probe, or the onboard stm32? When I try to list-probes
with the DWM1001 plugged in over USB, it doesn't see the ST-Link probe that I should.
I didn't put much thought into endianness while implementing the field access code. I think it would be a good idea to review the code with that in mind, to make sure it's robust.
During the workshop, we saw that when lots of packets were being sent (by another user drawing to the screen in https://github.com/ferrous-systems/embedded-trainings/blob/master/beginner/docs/segment-4.md), we saw several instances of programs locking up inside the block! macro.
One of the attendees expanded out the block macro and it seems the rx_future.wait() call just returns nb::WouldBlock forever (or at least, for several minutes). This seems like a bug? Is it possible it's missing some edge trigger from the radio? I haven't looked in to what the comms looks like so I'm just guessing here.
Hey folks!
I'm embarking on new adventures and am currently in the process of reducing my involvement in the Embedded Rust community, so I can focus on that. As part of this process, I'm stepping down as maintainer of this repository.
I am willing to transfer this repository (and the crates on crates.io) to a new maintainer. If anyone is interested in that, please let me know by posting here or contacting me privately.
cc @jamesmunns (who has write access to this repository)
cc @jkelleyrtp (who has been contributing recently)
CI is not running for me on #124. This might have something to do with Travis. It's probably best to just switch to GitHub Actions.
I was really happy to see that there are results on crates.io for dwm1001. Then I realized, that those crates are meant for flashing the module itself if not mistaken. I am totally new in rust embedded, so this is not really working for me. And I need to build a solution on Raspberry Pi, because data will be sent further for UI drawing, etc.
Can I "reuse" this crate with minimal reconfiguration to move it from "embedded" to a normal "std" enabled crate? Is there perhaps any example/blog post of that?
I would really like to use Rust on RPi for that, but I am currently stuck.
I would appreciate any tip/help/link
BR,
Tomaz
Would it be possible to bump the published version so that the GitHub repo and published crates version are in sync?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.