RP.ROM

Entities

Simple Types

Array Types

Record Types

Constants

Subprograms

Description

clz32

function clz32
   (Value : Unsigned_32)
    return Unsigned_32
Parameters
Value
Return Value

connect_internal_flash

procedure connect_internal_flash

copyright_string

function copyright_string
   return String
Return Value

ctz32

function ctz32
   (Value : Unsigned_32)
    return Unsigned_32
Parameters
Value
Return Value

debug_trampoline

procedure debug_trampoline

flash_enter_cmd_xip

procedure flash_enter_cmd_xip

flash_exit_xip

procedure flash_exit_xip

flash_flush_cache

procedure flash_flush_cache

flash_range_erase

procedure flash_range_erase
   (Addr       : Unsigned_32;
    Count      : Interfaces.C.size_t;
    Block_Size : Unsigned_32;
    Block_Cmd  : Unsigned_8)
Parameters
Addr
Count
Block_Size
Block_Cmd

flash_range_program

procedure flash_range_program
   (Addr       : System.Address;
    Data       : System.Address;
    Count      : Interfaces.C.size_t)
Parameters
Addr
Data
Count

git_revision

function git_revision
   return Unsigned_32
Return Value

Header

Header : constant Header_Fields
   with Import, Address => System'To_Address (16#0000_0000#);

Header_Fields

type Header_Fields is record
   Initial_SP        : System.Address;
   Reset_Handler     : System.Address;
   NMI_Handler       : System.Address;
   HardFault_Handler : System.Address;
   Magic             : Magic_Field;
   Version           : Unsigned_8;
   Func_Table        : Short_Address;
   Data_Table        : Short_Address;
   Table_Lookup      : Short_Address;
end record
   with Size => 208;
Record fields
Initial_SP
Reset_Handler
NMI_Handler
HardFault_Handler
Magic
Version
Func_Table
Data_Table
Table_Lookup

Magic_Field

type Magic_Field is array (1 .. 3) of Unsigned_8;

Magic should always be ('M', 'u', 1)

memset

function memset
   (Ptr : System.Address;
    C   : Unsigned_8;
    N   : Unsigned_32)
    return System.Address
Parameters
Ptr
C
N
Return Value

memset4

function memset4
   (Ptr : System.Address;
    C   : Unsigned_8;
    N   : Unsigned_32)
    return System.Address
Parameters
Ptr
C
N
Return Value

popcount32

function popcount32
   (Value : Unsigned_32)
    return Unsigned_32
Parameters
Value
Return Value

reset_to_usb_boot

procedure reset_to_usb_boot
   (GPIO_Activity_Pin_Mask : Unsigned_32;
    Disable_Interface_Mask : Unsigned_32)
Parameters
GPIO_Activity_Pin_Mask
Disable_Interface_Mask

reverse32

function reverse32
   (Value : Unsigned_32)
    return Unsigned_32
Parameters
Value
Return Value

ROM_Data_Lookup

function ROM_Data_Lookup
   (Code : Table_Code)
   return System.Address
Parameters
Code
Return Value

ROM_Func_Lookup

function ROM_Func_Lookup
   (Code : Table_Code)
   return System.Address
Parameters
Code
Return Value

ROM_Table_Code

function ROM_Table_Code
   (C1, C2 : Character)
   return Table_Code
Parameters
C1
C2
Return Value

ROM_Table_Lookup

function ROM_Table_Lookup
   (Table : System.Address;
    Code  : Table_Code)
    return System.Address
Parameters
Table
Code
Return Value

Short_Address

type Short_Address is new Unsigned_16;

Some lookup tables use halfwords

Table_Code

type Table_Code is new Unsigned_32;

Function and Data table entries are indexed by a two-character mnemonic, stored in a 32-bit field. The top two bytes are always zero, presumably reserved for future use.

wait_for_vector

procedure wait_for_vector