IORegister Class Reference
|
yasimavr
|
#include <sim_ioreg.h>
Public Types | |
| enum | BitMode { RW , RO , Strobe } |
Public Member Functions | |
| IORegister (bitmask_t initial_mask=bitmask_t(), BitMode initial_mode=RW) | |
| ~IORegister () | |
| uint8_t | value () const |
| Simple inline interface to access the value. | |
| void | set (uint8_t value) |
| Simple inline interface to access the value. | |
| void | add_bits (bitmask_t mask, BitMode mode) |
| void | add_handler (IORegHandler &handler) |
| uint8_t | cpu_read (reg_addr_t addr) |
| void | cpu_write (reg_addr_t addr, uint8_t value) |
| uint8_t | ioctl_read (reg_addr_t addr) |
| void | ioctl_write (reg_addr_t addr, uint8_t value) |
| uint8_t | dbg_peek (reg_addr_t addr) |
| IORegister (const IORegister &)=delete | |
| IORegister & | operator= (const IORegister &)=delete |
Detailed Description
Simulation model for a 8-bits I/O register that is a vehicle for data transfer between the CPU and I/O peripherals.
Peripherals can be added as handlers to a register to be notified of accesses (read or write) by the CPU.
Each bit of the register can be marked as used/unused or read-only. this is taken into account on write access for error checks.
Member Enumeration Documentation
◆ BitMode
| enum IORegister::BitMode |
Constructor & Destructor Documentation
◆ IORegister() [1/2]
Build a register.
- Parameters
-
initial_mask initial mask to set the bit used initial_mode bitmode for the bits set in initial_mask
◆ ~IORegister()
| IORegister::~IORegister | ( | ) |
◆ IORegister() [2/2]
|
delete |
Member Function Documentation
◆ add_bits()
Add bits to be used in to this register.
- Parameters
-
mask bitmask with the bits to used mode bitmode for the bits set in mask
- Note
- bits already used are not changed even if they are set in mask
◆ add_handler()
| void IORegister::add_handler | ( | IORegHandler & | handler | ) |
Add a handler to this register.
- Parameters
-
handler handler to add
◆ cpu_read()
| uint8_t IORegister::cpu_read | ( | reg_addr_t | addr | ) |
CPU read access to the register.
◆ cpu_write()
| void IORegister::cpu_write | ( | reg_addr_t | addr, |
| uint8_t | value | ||
| ) |
CPU write access to the register.
◆ dbg_peek()
| uint8_t IORegister::dbg_peek | ( | reg_addr_t | addr | ) |
I/O peripheral interface for peek operation (for debug purpose) on this register
◆ ioctl_read()
| uint8_t IORegister::ioctl_read | ( | reg_addr_t | addr | ) |
I/O peripheral interface for read/write operation on this register
◆ ioctl_write()
| void IORegister::ioctl_write | ( | reg_addr_t | addr, |
| uint8_t | value | ||
| ) |
I/O peripheral interface for read/write operation on this register
◆ operator=()
|
delete |
◆ set()
|
inline |
Simple inline interface to access the value.
◆ value()
|
inline |
Simple inline interface to access the value.
The documentation for this class was generated from the following files:
Generated by