84 lines
2.9 KiB
C
84 lines
2.9 KiB
C
|
|
/******************************************************************************
|
||
|
|
*
|
||
|
|
* Freescale Semiconductor Inc.
|
||
|
|
* (c) Copyright 2004-2006 Freescale Semiconductor, Inc.
|
||
|
|
* (c) Copyright 2001-2004 Motorola, Inc.
|
||
|
|
* ALL RIGHTS RESERVED.
|
||
|
|
*
|
||
|
|
****************************************************************************//*!
|
||
|
|
*
|
||
|
|
* @file PE_freemaster_rec.h
|
||
|
|
*
|
||
|
|
* @brief FreeMASTER Recorder implementation.
|
||
|
|
*
|
||
|
|
* @version 1.0.2.0
|
||
|
|
*
|
||
|
|
* @date Aug-15-2007
|
||
|
|
*
|
||
|
|
*******************************************************************************/
|
||
|
|
|
||
|
|
#ifndef __FREEMASTER_REC_H
|
||
|
|
#define __FREEMASTER_REC_H
|
||
|
|
|
||
|
|
#ifndef __FREEMASTER_H
|
||
|
|
#error Please include PE_freemaster_rec.h after PE_freemaster.h main header file.
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#include "PE_freemaster.h"
|
||
|
|
#include "PE_freemaster_private.h"
|
||
|
|
|
||
|
|
/***********************************
|
||
|
|
* global recorder types
|
||
|
|
***********************************/
|
||
|
|
|
||
|
|
/* recorder runtime flags */
|
||
|
|
typedef volatile union
|
||
|
|
{
|
||
|
|
FMSTR_FLAGS all;
|
||
|
|
|
||
|
|
struct
|
||
|
|
{
|
||
|
|
unsigned bIsConfigured : 1; /* recorder is configured */
|
||
|
|
unsigned bIsRunning : 1; /* recorder is running */
|
||
|
|
unsigned bIsStopping : 1; /* trigger activated, sample countdown */
|
||
|
|
unsigned bInvirginCycle : 1; /* virgin cycle of the circular buffer in-progress */
|
||
|
|
unsigned bTrgCrossActive : 1; /* trigger trheshold was crossed */
|
||
|
|
} flg;
|
||
|
|
|
||
|
|
} FMSTR_REC_FLAGS;
|
||
|
|
|
||
|
|
/* the same flags for optimized asm access (see fast recorder) */
|
||
|
|
#if defined(FMSTR_PLATFORM_56F8xxx) /* flag allocation tested on 56f8xxx only */
|
||
|
|
#define FMSTR_REC_FLAG_bIsConfigured 0x01
|
||
|
|
#define FMSTR_REC_FLAG_bIsRunning 0x02
|
||
|
|
#define FMSTR_REC_FLAG_bIsStopping 0x04
|
||
|
|
#define FMSTR_REC_FLAG_bInvirginCycle 0x08
|
||
|
|
#define FMSTR_REC_FLAG_bTrgCrossActive 0x10
|
||
|
|
#endif
|
||
|
|
|
||
|
|
/***********************************
|
||
|
|
* global recorder variables
|
||
|
|
***********************************/
|
||
|
|
|
||
|
|
/* configuration variables */
|
||
|
|
extern FMSTR_U16 pcm_wRecTotalSmps; /* number of samples to measure */
|
||
|
|
extern FMSTR_U16 pcm_wRecPostTrigger; /* number of post-trigger samples to keep */
|
||
|
|
extern FMSTR_U8 pcm_nRecTriggerMode; /* triger mode (0 = disabled, 1 = _/, 2 = \_) */
|
||
|
|
extern FMSTR_U16 pcm_wRecTimeDiv; /* divisor of recorder "clock" */
|
||
|
|
|
||
|
|
extern FMSTR_U8 pcm_nRecVarCount; /* number of active recorder variables */
|
||
|
|
extern FMSTR_ADDR pcm_pRecVarAddr[FMSTR_MAX_SCOPE_VARS]; /* addresses of recorded variables */
|
||
|
|
extern FMSTR_SIZE8 pcm_pRecVarSize[FMSTR_MAX_SCOPE_VARS]; /* sizes of recorded variables */
|
||
|
|
|
||
|
|
/* runtime variables */
|
||
|
|
extern FMSTR_U16 pcm_wRecBuffStartIx; /* first sample index */
|
||
|
|
|
||
|
|
extern FMSTR_ADDR pcm_dwRecWritePtr; /* write pointer in recorder buffer */
|
||
|
|
extern FMSTR_ADDR pcm_dwRecEndBuffPtr; /* pointer to end of active recorder buffer */
|
||
|
|
extern FMSTR_U16 pcm_wRecTimeDivCtr; /* recorder "clock" divisor counter */
|
||
|
|
extern FMSTR_U16 pcm_wStoprecCountDown; /* post-trigger countdown counter */
|
||
|
|
|
||
|
|
extern FMSTR_REC_FLAGS pcm_wRecFlags;
|
||
|
|
|
||
|
|
#endif /* __FREEMASTER_REC_H */
|