------------- Registers -- -------------
type CTRL_PAUSE_DBG_Field
(As_Array : Boolean := False)
is record
case As_Array is
when False =>
Val : HAL.UInt2;
when True =>
Arr : CTRL_PAUSE_DBG_Field_Array;
end case;
end record
with Unchecked_Union, Size => 2;
type CTRL_PAUSE_DBG_Field_Array is array (0 .. 1) of Boolean
with Component_Size => 1, Size => 2;
type CTRL_Register is record
TIME : CTRL_TIME_Field := 16#0#;
PAUSE_JTAG : Boolean := True;
PAUSE_DBG : CTRL_PAUSE_DBG_Field :=
(As_Array => False, Val => 16#1#);
Reserved_27_29 : HAL.UInt3 := 16#0#;
ENABLE : Boolean := False;
TRIGGER : Boolean := False;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
subtype CTRL_TIME_Field is HAL.UInt24;
subtype LOAD_LOAD_Field is HAL.UInt24;
type LOAD_Register is record
LOAD : LOAD_LOAD_Field := 16#0#;
Reserved_24_31 : HAL.UInt8 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type REASON_Register is record
TIMER : Boolean;
FORCE : Boolean;
Reserved_2_31 : HAL.UInt30;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
subtype TICK_COUNT_Field is HAL.UInt9;
subtype TICK_CYCLES_Field is HAL.UInt9;
type TICK_Register is record
CYCLES : TICK_CYCLES_Field := 16#0#;
ENABLE : Boolean := True;
RUNNING : Boolean := False;
COUNT : TICK_COUNT_Field := 16#0#;
Reserved_20_31 : HAL.UInt12 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
WATCHDOG_Periph : aliased WATCHDOG_Peripheral
with Import, Address => WATCHDOG_Base;
type WATCHDOG_Peripheral is record
CTRL : aliased CTRL_Register;
LOAD : aliased LOAD_Register;
REASON : aliased REASON_Register;
SCRATCH0 : aliased HAL.UInt32;
SCRATCH1 : aliased HAL.UInt32;
SCRATCH2 : aliased HAL.UInt32;
SCRATCH3 : aliased HAL.UInt32;
SCRATCH4 : aliased HAL.UInt32;
SCRATCH5 : aliased HAL.UInt32;
SCRATCH6 : aliased HAL.UInt32;
SCRATCH7 : aliased HAL.UInt32;
TICK : aliased TICK_Register;
end record
with Volatile;