API Reference
The NEORV32 RISC-V Processor
Loading...
Searching...
No Matches
neorv32_tracebuf.h
Go to the documentation of this file.
1// ================================================================================ //
2// The NEORV32 RISC-V Processor - https://github.com/stnolting/neorv32 //
3// Copyright (c) NEORV32 contributors. //
4// Copyright (c) 2020 - 2026 Stephan Nolting. All rights reserved. //
5// Licensed under the BSD-3-Clause license, see LICENSE for details. //
6// SPDX-License-Identifier: BSD-3-Clause //
7// ================================================================================ //
8
14#ifndef NEORV32_TRACEBUF_H
15#define NEORV32_TRACEBUF_H
16
17#include <neorv32.h>
18#include <stdint.h>
19
20/**********************************************************************/
25typedef volatile struct __attribute__((packed,aligned(4))) {
26 uint32_t CTRL;
27 uint32_t STOP_ADDR;
28 const uint32_t DELTA_SRC;
29 const uint32_t DELTA_DST;
31
33#define NEORV32_TRACEBUF ((neorv32_tracebuf_t*) (NEORV32_TRACEBUF_BASE))
34
49/**********************************************************************/
54void neorv32_tracebuf_enable(int hsel, uint32_t stop_addr);
57int neorv32_tracebuf_run(void);
64/**********************************************************************/
67static inline void __attribute__ ((always_inline)) neorv32_tracebuf_start(void) {
68 __MMREG32_BSET(NEORV32_TRACEBUF->CTRL, 1U << TRACEBUF_CTRL_START);
69}
70
71/**********************************************************************/
74static inline void __attribute__ ((always_inline)) neorv32_tracebuf_stop(void) {
75 __MMREG32_BSET(NEORV32_TRACEBUF->CTRL, 1U << TRACEBUF_CTRL_STOP);
76}
77
78#endif // NEORV32_TRACEBUF_H
Main NEORV32 core library / driver / HAL include file.
void neorv32_tracebuf_enable(int hsel, uint32_t stop_addr)
Definition neorv32_tracebuf.c:30
uint32_t neorv32_tracebuf_data_get_dst(void)
Definition neorv32_tracebuf.c:101
int neorv32_tracebuf_run(void)
Definition neorv32_tracebuf.c:64
int neorv32_tracebuf_data_avail(void)
Definition neorv32_tracebuf.c:81
static void neorv32_tracebuf_stop(void)
Definition neorv32_tracebuf.h:74
int neorv32_tracebuf_get_buffer_depth(void)
Definition neorv32_tracebuf.c:54
int neorv32_tracebuf_available(void)
Definition neorv32_tracebuf.c:20
NEORV32_TRACEBUF_CTRL_enum
Definition neorv32_tracebuf.h:36
@ TRACEBUF_CTRL_TBM_LSB
Definition neorv32_tracebuf.h:44
@ TRACEBUF_CTRL_TBM_MSB
Definition neorv32_tracebuf.h:45
@ TRACEBUF_CTRL_AVAIL
Definition neorv32_tracebuf.h:42
@ TRACEBUF_CTRL_STOP
Definition neorv32_tracebuf.h:40
@ TRACEBUF_CTRL_START
Definition neorv32_tracebuf.h:39
@ TRACEBUF_CTRL_EN
Definition neorv32_tracebuf.h:37
@ TRACEBUF_CTRL_RUN
Definition neorv32_tracebuf.h:41
@ TRACEBUF_CTRL_HSEL
Definition neorv32_tracebuf.h:38
@ TRACEBUF_CTRL_IRQ_CLR
Definition neorv32_tracebuf.h:43
void neorv32_tracebuf_disable(void)
Definition neorv32_tracebuf.c:45
#define NEORV32_TRACEBUF
Definition neorv32_tracebuf.h:33
uint32_t neorv32_tracebuf_data_get_src(void)
Definition neorv32_tracebuf.c:91
void neorv32_tracebuf_irq_ack(void)
Definition neorv32_tracebuf.c:72
static void neorv32_tracebuf_start(void)
Definition neorv32_tracebuf.h:67
Definition neorv32_tracebuf.h:25
uint32_t STOP_ADDR
Definition neorv32_tracebuf.h:27
const uint32_t DELTA_SRC
Definition neorv32_tracebuf.h:28
uint32_t CTRL
Definition neorv32_tracebuf.h:26
const uint32_t DELTA_DST
Definition neorv32_tracebuf.h:29