template<unsigned MAX_BITS, typename BLOCK = Register_block_tmpl< Register_block_base<MAX_BITS> >>
class L4drivers::Register_block< MAX_BITS, BLOCK >
Handles a reference to a register block of the given maximum access width.
- Template Parameters
-
MAX_BITS | Maximum access width for the registers in this block. |
BLOCK | Type implementing the register accesses (read<>() , write<>() , modify<>() , set<>() , and clear<>() ). |
Provides access to registers in this block via r<WIDTH>() and operator[]().
Example usage:
void test()
{
Hw::Register_block<16> regs = new Hw::Mmio_register_block<16>(0x1000);
Hw::Register_block<16> regs = new Hw::Mmio_register_block<32>(0x1000);
unsigned short x = regs.r<16>(8);
unsigned short x1 = regs[8];
unsigned v = regs.r<8>(0);
regs[2] = 22;
regs.r<16>(2) = 22;
regs[2].write(22);
regs.r<16>().write(22);
regs.r<8>(0) = 9;
regs.r<8>(0).write(9);
regs[4].modify(0xf, 3);
regs.r<16>(4).modify(0xf, 3);
regs.r<8>(0).modify(0xf, 3);
unsigned long v = regs.r<32>(4)
}
Definition at line 329 of file hw_register_block.