diff options
Diffstat (limited to 'applications/driver_unit_tests/command_stream.cpp')
-rw-r--r-- | applications/driver_unit_tests/command_stream.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/applications/driver_unit_tests/command_stream.cpp b/applications/driver_unit_tests/command_stream.cpp index 76dba6f..a2cb63e 100644 --- a/applications/driver_unit_tests/command_stream.cpp +++ b/applications/driver_unit_tests/command_stream.cpp @@ -133,6 +133,31 @@ int CommandStream::run(size_t repeat) { return 0; } +int CommandStream::run_async() { + // Base pointer array + uint64_t baseAddress[ETHOSU_BASEP_INDEXES]; + size_t baseAddressSize[ETHOSU_BASEP_INDEXES]; + + for (size_t i = 0; i < ETHOSU_BASEP_INDEXES; i++) { + baseAddress[i] = reinterpret_cast<uint64_t>(basePointers[i].data); + baseAddressSize[i] = reinterpret_cast<size_t>(basePointers[i].size); + } + + int error = ethosu_invoke_async( + drv, commandStream.data, commandStream.size, baseAddress, baseAddressSize, ETHOSU_BASEP_INDEXES, nullptr); + + if (error != 0) { + printf("Inference invoke async failed. error=%d\n", error); + return 1; + } + + return 0; +} + +int CommandStream::wait_async(bool block) { + return ethosu_wait(drv, block); +} + DataPointer &CommandStream::getCommandStream() { return commandStream; } |