API Reference
The NEORV32 RISC-V Processor
Loading...
Searching...
No Matches
neorv32_tracebuf.c File Reference

Execution trace buffer (TRACEBUF) HW driver source file. More...

#include <neorv32.h>

Functions

int neorv32_tracebuf_available (void)
void neorv32_tracebuf_enable (int hsel, uint32_t stop_addr)
void neorv32_tracebuf_disable (void)
int neorv32_tracebuf_get_buffer_depth (void)
int neorv32_tracebuf_run (void)
void neorv32_tracebuf_irq_ack (void)
int neorv32_tracebuf_data_avail (void)
uint32_t neorv32_tracebuf_data_get_src (void)
uint32_t neorv32_tracebuf_data_get_dst (void)

Detailed Description

Execution trace buffer (TRACEBUF) HW driver source file.

Function Documentation

◆ neorv32_tracebuf_available()

int neorv32_tracebuf_available ( void )

Check if TRACEBUF module was synthesized.

Returns
0 if TRACER was not synthesized, non-zero if TRACER is available.

◆ neorv32_tracebuf_data_avail()

int neorv32_tracebuf_data_avail ( void )

Check if trace buffer data is available.

Returns
Non-zero if trace data available, zero if no trace data available.

◆ neorv32_tracebuf_data_get_dst()

uint32_t neorv32_tracebuf_data_get_dst ( void )

Get trace data: delta-destination.

Important
Use AFTER #neorv32_tracer_data_get_src().
Returns
32-bit delta-destination address + trap-entry flag (in LSB).

◆ neorv32_tracebuf_data_get_src()

uint32_t neorv32_tracebuf_data_get_src ( void )

Get trace data: delta-source.

Important
Check if data is available before with #neorv32_tracer_data_avail().
Returns
32-bit delta-source address + first-packet flag (in LSB).

◆ neorv32_tracebuf_disable()

void neorv32_tracebuf_disable ( void )

Reset and disable trace buffer.

◆ neorv32_tracebuf_enable()

void neorv32_tracebuf_enable ( int hsel,
uint32_t stop_addr )

Reset, enable and configure trace buffer.

Parameters
[in]hselHart ID of the CPU that is traced (0/1).
[in]stop_addrStop tracing at this address. Use -1 to disable auto-stopping.

◆ neorv32_tracebuf_get_buffer_depth()

int neorv32_tracebuf_get_buffer_depth ( void )

Get trace buffer depth.

Returns
Trace buffer depth (number of entries)

◆ neorv32_tracebuf_irq_ack()

void neorv32_tracebuf_irq_ack ( void )

Acknowledge/clear pending trace buffer interrupt.

◆ neorv32_tracebuf_run()

int neorv32_tracebuf_run ( void )

Check if trace buffer is running.

Returns
Non-zero if tracing in progress, zero if tracing is stopped/halted.