NEORV32 Software Framework Documentation
The NEORV32 RISC-V Processor
Loading...
Searching...
No Matches
neorv32_rte.h File Reference

NEORV32 Runtime Environment. More...

#include <stdint.h>

Go to the source code of this file.

Functions

Prototypes
void neorv32_rte_setup (void)
 
void neorv32_rte_core (void)
 
int neorv32_rte_handler_install (uint32_t code, void(*handler)(void))
 
void neorv32_rte_debug_handler (void)
 
uint32_t neorv32_rte_context_get (int x)
 
void neorv32_rte_context_put (int x, uint32_t data)
 

Detailed Description

NEORV32 Runtime Environment.

Function Documentation

◆ neorv32_rte_context_get()

uint32_t neorv32_rte_context_get ( int x)

NEORV32 runtime environment (RTE): Read register from application context (on stack).

Note
This function operates on the RTE instance of the core on which this function is executed.
Parameters
[in]xRegister number (0..31, corresponds to register x0..x31).
Returns
Content of register x.

◆ neorv32_rte_context_put()

void neorv32_rte_context_put ( int x,
uint32_t data )

NEORV32 runtime environment (RTE): Write register to application context (on stack).

Note
This function operates on the RTE instance of the core on which this function is executed.
Parameters
[in]xRegister number (0..31, corresponds to register x0..x31).
[in]dataData to be written to register x.

◆ neorv32_rte_core()

void neorv32_rte_core ( void )

NEORV32 runtime environment (RTE): This is the core of the NEORV32 RTE (first-level trap handler, executed in machine mode).

◆ neorv32_rte_debug_handler()

void neorv32_rte_debug_handler ( void )

NEORV32 runtime environment (RTE): Debug trap handler, printing information via UART0.

Note
This function operates on the RTE instance of the core on which this function is executed.

◆ neorv32_rte_handler_install()

int neorv32_rte_handler_install ( uint32_t code,
void(* handler )(void) )

NEORV32 runtime environment (RTE): Install trap handler function (second-level trap handler).

Note
Trap handler installation applies to both cores. Hence, both cores will execute the same handler for the same trap.
Parameters
[in]codeTrap code (MCAUSE CSR value) of the targeted trap. See NEORV32_EXCEPTION_CODES_enum.
[in]handlerThe actual handler function for the specified trap (function must be of type "void function(void);").
Returns
0 if success, -1 if invalid trap code.

◆ neorv32_rte_setup()

void neorv32_rte_setup ( void )

NEORV32 runtime environment (RTE): Setup RTE.

Note
This function must be called on all cores that wish to use the RTE.
This function installs a debug handler for ALL trap sources, which gives detailed information about the trap via UART0 (if available). Actual handlers can be installed afterwards via neorv32_rte_handler_install().