Skip to content
Commit 1a3bb928 authored by Jonny Svärd's avatar Jonny Svärd
Browse files

Add driver async API

Add an asynchronous API to the driver. The current synchronous API
is now using the new async API internally. The main new functions
are ethosu_invoke_async() and ethosu_wait(). Every successfull call
to ethosu_invoke_async() must be followed by a call to ethosu_wait()
to get the status of the inference. The wait function can be called
in a blocking or non-blocking mode by specifying the `block`
argument to true/false. The regular synchronous invoke function is
implemented as a invoke_async followed by a wait(block=true) call.

Short sommary of changes:
 - Add an internal ethosu_job struct to keep track of
   inference data and job state.
 - Use async API in blocking mode for normal flow
 - Change default semaphore implementation to binary type
 - Move error prints out of interrupt context
 - Move ethosu_inference_begin() callback to right before HW invoke
 - Always call ethosu_inference_end() callback, even in case of errors
 - On NPU error, do not keep NPU powered after being reset

Change-Id: If4c3c46e3c6732a669e17251bd848dea5765a490
parent 24455eed
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment