hal_ti/simplelink/source/ti/devices/cc13x2_cc26x2/driverlib/rom.h

1056 lines
37 KiB
C

/******************************************************************************
* Filename: rom.h
* Revised: 2020-02-14 11:30:20 +0100 (Fri, 14 Feb 2020)
* Revision: 56760
*
* Description: Prototypes for the ROM utility functions.
*
* Copyright (c) 2015 - 2017, Texas Instruments Incorporated
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1) Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2) Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3) Neither the name of the ORGANIZATION nor the names of its contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
******************************************************************************/
#ifndef __ROM_H__
#define __ROM_H__
//*****************************************************************************
//
// If building with a C++ compiler, make all of the definitions in this header
// have a C binding.
//
//*****************************************************************************
#ifdef __cplusplus
extern "C"
{
#endif
#include "../inc/hw_types.h"
#ifndef __HAPI_H__
#define __HAPI_H__
// Start address of the ROM hard API access table (located after the ROM FW rev field)
#define ROM_HAPI_TABLE_ADDR 0x10000048
// ROM Hard-API function interface types
typedef uint32_t (* FPTR_CRC32_T) ( uint8_t* /* pui8Data */,\
uint32_t /* ui32ByteCount */,\
uint32_t /* ui32RepeatCount */);
typedef uint32_t (* FPTR_GETFLSIZE_T) ( void );
typedef uint32_t (* FPTR_GETCHIPID_T) ( void );
typedef uint32_t (* FPTR_RESERVED1_T) ( uint32_t );
typedef uint32_t (* FPTR_RESERVED2_T) ( void );
typedef uint32_t (* FPTR_RESERVED3_T) ( uint8_t* ,\
uint32_t ,\
uint32_t );
typedef void (* FPTR_RESETDEV_T) ( void );
typedef uint32_t (* FPTR_FLETCHER32_T) ( uint16_t* /* pui16Data */,\
uint16_t /* ui16WordCount */,\
uint16_t /* ui16RepeatCount */);
typedef uint32_t (* FPTR_MINVAL_T) ( uint32_t* /* ulpDataBuffer */,\
uint32_t /* ui32DataCount */);
typedef uint32_t (* FPTR_MAXVAL_T) ( uint32_t* /* pui32DataBuffer */,\
uint32_t /* ui32DataCount */);
typedef uint32_t (* FPTR_MEANVAL_T) ( uint32_t* /* pui32DataBuffer */,\
uint32_t /* ui32DataCount */);
typedef uint32_t (* FPTR_STDDVAL_T) ( uint32_t* /* pui32DataBuffer */,\
uint32_t /* ui32DataCount */);
typedef void (* FPTR_HFSOURCESAFESWITCH_T) ( void );
typedef void (* FPTR_RESERVED4_T) ( uint32_t );
typedef void (* FPTR_RESERVED5_T) ( uint32_t );
typedef void (* FPTR_COMPAIN_T) ( uint8_t /* ut8Signal */);
typedef void (* FPTR_COMPAREF_T) ( uint8_t /* ut8Signal */);
typedef void (* FPTR_ADCCOMPBIN_T) ( uint8_t /* ut8Signal */);
typedef void (* FPTR_DACVREF_T) ( uint8_t /* ut8Signal */);
extern uint32_t MemBusWrkAroundHapiProgramFlash(uint8_t *pui8DataBuffer,
uint32_t ui32Address,
uint32_t ui32Count);
extern uint32_t MemBusWrkAroundHapiEraseSector(uint32_t ui32Address);
// ROM Hard-API access table type
typedef struct
{
FPTR_CRC32_T Crc32;
FPTR_GETFLSIZE_T FlashGetSize;
FPTR_GETCHIPID_T GetChipId;
FPTR_RESERVED1_T ReservedLocation1;
FPTR_RESERVED2_T ReservedLocation2;
FPTR_RESERVED3_T ReservedLocation3;
FPTR_RESETDEV_T ResetDevice;
FPTR_FLETCHER32_T Fletcher32;
FPTR_MINVAL_T MinValue;
FPTR_MAXVAL_T MaxValue;
FPTR_MEANVAL_T MeanValue;
FPTR_STDDVAL_T StandDeviationValue;
FPTR_RESERVED4_T ReservedLocation4;
FPTR_RESERVED5_T ReservedLocation5;
FPTR_HFSOURCESAFESWITCH_T HFSourceSafeSwitch;
FPTR_COMPAIN_T SelectCompAInput;
FPTR_COMPAREF_T SelectCompARef;
FPTR_ADCCOMPBIN_T SelectADCCompBInput;
FPTR_DACVREF_T SelectDACVref;
} HARD_API_T;
// Pointer to the ROM HAPI table
#define P_HARD_API ((HARD_API_T*) ROM_HAPI_TABLE_ADDR)
#define HapiCrc32(a,b,c) P_HARD_API->Crc32(a,b,c)
#define HapiGetFlashSize() P_HARD_API->FlashGetSize()
#define HapiGetChipId() P_HARD_API->GetChipId()
#define HapiSectorErase(a) MemBusWrkAroundHapiEraseSector(a)
#define HapiProgramFlash(a,b,c) MemBusWrkAroundHapiProgramFlash(a,b,c)
#define HapiResetDevice() P_HARD_API->ResetDevice()
#define HapiFletcher32(a,b,c) P_HARD_API->Fletcher32(a,b,c)
#define HapiMinValue(a,b) P_HARD_API->MinValue(a,b)
#define HapiMaxValue(a,b) P_HARD_API->MaxValue(a,b)
#define HapiMeanValue(a,b) P_HARD_API->MeanValue(a,b)
#define HapiStandDeviationValue(a,b) P_HARD_API->StandDeviationValue(a,b)
#define HapiHFSourceSafeSwitch() P_HARD_API->HFSourceSafeSwitch()
#define HapiSelectCompAInput(a) P_HARD_API->SelectCompAInput(a)
#define HapiSelectCompARef(a) P_HARD_API->SelectCompARef(a)
#define HapiSelectADCCompBInput(a) P_HARD_API->SelectADCCompBInput(a)
#define HapiSelectDACVref(a) P_HARD_API->SelectDACVref(a)
// Defines for input parameter to the HapiSelectCompAInput function.
#define COMPA_IN_NC 0x00
// Defines used in CC13x0/CC26x0 devices
#define COMPA_IN_AUXIO7 0x09
#define COMPA_IN_AUXIO6 0x0A
#define COMPA_IN_AUXIO5 0x0B
#define COMPA_IN_AUXIO4 0x0C
#define COMPA_IN_AUXIO3 0x0D
#define COMPA_IN_AUXIO2 0x0E
#define COMPA_IN_AUXIO1 0x0F
#define COMPA_IN_AUXIO0 0x10
// Defines used in CC13x2/CC26x2 devices
#define COMPA_IN_AUXIO26 COMPA_IN_AUXIO7
#define COMPA_IN_AUXIO25 COMPA_IN_AUXIO6
#define COMPA_IN_AUXIO24 COMPA_IN_AUXIO5
#define COMPA_IN_AUXIO23 COMPA_IN_AUXIO4
#define COMPA_IN_AUXIO22 COMPA_IN_AUXIO3
#define COMPA_IN_AUXIO21 COMPA_IN_AUXIO2
#define COMPA_IN_AUXIO20 COMPA_IN_AUXIO1
#define COMPA_IN_AUXIO19 COMPA_IN_AUXIO0
// Defines for input parameter to the HapiSelectCompARef function.
#define COMPA_REF_NC 0x00
#define COMPA_REF_DCOUPL 0x01
#define COMPA_REF_VSS 0x02
#define COMPA_REF_VDDS 0x03
#define COMPA_REF_ADCVREFP 0x04
// Defines used in CC13x0/CC26x0 devices
#define COMPA_REF_AUXIO7 0x09
#define COMPA_REF_AUXIO6 0x0A
#define COMPA_REF_AUXIO5 0x0B
#define COMPA_REF_AUXIO4 0x0C
#define COMPA_REF_AUXIO3 0x0D
#define COMPA_REF_AUXIO2 0x0E
#define COMPA_REF_AUXIO1 0x0F
#define COMPA_REF_AUXIO0 0x10
// Defines used in CC13x2/CC26x2 devices
#define COMPA_REF_AUXIO26 COMPA_REF_AUXIO7
#define COMPA_REF_AUXIO25 COMPA_REF_AUXIO6
#define COMPA_REF_AUXIO24 COMPA_REF_AUXIO5
#define COMPA_REF_AUXIO23 COMPA_REF_AUXIO4
#define COMPA_REF_AUXIO22 COMPA_REF_AUXIO3
#define COMPA_REF_AUXIO21 COMPA_REF_AUXIO2
#define COMPA_REF_AUXIO20 COMPA_REF_AUXIO1
#define COMPA_REF_AUXIO19 COMPA_REF_AUXIO0
// Defines for input parameter to the HapiSelectADCCompBInput function.
#define ADC_COMPB_IN_NC 0x00
#define ADC_COMPB_IN_DCOUPL 0x03
#define ADC_COMPB_IN_VSS 0x04
#define ADC_COMPB_IN_VDDS 0x05
// Defines used in CC13x0/CC26x0 devices
#define ADC_COMPB_IN_AUXIO7 0x09
#define ADC_COMPB_IN_AUXIO6 0x0A
#define ADC_COMPB_IN_AUXIO5 0x0B
#define ADC_COMPB_IN_AUXIO4 0x0C
#define ADC_COMPB_IN_AUXIO3 0x0D
#define ADC_COMPB_IN_AUXIO2 0x0E
#define ADC_COMPB_IN_AUXIO1 0x0F
#define ADC_COMPB_IN_AUXIO0 0x10
// Defines used in CC13x2/CC26x2 devices
#define ADC_COMPB_IN_AUXIO26 ADC_COMPB_IN_AUXIO7
#define ADC_COMPB_IN_AUXIO25 ADC_COMPB_IN_AUXIO6
#define ADC_COMPB_IN_AUXIO24 ADC_COMPB_IN_AUXIO5
#define ADC_COMPB_IN_AUXIO23 ADC_COMPB_IN_AUXIO4
#define ADC_COMPB_IN_AUXIO22 ADC_COMPB_IN_AUXIO3
#define ADC_COMPB_IN_AUXIO21 ADC_COMPB_IN_AUXIO2
#define ADC_COMPB_IN_AUXIO20 ADC_COMPB_IN_AUXIO1
#define ADC_COMPB_IN_AUXIO19 ADC_COMPB_IN_AUXIO0
// Defines for input parameter to the HapiSelectDACVref function.
// The define values can not be changed!
#define DAC_REF_NC 0x00
#define DAC_REF_DCOUPL 0x01
#define DAC_REF_VSS 0x02
#define DAC_REF_VDDS 0x03
#endif // __HAPI_H__
//*****************************************************************************
//
// Pointers to the main API tables.
//
//*****************************************************************************
#define ROM_API_TABLE ((uint32_t *) 0x10000180)
#define ROM_VERSION (ROM_API_TABLE[0])
#define ROM_API_AON_EVENT_TABLE ((uint32_t*) (ROM_API_TABLE[1]))
#define ROM_API_AON_IOC_TABLE ((uint32_t*) (ROM_API_TABLE[2]))
#define ROM_API_AON_RTC_TABLE ((uint32_t*) (ROM_API_TABLE[3]))
#define ROM_API_AUX_CTRL_TABLE ((uint32_t*) (ROM_API_TABLE[5]))
#define ROM_API_AUX_TDC_TABLE ((uint32_t*) (ROM_API_TABLE[6]))
#define ROM_API_DDI_TABLE ((uint32_t*) (ROM_API_TABLE[9]))
#define ROM_API_FLASH_TABLE ((uint32_t*) (ROM_API_TABLE[10]))
#define ROM_API_I2C_TABLE ((uint32_t*) (ROM_API_TABLE[11]))
#define ROM_API_INTERRUPT_TABLE ((uint32_t*) (ROM_API_TABLE[12]))
#define ROM_API_IOC_TABLE ((uint32_t*) (ROM_API_TABLE[13]))
#define ROM_API_PRCM_TABLE ((uint32_t*) (ROM_API_TABLE[14]))
#define ROM_API_SMPH_TABLE ((uint32_t*) (ROM_API_TABLE[15]))
#define ROM_API_SSI_TABLE ((uint32_t*) (ROM_API_TABLE[17]))
#define ROM_API_TIMER_TABLE ((uint32_t*) (ROM_API_TABLE[18]))
#define ROM_API_TRNG_TABLE ((uint32_t*) (ROM_API_TABLE[19]))
#define ROM_API_UART_TABLE ((uint32_t*) (ROM_API_TABLE[20]))
#define ROM_API_UDMA_TABLE ((uint32_t*) (ROM_API_TABLE[21]))
#define ROM_API_VIMS_TABLE ((uint32_t*) (ROM_API_TABLE[22]))
#define ROM_API_CRYPTO_TABLE ((uint32_t*) (ROM_API_TABLE[23]))
#define ROM_API_OSC_TABLE ((uint32_t*) (ROM_API_TABLE[24]))
#define ROM_API_AUX_ADC_TABLE ((uint32_t*) (ROM_API_TABLE[25]))
#define ROM_API_SYS_CTRL_TABLE ((uint32_t*) (ROM_API_TABLE[26]))
#define ROM_API_AON_BATMON_TABLE ((uint32_t*) (ROM_API_TABLE[27]))
#define ROM_API_SETUP_ROM_TABLE ((uint32_t*) (ROM_API_TABLE[28]))
#define ROM_API_I2S_TABLE ((uint32_t*) (ROM_API_TABLE[29]))
#define ROM_API_PWR_CTRL_TABLE ((uint32_t*) (ROM_API_TABLE[30]))
#define ROM_API_AES_TABLE ((uint32_t*) (ROM_API_TABLE[31]))
#define ROM_API_PKA_TABLE ((uint32_t*) (ROM_API_TABLE[32]))
#define ROM_API_SHA2_TABLE ((uint32_t*) (ROM_API_TABLE[33]))
// AON_EVENT FUNCTIONS
#define ROM_AONEventMcuWakeUpSet \
((void (*)(uint32_t ui32MCUWUEvent, uint32_t ui32EventSrc)) \
ROM_API_AON_EVENT_TABLE[0])
#define ROM_AONEventMcuWakeUpGet \
((uint32_t (*)(uint32_t ui32MCUWUEvent)) \
ROM_API_AON_EVENT_TABLE[1])
#define ROM_AONEventMcuSet \
((void (*)(uint32_t ui32MCUEvent, uint32_t ui32EventSrc)) \
ROM_API_AON_EVENT_TABLE[4])
#define ROM_AONEventMcuGet \
((uint32_t (*)(uint32_t ui32MCUEvent)) \
ROM_API_AON_EVENT_TABLE[5])
// AON_RTC FUNCTIONS
#define ROM_AONRTCCurrent64BitValueGet \
((uint64_t (*)(void)) \
ROM_API_AON_RTC_TABLE[12])
// AUX_TDC FUNCTIONS
#define ROM_AUXTDCConfigSet \
((void (*)(uint32_t ui32Base, uint32_t ui32StartCondition, uint32_t ui32StopCondition)) \
ROM_API_AUX_TDC_TABLE[0])
#define ROM_AUXTDCMeasurementDone \
((uint32_t (*)(uint32_t ui32Base)) \
ROM_API_AUX_TDC_TABLE[1])
// DDI FUNCTIONS
#define ROM_DDI16BitWrite \
((void (*)(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32WrData)) \
ROM_API_DDI_TABLE[0])
#define ROM_DDI16BitfieldWrite \
((void (*)(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32Shift, uint16_t ui32Data)) \
ROM_API_DDI_TABLE[1])
#define ROM_DDI16BitRead \
((uint16_t (*)(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask)) \
ROM_API_DDI_TABLE[2])
#define ROM_DDI16BitfieldRead \
((uint16_t (*)(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32Shift)) \
ROM_API_DDI_TABLE[3])
#define ROM_DDI32RegWrite \
((void (*)(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val)) \
ROM_API_DDI_TABLE[4])
// FLASH FUNCTIONS
#define ROM_FlashPowerModeSet \
((void (*)(uint32_t ui32PowerMode, uint32_t ui32BankGracePeriod, uint32_t ui32PumpGracePeriod)) \
ROM_API_FLASH_TABLE[0])
#define ROM_FlashPowerModeGet \
((uint32_t (*)(void)) \
ROM_API_FLASH_TABLE[1])
#define ROM_FlashProtectionSet \
((void (*)(uint32_t ui32SectorAddress, uint32_t ui32ProtectMode)) \
ROM_API_FLASH_TABLE[2])
#define ROM_FlashProtectionGet \
((uint32_t (*)(uint32_t ui32SectorAddress)) \
ROM_API_FLASH_TABLE[3])
#define ROM_FlashProtectionSave \
((uint32_t (*)(uint32_t ui32SectorAddress)) \
ROM_API_FLASH_TABLE[4])
#define ROM_FlashEfuseReadRow \
((bool (*)(uint32_t *pui32EfuseData, uint32_t ui32RowAddress)) \
ROM_API_FLASH_TABLE[8])
#define ROM_FlashDisableSectorsForWrite \
((void (*)(void)) \
ROM_API_FLASH_TABLE[9])
// I2C FUNCTIONS
#define ROM_I2CMasterInitExpClk \
((void (*)(uint32_t ui32Base, uint32_t ui32I2CClk, bool bFast)) \
ROM_API_I2C_TABLE[0])
#define ROM_I2CMasterErr \
((uint32_t (*)(uint32_t ui32Base)) \
ROM_API_I2C_TABLE[1])
// INTERRUPT FUNCTIONS
#define ROM_IntPriorityGroupingSet \
((void (*)(uint32_t ui32Bits)) \
ROM_API_INTERRUPT_TABLE[0])
#define ROM_IntPriorityGroupingGet \
((uint32_t (*)(void)) \
ROM_API_INTERRUPT_TABLE[1])
#define ROM_IntPrioritySet \
((void (*)(uint32_t ui32Interrupt, uint8_t ui8Priority)) \
ROM_API_INTERRUPT_TABLE[2])
#define ROM_IntPriorityGet \
((int32_t (*)(uint32_t ui32Interrupt)) \
ROM_API_INTERRUPT_TABLE[3])
#define ROM_IntEnable \
((void (*)(uint32_t ui32Interrupt)) \
ROM_API_INTERRUPT_TABLE[4])
#define ROM_IntDisable \
((void (*)(uint32_t ui32Interrupt)) \
ROM_API_INTERRUPT_TABLE[5])
#define ROM_IntPendSet \
((void (*)(uint32_t ui32Interrupt)) \
ROM_API_INTERRUPT_TABLE[6])
#define ROM_IntPendGet \
((bool (*)(uint32_t ui32Interrupt)) \
ROM_API_INTERRUPT_TABLE[7])
#define ROM_IntPendClear \
((void (*)(uint32_t ui32Interrupt)) \
ROM_API_INTERRUPT_TABLE[8])
// IOC FUNCTIONS
#define ROM_IOCPortConfigureSet \
((void (*)(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)) \
ROM_API_IOC_TABLE[0])
#define ROM_IOCPortConfigureGet \
((uint32_t (*)(uint32_t ui32IOId)) \
ROM_API_IOC_TABLE[1])
#define ROM_IOCIOShutdownSet \
((void (*)(uint32_t ui32IOId, uint32_t ui32IOShutdown)) \
ROM_API_IOC_TABLE[2])
#define ROM_IOCIOModeSet \
((void (*)(uint32_t ui32IOId, uint32_t ui32IOMode)) \
ROM_API_IOC_TABLE[4])
#define ROM_IOCIOIntSet \
((void (*)(uint32_t ui32IOId, uint32_t ui32Int, uint32_t ui32EdgeDet)) \
ROM_API_IOC_TABLE[5])
#define ROM_IOCIOPortPullSet \
((void (*)(uint32_t ui32IOId, uint32_t ui32Pull)) \
ROM_API_IOC_TABLE[6])
#define ROM_IOCIOHystSet \
((void (*)(uint32_t ui32IOId, uint32_t ui32Hysteresis)) \
ROM_API_IOC_TABLE[7])
#define ROM_IOCIOInputSet \
((void (*)(uint32_t ui32IOId, uint32_t ui32Input)) \
ROM_API_IOC_TABLE[8])
#define ROM_IOCIOSlewCtrlSet \
((void (*)(uint32_t ui32IOId, uint32_t ui32SlewEnable)) \
ROM_API_IOC_TABLE[9])
#define ROM_IOCIODrvStrengthSet \
((void (*)(uint32_t ui32IOId, uint32_t ui32IOCurrent, uint32_t ui32DrvStrength)) \
ROM_API_IOC_TABLE[10])
#define ROM_IOCIOPortIdSet \
((void (*)(uint32_t ui32IOId, uint32_t ui32PortId)) \
ROM_API_IOC_TABLE[11])
#define ROM_IOCIntEnable \
((void (*)(uint32_t ui32IOId)) \
ROM_API_IOC_TABLE[12])
#define ROM_IOCIntDisable \
((void (*)(uint32_t ui32IOId)) \
ROM_API_IOC_TABLE[13])
#define ROM_IOCPinTypeGpioInput \
((void (*)(uint32_t ui32IOId)) \
ROM_API_IOC_TABLE[14])
#define ROM_IOCPinTypeGpioOutput \
((void (*)(uint32_t ui32IOId)) \
ROM_API_IOC_TABLE[15])
#define ROM_IOCPinTypeUart \
((void (*)(uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Cts, uint32_t ui32Rts)) \
ROM_API_IOC_TABLE[16])
#define ROM_IOCPinTypeSsiMaster \
((void (*)(uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Fss, uint32_t ui32Clk)) \
ROM_API_IOC_TABLE[17])
#define ROM_IOCPinTypeSsiSlave \
((void (*)(uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Fss, uint32_t ui32Clk)) \
ROM_API_IOC_TABLE[18])
#define ROM_IOCPinTypeI2c \
((void (*)(uint32_t ui32Base, uint32_t ui32Data, uint32_t ui32Clk)) \
ROM_API_IOC_TABLE[19])
#define ROM_IOCPinTypeAux \
((void (*)(uint32_t ui32IOId)) \
ROM_API_IOC_TABLE[21])
// PRCM FUNCTIONS
#define ROM_PRCMInfClockConfigureSet \
((void (*)(uint32_t ui32ClkDiv, uint32_t ui32PowerMode)) \
ROM_API_PRCM_TABLE[0])
#define ROM_PRCMInfClockConfigureGet \
((uint32_t (*)(uint32_t ui32PowerMode)) \
ROM_API_PRCM_TABLE[1])
#define ROM_PRCMAudioClockConfigSet \
((void (*)(uint32_t ui32ClkConfig, uint32_t ui32SampleRate)) \
ROM_API_PRCM_TABLE[4])
#define ROM_PRCMPowerDomainOn \
((void (*)(uint32_t ui32Domains)) \
ROM_API_PRCM_TABLE[5])
#define ROM_PRCMPowerDomainOff \
((void (*)(uint32_t ui32Domains)) \
ROM_API_PRCM_TABLE[6])
#define ROM_PRCMPeripheralRunEnable \
((void (*)(uint32_t ui32Peripheral)) \
ROM_API_PRCM_TABLE[7])
#define ROM_PRCMPeripheralRunDisable \
((void (*)(uint32_t ui32Peripheral)) \
ROM_API_PRCM_TABLE[8])
#define ROM_PRCMPeripheralSleepEnable \
((void (*)(uint32_t ui32Peripheral)) \
ROM_API_PRCM_TABLE[9])
#define ROM_PRCMPeripheralSleepDisable \
((void (*)(uint32_t ui32Peripheral)) \
ROM_API_PRCM_TABLE[10])
#define ROM_PRCMPeripheralDeepSleepEnable \
((void (*)(uint32_t ui32Peripheral)) \
ROM_API_PRCM_TABLE[11])
#define ROM_PRCMPeripheralDeepSleepDisable \
((void (*)(uint32_t ui32Peripheral)) \
ROM_API_PRCM_TABLE[12])
#define ROM_PRCMPowerDomainStatus \
((uint32_t (*)(uint32_t ui32Domains)) \
ROM_API_PRCM_TABLE[13])
#define ROM_PRCMDeepSleep \
((void (*)(void)) \
ROM_API_PRCM_TABLE[14])
#define ROM_PRCMAudioClockConfigSetOverride \
((void (*)(uint32_t ui32ClkConfig, uint32_t ui32MstDiv, uint32_t ui32BitDiv, uint32_t ui32WordDiv)) \
ROM_API_PRCM_TABLE[17])
// SMPH FUNCTIONS
#define ROM_SMPHAcquire \
((void (*)(uint32_t ui32Semaphore)) \
ROM_API_SMPH_TABLE[0])
// SSI FUNCTIONS
#define ROM_SSIConfigSetExpClk \
((void (*)(uint32_t ui32Base, uint32_t ui32SSIClk, uint32_t ui32Protocol, uint32_t ui32Mode, uint32_t ui32BitRate, uint32_t ui32DataWidth)) \
ROM_API_SSI_TABLE[0])
#define ROM_SSIDataPut \
((void (*)(uint32_t ui32Base, uint32_t ui32Data)) \
ROM_API_SSI_TABLE[1])
#define ROM_SSIDataPutNonBlocking \
((int32_t (*)(uint32_t ui32Base, uint32_t ui32Data)) \
ROM_API_SSI_TABLE[2])
#define ROM_SSIDataGet \
((void (*)(uint32_t ui32Base, uint32_t *pui32Data)) \
ROM_API_SSI_TABLE[3])
#define ROM_SSIDataGetNonBlocking \
((int32_t (*)(uint32_t ui32Base, uint32_t *pui32Data)) \
ROM_API_SSI_TABLE[4])
// TIMER FUNCTIONS
#define ROM_TimerConfigure \
((void (*)(uint32_t ui32Base, uint32_t ui32Config)) \
ROM_API_TIMER_TABLE[0])
#define ROM_TimerLevelControl \
((void (*)(uint32_t ui32Base, uint32_t ui32Timer, bool bInvert)) \
ROM_API_TIMER_TABLE[1])
#define ROM_TimerStallControl \
((void (*)(uint32_t ui32Base, uint32_t ui32Timer, bool bStall)) \
ROM_API_TIMER_TABLE[3])
#define ROM_TimerWaitOnTriggerControl \
((void (*)(uint32_t ui32Base, uint32_t ui32Timer, bool bWait)) \
ROM_API_TIMER_TABLE[4])
#define ROM_TimerIntervalLoadMode \
((void (*)(uint32_t ui32Base, uint32_t ui32Timer, uint32_t ui32Mode)) \
ROM_API_TIMER_TABLE[5])
#define ROM_TimerMatchUpdateMode \
((void (*)(uint32_t ui32Base, uint32_t ui32Timer, uint32_t ui32Mode)) \
ROM_API_TIMER_TABLE[6])
// TRNG FUNCTIONS
#define ROM_TRNGConfigure \
((void (*)(uint32_t ui32MinSamplesPerCycle, uint32_t ui32MaxSamplesPerCycle, uint32_t ui32ClocksPerSample)) \
ROM_API_TRNG_TABLE[0])
#define ROM_TRNGNumberGet \
((uint32_t (*)(uint32_t ui32Word)) \
ROM_API_TRNG_TABLE[1])
// UART FUNCTIONS
#define ROM_UARTFIFOLevelGet \
((void (*)(uint32_t ui32Base, uint32_t *pui32TxLevel, uint32_t *pui32RxLevel)) \
ROM_API_UART_TABLE[0])
#define ROM_UARTConfigSetExpClk \
((void (*)(uint32_t ui32Base, uint32_t ui32UARTClk, uint32_t ui32Baud, uint32_t ui32Config)) \
ROM_API_UART_TABLE[1])
#define ROM_UARTConfigGetExpClk \
((void (*)(uint32_t ui32Base, uint32_t ui32UARTClk, uint32_t *pui32Baud, uint32_t *pui32Config)) \
ROM_API_UART_TABLE[2])
#define ROM_UARTDisable \
((void (*)(uint32_t ui32Base)) \
ROM_API_UART_TABLE[3])
#define ROM_UARTCharGetNonBlocking \
((int32_t (*)(uint32_t ui32Base)) \
ROM_API_UART_TABLE[4])
#define ROM_UARTCharGet \
((int32_t (*)(uint32_t ui32Base)) \
ROM_API_UART_TABLE[5])
#define ROM_UARTCharPutNonBlocking \
((bool (*)(uint32_t ui32Base, uint8_t ui8Data)) \
ROM_API_UART_TABLE[6])
#define ROM_UARTCharPut \
((void (*)(uint32_t ui32Base, uint8_t ui8Data)) \
ROM_API_UART_TABLE[7])
// UDMA FUNCTIONS
#define ROM_uDMAChannelAttributeEnable \
((void (*)(uint32_t ui32Base, uint32_t ui32ChannelNum, uint32_t ui32Attr)) \
ROM_API_UDMA_TABLE[0])
#define ROM_uDMAChannelAttributeDisable \
((void (*)(uint32_t ui32Base, uint32_t ui32ChannelNum, uint32_t ui32Attr)) \
ROM_API_UDMA_TABLE[1])
#define ROM_uDMAChannelAttributeGet \
((uint32_t (*)(uint32_t ui32Base, uint32_t ui32ChannelNum)) \
ROM_API_UDMA_TABLE[2])
#define ROM_uDMAChannelControlSet \
((void (*)(uint32_t ui32Base, uint32_t ui32ChannelStructIndex, uint32_t ui32Control)) \
ROM_API_UDMA_TABLE[3])
#define ROM_uDMAChannelTransferSet \
((void (*)(uint32_t ui32Base, uint32_t ui32ChannelStructIndex, uint32_t ui32Mode, void *pvSrcAddr, void *pvDstAddr, uint32_t ui32TransferSize)) \
ROM_API_UDMA_TABLE[4])
#define ROM_uDMAChannelScatterGatherSet \
((void (*)(uint32_t ui32Base, uint32_t ui32ChannelNum, uint32_t ui32TaskCount, void *pvTaskList, uint32_t ui32IsPeriphSG)) \
ROM_API_UDMA_TABLE[5])
#define ROM_uDMAChannelSizeGet \
((uint32_t (*)(uint32_t ui32Base, uint32_t ui32ChannelStructIndex)) \
ROM_API_UDMA_TABLE[6])
#define ROM_uDMAChannelModeGet \
((uint32_t (*)(uint32_t ui32Base, uint32_t ui32ChannelStructIndex)) \
ROM_API_UDMA_TABLE[7])
// VIMS FUNCTIONS
#define ROM_VIMSConfigure \
((void (*)(uint32_t ui32Base, bool bRoundRobin, bool bPrefetch)) \
ROM_API_VIMS_TABLE[0])
#define ROM_VIMSModeSet \
((void (*)(uint32_t ui32Base, uint32_t ui32Mode)) \
ROM_API_VIMS_TABLE[1])
#define ROM_VIMSModeGet \
((uint32_t (*)(uint32_t ui32Base)) \
ROM_API_VIMS_TABLE[2])
#define ROM_VIMSModeSafeSet \
((void (*)(uint32_t ui32Base, uint32_t ui32NewMode, bool blocking)) \
ROM_API_VIMS_TABLE[3])
// OSC FUNCTIONS
#define ROM_OSCClockSourceGet \
((uint32_t (*)(uint32_t ui32SrcClk)) \
ROM_API_OSC_TABLE[0])
#define ROM_OSCClockSourceSet \
((void (*)(uint32_t ui32SrcClk, uint32_t ui32Osc)) \
ROM_API_OSC_TABLE[1])
#define ROM_OSC_HPOSCRelativeFrequencyOffsetToRFCoreFormatConvert \
((int16_t (*)(int32_t HPOSC_RelFreqOffset)) \
ROM_API_OSC_TABLE[3])
// AUX_ADC FUNCTIONS
#define ROM_AUXADCAdjustValueForGainAndOffset \
((int32_t (*)(int32_t adcValue, int32_t gain, int32_t offset)) \
ROM_API_AUX_ADC_TABLE[0])
#define ROM_AUXADCDisable \
((void (*)(void)) \
ROM_API_AUX_ADC_TABLE[1])
#define ROM_AUXADCDisableInputScaling \
((void (*)(void)) \
ROM_API_AUX_ADC_TABLE[2])
#define ROM_AUXADCEnableAsync \
((void (*)(uint32_t refSource, uint32_t trigger)) \
ROM_API_AUX_ADC_TABLE[3])
#define ROM_AUXADCEnableSync \
((void (*)(uint32_t refSource, uint32_t sampleTime, uint32_t trigger)) \
ROM_API_AUX_ADC_TABLE[4])
#define ROM_AUXADCFlushFifo \
((void (*)(void)) \
ROM_API_AUX_ADC_TABLE[5])
#define ROM_AUXADCGetAdjustmentGain \
((int32_t (*)(uint32_t refSource)) \
ROM_API_AUX_ADC_TABLE[6])
#define ROM_AUXADCGetAdjustmentOffset \
((int32_t (*)(uint32_t refSource)) \
ROM_API_AUX_ADC_TABLE[7])
#define ROM_AUXADCMicrovoltsToValue \
((int32_t (*)(int32_t fixedRefVoltage, int32_t microvolts)) \
ROM_API_AUX_ADC_TABLE[8])
#define ROM_AUXADCPopFifo \
((uint32_t (*)(void)) \
ROM_API_AUX_ADC_TABLE[9])
#define ROM_AUXADCReadFifo \
((uint32_t (*)(void)) \
ROM_API_AUX_ADC_TABLE[10])
#define ROM_AUXADCUnadjustValueForGainAndOffset \
((int32_t (*)(int32_t adcValue, int32_t gain, int32_t offset)) \
ROM_API_AUX_ADC_TABLE[11])
#define ROM_AUXADCValueToMicrovolts \
((int32_t (*)(int32_t fixedRefVoltage, int32_t adcValue)) \
ROM_API_AUX_ADC_TABLE[12])
// SYS_CTRL FUNCTIONS
#define ROM_SysCtrlResetSourceGet \
((uint32_t (*)(void)) \
ROM_API_SYS_CTRL_TABLE[0])
#define ROM_SysCtrl_DCDC_VoltageConditionalControl \
((void (*)(void)) \
ROM_API_SYS_CTRL_TABLE[1])
// AON_BATMON FUNCTIONS
#define ROM_AONBatMonTemperatureGetDegC \
((int32_t (*)(void)) \
ROM_API_AON_BATMON_TABLE[0])
// SETUP_ROM FUNCTIONS
#define ROM_SetupAfterColdResetWakeupFromShutDownCfg1 \
((void (*)(uint32_t ccfg_ModeConfReg)) \
ROM_API_SETUP_ROM_TABLE[0])
#define ROM_SetupAfterColdResetWakeupFromShutDownCfg2 \
((void (*)(uint32_t ui32Fcfg1Revision, uint32_t ccfg_ModeConfReg)) \
ROM_API_SETUP_ROM_TABLE[1])
#define ROM_SetupAfterColdResetWakeupFromShutDownCfg3 \
((void (*)(uint32_t ccfg_ModeConfReg)) \
ROM_API_SETUP_ROM_TABLE[2])
#define ROM_SetupGetTrimForAdcShModeEn \
((uint32_t (*)(uint32_t ui32Fcfg1Revision)) \
ROM_API_SETUP_ROM_TABLE[3])
#define ROM_SetupGetTrimForAdcShVbufEn \
((uint32_t (*)(uint32_t ui32Fcfg1Revision)) \
ROM_API_SETUP_ROM_TABLE[4])
#define ROM_SetupGetTrimForAmpcompCtrl \
((uint32_t (*)(uint32_t ui32Fcfg1Revision)) \
ROM_API_SETUP_ROM_TABLE[5])
#define ROM_SetupGetTrimForAmpcompTh1 \
((uint32_t (*)(void)) \
ROM_API_SETUP_ROM_TABLE[6])
#define ROM_SetupGetTrimForAmpcompTh2 \
((uint32_t (*)(void)) \
ROM_API_SETUP_ROM_TABLE[7])
#define ROM_SetupGetTrimForAnabypassValue1 \
((uint32_t (*)(uint32_t ccfg_ModeConfReg)) \
ROM_API_SETUP_ROM_TABLE[8])
#define ROM_SetupGetTrimForDblrLoopFilterResetVoltage \
((uint32_t (*)(uint32_t ui32Fcfg1Revision)) \
ROM_API_SETUP_ROM_TABLE[9])
#define ROM_SetupGetTrimForRadcExtCfg \
((uint32_t (*)(uint32_t ui32Fcfg1Revision)) \
ROM_API_SETUP_ROM_TABLE[10])
#define ROM_SetupGetTrimForRcOscLfIBiasTrim \
((uint32_t (*)(uint32_t ui32Fcfg1Revision)) \
ROM_API_SETUP_ROM_TABLE[11])
#define ROM_SetupGetTrimForRcOscLfRtuneCtuneTrim \
((uint32_t (*)(void)) \
ROM_API_SETUP_ROM_TABLE[12])
#define ROM_SetupGetTrimForXoscHfCtl \
((uint32_t (*)(uint32_t ui32Fcfg1Revision)) \
ROM_API_SETUP_ROM_TABLE[13])
#define ROM_SetupGetTrimForXoscHfFastStart \
((uint32_t (*)(void)) \
ROM_API_SETUP_ROM_TABLE[14])
#define ROM_SetupGetTrimForXoscHfIbiastherm \
((uint32_t (*)(void)) \
ROM_API_SETUP_ROM_TABLE[15])
#define ROM_SetupGetTrimForXoscLfRegulatorAndCmirrwrRatio \
((uint32_t (*)(uint32_t ui32Fcfg1Revision)) \
ROM_API_SETUP_ROM_TABLE[16])
#define ROM_SetupSetAonRtcSubSecInc \
((void (*)(uint32_t subSecInc)) \
ROM_API_SETUP_ROM_TABLE[17])
#define ROM_SetupSetCacheModeAccordingToCcfgSetting \
((void (*)(void)) \
ROM_API_SETUP_ROM_TABLE[18])
#define ROM_SetupStepVddrTrimTo \
((void (*)(uint32_t toCode)) \
ROM_API_SETUP_ROM_TABLE[19])
// I2S FUNCTIONS
#define ROM_I2SPointerSet \
((void (*)(uint32_t ui32Base, bool bInput, void * pNextPointer)) \
ROM_API_I2S_TABLE[0])
#define ROM_I2SSampleStampGet \
((uint32_t (*)(uint32_t ui32Base, uint32_t ui32Channel)) \
ROM_API_I2S_TABLE[1])
// PWR_CTRL FUNCTIONS
#define ROM_PowerCtrlSourceSet \
((void (*)(uint32_t ui32PowerConfig)) \
ROM_API_PWR_CTRL_TABLE[0])
// AES FUNCTIONS
#define ROM_AESConfigureCCMCtrl \
((void (*)(uint32_t nonceLength, uint32_t macLength, bool encrypt)) \
ROM_API_AES_TABLE[0])
#define ROM_AESReadFromKeyStore \
((uint32_t (*)(uint32_t keyStoreArea)) \
ROM_API_AES_TABLE[1])
#define ROM_AESReadTag \
((uint32_t (*)(uint8_t *tag, uint32_t tagLength)) \
ROM_API_AES_TABLE[2])
#define ROM_AESSetInitializationVector \
((void (*)(const uint32_t *initializationVector)) \
ROM_API_AES_TABLE[3])
#define ROM_AESStartDMAOperation \
((void (*)(const uint8_t *channel0Addr, uint32_t channel0Length, uint8_t *channel1Addr, uint32_t channel1Length)) \
ROM_API_AES_TABLE[4])
#define ROM_AESVerifyTag \
((uint32_t (*)(const uint8_t *tag, uint32_t tagLength)) \
ROM_API_AES_TABLE[5])
#define ROM_AESWaitForIRQFlags \
((uint32_t (*)(uint32_t irqFlags)) \
ROM_API_AES_TABLE[6])
#define ROM_AESWriteCCMInitializationVector \
((void (*)(const uint8_t *nonce, uint32_t nonceLength)) \
ROM_API_AES_TABLE[7])
#define ROM_AESWriteToKeyStore \
((uint32_t (*)(const uint8_t *aesKey, uint32_t aesKeyLength, uint32_t keyStoreArea)) \
ROM_API_AES_TABLE[8])
// PKA FUNCTIONS
#define ROM_PKABigNumAddGetResult \
((uint32_t (*)(uint8_t *resultBuf, uint32_t *resultLength, uint32_t resultPKAMemAddr)) \
ROM_API_PKA_TABLE[0])
#define ROM_PKABigNumCmpGetResult \
((uint32_t (*)(void)) \
ROM_API_PKA_TABLE[1])
#define ROM_PKABigNumInvModGetResult \
((uint32_t (*)(uint8_t *resultBuf, uint32_t length, uint32_t resultPKAMemAddr)) \
ROM_API_PKA_TABLE[2])
#define ROM_PKABigNumModGetResult \
((uint32_t (*)(uint8_t *resultBuf, uint32_t length, uint32_t resultPKAMemAddr)) \
ROM_API_PKA_TABLE[3])
#define ROM_PKABigNumMultGetResult \
((uint32_t (*)(uint8_t *resultBuf, uint32_t *resultLength, uint32_t resultPKAMemAddr)) \
ROM_API_PKA_TABLE[4])
#define ROM_PKAEccAddGetResult \
((uint32_t (*)(uint8_t *curvePointX, uint8_t *curvePointY, uint32_t resultPKAMemAddr, uint32_t length)) \
ROM_API_PKA_TABLE[5])
#define ROM_PKAEccAddStart \
((uint32_t (*)(const uint8_t *curvePoint1X, const uint8_t *curvePoint1Y, const uint8_t *curvePoint2X, const uint8_t *curvePoint2Y, const uint8_t *prime, const uint8_t *a, uint32_t length, uint32_t *resultPKAMemAddr)) \
ROM_API_PKA_TABLE[6])
#define ROM_PKAEccMultiplyGetResult \
((uint32_t (*)(uint8_t *curvePointX, uint8_t *curvePointY, uint32_t resultPKAMemAddr, uint32_t length)) \
ROM_API_PKA_TABLE[7])
#define ROM_PKAEccMultiplyStart \
((uint32_t (*)(const uint8_t *scalar, const uint8_t *curvePointX, const uint8_t *curvePointY, const uint8_t *prime, const uint8_t *a, const uint8_t *b, uint32_t length, uint32_t *resultPKAMemAddr)) \
ROM_API_PKA_TABLE[8])
#define ROM_PKAGetOpsStatus \
((uint32_t (*)(void)) \
ROM_API_PKA_TABLE[9])
#define ROM_PKABigNumAddStart \
((uint32_t (*)(const uint8_t *bigNum1, uint32_t bigNum1Length, const uint8_t *bigNum2, uint32_t bigNum2Length, uint32_t *resultPKAMemAddr)) \
ROM_API_PKA_TABLE[10])
#define ROM_PKABigNumCmpStart \
((uint32_t (*)(const uint8_t *bigNum1, const uint8_t *bigNum2, uint32_t length)) \
ROM_API_PKA_TABLE[11])
#define ROM_PKABigNumInvModStart \
((uint32_t (*)(const uint8_t *bigNum, uint32_t bigNumLength, const uint8_t *modulus, uint32_t modulusLength, uint32_t *resultPKAMemAddr)) \
ROM_API_PKA_TABLE[12])
#define ROM_PKABigNumModStart \
((uint32_t (*)(const uint8_t *bigNum, uint32_t bigNumLength, const uint8_t *modulus, uint32_t modulusLength, uint32_t *resultPKAMemAddr)) \
ROM_API_PKA_TABLE[13])
#define ROM_PKABigNumMultiplyStart \
((uint32_t (*)(const uint8_t *multiplicand, uint32_t multiplicandLength, const uint8_t *multiplier, uint32_t multiplierLength, uint32_t *resultPKAMemAddr)) \
ROM_API_PKA_TABLE[14])
#define ROM_PKABigNumSubGetResult \
((uint32_t (*)(uint8_t *resultBuf, uint32_t *resultLength, uint32_t resultPKAMemAddr)) \
ROM_API_PKA_TABLE[15])
#define ROM_PKABigNumSubStart \
((uint32_t (*)(const uint8_t *minuend, uint32_t minuendLength, const uint8_t *subtrahend, uint32_t subtrahendLength, uint32_t *resultPKAMemAddr)) \
ROM_API_PKA_TABLE[16])
#define ROM_PKAArrayAllZeros \
((bool (*)(const uint8_t *array, uint32_t arrayLength)) \
ROM_API_PKA_TABLE[17])
#define ROM_PKABigNumDivideGetQuotient \
((uint32_t (*)(uint8_t *resultBuf, uint32_t *length, uint32_t resultQuotientMemAddr)) \
ROM_API_PKA_TABLE[18])
#define ROM_PKABigNumDivideGetRemainder \
((uint32_t (*)(uint8_t *resultBuf, uint32_t *length, uint32_t resultRemainderMemAddr)) \
ROM_API_PKA_TABLE[19])
#define ROM_PKABigNumDivideStart \
((uint32_t (*)(const uint8_t *dividend, uint32_t dividendLength, const uint8_t *divisor, uint32_t divisorLength, uint32_t *resultQuotientMemAddr, uint32_t *resultRemainderMemAddr)) \
ROM_API_PKA_TABLE[20])
#define ROM_PKAEccVerifyPublicKeyWeierstrassStart \
((uint32_t (*)(const uint8_t *curvePointX, const uint8_t *curvePointY, const uint8_t *prime, const uint8_t *a, const uint8_t *b, const uint8_t *order, uint32_t length)) \
ROM_API_PKA_TABLE[21])
#define ROM_PKAZeroOutArray \
((void (*)(const uint8_t *array, uint32_t arrayLength)) \
ROM_API_PKA_TABLE[22])
#define ROM_PKAEccMontgomeryMultiplyStart \
((uint32_t (*)(const uint8_t *scalar, const uint8_t *curvePointX, const uint8_t *prime, const uint8_t *a, uint32_t length, uint32_t *resultPKAMemAddr)) \
ROM_API_PKA_TABLE[23])
// SHA2 FUNCTIONS
#define ROM_SHA2ComputeFinalHash \
((uint32_t (*)(const uint8_t *message, uint8_t *resultDigest, uint32_t *intermediateDigest, uint32_t totalMsgLength, uint32_t messageLength, uint32_t hashAlgorithm)) \
ROM_API_SHA2_TABLE[0])
#define ROM_SHA2ComputeHash \
((uint32_t (*)(const uint8_t *message, uint8_t *resultDigest, uint32_t totalMsgLength, uint32_t hashAlgorithm)) \
ROM_API_SHA2_TABLE[1])
#define ROM_SHA2ComputeInitialHash \
((uint32_t (*)(const uint8_t *message, uint32_t *intermediateDigest, uint32_t hashAlgorithm, uint32_t initialMessageLength)) \
ROM_API_SHA2_TABLE[2])
#define ROM_SHA2ComputeIntermediateHash \
((uint32_t (*)(const uint8_t *message, uint32_t *intermediateDigest, uint32_t hashAlgorithm, uint32_t intermediateMessageLength)) \
ROM_API_SHA2_TABLE[3])
#define ROM_SHA2StartDMAOperation \
((void (*)(uint8_t *channel0Addr, uint32_t channel0Length, uint8_t *channel1Addr, uint32_t channel1Length)) \
ROM_API_SHA2_TABLE[4])
#define ROM_SHA2WaitForIRQFlags \
((uint32_t (*)(uint32_t irqFlags)) \
ROM_API_SHA2_TABLE[5])
//*****************************************************************************
//
// Mark the end of the C bindings section for C++ compilers.
//
//*****************************************************************************
#ifdef __cplusplus
}
#endif
#endif // __ROM_H__