531 lines
15 KiB
C
531 lines
15 KiB
C
|
/******************************************************************************
|
||
|
*
|
||
|
* Freescale Semiconductor Inc.
|
||
|
* (c) Copyright 2004-2007 Freescale Semiconductor, Inc.
|
||
|
* (c) Copyright 2001-2004 Motorola, Inc.
|
||
|
* ALL RIGHTS RESERVED.
|
||
|
*
|
||
|
****************************************************************************//*!
|
||
|
*
|
||
|
* @file PE_freemaster_private.h
|
||
|
*
|
||
|
* @brief FreeMASTER driver private declarations, used internally by the driver
|
||
|
*
|
||
|
* @version 1.0.21.0
|
||
|
*
|
||
|
* @date Oct-22-2007
|
||
|
*
|
||
|
*******************************************************************************/
|
||
|
|
||
|
#ifndef __FREEMASTER_PRIVATE_H
|
||
|
#define __FREEMASTER_PRIVATE_H
|
||
|
|
||
|
#ifndef __FREEMASTER_H
|
||
|
#error Please include the PE_freemaster.h master header file before the PE_freemaster_private.h
|
||
|
#endif
|
||
|
|
||
|
#include "PE_freemaster_cfg.h"
|
||
|
|
||
|
/******************************************************************************
|
||
|
* Platform-dependent types, macros and functions
|
||
|
******************************************************************************/
|
||
|
|
||
|
#undef FMSTR_PLATFORM
|
||
|
|
||
|
/* platform macro FMSTR_PLATFORM_xxxxxxx should be defined */
|
||
|
/* as "non-zero" in the "PE_freemaster.h" file */
|
||
|
|
||
|
#if defined(FMSTR_PLATFORM_56F8xx)
|
||
|
#if FMSTR_PLATFORM_56F8xx
|
||
|
#include "PE_freemaster_56F8xx.h"
|
||
|
#define FMSTR_PLATFORM 56F8xx
|
||
|
#else
|
||
|
#undef FMSTR_PLATFORM_56F8xx
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#if defined(FMSTR_PLATFORM_56F8xxx)
|
||
|
#if FMSTR_PLATFORM_56F8xxx
|
||
|
#include "PE_freemaster_56F8xxx.h"
|
||
|
#define FMSTR_PLATFORM 56F8xxx
|
||
|
#else
|
||
|
#undef FMSTR_PLATFORM_56F8xxx
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#if defined(FMSTR_PLATFORM_HC12)
|
||
|
#if FMSTR_PLATFORM_HC12
|
||
|
#include "PE_freemaster_HC12.h"
|
||
|
#define FMSTR_PLATFORM HC12
|
||
|
#else
|
||
|
#undef FMSTR_PLATFORM_HC12
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#if defined(FMSTR_PLATFORM_HC08)
|
||
|
#if FMSTR_PLATFORM_HC08
|
||
|
#include "PE_freemaster_HC08.h"
|
||
|
#define FMSTR_PLATFORM HC08
|
||
|
#else
|
||
|
#undef FMSTR_PLATFORM_HC08
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#if defined(FMSTR_PLATFORM_MPC55xx)
|
||
|
#if FMSTR_PLATFORM_MPC55xx
|
||
|
#include "PE_freemaster_MPC55xx.h"
|
||
|
#define FMSTR_PLATFORM MPC55xx
|
||
|
#else
|
||
|
#undef FMSTR_PLATFORM_MPC55xx
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#if defined(FMSTR_PLATFORM_MPC5xx)
|
||
|
#if FMSTR_PLATFORM_MPC5xx
|
||
|
#include "PE_freemaster_MPC5xx.h"
|
||
|
#define FMSTR_PLATFORM MPC5xx
|
||
|
#else
|
||
|
#undef FMSTR_PLATFORM_MPC5xx
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#if defined(FMSTR_PLATFORM_MCF51xx)
|
||
|
#if FMSTR_PLATFORM_MCF51xx
|
||
|
#include "PE_freemaster_MCF51xx.h"
|
||
|
#define FMSTR_PLATFORM MCF51xx
|
||
|
#else
|
||
|
#undef FMSTR_PLATFORM_MCF51xx
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#if defined(FMSTR_PLATFORM_MCF52xx)
|
||
|
#if FMSTR_PLATFORM_MCF52xx
|
||
|
#include "PE_freemaster_MCF52xx.h"
|
||
|
#define FMSTR_PLATFORM MCF52xx
|
||
|
#else
|
||
|
#undef FMSTR_PLATFORM_MCF52xx
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#ifndef FMSTR_PLATFORM
|
||
|
#error Unknown FreeMASTER driver platform
|
||
|
#endif
|
||
|
|
||
|
/******************************************************************************
|
||
|
* NULL needed
|
||
|
******************************************************************************/
|
||
|
|
||
|
#ifndef NULL
|
||
|
#define NULL ((void *) 0)
|
||
|
#endif
|
||
|
|
||
|
/******************************************************************************
|
||
|
* Boolean values
|
||
|
******************************************************************************/
|
||
|
|
||
|
#ifndef FMSTR_TRUE
|
||
|
#define FMSTR_TRUE (1U)
|
||
|
#endif
|
||
|
|
||
|
#ifndef FMSTR_FALSE
|
||
|
#define FMSTR_FALSE (0U)
|
||
|
#endif
|
||
|
|
||
|
/******************************************************************************
|
||
|
* Global non-API functions (used internally in FreeMASTER driver)
|
||
|
******************************************************************************/
|
||
|
|
||
|
void FMSTR_InitSerial(void);
|
||
|
void FMSTR_ProtocolDecoder(FMSTR_BPTR pMessageIO);
|
||
|
void FMSTR_SendResponse(FMSTR_BPTR pMessageIO, FMSTR_SIZE8 nLength);
|
||
|
void FMSTR_ProcessSCI(void);
|
||
|
void FMSTR_ProcessJTAG(void);
|
||
|
|
||
|
FMSTR_BPTR FMSTR_GetBoardInfo(FMSTR_BPTR pMessageIO);
|
||
|
|
||
|
FMSTR_BPTR FMSTR_ReadMem(FMSTR_BPTR pMessageIO);
|
||
|
FMSTR_BPTR FMSTR_ReadVar(FMSTR_BPTR pMessageIO, FMSTR_SIZE8 nSize);
|
||
|
FMSTR_BPTR FMSTR_WriteMem(FMSTR_BPTR pMessageIO);
|
||
|
FMSTR_BPTR FMSTR_WriteVar(FMSTR_BPTR pMessageIO, FMSTR_SIZE8 nSize);
|
||
|
FMSTR_BPTR FMSTR_WriteVarMask(FMSTR_BPTR pMessageIO, FMSTR_SIZE8 nSize);
|
||
|
FMSTR_BPTR FMSTR_WriteMemMask(FMSTR_BPTR pMessageIO);
|
||
|
|
||
|
void FMSTR_InitAppCmds(void);
|
||
|
FMSTR_BPTR FMSTR_StoreAppCmd(FMSTR_BPTR pMessageIO);
|
||
|
FMSTR_BPTR FMSTR_GetAppCmdStatus(FMSTR_BPTR pMessageIO);
|
||
|
FMSTR_BPTR FMSTR_GetAppCmdRespData(FMSTR_BPTR pMessageIO);
|
||
|
|
||
|
void FMSTR_InitScope(void);
|
||
|
FMSTR_BPTR FMSTR_SetUpScope(FMSTR_BPTR pMessageIO);
|
||
|
FMSTR_BPTR FMSTR_ReadScope(FMSTR_BPTR pMessageIO);
|
||
|
|
||
|
void FMSTR_InitRec(void);
|
||
|
FMSTR_BPTR FMSTR_SetUpRec(FMSTR_BPTR pMessageIO);
|
||
|
FMSTR_BPTR FMSTR_StartRec(FMSTR_BPTR pMessageIO);
|
||
|
FMSTR_BPTR FMSTR_StopRec(FMSTR_BPTR pMessageIO);
|
||
|
FMSTR_BPTR FMSTR_GetRecStatus(FMSTR_BPTR pMessageIO);
|
||
|
FMSTR_BPTR FMSTR_GetRecBuff(FMSTR_BPTR pMessageIO);
|
||
|
FMSTR_BOOL FMSTR_IsInRecBuffer(FMSTR_ADDR nAddr, FMSTR_SIZE8 nSize);
|
||
|
FMSTR_SIZE FMSTR_GetRecBuffSize(void);
|
||
|
void FMSTR_AbortRec(void);
|
||
|
|
||
|
void FMSTR_InitTsa(void);
|
||
|
FMSTR_BPTR FMSTR_GetTsaInfo(FMSTR_BPTR pMessageIO);
|
||
|
FMSTR_BPTR FMSTR_GetStringLen(FMSTR_BPTR pMessageIO);
|
||
|
FMSTR_BOOL FMSTR_CheckTsaSpace(FMSTR_ADDR nAddr, FMSTR_SIZE8 nSize, FMSTR_BOOL bWriteAccess);
|
||
|
FMSTR_U16 FMSTR_StrLen(FMSTR_ADDR nAddr);
|
||
|
|
||
|
void FMSTR_InitSfio(void);
|
||
|
FMSTR_BPTR FMSTR_SfioFrame(FMSTR_BPTR pMessageIO);
|
||
|
FMSTR_BPTR FMSTR_SfioGetResp(FMSTR_BPTR pMessageIO);
|
||
|
|
||
|
void FMSTR_InitPipes(void);
|
||
|
FMSTR_BPTR FMSTR_PipeFrame(FMSTR_BPTR pMessageIO);
|
||
|
|
||
|
/****************************************************************************************
|
||
|
* Potentialy unused variable declaration
|
||
|
*****************************************************************************************/
|
||
|
|
||
|
#ifdef _lint
|
||
|
#define FMSTR_UNUSED(sym) /*lint -esym(715,sym) -esym(818,sym) -esym(529,sym) -e{960} */
|
||
|
#else
|
||
|
#define FMSTR_UNUSED(sym) ((sym),0)
|
||
|
#endif
|
||
|
|
||
|
/******************************************************************************
|
||
|
* Configuration check
|
||
|
******************************************************************************/
|
||
|
|
||
|
/* polling mode as default when nothing selected */
|
||
|
#if !defined(FMSTR_POLL_DRIVEN) && !defined(FMSTR_LONG_INTR) && !defined(FMSTR_SHORT_INTR)
|
||
|
#define FMSTR_LONG_INTR 0
|
||
|
#define FMSTR_SHORT_INTR 0
|
||
|
#define FMSTR_POLL_DRIVEN 1
|
||
|
#endif
|
||
|
|
||
|
/* otherwise, "undefined" means false for all three options */
|
||
|
#ifndef FMSTR_POLL_DRIVEN
|
||
|
#define FMSTR_POLL_DRIVEN 0
|
||
|
#endif
|
||
|
#ifndef FMSTR_LONG_INTR
|
||
|
#define FMSTR_LONG_INTR 0
|
||
|
#endif
|
||
|
#ifndef FMSTR_SHORT_INTR
|
||
|
#define FMSTR_SHORT_INTR 0
|
||
|
#endif
|
||
|
|
||
|
#if (FMSTR_LONG_INTR && (FMSTR_SHORT_INTR || FMSTR_POLL_DRIVEN)) || \
|
||
|
(FMSTR_SHORT_INTR && (FMSTR_LONG_INTR || FMSTR_POLL_DRIVEN)) || \
|
||
|
(FMSTR_POLL_DRIVEN && (FMSTR_LONG_INTR || FMSTR_SHORT_INTR)) || \
|
||
|
!(FMSTR_POLL_DRIVEN || FMSTR_LONG_INTR || FMSTR_SHORT_INTR)
|
||
|
/* mismatch in interrupt modes, only one can be selected */
|
||
|
#error You have to enable exctly one of FMSTR_LONG_INTR or FMSTR_SHORT_INTR or FMSTR_POLL_DRIVEN
|
||
|
#endif
|
||
|
|
||
|
#if FMSTR_SHORT_INTR
|
||
|
/* default short-interrupt FIFO size */
|
||
|
#ifndef FMSTR_COMM_RQUEUE_SIZE
|
||
|
#define FMSTR_COMM_RQUEUE_SIZE 32
|
||
|
#endif
|
||
|
|
||
|
#if !FMSTR_COMM_RQUEUE_SIZE
|
||
|
#undef FMSTR_COMM_RQUEUE_SIZE
|
||
|
#define FMSTR_COMM_RQUEUE_SIZE 32
|
||
|
#endif
|
||
|
|
||
|
#if FMSTR_COMM_RQUEUE_SIZE < 1
|
||
|
#error Error in FMSTR_COMM_RQUEUE_SIZE value.
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/* disable both JTAG and SCI by default */
|
||
|
/* one of these is typically already enabled in PE_freemaster_cfg.h */
|
||
|
#ifndef FMSTR_USE_JTAG
|
||
|
#define FMSTR_USE_JTAG 0
|
||
|
#endif
|
||
|
#ifndef FMSTR_USE_SCI
|
||
|
#if defined(FMSTR_SCI_BASE) && !FMSTR_USE_JTAG
|
||
|
#define FMSTR_USE_SCI 1
|
||
|
#else
|
||
|
#define FMSTR_USE_SCI 0
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/* SCI does not have a transmission double buffer (kind of queue) */
|
||
|
/* (if not specified differently in platform-dependent header file) */
|
||
|
#if FMSTR_USE_SCI
|
||
|
#ifndef FMSTR_SCI_HAS_TXQUEUE
|
||
|
#define FMSTR_SCI_HAS_TXQUEUE 0
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/* read memory commands are ENABLED by default */
|
||
|
#ifndef FMSTR_USE_READMEM
|
||
|
#define FMSTR_USE_READMEM 1
|
||
|
#endif
|
||
|
#ifndef FMSTR_USE_WRITEMEM
|
||
|
#define FMSTR_USE_WRITEMEM 1
|
||
|
#endif
|
||
|
#ifndef FMSTR_USE_WRITEMEMMASK
|
||
|
#define FMSTR_USE_WRITEMEMMASK 1
|
||
|
#endif
|
||
|
|
||
|
/* read variable commands are DISABLED by default */
|
||
|
#ifndef FMSTR_USE_READVAR
|
||
|
#define FMSTR_USE_READVAR 0
|
||
|
#endif
|
||
|
#ifndef FMSTR_USE_WRITEVAR
|
||
|
#define FMSTR_USE_WRITEVAR 0
|
||
|
#endif
|
||
|
#ifndef FMSTR_USE_WRITEVARMASK
|
||
|
#define FMSTR_USE_WRITEVARMASK 0
|
||
|
#endif
|
||
|
|
||
|
/* default scope settings */
|
||
|
#ifndef FMSTR_USE_SCOPE
|
||
|
#define FMSTR_USE_SCOPE 0
|
||
|
#endif
|
||
|
|
||
|
#ifndef FMSTR_MAX_SCOPE_VARS
|
||
|
#define FMSTR_MAX_SCOPE_VARS 8
|
||
|
#endif
|
||
|
|
||
|
/* check scope settings */
|
||
|
#if FMSTR_USE_SCOPE
|
||
|
#if FMSTR_MAX_SCOPE_VARS > 8 || FMSTR_MAX_SCOPE_VARS < 2
|
||
|
#error Error in FMSTR_MAX_SCOPE_VARS value. Use a value in range 2..8
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/* default recorder settings */
|
||
|
#ifndef FMSTR_USE_RECORDER
|
||
|
#define FMSTR_USE_RECORDER 0
|
||
|
#endif
|
||
|
|
||
|
#ifndef FMSTR_MAX_REC_VARS
|
||
|
#define FMSTR_MAX_REC_VARS 8
|
||
|
#endif
|
||
|
|
||
|
#ifndef FMSTR_REC_FARBUFF
|
||
|
#define FMSTR_REC_FARBUFF 0
|
||
|
#endif
|
||
|
|
||
|
#ifndef FMSTR_REC_OWNBUFF
|
||
|
#define FMSTR_REC_OWNBUFF 0
|
||
|
#endif
|
||
|
|
||
|
#ifndef FMSTR_USE_FASTREC
|
||
|
#define FMSTR_USE_FASTREC 0
|
||
|
#endif
|
||
|
|
||
|
/* check recorder settings */
|
||
|
#if FMSTR_USE_RECORDER || FMSTR_USE_FASTREC
|
||
|
#if FMSTR_MAX_REC_VARS > 8 || FMSTR_MAX_REC_VARS < 2
|
||
|
#error Error in FMSTR_MAX_REC_VARS value. Use a value in range 2..8
|
||
|
#endif
|
||
|
|
||
|
/* 0 means recorder time base is "unknown" */
|
||
|
#ifndef FMSTR_REC_TIMEBASE
|
||
|
#define FMSTR_REC_TIMEBASE 0
|
||
|
#endif
|
||
|
|
||
|
/* default recorder buffer size is 256 */
|
||
|
#ifndef FMSTR_REC_BUFF_SIZE
|
||
|
#define FMSTR_REC_BUFF_SIZE 256
|
||
|
#endif
|
||
|
|
||
|
#if !FMSTR_USE_READMEM
|
||
|
#error Recorder needs the FMSTR_USE_READMEM feature
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/* fast recorder requires its own allocation of recorder buffer */
|
||
|
#if FMSTR_USE_FASTREC
|
||
|
#if FMSTR_REC_OWNBUFF
|
||
|
#error Fast recorder requires its own buffer allocation
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/* default app.cmds settings */
|
||
|
#ifndef FMSTR_USE_APPCMD
|
||
|
#define FMSTR_USE_APPCMD 0
|
||
|
#endif
|
||
|
|
||
|
#ifndef FMSTR_APPCMD_BUFF_SIZE
|
||
|
#define FMSTR_APPCMD_BUFF_SIZE 16
|
||
|
#endif
|
||
|
|
||
|
#ifndef FMSTR_MAX_APPCMD_CALLS
|
||
|
#define FMSTR_MAX_APPCMD_CALLS 0
|
||
|
#endif
|
||
|
|
||
|
/* TSA configuration check */
|
||
|
#ifndef FMSTR_USE_TSA
|
||
|
#define FMSTR_USE_TSA 0
|
||
|
#endif
|
||
|
|
||
|
#ifndef FMSTR_USE_TSA_SAFETY
|
||
|
#define FMSTR_USE_TSA_SAFETY 0
|
||
|
#endif
|
||
|
|
||
|
#if FMSTR_USE_TSA
|
||
|
#if !FMSTR_USE_READMEM
|
||
|
#error TSA needs the FMSTR_USE_READMEM feature
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/* SFIO not used by default */
|
||
|
#ifndef FMSTR_USE_SFIO
|
||
|
#define FMSTR_USE_SFIO 0
|
||
|
#endif
|
||
|
|
||
|
/* check SFIO settings */
|
||
|
#if FMSTR_USE_SFIO
|
||
|
|
||
|
/* The SFIO configuration files (sfio.h and optionally also the sfio_cfg.h) exist
|
||
|
in project to define SFIO parameters. */
|
||
|
#include "sfio.h"
|
||
|
|
||
|
#ifndef SFIO_MAX_INPUT_DATA_LENGTH
|
||
|
#error SFIO_MAX_INPUT_DATA_LENGTH was not defined in sfio_cfg.h
|
||
|
#endif
|
||
|
#ifndef SFIO_MAX_OUTPUT_DATA_LENGTH
|
||
|
#error SFIO_MAX_OUTPUT_DATA_LENGTH was not defined in sfio_cfg.h
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
/* use transport "pipe" functionality */
|
||
|
#ifndef FMSTR_USE_PIPES
|
||
|
#define FMSTR_USE_PIPES 0
|
||
|
#endif
|
||
|
|
||
|
#if FMSTR_USE_PIPES
|
||
|
|
||
|
#warning FreeMASTER Pipes feature is still in a prototype/experimental version.
|
||
|
|
||
|
#ifndef FMSTR_MAX_PIPES_COUNT
|
||
|
#define FMSTR_MAX_PIPES_COUNT 1
|
||
|
#endif
|
||
|
|
||
|
/* at least one */
|
||
|
#if FMSTR_MAX_PIPES_COUNT < 1
|
||
|
#warning No sense to allocate zero-count pipes. Disabling pipes.
|
||
|
#undef FMSTR_USE_PIPES
|
||
|
#define FMSTR_USE_PIPES 0
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
/* what kind of board information structure will be sent? */
|
||
|
#ifndef FMSTR_USE_BRIEFINFO
|
||
|
#if FMSTR_USE_RECORDER
|
||
|
/* recorder requires full info */
|
||
|
#define FMSTR_USE_BRIEFINFO 0
|
||
|
#else
|
||
|
/* otherwise no brief info is enough */
|
||
|
#define FMSTR_USE_BRIEFINFO 1
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/* check what kind of board info is sent */
|
||
|
#if FMSTR_USE_BRIEFINFO
|
||
|
#if FMSTR_USE_RECORDER
|
||
|
#warning The full information structure must be used when recorder is to be used
|
||
|
#undef FMSTR_USE_BRIEFINFO
|
||
|
#define FMSTR_USE_BRIEFINFO 1
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/* automatic buffer size by default */
|
||
|
#ifndef FMSTR_COMM_BUFFER_SIZE
|
||
|
#define FMSTR_COMM_BUFFER_SIZE 0
|
||
|
#endif
|
||
|
|
||
|
/* check minimal buffer size required for all enabled features */
|
||
|
#if FMSTR_COMM_BUFFER_SIZE
|
||
|
|
||
|
/* basic commands (getinfobrief, write/read memory etc.) */
|
||
|
#if FMSTR_USE_BRIEFINFO && FMSTR_COMM_BUFFER_SIZE < 11
|
||
|
#error FMSTR_COMM_BUFFER_SIZE set too small for basic FreeMASTER commands (11 bytes)
|
||
|
#endif
|
||
|
|
||
|
/* full info required */
|
||
|
#if !(FMSTR_USE_BRIEFINFO) && FMSTR_COMM_BUFFER_SIZE < 35
|
||
|
#error FMSTR_COMM_BUFFER_SIZE set too small for GETINFO command (size 35)
|
||
|
#endif
|
||
|
|
||
|
/* application commands */
|
||
|
#if FMSTR_USE_APPCMD && FMSTR_COMM_BUFFER_SIZE < ((FMSTR_APPCMD_BUFF_SIZE)+1)
|
||
|
#error FMSTR_COMM_BUFFER_SIZE set too small for SENDAPPCMD command (size FMSTR_APPCMD_BUFF_SIZE+1)
|
||
|
#endif
|
||
|
|
||
|
/* configuring scope (EX) */
|
||
|
#if FMSTR_USE_SCOPE && FMSTR_COMM_BUFFER_SIZE < ((FMSTR_MAX_SCOPE_VARS)*5+1)
|
||
|
#error FMSTR_COMM_BUFFER_SIZE set too small for SETUPSCOPEEX command (size FMSTR_MAX_SCOPE_VARS*5+1)
|
||
|
#endif
|
||
|
|
||
|
/* configuring recorder (EX) */
|
||
|
#if FMSTR_USE_RECORDER && FMSTR_COMM_BUFFER_SIZE < ((FMSTR_MAX_REC_VARS)*5+18)
|
||
|
#error FMSTR_COMM_BUFFER_SIZE set too small for SETUPRECEX command (size FMSTR_MAX_REC_VARS*5+18)
|
||
|
#endif
|
||
|
|
||
|
/* SFIO encapsulation */
|
||
|
#if FMSTR_USE_SFIO
|
||
|
#if (FMSTR_COMM_BUFFER_SIZE < ((SFIO_MAX_INPUT_DATA_LENGTH)+1)) || \
|
||
|
(FMSTR_COMM_BUFFER_SIZE < ((SFIO_MAX_OUTPUT_DATA_LENGTH)+1))
|
||
|
#error FMSTR_COMM_BUFFER_SIZE set too small for SFIO encapsulation (see SFIO_MAX_xxx_DATA_LENGTH)
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/* automatic: determine required buffer size based on features enabled */
|
||
|
#else
|
||
|
/* smallest for basic commands (getinfobrief, write/read memory etc.) */
|
||
|
#undef FMSTR_COMM_BUFFER_SIZE
|
||
|
#define FMSTR_COMM_BUFFER_SIZE 11
|
||
|
|
||
|
/* full info required */
|
||
|
#if !(FMSTR_USE_BRIEFINFO) && FMSTR_COMM_BUFFER_SIZE < 35
|
||
|
#undef FMSTR_COMM_BUFFER_SIZE
|
||
|
#define FMSTR_COMM_BUFFER_SIZE 35
|
||
|
#endif
|
||
|
|
||
|
/* using application commands (must accomodate maximal app.cmd data length) */
|
||
|
#if FMSTR_USE_APPCMD && FMSTR_COMM_BUFFER_SIZE < ((FMSTR_APPCMD_BUFF_SIZE)+1)
|
||
|
#undef FMSTR_COMM_BUFFER_SIZE
|
||
|
#define FMSTR_COMM_BUFFER_SIZE ((FMSTR_APPCMD_BUFF_SIZE)+1)
|
||
|
#endif
|
||
|
|
||
|
/* configuring scope (EX) */
|
||
|
#if FMSTR_USE_SCOPE && FMSTR_COMM_BUFFER_SIZE < ((FMSTR_MAX_SCOPE_VARS)*5+1)
|
||
|
#undef FMSTR_COMM_BUFFER_SIZE
|
||
|
#define FMSTR_COMM_BUFFER_SIZE ((FMSTR_MAX_SCOPE_VARS)*5+1)
|
||
|
#endif
|
||
|
|
||
|
/* configuring recorder (EX) */
|
||
|
#if FMSTR_USE_RECORDER && FMSTR_COMM_BUFFER_SIZE < ((FMSTR_MAX_REC_VARS)*5+18)
|
||
|
#undef FMSTR_COMM_BUFFER_SIZE
|
||
|
#define FMSTR_COMM_BUFFER_SIZE ((FMSTR_MAX_REC_VARS)*5+18)
|
||
|
#endif
|
||
|
|
||
|
/* SFIO encapsulation (in buffer) */
|
||
|
#if FMSTR_USE_SFIO
|
||
|
#if FMSTR_COMM_BUFFER_SIZE < ((SFIO_MAX_INPUT_DATA_LENGTH)+1)
|
||
|
#undef FMSTR_COMM_BUFFER_SIZE
|
||
|
#define FMSTR_COMM_BUFFER_SIZE ((SFIO_MAX_INPUT_DATA_LENGTH)+1)
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/* SFIO encapsulation (out buffer) */
|
||
|
#if FMSTR_USE_SFIO
|
||
|
#if FMSTR_COMM_BUFFER_SIZE < ((SFIO_MAX_OUTPUT_DATA_LENGTH)+1)
|
||
|
#undef FMSTR_COMM_BUFFER_SIZE
|
||
|
#define FMSTR_COMM_BUFFER_SIZE ((SFIO_MAX_OUTPUT_DATA_LENGTH)+1)
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
#endif /* __FREEMASTER_PRIVATE_H */
|
||
|
|