Advanced Event Triggering Target Library (AET)  02_70_00
aet.h File Reference

Application Access to Advanced Event Triggering Hardware. More...

#include <stddef.h>
#include <stdint.h>
#include <c6x.h>

Go to the source code of this file.

Data Structures

struct  AET_jobParams
 Structure that holds the parameters needed to be passed to the AET_setupJob Function. More...
 

Macros

#define AET_MAJOR_VERSION   (0x4)
 
#define AET_MINOR_VERSION   (0x11)
 
#define AET_ENABLE_RTOS_INT()
 Enables the AET RTOS Interrupt.
 
#define AET_DISABLE_RTOS_INT()
 Disables the AET Rtos Interrupt.
 
#define AET_CLEAR_RTOS_INT()
 Clears the AET RTOS interrupt bit in the AET Interrupt Flag Register.
 
#define AET_TRACE_NONE   (0x0u)
 
#define AET_TRACE_TIMING   (0x1u)
 
#define AET_TRACE_PA   (0x2u)
 
#define AET_TRACE_RA   (0x4u)
 
#define AET_TRACE_WA   (0x8u)
 
#define AET_TRACE_RD   (0x10u)
 
#define AET_TRACE_WD   (0x20u)
 
#define AET_TRACE_PCTAG   (0x40u)
 
#define AET_TRACE_STOP_PC   (0x1u)
 
#define AET_TRACE_STOP_TIMING   (0x2u)
 
#define AET_TRACE_STOP_DATA   (0x4u)
 
#define AET_TRACE_STRM_ENBL_NONE   (0x0u)
 
#define AET_TRACE_STRM_ENBL_TIMING   (0x1u)
 
#define AET_TRACE_STRM_ENBL_PC   (0x2u)
 
#define AET_TRACE_STRM_ENBL_MEM_RD   (0x4u)
 
#define AET_TRACE_STRM_ENBL_MEM_WT   (0x8u)
 
#define AET_TRACE_STRM_PRES_NONE   (0x00u)
 
#define AET_TRACE_STRM_PRES_RD_DAT   (0x01u)
 
#define AET_TRACE_STRM_PRES_RD_ADDR   (0x02u)
 
#define AET_TRACE_STRM_PRES_RD_PC   (0x0Cu)
 
#define AET_TRACE_STRM_PRES_WT_DAT   (0x10u)
 
#define AET_TRACE_STRM_PRES_WT_ADDR   (0x20u)
 
#define AET_TRACE_STRM_PRES_WT_PC   (0x40u)
 
#define AET_NUMSYSEVTS   128
 
#define AET_NUMGEMEVTS   128
 
#define AET_NUMGEMMEMEVTS   32
 
#define AET_NUMGEMSTALLEVTS   32
 
#define AET_NUMGEMMISCEVTS   32
 
#define AET_NUM_EXT_EVTS   AET_NUMSYSEVTS + AET_NUMGEMEVTS
 
#define AET_GEM_EVT_START   AET_NUMSYSEVTS
 
#define AET_GEM_EVT_END   AET_GEM_EVT_START + AET_NUMGEMEVTS-1
 
#define AET_GEM_MEM_EVT_START   AET_GEM_EVT_START+AET_NUMGEMEVTS
 
#define AET_GEM_MEM_EVT_END   AET_GEM_MEM_EVT_START+AET_NUMGEMMEMEVTS-1
 
#define AET_GEM_STALL_EVT_START   AET_GEM_MEM_EVT_START+AET_NUMGEMMEMEVTS
 
#define AET_GEM_STALL_EVT_END   AET_GEM_STALL_EVT_START+AET_NUMGEMSTALLEVTS-1
 
#define AET_GEM_MISC_EVT_START   AET_GEM_STALL_EVT_START+AET_NUMGEMSTALLEVTS
 
#define AET_GEM_MISC_EVT_END   AET_GEM_MISC_EVT_START+AET_NUMGEMMISCEVTS-1
 
#define AET_EVT_NONE   0xFFFF
 
#define AET_GEM_EVT_EXCEP   (AET_GEM_EVT_START + 64)
 
#define AET_GEM_EVT_NMI   (AET_GEM_EVT_START + 65)
 
#define AET_GEM_CPUINT_4   (AET_GEM_EVT_START + 68)
 
#define AET_GEM_CPUINT_5   (AET_GEM_EVT_START + 69)
 
#define AET_GEM_CPUINT_6   (AET_GEM_EVT_START + 70)
 
#define AET_GEM_CPUINT_7   (AET_GEM_EVT_START + 71)
 
#define AET_GEM_CPUINT_8   (AET_GEM_EVT_START + 72)
 
#define AET_GEM_CPUINT_9   (AET_GEM_EVT_START + 73)
 
#define AET_GEM_CPUINT_10   (AET_GEM_EVT_START + 74)
 
#define AET_GEM_CPUINT_11   (AET_GEM_EVT_START + 75)
 
#define AET_GEM_CPUINT_12   (AET_GEM_EVT_START + 76)
 
#define AET_GEM_CPUINT_13   (AET_GEM_EVT_START + 77)
 
#define AET_GEM_CPUINT_14   (AET_GEM_EVT_START + 78)
 
#define AET_GEM_CPUINT_15   (AET_GEM_EVT_START + 79)
 
#define AET_GEM_IACK   (AET_GEM_EVT_START + 96)
 
#define AET_GEM_EACK   (AET_GEM_EVT_START + 97)
 
#define AET_GEM_IACK_4   (AET_GEM_EVT_START + 100)
 
#define AET_GEM_IACK_5   (AET_GEM_EVT_START + 101)
 
#define AET_GEM_IACK_6   (AET_GEM_EVT_START + 102)
 
#define AET_GEM_IACK_7   (AET_GEM_EVT_START + 103)
 
#define AET_GEM_IACK_8   (AET_GEM_EVT_START + 104)
 
#define AET_GEM_IACK_9   (AET_GEM_EVT_START + 105)
 
#define AET_GEM_IACK_10   (AET_GEM_EVT_START + 106)
 
#define AET_GEM_IACK_11   (AET_GEM_EVT_START + 107)
 
#define AET_GEM_IACK_12   (AET_GEM_EVT_START + 108)
 
#define AET_GEM_IACK_13   (AET_GEM_EVT_START + 109)
 
#define AET_GEM_IACK_14   (AET_GEM_EVT_START + 110)
 
#define AET_GEM_IACK_15   (AET_GEM_EVT_START + 111)
 
#define AET_EVT_MEM_L1D_RH_SRAM_A   (AET_GEM_MEM_EVT_START + 0)
 
#define AET_EVT_MEM_L1D_RH_SRAM_B   (AET_GEM_MEM_EVT_START + 1)
 
#define AET_EVT_MEM_L1D_RH_CACHE_A   (AET_GEM_MEM_EVT_START + 2)
 
#define AET_EVT_MEM_L1D_RH_CACHE_B   (AET_GEM_MEM_EVT_START + 3)
 
#define AET_EVT_MEM_L1D_WH_BUF_NOT_FULL_A   (AET_GEM_MEM_EVT_START + 4)
 
#define AET_EVT_MEM_L1D_WH_BUF_NOT_FULL_B   (AET_GEM_MEM_EVT_START + 5)
 
#define AET_EVT_MEM_L1D_WH_BUF_FULL_A   (AET_GEM_MEM_EVT_START + 6)
 
#define AET_EVT_MEM_L1D_WH_BUF_FULL_B   (AET_GEM_MEM_EVT_START + 7)
 
#define AET_EVT_MEM_L1D_RM_HITS_L2_SRAM_A   (AET_GEM_MEM_EVT_START + 8)
 
#define AET_EVT_MEM_L1D_RM_HITS_L2_SRAM_B   (AET_GEM_MEM_EVT_START + 9)
 
#define AET_EVT_MEM_L1D_RM_HITS_L2_CACHE_A   (AET_GEM_MEM_EVT_START + 10)
 
#define AET_EVT_MEM_L1D_RM_HITS_L2_CACHE_B   (AET_GEM_MEM_EVT_START + 11)
 
#define AET_EVT_MEM_L1D_RM_HITS_EXT_CABLE_A   (AET_GEM_MEM_EVT_START + 12)
 
#define AET_EVT_MEM_L1D_RM_HITS_EXT_CABLE_B   (AET_GEM_MEM_EVT_START + 13)
 
#define AET_EVT_MEM_L1D_RM_HITS_EXT_NON_CABLE_A   (AET_GEM_MEM_EVT_START + 14)
 
#define AET_EVT_MEM_L1D_RM_HITS_EXT_NON_CABLE_B   (AET_GEM_MEM_EVT_START + 15)
 
#define AET_EVT_MEM_L1D_WM_WRT_BUF_NOT_FULL_A   (AET_GEM_MEM_EVT_START + 16)
 
#define AET_EVT_MEM_L1D_WM_WRT_BUF_NOT_FULL_B   (AET_GEM_MEM_EVT_START + 17)
 
#define AET_EVT_MEM_L1D_WM_WRT_BUF_FULL_A   (AET_GEM_MEM_EVT_START + 18)
 
#define AET_EVT_MEM_L1D_WM_WRT_BUF_FULL_B   (AET_GEM_MEM_EVT_START + 19)
 
#define AET_EVT_MEM_L1D_WM_TAG_VIC_WRT_BUF_FLUSH_A   (AET_GEM_MEM_EVT_START + 20)
 
#define AET_EVT_MEM_L1D_WM_TAG_VIC_WRT_BUF_FLUSH_B   (AET_GEM_MEM_EVT_START + 21)
 
#define AET_EVT_MEM_CPU_CPU_BANK_CONFLICT   (AET_GEM_MEM_EVT_START + 22)
 
#define AET_EVT_MEM_CPU_SNOOP_CONFLICT   (AET_GEM_MEM_EVT_START + 23)
 
#define AET_EVT_MEM_CPU_IDMA_EDMA_BANK_CONFLICT   (AET_GEM_MEM_EVT_START + 24)
 
#define AET_EVT_MEM_L1P_RH_SRAM   (AET_GEM_MEM_EVT_START + 25)
 
#define AET_EVT_MEM_L1P_RH_CACHE   (AET_GEM_MEM_EVT_START + 26)
 
#define AET_EVT_MEM_L1P_RM_HITS_L2_SRAM   (AET_GEM_MEM_EVT_START + 27)
 
#define AET_EVT_MEM_L1P_RM_HITS_L2_CACHE   (AET_GEM_MEM_EVT_START + 28)
 
#define AET_EVT_MEM_L1P_RM_HITS_EXT_CABLE   (AET_GEM_MEM_EVT_START + 29)
 
#define AET_EVT_STALL_CPU_PIPELINE   (AET_GEM_STALL_EVT_START + 0)
 
#define AET_EVT_STALL_CROSS_PATH   (AET_GEM_STALL_EVT_START + 1)
 
#define AET_EVT_STALL_BRANCH_TO_SPAN_EXEC_PKT   (AET_GEM_STALL_EVT_START + 2)
 
#define AET_EVT_STALL_EXT_FUNC_IFACE   (AET_GEM_STALL_EVT_START + 3)
 
#define AET_EVT_STALL_MVC   (AET_GEM_STALL_EVT_START + 4)
 
#define AET_EVT_STALL_L1P_OTHER   (AET_GEM_STALL_EVT_START + 5)
 
#define AET_EVT_STALL_L1P_WAIT_STATE   (AET_GEM_STALL_EVT_START + 6)
 
#define AET_EVT_STALL_L1P_MISS   (AET_GEM_STALL_EVT_START + 8)
 
#define AET_EVT_STALL_L1D_OTHER   (AET_GEM_STALL_EVT_START + 10)
 
#define AET_EVT_STALL_L1D_BANK_CONFLICT   (AET_GEM_STALL_EVT_START + 11)
 
#define AET_EVT_STALL_L1D_DMA_CONFLICT   (AET_GEM_STALL_EVT_START + 12)
 
#define AET_EVT_STALL_L1D_WRITE_BUFFER_FULL   (AET_GEM_STALL_EVT_START + 13)
 
#define AET_EVT_STALL_L1D_TAG_UD_BUF_FULL   (AET_GEM_STALL_EVT_START + 14)
 
#define AET_EVT_STALL_L1D_LINE_FILL_B   (AET_GEM_STALL_EVT_START + 15)
 
#define AET_EVT_STALL_L1D_LINE_FILL_A   (AET_GEM_STALL_EVT_START + 16)
 
#define AET_EVT_STALL_L1D_WRT_BUF_FLUSH   (AET_GEM_STALL_EVT_START + 17)
 
#define AET_EVT_STALL_L1D_VICTIM_BUF_FLUSH   (AET_GEM_STALL_EVT_START + 18)
 
#define AET_EVT_STALL_L1D_TAG_UD_BUF_FLUSH   (AET_GEM_STALL_EVT_START + 20)
 
#define AET_EVT_STALL_L1D_SNOOP_CONFLICT   (AET_GEM_STALL_EVT_START + 21)
 
#define AET_EVT_STALL_L1D_COH_OP_CONFLICT   (AET_GEM_STALL_EVT_START + 22)
 
#define AET_EVT_MISC_EXEC_CYCLES   (AET_GEM_MISC_EVT_START + 0)
 
#define AET_EVT_MISC_STALL_PIPELINE   (AET_GEM_MISC_EVT_START + 1)
 
#define AET_EVT_MISC_MARK_INS_0   (AET_GEM_MISC_EVT_START + 2)
 
#define AET_EVT_MISC_MARK_INS_1   (AET_GEM_MISC_EVT_START + 3)
 
#define AET_EVT_MISC_MARK_INS_2   (AET_GEM_MISC_EVT_START + 4)
 
#define AET_EVT_MISC_MARK_INS_3   (AET_GEM_MISC_EVT_START + 5)
 
#define AET_EVT_MISC_ET0   (AET_GEM_MISC_EVT_START + 6)
 
#define AET_EVT_MISC_ET1   (AET_GEM_MISC_EVT_START + 7)
 
#define AET_EVT_MISC_IACK   (AET_GEM_MISC_EVT_START + 8)
 
#define AET_EVT_MISC_AEGEVT0   (AET_GEM_MISC_EVT_START + 9)
 
#define AET_EVT_MISC_AEGEVT1   (AET_GEM_MISC_EVT_START + 10)
 
#define AET_EVT_MISC_AEGEVT2   (AET_GEM_MISC_EVT_START + 11)
 
#define AET_EVT_MISC_AEGEVT3   (AET_GEM_MISC_EVT_START + 12)
 
#define AET_EVT_MISC_AEGEVT4   (AET_GEM_MISC_EVT_START + 13)
 
#define AET_EVT_MISC_AEGEVT5   (AET_GEM_MISC_EVT_START + 14)
 
#define AET_EVT_MISC_AEGEVT6   (AET_GEM_MISC_EVT_START + 15)
 
#define AET_EVT_MISC_AEGEVT7   (AET_GEM_MISC_EVT_START + 16)
 
#define AET_EVT_MISC_EXCEP   (AET_GEM_MISC_EVT_START + 17)
 
#define AET_EVT_MISC_EXC   (AET_GEM_MISC_EVT_START + 18)
 
#define AET_EVT_MISC_NMI   (AET_GEM_MISC_EVT_START + 19)
 
#define AET_EVT_MISC_RTDX_RX_END   (AET_GEM_MISC_EVT_START + 20)
 
#define AET_EVT_MISC_RTDX_TX_END   (AET_GEM_MISC_EVT_START + 21)
 
#define AET_EVT_MISC_DTDMA_END   (AET_GEM_MISC_EVT_START + 22)
 
#define AET_EVT_MISC_L1D_WM_HIT_L2SRAM   (AET_GEM_MISC_EVT_START + 23)
 
#define AET_EVT_MISC_L1D_WM_HIT_L2CACHE   (AET_GEM_MISC_EVT_START + 24)
 
#define AET_EVT_MISC_L1D_WM_HIT_EXT_CABLE   (AET_GEM_MISC_EVT_START + 25)
 
#define AET_EVT_MISC_L1D_WM_HIT_EXT_NONCABLE   (AET_GEM_MISC_EVT_START + 26)
 
#define AET_EVT_MISC_DIRTY_VICTIM_WRITEBACK_L2   (AET_GEM_MISC_EVT_START + 27)
 
#define AET_EVT_MISC_DMA_SNOOP_READ   (AET_GEM_MISC_EVT_START + 28)
 
#define AET_EVT_MISC_DMA_SNOOP_WRITE   (AET_GEM_MISC_EVT_START + 29)
 
#define AET_EVT_MISC_TAG_UD_QUEUED_TAG_UD_BUF   (AET_GEM_MISC_EVT_START + 30)
 
#define AET_EVT_MISC_DIRTY_VICTIM_WRITEBACK_L1D   (AET_GEM_MISC_EVT_START + 31)
 

Typedefs

typedef uint16_t AET_traceTrigger
 
typedef uint8_t AET_jobIndex
 Type returned in the data parameters structures which indicates which entry in the jobs database that the job programmed occupies. More...
 

Enumerations

enum  AET_error {
  AET_SOK = 0, AET_FNOCLAIM, AET_FNORELEASE, AET_FNOTENABLED,
  AET_FNOTAVAIL = 10, AET_FNOTAVAILACMP, AET_FNOTAVAILAEG, AET_FNOTAVAILCNT,
  AET_FNOTAVAILDCMP, AET_FNOTAVAILSM, AET_FNOTAVAILTB1, AET_FNOTAVAILTB3,
  AET_FNOTAVAILTB7, AET_FNOTCLAIMED, AET_FNOCOUNTER, AET_FNOJOBIMPLEMENTED,
  AET_FMODENOTSUPPORTED, AET_FJOBNOTPROGRAMMED, AET_FINVALIDCNTMODE, AET_FCNTNOTCONFIG,
  AET_FCNTCONFIGINVALID, AET_FCNTNUMBERINVALID, AET_FINVALIDTRIGBUILDER, AET_FINVALIDTRIGMASK,
  AET_FINVALIDREADWRITETYPE, AET_FJOBNOTSUPPORTED, AET_FNOTAVAILAEGMUX, AET_FSIGNALOUTOFRANGE,
  AET_FINVALIDTRACEOPT, AET_FNOTPCNTLCLAIM, AET_FINVALIDSIGVAL, AET_FNOEVENTSPECIFIED,
  AET_FINVALIDEVTCOMBO, AET_FINVALIDEVTCLASS, AET_FINVALIDEVTSPEC, AET_FNOAEGUSERS,
  AET_NUM_FAIL_CODES
}
 
enum  AET_jobType { ,
  AET_JOB_START_STOP_TRACE_ON_PC, AET_JOB_TRACE_IN_PC_RANGE, AET_JOB_TRACE_IN_DATA_RANGE, AET_JOB_TRACE_ON_EVENTS,
  AET_JOB_TRACE_BETWEEN_SEQ_EVENTS, AET_JOB_TRIG_ON_PC, AET_JOB_TRIG_ON_PC_RANGE, AET_JOB_TRIG_ON_DATA,
  AET_JOB_TRIG_ON_DATA_RANGE, AET_JOB_TRIG_ON_DATA_WITH_VALUE, AET_JOB_TRIG_ON_DATA_RANGE_WITH_VALUE, AET_JOB_TRIG_ON_TIMER_ZERO,
  AET_JOB_TRIG_ON_EVENTS, AET_JOB_ADD_TRIGGER, AET_JOB_INTR_ON_STALL, AET_JOB_COUNT_STALLS,
  AET_JOB_INTR_STALL_DURATION, AET_JOB_FUNC_PROFILE, AET_JOB_TIMER_START_ON_EVT, AET_JOB_TIMER_STOP_ON_EVT,
  AET_JOB_WATERMARK_START_END
}
 
enum  AET_triggerType {
  AET_TRIG_NONE, AET_TRIG_HALT_CPU, AET_TRIG_AINT, AET_TRIG_WM0START,
  AET_TRIG_WM0STOP, AET_TRIG_WM1START, AET_TRIG_WM1STOP, AET_TRIG_CNT0_START,
  AET_TRIG_CNT0_STOP, AET_TRIG_CNT1_START, AET_TRIG_CNT1_STOP, AET_TRIG_ET0,
  AET_TRIG_ET1, AET_TRIG_TRACE_TRIGGER, AET_TRIG_TRACE_END, AET_TRIG_TRACE_PCSTOP,
  AET_TRIG_TRACE_TIMINGSTOP, AET_TRIG_TRACE_DATASTOP, AET_TRIG_STATE_0_TO_1, AET_TRIG_STATE_0_TO_2,
  AET_TRIG_STATE_0_TO_3, AET_TRIG_STATE_1_TO_0, AET_TRIG_STATE_1_TO_2, AET_TRIG_STATE_1_TO_3,
  AET_TRIG_STATE_2_TO_0, AET_TRIG_STATE_2_TO_1, AET_TRIG_STATE_2_TO_3, AET_TRIG_STATE_3_TO_0,
  AET_TRIG_STATE_3_TO_1, AET_TRIG_STATE_3_TO_2
}
 
enum  AET_refSize { AET_REF_SIZE_BYTE = 0x0, AET_REF_SIZE_HALFWORD = 0x1, AET_REF_SIZE_WORD = 0x2, AET_REF_SIZE_DOUBLEWORD = 0x3 }
 
enum  AET_watchReadWrite { AET_WATCH_WRITE = 0, AET_WATCH_READ = 1 }
 
enum  AET_counterConfig {
  AET_COUNTER_TRAD_COUNTER = 0, AET_COUNTER_TRAD_EVENT, AET_COUNTER_TRAD_CONTINUOUS, AET_COUNTER_TRAD_ONESHOT,
  AET_COUNTER_MINWM_COUNTER, AET_COUNTER_MINWM_EVENT, AET_COUNTER_MINWM_CONTINUOUS, AET_COUNTER_MINWM_ONESHOT,
  AET_COUNTER_MAXWM_COUNTER, AET_COUNTER_MAXWM_EVENT, AET_COUNTER_MAXWM_CONTINUOUS, AET_COUNTER_MAXWM_ONESHOT,
  AET_COUNTER_NOTCONFIGURED, AET_NUM_COUNTER_CONFIGS
}
 
enum  AET_traceCacheProfilingMode {
  AET_TRACE_CACHE_PROFILING_NORMAL = 0, AET_TRACE_CACHE_PROFILING_EXTERNAL, AET_TRACE_CACHE_PROFILING_PREDICATION, AET_TRACE_CACHE_PROFILING_RSVD_3,
  AET_TRACE_CACHE_PROFILING_GENERIC, AET_TRACE_CACHE_PROFILING_PRIORITIZED, AET_TRACE_CACHE_PROFILING_RSVD_6, AET_TRACE_CACHE_PROFILING_RSVD_7
}
 
enum  AET_counters { AET_CNT_0 = 0, AET_CNT_1 = 1 }
 
enum  AET_watermarkAction { AET_WATERMARK_START = 0, AET_WATERMARK_STOP }
 
enum  AET_traceActive
 
enum  AET_triggerLogicOrientation
 
enum  AET_stateQual
 

Functions

AET_error AET_claim (void)
 Claims the AET unit for use by the application. More...
 
AET_error AET_configCounter (AET_counterConfigParams *params)
 Configures the Counters used with AET. More...
 
AET_error AET_clearCounters ()
 Disables the AET jobs that have been programmed. More...
 
AET_error AET_disable (void)
 Clears all existing Counter configurations.
 
AET_error AET_enable (void)
 Enables the AET jobs that have been programmed. More...
 
void AET_init (void)
 Initializes the application. More...
 
int32_t AET_readCounter (AET_counters)
 Read counter value. More...
 
AET_error AET_release (void)
 Release ownership of the AET resources. More...
 
AET_error AET_releaseJob (AET_jobIndex jobIndex)
 Clear an AET job. More...
 
AET_error AET_setupJob (AET_jobType jobType, AET_jobParams *params)
 Programs specified AET jobs. More...
 
AET_error AET_enableEmuPins (void)
 Enables EMU0 and EMU1 pins for ET0/1 input/output. More...
 
AET_error AET_disableEmuPins (void)
 Disables EMU0 and EMU1 pins for ET0/1 input/output. More...
 

Detailed Description

Application Access to Advanced Event Triggering Hardware.