diff options
author | Jens Elofsson <jens.elofsson@arm.com> | 2021-05-18 11:30:35 +0200 |
---|---|---|
committer | Fredrik Knutsson <fredrik.knutsson@arm.com> | 2021-05-27 11:26:13 +0000 |
commit | a9817a1b10f130c284e9283f5e6893d1f271e2a3 (patch) | |
tree | 2d8ebe4319507e5a13bf97fb437694ebc12402e6 /lib/ethosu_monitor/src | |
parent | 44d6e22f953839a9e294a36d975289eac8615cf2 (diff) | |
download | ethos-u-core-software-a9817a1b10f130c284e9283f5e6893d1f271e2a3.tar.gz |
Add ethosu_monitor to core_software.21.05-rc3
Change-Id: I9423c0c2a8aca738b2788ff5c41e946432188dc3
Diffstat (limited to 'lib/ethosu_monitor/src')
-rw-r--r-- | lib/ethosu_monitor/src/ethosu_monitor.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/ethosu_monitor/src/ethosu_monitor.cpp b/lib/ethosu_monitor/src/ethosu_monitor.cpp new file mode 100644 index 0000000..70a8656 --- /dev/null +++ b/lib/ethosu_monitor/src/ethosu_monitor.cpp @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2021 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "ethosu_monitor.hpp" +#include <stdio.h> + +EthosUMonitor::EthosUMonitor(int32_t __eventRecordId, Backend __backend) : + eventRecordId(__eventRecordId), backend(__backend) {} + +void EthosUMonitor::monitorSample(ethosu_driver *drv) { + // Fetch events + uint32_t eventCount[ETHOSU_PMU_NCOUNTERS] = {0}; + for (size_t i = 0; i < numEvents; i++) { + eventCount[i] = ETHOSU_PMU_Get_EVCNTR(drv, i); + switch (backend) { + case EVENT_RECORDER: + EventRecord2(eventRecordId, ethosuEventIds[i], eventCount[i]); + break; + case PRINTF: + default: + printf("ethosu_pmu_cntr%d : %u\n", i, eventCount[i]); + } + } +} + +void EthosUMonitor::release(ethosu_driver *drv) { + ETHOSU_PMU_Disable(drv); +} |