Jarda Pajskr / freemaster_lib

Dependents:   FreeMASTER_HelloWorld FreeMASTER_HelloWorld2 FreeMASTER_HelloWorld3

Fork of freemaster_lib by Jarda Pajskr

Committer:
JardaPajskr
Date:
Mon May 05 20:13:09 2014 +0000
Revision:
0:fb135bf60f82
Child:
9:61b2beb811bf
defined FMSTR class

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JardaPajskr 0:fb135bf60f82 1 /*******************************************************************************
JardaPajskr 0:fb135bf60f82 2 *
JardaPajskr 0:fb135bf60f82 3 * Copyright 2004-2014 Freescale Semiconductor, Inc.
JardaPajskr 0:fb135bf60f82 4 *
JardaPajskr 0:fb135bf60f82 5 * This software is owned or controlled by Freescale Semiconductor.
JardaPajskr 0:fb135bf60f82 6 * Use of this software is governed by the Freescale FreeMASTER License
JardaPajskr 0:fb135bf60f82 7 * distributed with this Material.
JardaPajskr 0:fb135bf60f82 8 * See the FreeMASTER_LICENSE file distributed for more details.
JardaPajskr 0:fb135bf60f82 9 *
JardaPajskr 0:fb135bf60f82 10 * Brief License Summary:
JardaPajskr 0:fb135bf60f82 11 * This software is provided in source form for you to use free of charge,
JardaPajskr 0:fb135bf60f82 12 * but it is not open source software. You are allowed to use this software
JardaPajskr 0:fb135bf60f82 13 * but you cannot redistribute it or derivative works of it in source form.
JardaPajskr 0:fb135bf60f82 14 * The software may be used only in connection with a product containing
JardaPajskr 0:fb135bf60f82 15 * a Freescale microprocessor, microcontroller, or digital signal processor.
JardaPajskr 0:fb135bf60f82 16 * See license agreement file for full license terms including other
JardaPajskr 0:fb135bf60f82 17 * restrictions.
JardaPajskr 0:fb135bf60f82 18 *
JardaPajskr 0:fb135bf60f82 19 ****************************************************************************//*!
JardaPajskr 0:fb135bf60f82 20 *
JardaPajskr 0:fb135bf60f82 21 * @brief FreeMASTER Driver main API header file, mbed platform
JardaPajskr 0:fb135bf60f82 22 *
JardaPajskr 0:fb135bf60f82 23 * This is the only header file needed to be included by the user application
JardaPajskr 0:fb135bf60f82 24 * to implement the FreeMASTER interface.
JardaPajskr 0:fb135bf60f82 25 *
JardaPajskr 0:fb135bf60f82 26 *******************************************************************************/
JardaPajskr 0:fb135bf60f82 27
JardaPajskr 0:fb135bf60f82 28 #ifndef __FREEMASTER_H
JardaPajskr 0:fb135bf60f82 29 #define __FREEMASTER_H
JardaPajskr 0:fb135bf60f82 30
JardaPajskr 0:fb135bf60f82 31 /* identify our current platform */
JardaPajskr 0:fb135bf60f82 32 #define FMSTR_PLATFORM_MBED 1
JardaPajskr 0:fb135bf60f82 33
JardaPajskr 0:fb135bf60f82 34
JardaPajskr 0:fb135bf60f82 35 /*****************************************************************************
JardaPajskr 0:fb135bf60f82 36 * Global types
JardaPajskr 0:fb135bf60f82 37 ******************************************************************************/
JardaPajskr 0:fb135bf60f82 38
JardaPajskr 0:fb135bf60f82 39 typedef unsigned char * FMSTR_ADDR; /* CPU address type (4bytes) */
JardaPajskr 0:fb135bf60f82 40 typedef unsigned short FMSTR_SIZE; /* general size type (at least 16 bits) */
JardaPajskr 0:fb135bf60f82 41 typedef unsigned char FMSTR_BOOL; /* general boolean type */
JardaPajskr 0:fb135bf60f82 42 #if FMSTR_RECORDER_LARGE_MODE
JardaPajskr 0:fb135bf60f82 43 typedef unsigned long FMSTR_SIZE_RECBUFF;
JardaPajskr 0:fb135bf60f82 44 #else
JardaPajskr 0:fb135bf60f82 45 typedef unsigned short FMSTR_SIZE_RECBUFF;
JardaPajskr 0:fb135bf60f82 46 #endif
JardaPajskr 0:fb135bf60f82 47 typedef unsigned char* FMSTR_BPTR; /* pointer within a communication buffer */
JardaPajskr 0:fb135bf60f82 48 #define FMSTR_TSA_CDECL const
JardaPajskr 0:fb135bf60f82 49
JardaPajskr 0:fb135bf60f82 50 /* application command-specific types */
JardaPajskr 0:fb135bf60f82 51 typedef unsigned char FMSTR_APPCMD_CODE;
JardaPajskr 0:fb135bf60f82 52 typedef unsigned char FMSTR_APPCMD_DATA, *FMSTR_APPCMD_PDATA;
JardaPajskr 0:fb135bf60f82 53 typedef unsigned char FMSTR_APPCMD_RESULT;
JardaPajskr 0:fb135bf60f82 54
JardaPajskr 0:fb135bf60f82 55 /* pointer to application command callback handler */
JardaPajskr 0:fb135bf60f82 56 typedef FMSTR_APPCMD_RESULT (*FMSTR_PAPPCMDFUNC)(FMSTR_APPCMD_CODE,FMSTR_APPCMD_PDATA,FMSTR_SIZE);
JardaPajskr 0:fb135bf60f82 57
JardaPajskr 0:fb135bf60f82 58 /*****************************************************************************
JardaPajskr 0:fb135bf60f82 59 * TSA-related user types and macros
JardaPajskr 0:fb135bf60f82 60 ******************************************************************************/
JardaPajskr 0:fb135bf60f82 61
JardaPajskr 0:fb135bf60f82 62 #include "freemaster_tsa.h"
JardaPajskr 0:fb135bf60f82 63
JardaPajskr 0:fb135bf60f82 64 /*****************************************************************************
JardaPajskr 0:fb135bf60f82 65 * Constants
JardaPajskr 0:fb135bf60f82 66 ******************************************************************************/
JardaPajskr 0:fb135bf60f82 67
JardaPajskr 0:fb135bf60f82 68 /* application command status information */
JardaPajskr 0:fb135bf60f82 69 #define FMSTR_APPCMDRESULT_NOCMD 0xff
JardaPajskr 0:fb135bf60f82 70 #define FMSTR_APPCMDRESULT_RUNNING 0xfe
JardaPajskr 0:fb135bf60f82 71 #define MFSTR_APPCMDRESULT_LASTVALID 0xf7 /* F8-FF are reserved */
JardaPajskr 0:fb135bf60f82 72
JardaPajskr 0:fb135bf60f82 73 /* recorder time base declaration helpers */
JardaPajskr 0:fb135bf60f82 74 #define FMSTR_REC_BASE_SECONDS(x) ((x) & 0x3fff)
JardaPajskr 0:fb135bf60f82 75 #define FMSTR_REC_BASE_MILLISEC(x) (((x) & 0x3fff) | 0x4000)
JardaPajskr 0:fb135bf60f82 76 #define FMSTR_REC_BASE_MICROSEC(x) (((x) & 0x3fff) | 0x8000)
JardaPajskr 0:fb135bf60f82 77 #define FMSTR_REC_BASE_NANOSEC(x) (((x) & 0x3fff) | 0xc000)
JardaPajskr 0:fb135bf60f82 78
JardaPajskr 0:fb135bf60f82 79 /******************************************************************************
JardaPajskr 0:fb135bf60f82 80 * NULL needed
JardaPajskr 0:fb135bf60f82 81 ******************************************************************************/
JardaPajskr 0:fb135bf60f82 82
JardaPajskr 0:fb135bf60f82 83 #ifndef NULL
JardaPajskr 0:fb135bf60f82 84 #ifdef __cplusplus
JardaPajskr 0:fb135bf60f82 85 #define NULL (0)
JardaPajskr 0:fb135bf60f82 86 #else
JardaPajskr 0:fb135bf60f82 87 #define NULL ((void *) 0)
JardaPajskr 0:fb135bf60f82 88 #endif
JardaPajskr 0:fb135bf60f82 89 #endif
JardaPajskr 0:fb135bf60f82 90
JardaPajskr 0:fb135bf60f82 91 /*****************************************************************************
JardaPajskr 0:fb135bf60f82 92 * Global functions
JardaPajskr 0:fb135bf60f82 93 ******************************************************************************/
JardaPajskr 0:fb135bf60f82 94 #ifdef __cplusplus
JardaPajskr 0:fb135bf60f82 95 extern "C" {
JardaPajskr 0:fb135bf60f82 96 #endif
JardaPajskr 0:fb135bf60f82 97
JardaPajskr 0:fb135bf60f82 98 /* FreeMASTER serial communication API */
JardaPajskr 0:fb135bf60f82 99 void FMSTR_InitSerialBase(FMSTR_BPTR pBase);
JardaPajskr 0:fb135bf60f82 100 FMSTR_BOOL FMSTR_Init(void); /* general initialization */
JardaPajskr 0:fb135bf60f82 101 void FMSTR_Poll(void); /* polling call, use in SHORT_INTR and POLL_DRIVEN modes */
JardaPajskr 0:fb135bf60f82 102 void FMSTR_Isr(void); /* SCI interrupt handler for LONG_INTR and SHORT_INTR modes */
JardaPajskr 0:fb135bf60f82 103
JardaPajskr 0:fb135bf60f82 104 /* Recorder API */
JardaPajskr 0:fb135bf60f82 105 void FMSTR_Recorder(void);
JardaPajskr 0:fb135bf60f82 106 void FMSTR_TriggerRec(void);
JardaPajskr 0:fb135bf60f82 107 void FMSTR_SetUpRecBuff(FMSTR_ADDR nBuffAddr, FMSTR_SIZE_RECBUFF nBuffSize);
JardaPajskr 0:fb135bf60f82 108
JardaPajskr 0:fb135bf60f82 109 /* Application commands API */
JardaPajskr 0:fb135bf60f82 110 FMSTR_APPCMD_CODE FMSTR_GetAppCmd(void);
JardaPajskr 0:fb135bf60f82 111 FMSTR_APPCMD_PDATA FMSTR_GetAppCmdData(FMSTR_SIZE* pDataLen);
JardaPajskr 0:fb135bf60f82 112 FMSTR_BOOL FMSTR_RegisterAppCmdCall(FMSTR_APPCMD_CODE nAppCmdCode, FMSTR_PAPPCMDFUNC pCallbackFunc);
JardaPajskr 0:fb135bf60f82 113
JardaPajskr 0:fb135bf60f82 114 void FMSTR_AppCmdAck(FMSTR_APPCMD_RESULT nResultCode);
JardaPajskr 0:fb135bf60f82 115 void FMSTR_AppCmdSetResponseData(FMSTR_ADDR nResultDataAddr, FMSTR_SIZE nResultDataLen);
JardaPajskr 0:fb135bf60f82 116
JardaPajskr 0:fb135bf60f82 117 void FMSTR_SetUpTsaBuff(FMSTR_ADDR nBuffAddr, FMSTR_SIZE nBuffSize);
JardaPajskr 0:fb135bf60f82 118 FMSTR_BOOL FMSTR_TsaAddVar(FMSTR_TSATBL_STRPTR name, FMSTR_TSATBL_STRPTR type, FMSTR_TSATBL_VOIDPTR addr, FMSTR_TSATBL_VOIDPTR info);
JardaPajskr 0:fb135bf60f82 119
JardaPajskr 0:fb135bf60f82 120 #ifdef __cplusplus
JardaPajskr 0:fb135bf60f82 121 }
JardaPajskr 0:fb135bf60f82 122 #endif
JardaPajskr 0:fb135bf60f82 123
JardaPajskr 0:fb135bf60f82 124 #endif /* __FREEMASTER_H */
JardaPajskr 0:fb135bf60f82 125