Edge AI Add-on API 2.2.0
Loading...
Searching...
No Matches

◆ nrf_axon_syncmode_blocking_e

Specifies the blocking mechanism for synchronous Axon command buffer execution.

nrf_axon_run_cmd_buf_sync() provides a synchronous interface to executing an Axon command buffer. The optimal blocking scheme is dependent on the work load being presented.

Smaller work loads like intrinsics are faster and more energy efficient when a hardware status polling loop is used, because the overhead of interrupt handling is high relative to the Axon work load.

Larger work loads like NN model inference will be more energy efficient using interrupts because the CPU can sleep during Axon execution. The interrupt processing overhead is small compared to the Axon execution time.

A potential future option is to defer blocking and return immediately and allow the caller to proceed with other work, then perform the wait with a call to a TBD function. Callers must ensure that no variables passed to nrf_axon_run_cmd_buf_sync fall out of scope, and that there are no interdependencies between the work Axon is doing and the work the CPU is doing.

Enumerator
NRF_AXON_SYNC_MODE_BLOCKING_INVALID 

DO NOT USE! Reserved for driver use. Block by waiting in a software polling loop. Appropriate for intrinsics where the overhead of interrupt processing is high compared to the Axon compute load.

NRF_AXON_SYNC_MODE_BLOCKING_POLLING 

Block by waing on a signal. Axon hardware completion will fire an interrupt, and the ISR * will signal completion. Appropriate for large work loads like nn model inference.

NRF_AXON_SYNC_MODE_BLOCKING_EVENT 

DO NOT USE! UNTESTED! don't wait for hardware to complete. User will call wait function later.

NRF_AXON_SYNC_MODE_BLOCKING_DEFERRED 

Reserved for driver use. Allows arrays to be sized by the length of the enum.

NRF_AXON_SYNC_MODE_BLOCKING_COUNT