AM263Px MCU+ SDK: MCRC Low-Level API

| AM263Px MCU+ SDK 26.00.00 |

Functions | Macros
MCRC Low-Level API
APIs for SDL Module » APIs for SDL MCRC

## Introduction

This module contains the Low-Level APIs to program and use the MCRC module.

## Functions
int32_t | SDL_MCRC_getHighestPriorityIntrStatus (SDL_MCRC_InstType instance, uint32_t *pIntVecAddr)
| This API is used to get the pending interrupt with highest priority. More...
int32_t | SDL_MCRC_dataBusTracingCtrl (SDL_MCRC_InstType instance, uint32_t ctrlFlag, SDL_MCRC_DataBusMask_t dataBusMask, SDL_MCRC_DataBusMask_t busEnableMask)
| This API is used to control the MCRC data bus tracing. More...
int32_t | SDL_MCRC_verifyBusTracingCtrl (SDL_MCRC_InstType instance, uint32_t ctrlFlag, SDL_MCRC_DataBusMask_t dataBusMask, SDL_MCRC_DataBusMask_t busEnableMask)
| This API is used to verify the control the MCRC data bus tracing. More...

## Macros
#define | SDL_MCRC_MAX_CTRL_FLAG_VAL (1U)
| The max value that can be passed to Bus Tracing Control APIs as the ctrlFlag value. More...

## MCRC Interrupt priority
typedef uint32_t | SDL_MCRC_IntrPriority_t
| The offset for the highest pending priority interrupt. These interrupt offset returned in SDL_MCRC_getHighestPriorityIntrStatus function. More...
#define | SDL_MCRC_INTR_PRIORITY_CH1_FAIL (0x1U)
#define | SDL_MCRC_INTR_PRIORITY_CH2_FAIL (0x2U)
#define | SDL_MCRC_INTR_PRIORITY_CH3_FAIL (0x3U)
#define | SDL_MCRC_INTR_PRIORITY_CH4_FAIL (0x4U)
#define | SDL_MCRC_INTR_PRIORITY_CH1_COMPRESSION_DONE (0x9U)
#define | SDL_MCRC_INTR_PRIORITY_CH2_COMPRESSION_DONE (0xaU)
#define | SDL_MCRC_INTR_PRIORITY_CH3_COMPRESSION_DONE (0xbU)
#define | SDL_MCRC_INTR_PRIORITY_CH4_COMPRESSION_DONE (0xcU)
#define | SDL_MCRC_INTR_PRIORITY_CH1_OVERRUN (0x11U)
#define | SDL_MCRC_INTR_PRIORITY_CH2_OVERRUN (0x12U)
#define | SDL_MCRC_INTR_PRIORITY_CH3_OVERRUN (0x13U)
#define | SDL_MCRC_INTR_PRIORITY_CH4_OVERRUN (0x14U)
#define | SDL_MCRC_INTR_PRIORITY_CH1_UNDERRUN (0x19U)
#define | SDL_MCRC_INTR_PRIORITY_CH2_UNDERRUN (0x1aU)
#define | SDL_MCRC_INTR_PRIORITY_CH3_UNDERRUN (0x1bU)
#define | SDL_MCRC_INTR_PRIORITY_CH4_UNDERRUN (0x1cU)
#define | SDL_MCRC_INTR_PRIORITY_CH1_TIMEOUT (0x21U)
#define | SDL_MCRC_INTR_PRIORITY_CH2_TIMEOUT (0x22U)
#define | SDL_MCRC_INTR_PRIORITY_CH3_TIMEOUT (0x23U)
#define | SDL_MCRC_INTR_PRIORITY_CH4_TIMEOUT (0x24U)

## Data Bus Mask
typedef uint32_t | SDL_MCRC_DataBusMask_t
| MCRC data bus type mask selected for tracing control. More...
#define | SDL_MCRC_DATA_BUS_ITCM_MASK (SDL_MCRC_MCRC_BUS_SEL_ITC_MEN_MASK)
#define | SDL_MCRC_DATA_BUS_DTCM_MASK (SDL_MCRC_MCRC_BUS_SEL_DTC_MEN_MASK)
#define | SDL_MCRC_DATA_BUS_VBUSM_MASK (SDL_MCRC_MCRC_BUS_SEL_MEN_MASK)
#define | SDL_MCRC_DATA_BUS_MASK_ALL

## Macro Definition Documentation

## ◆ SDL_MCRC_MAX_CTRL_FLAG_VAL

#define SDL_MCRC_MAX_CTRL_FLAG_VAL (1U)

The max value that can be passed to Bus Tracing Control APIs as the ctrlFlag value.

## ◆ SDL_MCRC_INTR_PRIORITY_CH1_FAIL

#define SDL_MCRC_INTR_PRIORITY_CH1_FAIL (0x1U)

Offset return for channel 1 fail interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH2_FAIL

#define SDL_MCRC_INTR_PRIORITY_CH2_FAIL (0x2U)

Offset return for channel 1 fail interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH3_FAIL

#define SDL_MCRC_INTR_PRIORITY_CH3_FAIL (0x3U)

Offset return for channel 1 fail interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH4_FAIL

#define SDL_MCRC_INTR_PRIORITY_CH4_FAIL (0x4U)

Offset return for channel 4 fail interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH1_COMPRESSION_DONE

#define SDL_MCRC_INTR_PRIORITY_CH1_COMPRESSION_DONE (0x9U)

Offset return for channel 1 compression done interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH2_COMPRESSION_DONE

#define SDL_MCRC_INTR_PRIORITY_CH2_COMPRESSION_DONE (0xaU)

Offset return for channel 2 compression done interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH3_COMPRESSION_DONE

#define SDL_MCRC_INTR_PRIORITY_CH3_COMPRESSION_DONE (0xbU)

Offset return for channel 3 compression done interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH4_COMPRESSION_DONE

#define SDL_MCRC_INTR_PRIORITY_CH4_COMPRESSION_DONE (0xcU)

Offset return for channel 4 compression done interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH1_OVERRUN

#define SDL_MCRC_INTR_PRIORITY_CH1_OVERRUN (0x11U)

Offset return for channel 1 overrun interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH2_OVERRUN

#define SDL_MCRC_INTR_PRIORITY_CH2_OVERRUN (0x12U)

Offset return for channel 2 overrun interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH3_OVERRUN

#define SDL_MCRC_INTR_PRIORITY_CH3_OVERRUN (0x13U)

Offset return for channel 3 overrun interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH4_OVERRUN

#define SDL_MCRC_INTR_PRIORITY_CH4_OVERRUN (0x14U)

Offset return for channel 4 overrun interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH1_UNDERRUN

#define SDL_MCRC_INTR_PRIORITY_CH1_UNDERRUN (0x19U)

Offset return for channel 1 underrun interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH2_UNDERRUN

#define SDL_MCRC_INTR_PRIORITY_CH2_UNDERRUN (0x1aU)

Offset return for channel 2 underrun interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH3_UNDERRUN

#define SDL_MCRC_INTR_PRIORITY_CH3_UNDERRUN (0x1bU)

Offset return for channel 3 underrun interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH4_UNDERRUN

#define SDL_MCRC_INTR_PRIORITY_CH4_UNDERRUN (0x1cU)

Offset return for channel 4 underrun interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH1_TIMEOUT

#define SDL_MCRC_INTR_PRIORITY_CH1_TIMEOUT (0x21U)

Offset return for channel 1 timeout interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH2_TIMEOUT

#define SDL_MCRC_INTR_PRIORITY_CH2_TIMEOUT (0x22U)

Offset return for channel 2 timeout interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH3_TIMEOUT

#define SDL_MCRC_INTR_PRIORITY_CH3_TIMEOUT (0x23U)

Offset return for channel 3 timeout interrupt

## ◆ SDL_MCRC_INTR_PRIORITY_CH4_TIMEOUT

#define SDL_MCRC_INTR_PRIORITY_CH4_TIMEOUT (0x24U)

Offset return for channel 4 timeout interrupt

## ◆ SDL_MCRC_DATA_BUS_ITCM_MASK

#define SDL_MCRC_DATA_BUS_ITCM_MASK (SDL_MCRC_MCRC_BUS_SEL_ITC_MEN_MASK)

Select tracing control of instruction TCM

## ◆ SDL_MCRC_DATA_BUS_DTCM_MASK

#define SDL_MCRC_DATA_BUS_DTCM_MASK (SDL_MCRC_MCRC_BUS_SEL_DTC_MEN_MASK)

Select tracing control of data TCM

## ◆ SDL_MCRC_DATA_BUS_VBUSM_MASK

#define SDL_MCRC_DATA_BUS_VBUSM_MASK (SDL_MCRC_MCRC_BUS_SEL_MEN_MASK)

Select tracing control of VBUSM

## ◆ SDL_MCRC_DATA_BUS_MASK_ALL

#define SDL_MCRC_DATA_BUS_MASK_ALL

Value:
(SDL_MCRC_MCRC_BUS_SEL_ITC_MEN_MASK | \
SDL_MCRC_MCRC_BUS_SEL_DTC_MEN_MASK | \
SDL_MCRC_MCRC_BUS_SEL_MEN_MASK)

Select tracing control of all data buses

## Typedef Documentation

## ◆ SDL_MCRC_IntrPriority_t

typedef uint32_t SDL_MCRC_IntrPriority_t

The offset for the highest pending priority interrupt. These interrupt offset returned in SDL_MCRC_getHighestPriorityIntrStatus function.

## ◆ SDL_MCRC_DataBusMask_t

typedef uint32_t SDL_MCRC_DataBusMask_t

MCRC data bus type mask selected for tracing control.

## Function Documentation

## ◆ SDL_MCRC_getHighestPriorityIntrStatus()

int32_t SDL_MCRC_getHighestPriorityIntrStatus | ( | SDL_MCRC_InstType | instance,
|  | uint32_t * | pIntVecAddr
| ) |  |

This API is used to get the pending interrupt with highest priority.

Parameters

  instance | MCRC instance either MCU or Main.
  pIntVecAddr | Pointer to highest priority pending interrupt vector address defined in SDL_MCRC_IntrPriority_t

Returns
  status MCRC get interrupt vector address status SDL_PASS: success SDL_EBADARGS: failure, indicate the bad input arguments

## ◆ SDL_MCRC_dataBusTracingCtrl()

int32_t SDL_MCRC_dataBusTracingCtrl | ( | SDL_MCRC_InstType | instance,
|  | uint32_t | ctrlFlag,
|  | SDL_MCRC_DataBusMask_t | dataBusMask,
|  | SDL_MCRC_DataBusMask_t | busEnableMask
| ) |  |

This API is used to control the MCRC data bus tracing.

Data tracing is only available on channel 1, when it is enabled, the operation mode is automatically reset to data capture mode on channel 1

Parameters

  instance | MCRC instance either MCU or Main.
  ctrlFlag | Data bus tracing control flag. 1U: enable data tracing. 0U: disable data tracing.
  dataBusMask | Data bus mask bits for which what data buses are to be selected. Values given by SDL_MCRC_DataBusMask_t.
  busEnableMask | Data bus enable mask bits for which what data buses are to be enabled or disabled. Values given by SDL_MCRC_DataBusMask_t.

Returns
  status MCRC data bus tracing control status SDL_PASS: success SDL_EBADARGS: failure, indicate the bad input arguments

## ◆ SDL_MCRC_verifyBusTracingCtrl()

int32_t SDL_MCRC_verifyBusTracingCtrl | ( | SDL_MCRC_InstType | instance,
|  | uint32_t | ctrlFlag,
|  | SDL_MCRC_DataBusMask_t | dataBusMask,
|  | SDL_MCRC_DataBusMask_t | busEnableMask
| ) |  |

This API is used to verify the control the MCRC data bus tracing.

Parameters

  instance | MCRC instance either MCU or Main.
  ctrlFlag | Data bus tracing control flag. 1U: enable data tracing. 0U: disable data tracing.
  dataBusMask | Data bus mask bits for which what data buses are to be selected. Values given by SDL_MCRC_DataBusMask_t.
  busEnableMask | Data bus enable mask bits for which what data buses are to be enabled or disabled. Values given by SDL_MCRC_DataBusMask_t.

Returns
  status MCRC verify data bus tracing control status SDL_PASS: success SDL_EBADARGS: failure, indicate the bad input arguments SDL_EFAIL: failure, indicate verify failed