* added base addresses to all written modules
This commit is contained in:
parent
23aa9b0233
commit
6f8e2b3b7d
|
@ -25,6 +25,7 @@ package STM32.Address_Map is
|
|||
TIM12 : constant Address := APB1 + 16#1800#;
|
||||
TIM13 : constant Address := APB1 + 16#1C00#;
|
||||
TIM14 : constant Address := APB1 + 16#2000#;
|
||||
LPTIM1 : constant Address := APB1 + 16#2400#;
|
||||
RTC_and_BKP : constant Address := APB1 + 16#2800#;
|
||||
WWDG : constant Address := APB1 + 16#2C00#;
|
||||
IWDG : constant Address := APB1 + 16#3000#;
|
||||
|
@ -106,16 +107,19 @@ package STM32.Address_Map is
|
|||
|
||||
-- AHB 3
|
||||
AHB3 : constant Address := To_Address (16#6000_0000#);
|
||||
FMC_Bank_1 : constant Address := To_Address (16#6000_0000#);
|
||||
FSMC_Bank1_1 : constant Address := To_Address (16#6000_0000#);
|
||||
FSMC_Bank1_2 : constant Address := To_Address (16#6400_0000#);
|
||||
FSMC_Bank1_3 : constant Address := To_Address (16#6800_0000#);
|
||||
FSMC_Bank1_4 : constant Address := To_Address (16#6C00_0000#);
|
||||
FMC_Bank_2 : constant Address := To_Address (16#7000_0000#);
|
||||
FMC_Bank_3 : constant Address := To_Address (16#8000_0000#);
|
||||
FMC_Bank_4 : constant Address := To_Address (16#9000_0000#);
|
||||
FMC_FSMC : constant Address := To_Address (16#A000_0000#);
|
||||
FMC_Bank_5 : constant Address := To_Address (16#C000_0000#);
|
||||
FMC_Bank_6 : constant Address := To_Address (16#D000_0000#);
|
||||
FMC_Bank_1 : constant Address := AHB3;
|
||||
FSMC_Bank1_1 : constant Address := FMC_Bank_1;
|
||||
FSMC_Bank1_2 : constant Address := FMC_Bank_1 + 16#0400_0000#;
|
||||
FSMC_Bank1_3 : constant Address := FMC_Bank_1 + 16#0800_0000#;
|
||||
FSMC_Bank1_4 : constant Address := FMC_Bank_1 + 16#0C00_0000#;
|
||||
FMC_Bank_2 : constant Address := AHB3 + 16#1000_0000#;
|
||||
FMC_Bank_3 : constant Address := AHB3 + 16#2000_0000#;
|
||||
FMC_Bank_4 : constant Address := AHB3 + 16#3000_0000#;
|
||||
FMC_FSMC : constant Address := AHB3 + 16#4000_0000#;
|
||||
FMC_Bank_5 : constant Address := AHB3 + 16#6000_0000#;
|
||||
FMC_Bank_6 : constant Address := AHB3 + 16#7000_0000#;
|
||||
|
||||
CPU_Internal : constant Address := To_Address (16#E000_0000#);
|
||||
DBG : constant Address := CPU_Internal + 16#4_2000#;
|
||||
|
||||
end STM32.Address_Map;
|
||||
|
|
|
@ -1,20 +1,28 @@
|
|||
package STM32.Debug with Pure is
|
||||
with STM32.Address_Map;
|
||||
|
||||
-- Debug support
|
||||
|
||||
package STM32.Debug is
|
||||
|
||||
-- IDCODE
|
||||
|
||||
DEV_ID_STM32F405 : constant := 16#413#;
|
||||
DEV_ID_STM32F407 : constant := 16#413#;
|
||||
DEV_ID_STM32F415 : constant := 16#413#;
|
||||
DEV_ID_STM32F417 : constant := 16#413#;
|
||||
DEV_ID_STM32F427 : constant := 16#419#;
|
||||
DEV_ID_STM32F429 : constant := 16#419#;
|
||||
DEV_ID_STM32F437 : constant := 16#419#;
|
||||
DEV_ID_STM32F439 : constant := 16#419#;
|
||||
type Device_ID is mod 2**12;
|
||||
|
||||
DEV_ID_STM32F405 : constant Device_ID := 16#413#;
|
||||
DEV_ID_STM32F407 : constant Device_ID := 16#413#;
|
||||
DEV_ID_STM32F415 : constant Device_ID := 16#413#;
|
||||
DEV_ID_STM32F417 : constant Device_ID := 16#413#;
|
||||
DEV_ID_STM32F427 : constant Device_ID := 16#419#;
|
||||
DEV_ID_STM32F429 : constant Device_ID := 16#419#;
|
||||
DEV_ID_STM32F437 : constant Device_ID := 16#419#;
|
||||
DEV_ID_STM32F439 : constant Device_ID := 16#419#;
|
||||
|
||||
type Revision_ID is range 0 .. 2**16 - 1;
|
||||
|
||||
type Device_ID_Register is record
|
||||
DEV_ID : Integer range 0 .. 2**12 - 1; -- Device identifier
|
||||
Unused_12 : Integer range 0 .. 15;
|
||||
REV_ID : Integer range 0 .. 2**16 - 1; -- Revision identifier
|
||||
DEV_ID : Device_ID; -- Device identifier
|
||||
Unused_12 : Unused_4_Bits;
|
||||
REV_ID : Revision_ID; -- Revision identifier
|
||||
end record with Size => 32;
|
||||
for Device_ID_Register use record
|
||||
DEV_ID at 0 range 0 .. 11;
|
||||
|
@ -155,4 +163,6 @@ package STM32.Debug with Pure is
|
|||
APB2_FZ at 16#0C# range 0 .. 31;
|
||||
end record;
|
||||
|
||||
DBG : DBG_Registers with Volatile, Import, Address => Address_Map.DBG;
|
||||
|
||||
end STM32.Debug;
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
package STM32.Direct_Memory_Access with Pure is
|
||||
with STM32.Address_Map;
|
||||
|
||||
-- DMA Controller
|
||||
|
||||
package STM32.Direct_Memory_Access is
|
||||
|
||||
-- LISR, HISR, LIFCR, HIFCR
|
||||
-- This Register definition is a bit weird,
|
||||
|
@ -37,16 +41,16 @@ package STM32.Direct_Memory_Access with Pure is
|
|||
array (Integer range 0 .. 1) of Interrupt_Status_Register;
|
||||
|
||||
-- SxCR
|
||||
type Data_Transfer_Direction is (
|
||||
Peripherial_to_Memory,
|
||||
Memory_to_Peripherial,
|
||||
Memory_to_Memory
|
||||
type Transfer_Direction is (
|
||||
Peripheral_to_Memory, -- Peripheral to Memory Transfer
|
||||
Memory_to_Peripheral, -- Memory to Peripheral Transfer
|
||||
Memory_to_Memory -- Memory to Memory Transfer (only available on DMA2)
|
||||
) with Size => 2;
|
||||
|
||||
for Data_Transfer_Direction use (
|
||||
Peripherial_to_Memory => 2#00#,
|
||||
Memory_to_Peripherial => 2#01#,
|
||||
Memory_to_Memory => 2#10#
|
||||
for Transfer_Direction use (
|
||||
Peripheral_to_Memory => 2#00#,
|
||||
Memory_to_Peripheral => 2#01#,
|
||||
Memory_to_Memory => 2#10#
|
||||
);
|
||||
|
||||
type Data_Size is (
|
||||
|
@ -61,6 +65,10 @@ package STM32.Direct_Memory_Access with Pure is
|
|||
Word => 2#10#
|
||||
);
|
||||
|
||||
subtype Priority_Level is Integer range 0 .. 3;
|
||||
|
||||
subtype Target_Memory is Integer range 0 .. 1;
|
||||
|
||||
type Burst_Transfer is (
|
||||
Single,
|
||||
INCR4,
|
||||
|
@ -68,59 +76,54 @@ package STM32.Direct_Memory_Access with Pure is
|
|||
INCR16
|
||||
) with Size => 2;
|
||||
|
||||
for Burst_Transfer use (
|
||||
Single => 2#00#,
|
||||
INCR4 => 2#01#,
|
||||
INCR8 => 2#10#,
|
||||
INCR16 => 2#11#
|
||||
);
|
||||
subtype Channel_Number is Integer range 0 .. 15;
|
||||
-- note: channels 8 .. 15 are only available on F4x3 devices
|
||||
|
||||
type Stream_Configuration_Register is record
|
||||
EN : Boolean;
|
||||
DMEIE : Boolean;
|
||||
TEIE : Boolean;
|
||||
HTIE : Boolean;
|
||||
TCIE : Boolean;
|
||||
PFCTRL : Boolean;
|
||||
DIR : Data_Transfer_Direction;
|
||||
CIRC : Boolean;
|
||||
PINC : Boolean;
|
||||
MINC : Boolean;
|
||||
PSIZE : Data_Size;
|
||||
MSIZE : Data_Size;
|
||||
PINCOS : Boolean;
|
||||
PL : Integer range 0 .. 3;
|
||||
DBM : Boolean;
|
||||
CT : Integer range 0 .. 1;
|
||||
Reserved_20 : Integer range 0 .. 1;
|
||||
PBURST : Burst_Transfer;
|
||||
MBURST : Burst_Transfer;
|
||||
CHSEL : Integer range 0 .. 7;
|
||||
Reserved_28 : Integer range 0 .. 2**4 - 1;
|
||||
EN : Boolean := False;
|
||||
DMEIE : Boolean := False;
|
||||
TEIE : Boolean := False;
|
||||
HTIE : Boolean := False;
|
||||
TCIE : Boolean := False;
|
||||
PFCTRL : Boolean := False;
|
||||
DIR : Transfer_Direction := Peripheral_to_Memory;
|
||||
CIRC : Boolean := False;
|
||||
PINC : Boolean := False;
|
||||
MINC : Boolean := False;
|
||||
PSIZE : Data_Size := Byte;
|
||||
MSIZE : Data_Size := Byte;
|
||||
PINCOS : Boolean := False;
|
||||
PL : Priority_Level := 0;
|
||||
DBM : Boolean := False;
|
||||
CT : Target_Memory := 0;
|
||||
Unused_20 : Unused_1_Bit := 0;
|
||||
PBURST : Burst_Transfer := Single;
|
||||
MBURST : Burst_Transfer := Single;
|
||||
CHSEL : Channel_Number := 0;
|
||||
Unused_29 : Unused_3_Bits := 0;
|
||||
end record with Size => 32;
|
||||
|
||||
for Stream_Configuration_Register use record
|
||||
EN at 0 range 0 .. 0;
|
||||
DMEIE at 0 range 1 .. 1;
|
||||
TEIE at 0 range 2 .. 2;
|
||||
HTIE at 0 range 3 .. 3;
|
||||
TCIE at 0 range 4 .. 4;
|
||||
PFCTRL at 0 range 5 .. 5;
|
||||
DIR at 0 range 6 .. 7;
|
||||
CIRC at 0 range 8 .. 8;
|
||||
PINC at 0 range 9 .. 9;
|
||||
MINC at 0 range 10 .. 10;
|
||||
PSIZE at 0 range 11 .. 12;
|
||||
MSIZE at 0 range 13 .. 14;
|
||||
PINCOS at 0 range 15 .. 15;
|
||||
PL at 0 range 16 .. 17;
|
||||
DBM at 0 range 18 .. 18;
|
||||
CT at 0 range 19 .. 19;
|
||||
Reserved_20 at 0 range 20 .. 20;
|
||||
PBURST at 0 range 21 .. 22;
|
||||
MBURST at 0 range 23 .. 24;
|
||||
CHSEL at 0 range 25 .. 27;
|
||||
Reserved_28 at 0 range 28 .. 31;
|
||||
EN at 0 range 0 .. 0;
|
||||
DMEIE at 0 range 1 .. 1;
|
||||
TEIE at 0 range 2 .. 2;
|
||||
HTIE at 0 range 3 .. 3;
|
||||
TCIE at 0 range 4 .. 4;
|
||||
PFCTRL at 0 range 5 .. 5;
|
||||
DIR at 0 range 6 .. 7;
|
||||
CIRC at 0 range 8 .. 8;
|
||||
PINC at 0 range 9 .. 9;
|
||||
MINC at 0 range 10 .. 10;
|
||||
PSIZE at 0 range 11 .. 12;
|
||||
MSIZE at 0 range 13 .. 14;
|
||||
PINCOS at 0 range 15 .. 15;
|
||||
PL at 0 range 16 .. 17;
|
||||
DBM at 0 range 18 .. 18;
|
||||
CT at 0 range 19 .. 19;
|
||||
Unused_20 at 0 range 20 .. 20;
|
||||
PBURST at 0 range 21 .. 22;
|
||||
MBURST at 0 range 23 .. 24;
|
||||
CHSEL at 0 range 25 .. 28;
|
||||
Unused_29 at 0 range 29 .. 31;
|
||||
end record;
|
||||
|
||||
-- NDTR
|
||||
|
@ -192,8 +195,8 @@ package STM32.Direct_Memory_Access with Pure is
|
|||
pragma Volatile_Full_Access(CR);
|
||||
NDTR : Stream_Number_Of_Data_Register;
|
||||
pragma Volatile_Full_Access(NDTR);
|
||||
PAR : Address_Register;
|
||||
MAR : Memory_Address_Register_Pair;
|
||||
PAR : Address_Register; -- Address in peripheral and also source in MtM transfer
|
||||
MAR : Memory_Address_Register_Pair; -- Address in memory to transfer
|
||||
FCR : FIFO_Control_Register;
|
||||
pragma Volatile_Full_Access(FCR);
|
||||
end record with Size => DMA_Stream_Registers_Size, Volatile;
|
||||
|
@ -221,4 +224,8 @@ package STM32.Direct_Memory_Access with Pure is
|
|||
IFCR at 16#08# range 0 .. 63;
|
||||
S at 16#10# range 0 .. DMA_Streams * DMA_Stream_Registers_Size - 1;
|
||||
end record;
|
||||
|
||||
DMA1 : DMA_Registers with Volatile, Import, Address => Address_Map.DMA1;
|
||||
DMA2 : DMA_Registers with Volatile, Import, Address => Address_Map.DMA2;
|
||||
|
||||
end STM32.Direct_Memory_Access;
|
|
@ -1,4 +1,8 @@
|
|||
package STM32.Embedded_Flash with Pure is
|
||||
with STM32.Address_Map;
|
||||
|
||||
-- Embedded Flash Memory Interface
|
||||
|
||||
package STM32.Embedded_Flash is
|
||||
|
||||
-- ACR
|
||||
type Access_Control_Register is record
|
||||
|
@ -251,4 +255,6 @@ package STM32.Embedded_Flash with Pure is
|
|||
OPTCR1 at 16#18# range 0 .. 31;
|
||||
end record;
|
||||
|
||||
FLASH : Flash_Registers with Volatile, Import, Address => Address_Map.Flash_IR;
|
||||
|
||||
end STM32.Embedded_Flash;
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
package STM32.Hash_Processor with Pure is
|
||||
with STM32.Address_Map;
|
||||
|
||||
-- Hash Processor
|
||||
|
||||
package STM32.Hash_Processor is
|
||||
|
||||
-- CR
|
||||
|
||||
|
@ -8,21 +12,11 @@ package STM32.Hash_Processor with Pure is
|
|||
Data_8_Bit, -- Each word consist of four bytes in reverse order
|
||||
Data_1_Bit -- Each word is reversed bit-wise
|
||||
) with Size => 2;
|
||||
for Data_Type use (
|
||||
Data_32_Bit => 2#00#,
|
||||
Data_16_Bit => 2#01#,
|
||||
Data_8_Bit => 2#10#,
|
||||
Data_1_Bit => 2#11#
|
||||
);
|
||||
|
||||
type Hash_Mode is (
|
||||
Hash,
|
||||
HMAC
|
||||
type Mode_Select is (
|
||||
Hash_Mode,
|
||||
HMAC_Mode
|
||||
) with Size => 1;
|
||||
for Hash_Mode use (
|
||||
Hash => 0,
|
||||
HMAC => 1
|
||||
);
|
||||
|
||||
type Algorithm_0 is mod 2;
|
||||
type Algorithm_1 is mod 2;
|
||||
|
@ -60,7 +54,7 @@ package STM32.Hash_Processor with Pure is
|
|||
INIT : Boolean := False; -- Initialize message digest
|
||||
DMAE : Boolean := False; -- DMA enable
|
||||
DATATYPE : Data_Type := Data_32_Bit; -- Data type selection
|
||||
MODE : Hash_Mode := Hash; -- Mode selection
|
||||
MODE : Mode_Select := Hash_Mode; -- Mode selection
|
||||
ALGO0 : Algorithm_0 := 0; -- Algorithm selection bit 0
|
||||
NBW : Integer range 0 .. 15 := 0; -- Number of words already
|
||||
DINNE : Boolean := False; -- DIN not empty
|
||||
|
@ -90,11 +84,13 @@ package STM32.Hash_Processor with Pure is
|
|||
|
||||
-- STR
|
||||
|
||||
subtype Valid_Bit_Count is Integer range 0 .. 2**5 - 1;
|
||||
|
||||
type Start_Register is record
|
||||
NBLW : Integer range 0 .. 2**5 - 1 := 0; -- Number of valid bits in the la
|
||||
Unused_5 : Integer range 0 .. 7 := 0;
|
||||
DCAL : Boolean := False; -- Digest calculation
|
||||
Unused_9 : Integer range 0 .. 2**23 - 1 := 0;
|
||||
NBLW : Valid_Bit_Count := 0; -- Number of valid bits in the la
|
||||
Unused_5 : Unused_3_Bits := 0;
|
||||
DCAL : Boolean := False; -- Digest calculation
|
||||
Unused_9 : Unused_23_Bits := 0;
|
||||
end record with Size => 32;
|
||||
for Start_Register use record
|
||||
NBLW at 0 range 0 .. 4;
|
||||
|
@ -112,7 +108,7 @@ package STM32.Hash_Processor with Pure is
|
|||
type Interrupt_Enable_Register is record
|
||||
DINIE : Boolean := False; -- Data input interrupt enable
|
||||
DCIE : Boolean := False; -- Digest calculation completion interrupt enable
|
||||
Unused : Integer range 0 .. 2**30 - 1 := 0;
|
||||
Unused : Unused_30_Bits := 0;
|
||||
end record with Size => 32;
|
||||
for Interrupt_Enable_Register use record
|
||||
DINIE at 0 range 0 .. 0;
|
||||
|
@ -127,7 +123,7 @@ package STM32.Hash_Processor with Pure is
|
|||
DCIS : Boolean := True; -- Digest calculation completion interrupt status
|
||||
DMAS : Boolean := False; -- DMA Status
|
||||
BUSY : Boolean := False; -- Busy bit
|
||||
Unused_4 : Integer range 0 .. 2**28 - 1 := 0;
|
||||
Unused_4 : Unused_28_Bits := 0;
|
||||
end record with Size => 32;
|
||||
for Status_Register use record
|
||||
DINIS at 0 range 0 .. 0;
|
||||
|
@ -137,600 +133,6 @@ package STM32.Hash_Processor with Pure is
|
|||
Unused_4 at 0 range 4 .. 31;
|
||||
end record;
|
||||
|
||||
-- CSR0
|
||||
|
||||
type CSR0_Register is record
|
||||
CSR0 : Unsigned_32; -- CSR0
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR0_Register use record
|
||||
CSR0 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR1
|
||||
|
||||
type CSR1_Register is record
|
||||
CSR1 : Unsigned_32; -- CSR1
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR1_Register use record
|
||||
CSR1 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR2
|
||||
|
||||
type CSR2_Register is record
|
||||
CSR2 : Unsigned_32; -- CSR2
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR2_Register use record
|
||||
CSR2 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR3
|
||||
|
||||
type CSR3_Register is record
|
||||
CSR3 : Unsigned_32; -- CSR3
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR3_Register use record
|
||||
CSR3 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR4
|
||||
|
||||
type CSR4_Register is record
|
||||
CSR4 : Unsigned_32; -- CSR4
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR4_Register use record
|
||||
CSR4 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR5
|
||||
|
||||
type CSR5_Register is record
|
||||
CSR5 : Unsigned_32; -- CSR5
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR5_Register use record
|
||||
CSR5 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR6
|
||||
|
||||
type CSR6_Register is record
|
||||
CSR6 : Unsigned_32; -- CSR6
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR6_Register use record
|
||||
CSR6 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR7
|
||||
|
||||
type CSR7_Register is record
|
||||
CSR7 : Unsigned_32; -- CSR7
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR7_Register use record
|
||||
CSR7 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR8
|
||||
|
||||
type CSR8_Register is record
|
||||
CSR8 : Unsigned_32; -- CSR8
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR8_Register use record
|
||||
CSR8 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR9
|
||||
|
||||
type CSR9_Register is record
|
||||
CSR9 : Unsigned_32; -- CSR9
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR9_Register use record
|
||||
CSR9 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR10
|
||||
|
||||
type CSR10_Register is record
|
||||
CSR10 : Unsigned_32; -- CSR10
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR10_Register use record
|
||||
CSR10 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR11
|
||||
|
||||
type CSR11_Register is record
|
||||
CSR11 : Unsigned_32; -- CSR11
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR11_Register use record
|
||||
CSR11 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR12
|
||||
|
||||
type CSR12_Register is record
|
||||
CSR12 : Unsigned_32; -- CSR12
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR12_Register use record
|
||||
CSR12 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR13
|
||||
|
||||
type CSR13_Register is record
|
||||
CSR13 : Unsigned_32; -- CSR13
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR13_Register use record
|
||||
CSR13 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR14
|
||||
|
||||
type CSR14_Register is record
|
||||
CSR14 : Unsigned_32; -- CSR14
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR14_Register use record
|
||||
CSR14 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR15
|
||||
|
||||
type CSR15_Register is record
|
||||
CSR15 : Unsigned_32; -- CSR15
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR15_Register use record
|
||||
CSR15 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR16
|
||||
|
||||
type CSR16_Register is record
|
||||
CSR16 : Unsigned_32; -- CSR16
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR16_Register use record
|
||||
CSR16 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR17
|
||||
|
||||
type CSR17_Register is record
|
||||
CSR17 : Unsigned_32; -- CSR17
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR17_Register use record
|
||||
CSR17 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR18
|
||||
|
||||
type CSR18_Register is record
|
||||
CSR18 : Unsigned_32; -- CSR18
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR18_Register use record
|
||||
CSR18 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR19
|
||||
|
||||
type CSR19_Register is record
|
||||
CSR19 : Unsigned_32; -- CSR19
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR19_Register use record
|
||||
CSR19 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR20
|
||||
|
||||
type CSR20_Register is record
|
||||
CSR20 : Unsigned_32; -- CSR20
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR20_Register use record
|
||||
CSR20 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR21
|
||||
|
||||
type CSR21_Register is record
|
||||
CSR21 : Unsigned_32; -- CSR21
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR21_Register use record
|
||||
CSR21 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR22
|
||||
|
||||
type CSR22_Register is record
|
||||
CSR22 : Unsigned_32; -- CSR22
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR22_Register use record
|
||||
CSR22 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR23
|
||||
|
||||
type CSR23_Register is record
|
||||
CSR23 : Unsigned_32; -- CSR23
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR23_Register use record
|
||||
CSR23 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR24
|
||||
|
||||
type CSR24_Register is record
|
||||
CSR24 : Unsigned_32; -- CSR24
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR24_Register use record
|
||||
CSR24 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR25
|
||||
|
||||
type CSR25_Register is record
|
||||
CSR25 : Unsigned_32; -- CSR25
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR25_Register use record
|
||||
CSR25 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR26
|
||||
|
||||
type CSR26_Register is record
|
||||
CSR26 : Unsigned_32; -- CSR26
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR26_Register use record
|
||||
CSR26 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR27
|
||||
|
||||
type CSR27_Register is record
|
||||
CSR27 : Unsigned_32; -- CSR27
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR27_Register use record
|
||||
CSR27 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR28
|
||||
|
||||
type CSR28_Register is record
|
||||
CSR28 : Unsigned_32; -- CSR28
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR28_Register use record
|
||||
CSR28 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR29
|
||||
|
||||
type CSR29_Register is record
|
||||
CSR29 : Unsigned_32; -- CSR29
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR29_Register use record
|
||||
CSR29 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR30
|
||||
|
||||
type CSR30_Register is record
|
||||
CSR30 : Unsigned_32; -- CSR30
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR30_Register use record
|
||||
CSR30 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR31
|
||||
|
||||
type CSR31_Register is record
|
||||
CSR31 : Unsigned_32; -- CSR31
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR31_Register use record
|
||||
CSR31 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR32
|
||||
|
||||
type CSR32_Register is record
|
||||
CSR32 : Unsigned_32; -- CSR32
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR32_Register use record
|
||||
CSR32 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR33
|
||||
|
||||
type CSR33_Register is record
|
||||
CSR33 : Unsigned_32; -- CSR33
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR33_Register use record
|
||||
CSR33 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR34
|
||||
|
||||
type CSR34_Register is record
|
||||
CSR34 : Unsigned_32; -- CSR34
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR34_Register use record
|
||||
CSR34 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR35
|
||||
|
||||
type CSR35_Register is record
|
||||
CSR35 : Unsigned_32; -- CSR35
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR35_Register use record
|
||||
CSR35 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR36
|
||||
|
||||
type CSR36_Register is record
|
||||
CSR36 : Unsigned_32; -- CSR36
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR36_Register use record
|
||||
CSR36 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR37
|
||||
|
||||
type CSR37_Register is record
|
||||
CSR37 : Unsigned_32; -- CSR37
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR37_Register use record
|
||||
CSR37 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR38
|
||||
|
||||
type CSR38_Register is record
|
||||
CSR38 : Unsigned_32; -- CSR38
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR38_Register use record
|
||||
CSR38 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR39
|
||||
|
||||
type CSR39_Register is record
|
||||
CSR39 : Unsigned_32; -- CSR39
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR39_Register use record
|
||||
CSR39 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR40
|
||||
|
||||
type CSR40_Register is record
|
||||
CSR40 : Unsigned_32; -- CSR40
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR40_Register use record
|
||||
CSR40 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR41
|
||||
|
||||
type CSR41_Register is record
|
||||
CSR41 : Unsigned_32; -- CSR41
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR41_Register use record
|
||||
CSR41 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR42
|
||||
|
||||
type CSR42_Register is record
|
||||
CSR42 : Unsigned_32; -- CSR42
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR42_Register use record
|
||||
CSR42 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR43
|
||||
|
||||
type CSR43_Register is record
|
||||
CSR43 : Unsigned_32; -- CSR43
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR43_Register use record
|
||||
CSR43 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR44
|
||||
|
||||
type CSR44_Register is record
|
||||
CSR44 : Unsigned_32; -- CSR44
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR44_Register use record
|
||||
CSR44 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR45
|
||||
|
||||
type CSR45_Register is record
|
||||
CSR45 : Unsigned_32; -- CSR45
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR45_Register use record
|
||||
CSR45 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR46
|
||||
|
||||
type CSR46_Register is record
|
||||
CSR46 : Unsigned_32; -- CSR46
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR46_Register use record
|
||||
CSR46 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR47
|
||||
|
||||
type CSR47_Register is record
|
||||
CSR47 : Unsigned_32; -- CSR47
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR47_Register use record
|
||||
CSR47 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR48
|
||||
|
||||
type CSR48_Register is record
|
||||
CSR48 : Unsigned_32; -- CSR48
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR48_Register use record
|
||||
CSR48 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR49
|
||||
|
||||
type CSR49_Register is record
|
||||
CSR49 : Unsigned_32; -- CSR49
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR49_Register use record
|
||||
CSR49 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR50
|
||||
|
||||
type CSR50_Register is record
|
||||
CSR50 : Unsigned_32; -- CSR50
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR50_Register use record
|
||||
CSR50 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR51
|
||||
|
||||
type CSR51_Register is record
|
||||
CSR51 : Unsigned_32; -- CSR51
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR51_Register use record
|
||||
CSR51 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR52
|
||||
|
||||
type CSR52_Register is record
|
||||
CSR52 : Unsigned_32; -- CSR52
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR52_Register use record
|
||||
CSR52 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
-- CSR53
|
||||
|
||||
type CSR53_Register is record
|
||||
CSR53 : Unsigned_32; -- CSR53
|
||||
|
||||
end record with Size => 32;
|
||||
for CSR53_Register use record
|
||||
CSR53 at 0 range 0 .. 31;
|
||||
|
||||
end record;
|
||||
|
||||
type HASH_Registers is record
|
||||
CR : Control_Register;
|
||||
DIN : Unsigned_32;
|
||||
|
@ -752,4 +154,6 @@ package STM32.Hash_Processor with Pure is
|
|||
HASH_HR at 16#0310# range 0 .. 32 * 8 - 1;
|
||||
end record;
|
||||
|
||||
HASH : HASH_Registers with Volatile, Import, Address => Address_Map.HASH;
|
||||
|
||||
end STM32.Hash_Processor;
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
package STM32.Independent_Watchdog with Pure is
|
||||
with STM32.Address_Map;
|
||||
|
||||
-- Independent Watchdog
|
||||
|
||||
package STM32.Independent_Watchdog is
|
||||
|
||||
-- KR
|
||||
|
||||
|
@ -94,4 +98,6 @@ package STM32.Independent_Watchdog with Pure is
|
|||
|
||||
end record;
|
||||
|
||||
IWDG : aliased IWDG_Registers with Volatile, Import, Address => Address_Map.IWDG;
|
||||
|
||||
end STM32.Independent_Watchdog;
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
package STM32.Random_Number_Generator with Pure is
|
||||
with STM32.Address_Map;
|
||||
|
||||
package STM32.Random_Number_Generator is
|
||||
|
||||
-- CR
|
||||
|
||||
|
@ -52,5 +54,6 @@ package STM32.Random_Number_Generator with Pure is
|
|||
|
||||
end record;
|
||||
|
||||
end STM32.Random_Number_Generator;
|
||||
RNG : RNG_Registers with Volatile, Import, Address => Address_Map.RNG;
|
||||
|
||||
end STM32.Random_Number_Generator;
|
||||
|
|
|
@ -357,12 +357,7 @@ package STM32.Real_Time_Clock is
|
|||
Tamper_on_8_Samples => 2#11#
|
||||
);
|
||||
|
||||
type Precharge_Duration is (
|
||||
Precharge_1_Cycle,
|
||||
Precharge_2_Cycles,
|
||||
Precharge_4_Cycles,
|
||||
Precharge_8_Cycles
|
||||
) with Size => 2;
|
||||
type Precharge_Duration is new Logarithmic range Value_1 .. Value_8 with Size => 2;
|
||||
|
||||
type Pin_Mapping is (
|
||||
AF1,
|
||||
|
@ -383,7 +378,7 @@ package STM32.Real_Time_Clock is
|
|||
TAMPTS : Boolean := False; -- Activate timestamp on tamper d
|
||||
TAMPFREQ : Integer range 0 .. 7 := 0; -- Tamper sampling frequency equals fRTC / 2**(15 - x)
|
||||
TAMPFLT : Tamper_Filter := Tamper_on_Edge; -- Tamper filter count
|
||||
TAMPPRCH : Precharge_Duration := Precharge_1_Cycle; -- Tamper precharge duration
|
||||
TAMPPRCH : Precharge_Duration := Value_1; -- Tamper precharge duration
|
||||
TAMPPUDIS : Boolean := False; -- TAMPER pull-up disable
|
||||
TAMP1INSEL : Pin_Mapping := AF1; -- TAMPER1 mapping
|
||||
TSINSEL : Pin_Mapping := AF1; -- TIMESTAMP mapping
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
package STM32.Window_Watchdog with Pure is
|
||||
with STM32.Address_Map;
|
||||
|
||||
-- Window watchdog
|
||||
|
||||
package STM32.Window_Watchdog is
|
||||
|
||||
-- CR
|
||||
|
||||
|
@ -67,4 +71,6 @@ package STM32.Window_Watchdog with Pure is
|
|||
SR at 16#08# range 0 .. 31;
|
||||
end record;
|
||||
|
||||
WWDG : WWDG_Registers with Volatile, Import, Address => Address_Map.WWDG;
|
||||
|
||||
end STM32.Window_Watchdog;
|
||||
|
|
|
@ -19,7 +19,10 @@ package STM32 is
|
|||
type Unused_17_Bits is mod 2**17 with Size => 17;
|
||||
type Unused_20_Bits is mod 2**20 with Size => 20;
|
||||
type Unused_22_Bits is mod 2**22 with Size => 22;
|
||||
type Unused_23_Bits is mod 2**23 with Size => 23;
|
||||
type Unused_24_Bits is mod 2**24 with Size => 24;
|
||||
type Unused_28_Bits is mod 2**28 with Size => 28;
|
||||
type Unused_30_Bits is mod 2**30 with Size => 30;
|
||||
|
||||
type Logarithmic is (
|
||||
Value_1, Value_2, Value_4, Value_8,
|
||||
|
|
|
@ -28,7 +28,7 @@ HDMI_CEC
|
|||
* I2C
|
||||
I2S2ext
|
||||
I2S3ext
|
||||
IWDG
|
||||
* IWDG
|
||||
LPTIM
|
||||
* LTDC
|
||||
MPU
|
||||
|
@ -46,17 +46,17 @@ OTG_HS_PWRCLK
|
|||
QUADSPI
|
||||
* RCC
|
||||
* RNG
|
||||
RTC
|
||||
* RTC
|
||||
SAI
|
||||
SCB
|
||||
SCB_ACTRL
|
||||
SDIO
|
||||
* SDIO
|
||||
SDMMC
|
||||
SPDIF_RX
|
||||
* SPI
|
||||
STK
|
||||
* SYSCFG
|
||||
TIM
|
||||
UART
|
||||
* TIM
|
||||
* UART
|
||||
* USART
|
||||
* WWDG
|
||||
|
|
Loading…
Reference in New Issue