ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
emu_console.h
Go to the documentation of this file.
1
23
24#pragma once
25
26#include <stdint.h>
27#include <unicorn/unicorn.h>
28
29#include "ra8_attributes.h"
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
48typedef enum : uint64_t {
49 k_itm_stim0_addr = 0xE0000000UL,
50 k_itm_tcr_addr = 0xE0000E80UL,
51 k_itm_tenr_addr = 0xE0000E00UL,
52 k_scb_demcr_addr = 0xE000EDFCUL,
53 k_sau_type_addr = 0xE000EDD4UL,
54 k_ns_sram2_base = 0x32100000UL,
55 k_ns_alias_bit = 0x10000000UL,
57
70typedef enum : uint32_t {
72 k_itm_tcr_itmena = 0x00000001U,
73 k_itm_tenr_port0 = 0x00000001U,
74 k_itm_stim_ready = 0x00000001U,
75 k_scb_demcr_trcena = 0x01000000U,
76 k_sau_type_regs = 0x00000008U,
78
91typedef enum : uint32_t {
94
118void emu_console_install(uc_engine* uc);
119
137void console_flush_line(uint8_t channel);
138
159void console_tx_sink(uint8_t channel, uint8_t byte);
160
182uint32_t decode_escapes(const char* in, uint8_t* out, uint32_t cap);
183
200void emu_console_reset(void);
201
202#ifdef __cplusplus
203}
204#endif
uint32_t decode_escapes(const char *in, uint8_t *out, uint32_t cap)
Decode a C-style escaped –input string into a raw byte buffer.
console_cfg_t
Console-UART presentation sizing.
Definition emu_console.h:91
@ k_uart_line_max
Pretty-print line buffer for the [uart] prefix.
Definition emu_console.h:92
void emu_console_reset(void)
Reset the in-flight ITM line (warm-reboot support).
itm_bits_t
ITM enable-bit values and line sizing for the stimulus echo.
Definition emu_console.h:70
@ k_itm_line_max
Max chars buffered before a forced flush.
Definition emu_console.h:71
@ k_itm_tcr_itmena
TCR bit 0: ITM global enable.
Definition emu_console.h:72
@ k_itm_stim_ready
Non-zero STIM0 read = FIFO ready.
Definition emu_console.h:74
@ k_itm_tenr_port0
TENR bit 0: stimulus port 0 enabled.
Definition emu_console.h:73
@ k_sau_type_regs
SAU_TYPE.SREGION: M85 implements 8.
Definition emu_console.h:76
@ k_scb_demcr_trcena
DEMCR bit 24: trace subsystem enable.
Definition emu_console.h:75
void emu_console_install(uc_engine *uc)
Seed ITM "ready" bits and arm the stimulus-port echo hook.
void console_tx_sink(uint8_t channel, uint8_t byte)
SCI TX sink: print each transmitted byte (prefixed line + raw mirror).
itm_addr_t
ITM / debug PPB addresses and TrustZone alias constants.
Definition emu_console.h:48
@ k_sau_type_addr
SAU_TYPE (SREGION = implemented regs).
Definition emu_console.h:53
@ k_itm_tenr_addr
ITM Trace Enable Register (port 0).
Definition emu_console.h:51
@ k_ns_sram2_base
SRAM2 Non-secure alias (bit[28]=1).
Definition emu_console.h:54
@ k_scb_demcr_addr
Debug Exception + Monitor Control.
Definition emu_console.h:52
@ k_itm_tcr_addr
ITM Trace Control Register (ITMENA).
Definition emu_console.h:50
@ k_itm_stim0_addr
ITM stimulus port 0 (byte FIFO).
Definition emu_console.h:49
@ k_ns_alias_bit
IDAU bit[28]: NS alias of a Secure addr.
Definition emu_console.h:55
void console_flush_line(uint8_t channel)
Flush the pending [uart] line to injected output sink with its channel prefix.
Annotation-attribute framework macros for ra8-firmware.