# Vector Tables

The ROM provides some access to built-in common functionality via the use of a ROM Jump Table. The features provided in this jump table are defined in the "Jump Table Functions" table, together with a brief description of the use of each. Access to these functions is provided through rom_vect.h (typically included through the top-level rsl15.h include file) and flash_rom.h (used in place of flash.h).

Table: Jump Table Functions
Offset | Feature | Description
--- | --- | ---
0x00 | __Sys_Initialize_Base void __Sys_Initialize_Base(void); | Base device initialization
0x04 | __Sys_Delay void __Sys_Delay(unsigned int cycles); | Delay a number of cycles
0x08 | __ProgramROM_ValidateApp uint32_t __ProgramROM_ValidateApp( uint32_t* app_addr); | Validate an application
0x0C | __ProgramROM_StartApp uint32_t __ProgramROM_StartApp( uint32_t* app_addr); | Validate an application, and if valid, start execution of that application
0x10 | Flash_Initialize FlashStatus_t Flash_Initialize( unsigned no, FlashClockFrequency_t freq); | Initialize a flash bank
0x14 | Flash_WriteWord FlashStatus_t Flash_WriteWord( bool enb_endurance); | Write 32-bit word to flash
0x18 | Flash_ReadWord FlashStatus_t Flash_ReadWord( uint32_t addr, uint32_t *word); | Read 32-bit word from flash
0x1C | Flash_WriteDouble FlashStatus_t Flash_WriteDouble( uint32_t addr, const uint32_t *word, bool enb_endurance); | Write two 32-bit words to flash
0x20 | Flash_ReadDouble FlashStatus_t Flash_ReadDouble( uint32_t addr, uint32_t *word); | Read two 32-bit words from flash
0x24 | Flash_WriteBuffer FlashStatus_t Flash_WriteBuffer( uint32_t addr, uint32_t word_length, const uint32_t *words, bool enb_endurance); | Write an array of 32-bit words
0x28 | Flash_ReadBuffer FlashStatus_t Flash_ReadBuffer( uint32_t flash_address, uint32_t dram_address, unsigned word_length); | Read an array of 32-bit words
0x2C | Flash_EraseFlashBank FlashStatus_t Flash_EraseFlashBank( uint32_t no); | Erase a specific flash bank
0x30 | Flash_EraseChip FlashStatus_t Flash_EraseChip(void); | Erase all flash
0x34 | Flash_EraseSector FlashStatus_t Flash_EraseSector( uint32_t addr, bool enb_endurance); | Erase Flash Sector
0x38 | Flash_BlankCheck FlashStatus_t Flash_BlankCheck( uint32_t addr, unsigned word_length); | Verify area of flash is empty
0x3C | __ProgramROM_Read_MNVR void __ProgramROM_Read_MNVR( uint32_t addr, uint32_t *word, uint8_t *readECC); | Read data from MNVR