This commit is contained in:
Vovanium 2024-01-09 17:08:53 +03:00
parent 9293fcce4d
commit f5ea0364cf

View file

@ -1,42 +1,33 @@
package STM32.EXTI with Preelaborate is
type Event_Number is range 0 .. 22;
package Events is
PVD: constant Event_Number := 16;
RTC_Alarm: constant Event_Number := 17;
USB_OTG_FS_Wakeup: constant Event_Number := 18;
Ethernet_Wakeup: constant Event_Number := 19;
USB_OTG_HS_Wakeup: constant Event_Number := 20;
RTC_Tamper: constant Event_Number := 21;
RTC_Timestamp: constant Event_Number := 21; -- alias for RTC_Tamper
RTC_Wakeup: constant Event_Number := 22;
end Events;
subtype Line_Number is Integer range 0 .. 31;
package Lines is
-- line 0 to line 15 are external
PVD: constant Line_Number := 16;
RTC_Alarm: constant Line_Number := 17;
USB_OTG_FS_Wakeup: constant Line_Number := 18;
Ethernet_Wakeup: constant Line_Number := 19;
USB_OTG_HS_Wakeup: constant Line_Number := 20;
RTC_Tamper: constant Line_Number := 21;
RTC_Timestamp: constant Line_Number := 21; -- alias for RTC_Tamper
RTC_Wakeup: constant Line_Number := 22;
end Lines;
type Event_Array is array (Event_Number) of Boolean
with Pack, Size=>23;
type Event_Set_Register is record
MR: Event_Array;
Reserved_23: Integer range 0 .. 2**9-1;
end record with Size => 32;
for Event_Set_Register use record
MR at 0 range 0 .. 22;
Reserved_23 at 0 range 23 .. 31;
end record;
type Line_Set_Register is array (Line_Number) of Boolean
with Pack, Size=>32;
type EXTI_Registers is record
IMR: Event_Set_Register;
IMR: Line_Set_Register;
Pragma Volatile_Full_Access(IMR);
EMR: Event_Set_Register;
EMR: Line_Set_Register;
Pragma Volatile_Full_Access(EMR);
RTSR: Event_Set_Register;
RTSR: Line_Set_Register;
Pragma Volatile_Full_Access(RTSR);
FTSR: Event_Set_Register;
FTSR: Line_Set_Register;
Pragma Volatile_Full_Access(FTSR);
SWIER: Event_Set_Register;
SWIER: Line_Set_Register;
Pragma Volatile_Full_Access(SWIER);
PR: Event_Set_Register;
PR: Line_Set_Register;
Pragma Volatile_Full_Access(PR);
end record with Volatile;