Class ArchXT_USART
Defined in File arch_xt_usart.h
Inheritance Relationships
Base Types
public Peripheral(Class Peripheral)public SignalHook(Class SignalHook)
Class Documentation
-
class ArchXT_USART : public Peripheral, public SignalHook
Implementation of a USART interface for XT core series.
Features:
8-bits frames only, regardless of the frame size setting
stop bits and parity settings have no effect
synchronous, SPI MPCM modes are not supported
one-wire / RS485 and IRCOM modes not supported
RXC, RXS, TXC, UDRE interrupts are supported
Start-of-Frame detection is supported
Error flags are not supported
Auto-baud not supported
CTLREQs supported:
AVR_CTLREQ_GET_SIGNAL : returns in data.p the signal of the underlying UART (see sim_uart.h)
AVR_CTLREQ_UART_ENDPOINT : returns in data.p the endpoint to use in order to transmit data in and out (see sim_uart.h)
Public Functions
-
ArchXT_USART(uint8_t num, const ArchXT_USARTConfig &config)
-
virtual bool init(Device &device) override
Virtual method called when the device is initialised. This is where the peripheral can allocate its I/O registers, interrupts or connect signals.
- Returns:
boolean indicates the success of all allocations.
-
virtual void reset() override
Virtual method called when the device is reset. Note that resetting I/O registers is only necessary here if their reset value is not zero.
-
virtual bool ctlreq(ctlreq_id_t req, ctlreq_data_t *data) override
Virtual method called for a CTL request. The method must return true if the request has been processed.
-
virtual uint8_t ioreg_read_handler(reg_addr_t addr, uint8_t value) override
Virtual method called when the CPU is reading a I/O register allocated by this peripheral. The value has not been read yet so the module can modify it before the CPU gets it.
- Parameters:
addr – the register address in I/O space
-
virtual void ioreg_write_handler(reg_addr_t addr, const ioreg_write_t &data) override
Virtual method called when the CPU is writing a I/O register allocated by this peripheral. The value has already been written.
- Parameters:
addr – the register address in I/O space
value – the new register content
-
virtual void sleep(bool on, SleepMode mode) override
Virtual method called when the device enters or exits a sleep mode.
- Parameters:
on – true when entering a sleep mode, false when exiting it.
mode – one of the enum SleepMode values
-
virtual void raised(const signal_data_t &sigdata, int hooktag) override
Pure virtual callback called during signal raises.
- Parameters:
sigdata – Data structure passed on when raising a signal
hooktag – integer passed on when connecting a hook to a signal. For hooks connected to several signals, it provides a mean to identify the caller.