diff options
author | Jonny Svärd <jonny.svaerd@arm.com> | 2022-04-19 15:35:01 +0200 |
---|---|---|
committer | Jonny Svärd <jonny.svaerd@arm.com> | 2022-04-21 15:50:16 +0200 |
commit | 44b250be84b2e3bbd421fcc25134fe672eda4027 (patch) | |
tree | 2c8a19995cc48b85579b366db25e9822f437c4f4 /applications/driver_unit_tests/command_stream.cpp | |
parent | 65520055f422dac8d3c1a87314d98846a3bce3b5 (diff) | |
download | ethos-u-core-platform-44b250be84b2e3bbd421fcc25134fe672eda4027.tar.gz |
Add simple async API testing to driver_unit_tests
Change-Id: Iae5733efb40a8fd11e7108e93cc719f67b4f1be3
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; } |