diff --git a/source/stm32-f4-exti.ads b/source/stm32-f4-exti.ads index 5f8b2ab..24aa2fe 100644 --- a/source/stm32-f4-exti.ads +++ b/source/stm32-f4-exti.ads @@ -27,12 +27,12 @@ package STM32.F4.EXTI is end record; type EXTI_Registers is record - IMR: Event_Set_Register; - EMR: Event_Set_Register; - RTSR: Event_Set_Register; - FTSR: Event_Set_Register; - SWIER: Event_Set_Register; - PR: Event_Set_Register; + IMR: Event_Set_Register with Volatile_Full_Access; + EMR: Event_Set_Register with Volatile_Full_Access; + RTSR: Event_Set_Register with Volatile_Full_Access; + FTSR: Event_Set_Register with Volatile_Full_Access; + SWIER: Event_Set_Register with Volatile_Full_Access; + PR: Event_Set_Register with Volatile_Full_Access; end record; for EXTI_Registers use record diff --git a/source/stm32-f4-pwr.ads b/source/stm32-f4-pwr.ads index 9ed0fe0..2d312d6 100644 --- a/source/stm32-f4-pwr.ads +++ b/source/stm32-f4-pwr.ads @@ -117,8 +117,8 @@ package STM32.F4.PWR is end record; type PWR_Registers is record - CR : Power_Control_Register; - CSR : Power_Control_Status_Register; + CR : Power_Control_Register with Volatile_Full_Access; + CSR : Power_Control_Status_Register with Volatile_Full_Access; end record with Volatile; for PWR_Registers use record diff --git a/source/stm32-f4-syscfg.ads b/source/stm32-f4-syscfg.ads index 1bf27b1..a835062 100644 --- a/source/stm32-f4-syscfg.ads +++ b/source/stm32-f4-syscfg.ads @@ -114,13 +114,13 @@ package STM32.F4.SysCfg is end record; type SYSCFG_Registers is record - MEMRMP: Memory_Remap_Register; - PMC: Peripherial_Mode_Register; - EXTICR1: External_Interrupt_Configuration_1.Register; - EXTICR2: External_Interrupt_Configuration_2.Register; - EXTICR3: External_Interrupt_Configuration_3.Register; - EXTICR4: External_Interrupt_Configuration_4.Register; - CMPCR: Compensation_Cell_Control_Register; + MEMRMP: Memory_Remap_Register with Volatile_Full_Access; + PMC: Peripherial_Mode_Register with Volatile_Full_Access; + EXTICR1: External_Interrupt_Configuration_1.Register with Volatile_Full_Access; + EXTICR2: External_Interrupt_Configuration_2.Register with Volatile_Full_Access; + EXTICR3: External_Interrupt_Configuration_3.Register with Volatile_Full_Access; + EXTICR4: External_Interrupt_Configuration_4.Register with Volatile_Full_Access; + CMPCR: Compensation_Cell_Control_Register with Volatile_Full_Access; end record; for SYSCFG_Registers use record diff --git a/source/stm32-f4-usart.ads b/source/stm32-f4-usart.ads index bb96c32..9c6018c 100644 --- a/source/stm32-f4-usart.ads +++ b/source/stm32-f4-usart.ads @@ -2,6 +2,8 @@ with Interfaces; use Interfaces; package STM32.F4.USART is pragma Pure; + -- NOTE: USARTs ans UARTs are on APB + -- Registers should be written as a whole type Status_Register is record PE: Boolean; -- Psrity error @@ -224,13 +226,13 @@ package STM32.F4.USART is end record; type USART_Registers is record - SR: Status_Register; -- Status register - DR: Unsigned_32; -- Data register - BRR: Baud_Rate_Register; -- Baud rate register - CR1: Control_Register_1; -- Control register 1 - CR2: Control_Register_2; -- Control register 2 - CR3: Control_Register_3; -- Control register 3 - GTPR: Guard_Time_and_Prescaler_Register; -- Guard time and prescaler register + SR: Status_Register with Volatile_Full_Access; -- Status register + DR: Unsigned_32 with Volatile_Full_Access; -- Data register + BRR: Baud_Rate_Register with Volatile_Full_Access; -- Baud rate register + CR1: Control_Register_1 with Volatile_Full_Access; -- Control register 1 + CR2: Control_Register_2 with Volatile_Full_Access; -- Control register 2 + CR3: Control_Register_3 with Volatile_Full_Access; -- Control register 3 + GTPR: Guard_Time_and_Prescaler_Register with Volatile_Full_Access; -- Guard time and prescaler register end record with Volatile; for USART_Registers use record SR at 16#00# range 0 .. 31;