* added GNAT's Volatile_Full_Access attributes -- this is because of APB bridge quirk

This commit is contained in:
Vovanium 2021-05-03 22:57:26 +03:00
parent 0691fd254f
commit 3085366ca0
4 changed files with 24 additions and 22 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;