aboutsummaryrefslogtreecommitdiff
path: root/applications/driver_unit_tests/command_stream.cpp
diff options
context:
space:
mode:
authorJonny Svärd <jonny.svaerd@arm.com>2022-04-19 15:35:01 +0200
committerJonny Svärd <jonny.svaerd@arm.com>2022-04-21 15:50:16 +0200
commit44b250be84b2e3bbd421fcc25134fe672eda4027 (patch)
tree2c8a19995cc48b85579b366db25e9822f437c4f4 /applications/driver_unit_tests/command_stream.cpp
parent65520055f422dac8d3c1a87314d98846a3bce3b5 (diff)
downloadethos-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.cpp25
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;
}