You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are two modes of waiting for a result:
- delay: wait for the estimated execution time of a command before
reading the result
- polling: poll the chip until the result is ready
I am not sure why we specified NO_POLL. Possibly because that was
easier in early prototypes before we used cryptoauthlib, that takes
care of implementing polling.
Polling is more robust as execution times might change between chip
versions. Cryptoauthlib contains tables with execution times per chip,
which is why it wasn't a problem for us, but since polling is the
recommended way, we switch to that.
Also, cryptoauthlib has started warning about it:
```
external/cryptoauthlib/lib/calib/calib_execution.c:46:2:
warning: #warning "ATECC608B supports only polling mode,
if you are using an ATECC608A specify ATCA_ATECC608A_SUPPORT manually"
```.
PEROFRMANCE:
Polling seems significantly faster. One round of KDF (end-to-end, i.e.
including slot authorization calls and communication overhead) with
polling takes around 100-110ms, while before it took around 300ms. The
unlock process does three rounds of KDF, so the unlock process time
will be reduced from ~1s to ~300ms.
0 commit comments