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