ducky.devices.rtc module

class ducky.devices.rtc.HDTEntry_RTC(logger, config, section)[source]

Bases: ducky.hdt.HDTEntry_Device

_fields_ = [('type', <class 'ctypes.c_ushort'>), ('length', <class 'ctypes.c_ushort'>), ('name_length', <class 'ctypes.c_ubyte'>), ('flags', <class 'ctypes.c_ubyte'>), ('name', <class 'ducky.hdt.c_ubyte_Array_10'>), ('ident', <class 'ducky.hdt.c_ubyte_Array_32'>), ('mmio_address', <class 'ctypes.c_uint'>)]
flags

Structure/Union member

ident

Structure/Union member

length

Structure/Union member

mmio_address

Structure/Union member

name

Structure/Union member

name_length

Structure/Union member

type

Structure/Union member

class ducky.devices.rtc.RTC(machine, name, frequency=None, mmio_address=None, irq=None, *args, **kwargs)[source]

Bases: ducky.devices.Device

boot()[source]
static create_from_config(machine, config, section)[source]
static create_hdt_entries(logger, config, section)[source]
frequency
halt()[source]
class ducky.devices.rtc.RTCMMIOMemoryPage(device, *args, **kwargs)[source]

Bases: ducky.devices.MMIOMemoryPage

read_u8(offset)[source]
write_u8(offset, value)[source]
class ducky.devices.rtc.RTCPorts[source]

Bases: enum.IntEnum

DAY = 5
FREQUENCY = 0
HOUR = 4
MINUTE = 2
MONTH = 6
SECOND = 1
YEAR = 6
_member_map_ = OrderedDict([('FREQUENCY', <RTCPorts.FREQUENCY: 0>), ('SECOND', <RTCPorts.SECOND: 1>), ('MINUTE', <RTCPorts.MINUTE: 2>), ('HOUR', <RTCPorts.HOUR: 4>), ('DAY', <RTCPorts.DAY: 5>), ('MONTH', <RTCPorts.MONTH: 6>), ('YEAR', <RTCPorts.MONTH: 6>)])
_member_names_ = ['FREQUENCY', 'SECOND', 'MINUTE', 'HOUR', 'DAY', 'MONTH']
_member_type_

alias of int

_value2member_map_ = {0: <RTCPorts.FREQUENCY: 0>, 1: <RTCPorts.SECOND: 1>, 2: <RTCPorts.MINUTE: 2>, 4: <RTCPorts.HOUR: 4>, 5: <RTCPorts.DAY: 5>, 6: <RTCPorts.MONTH: 6>}
class ducky.devices.rtc.RTCTask(machine, rtc)[source]

Bases: ducky.reactor.RunInIntervalTask

on_tick(task)[source]
update_tick()[source]