openmv/lib/stai/libstai/include/ll_aton_ec_trace.h
iabdalkader e95a19c963 lib: Add STAI library and ML backend.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-10 11:53:31 +02:00

74 lines
2.6 KiB
C

/**
******************************************************************************
* @file ll_aton_ec_trace.h
* @author SRA Artificial Intelligence & Embedded Architectures
* @brief Header file for defining epoch controller trace methods
******************************************************************************
* @attention
*
* Copyright (c) 2024 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
#ifndef __LL_ATON_EC_TRACE_H
#define __LL_ATON_EC_TRACE_H
#ifdef __cplusplus
extern "C"
{
#endif
#include <stdint.h>
typedef struct mpool_reloc_info_t
{
const char *name;
const char *base_symbol;
uintptr_t base_address;
int is_absolute;
int is_user_io;
} mpool_reloc_info_t;
// array of memory pool info needed for relocation (ends when name == NULL)
extern mpool_reloc_info_t mpool_reloc_info[];
extern uintptr_t get_ec_aton_base(void);
extern void initialize_ec_aton_base(void);
extern void ec_trace_comment(const char *comment);
extern void ec_trace_init(const char *out_filenamme, const char *network_name);
extern void ec_trace_start_blob(const char *blob_name);
extern void ec_trace_end_blob(const char *blob_name);
extern void ec_trace_start_epoch(unsigned int num);
extern void ec_trace_end_epoch(unsigned int num);
extern void ec_trace_all_blobs_done(void);
extern void ec_trace_wait_epoch_end(uint32_t wait_mask);
extern void ec_trace_unsupported(void);
extern unsigned int ec_trace_get_IP_id(uintptr_t unitbase);
extern unsigned int ec_trace_get_REG_id(unsigned int regoffset);
extern void ec_trace_write(uintptr_t dstreg, unsigned int val);
extern void ec_trace_write_reloc(uintptr_t dstreg, unsigned int base, unsigned int offset);
extern void ec_trace_reg_write(unsigned int IP_id, unsigned int REG_id, unsigned int val);
extern void ec_trace_reg_write_reloc(unsigned int IP_id, unsigned int REG_id, unsigned int base, unsigned int offset);
extern void ec_trace_reg_writefield(unsigned int IP_id, unsigned int REG_id, unsigned int lsb, unsigned int num_bits,
unsigned int val);
extern void ec_trace_reg_poll(unsigned int IP_id, unsigned int REG_id, unsigned int lsb, unsigned int num_bits,
unsigned int val);
#ifdef __cplusplus
}
#endif
#endif // __LL_ATON_EC_TRACE_H