Jarda Pajskr / freemaster_lib

Dependents:   FreeMASTER_HelloWorld FreeMASTER_HelloWorld2 FreeMASTER_HelloWorld3

Fork of freemaster_lib by Jarda Pajskr

Committer:
JardaPajskr
Date:
Thu Jun 19 17:08:29 2014 +0000
Revision:
13:62ef0bfeb036
Parent:
12:15696acfeebe
Child:
20:355a9738a180
updated right content of the freemaster.h file

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 12:15696acfeebe 8 * See the LICENSE file distributed for more details.
JardaPajskr 0:fb135bf60f82 9 *
JardaPajskr 0:fb135bf60f82 10 ****************************************************************************//*!
JardaPajskr 0:fb135bf60f82 11 *
JardaPajskr 13:62ef0bfeb036 12 * @brief FreeMASTER Driver main API header file, Kxx(40/60) platform
JardaPajskr 13:62ef0bfeb036 13 *
JardaPajskr 13:62ef0bfeb036 14 * This is the only header file needed to be included by the user application
JardaPajskr 13:62ef0bfeb036 15 * to implement the FreeMASTER interface. In addition, user has to write the
JardaPajskr 13:62ef0bfeb036 16 * "freemaster_cfg.h" configuration file and put it anywhere on the #include path
JardaPajskr 0:fb135bf60f82 17 *
JardaPajskr 0:fb135bf60f82 18 *******************************************************************************/
JardaPajskr 0:fb135bf60f82 19
JardaPajskr 13:62ef0bfeb036 20 #ifndef __FREEMASTER_H
JardaPajskr 13:62ef0bfeb036 21 #define __FREEMASTER_H
JardaPajskr 13:62ef0bfeb036 22
JardaPajskr 13:62ef0bfeb036 23 /* identify our current platform */
JardaPajskr 13:62ef0bfeb036 24 #define FMSTR_PLATFORM_KXX 1
JardaPajskr 13:62ef0bfeb036 25
JardaPajskr 13:62ef0bfeb036 26 /* FreeMASTER configuration */
JardaPajskr 13:62ef0bfeb036 27 #include "freemaster_cfg.h"
JardaPajskr 13:62ef0bfeb036 28
JardaPajskr 13:62ef0bfeb036 29 /*****************************************************************************
JardaPajskr 13:62ef0bfeb036 30 * Global types
JardaPajskr 13:62ef0bfeb036 31 ******************************************************************************/
JardaPajskr 13:62ef0bfeb036 32
JardaPajskr 13:62ef0bfeb036 33 typedef unsigned char * FMSTR_ADDR; /* CPU address type (4bytes) */
JardaPajskr 13:62ef0bfeb036 34 typedef unsigned short FMSTR_SIZE; /* general size type (at least 16 bits) */
JardaPajskr 13:62ef0bfeb036 35 typedef unsigned char FMSTR_BOOL; /* general boolean type */
JardaPajskr 13:62ef0bfeb036 36 #if FMSTR_REC_LARGE_MODE
JardaPajskr 13:62ef0bfeb036 37 typedef unsigned long FMSTR_SIZE_RECBUFF;
JardaPajskr 13:62ef0bfeb036 38 #else
JardaPajskr 13:62ef0bfeb036 39 typedef unsigned short FMSTR_SIZE_RECBUFF;
JardaPajskr 13:62ef0bfeb036 40 #endif
JardaPajskr 13:62ef0bfeb036 41 typedef unsigned char* FMSTR_BPTR; /* pointer within a communication buffer */
JardaPajskr 13:62ef0bfeb036 42 #define FMSTR_TSA_CDECL const
JardaPajskr 0:fb135bf60f82 43
JardaPajskr 13:62ef0bfeb036 44 /* application command-specific types */
JardaPajskr 13:62ef0bfeb036 45 typedef unsigned char FMSTR_APPCMD_CODE;
JardaPajskr 13:62ef0bfeb036 46 typedef unsigned char FMSTR_APPCMD_DATA, *FMSTR_APPCMD_PDATA;
JardaPajskr 13:62ef0bfeb036 47 typedef unsigned char FMSTR_APPCMD_RESULT;
JardaPajskr 13:62ef0bfeb036 48
JardaPajskr 13:62ef0bfeb036 49 /* pointer to application command callback handler */
JardaPajskr 13:62ef0bfeb036 50 typedef FMSTR_APPCMD_RESULT (*FMSTR_PAPPCMDFUNC)(FMSTR_APPCMD_CODE,FMSTR_APPCMD_PDATA,FMSTR_SIZE);
JardaPajskr 13:62ef0bfeb036 51
JardaPajskr 13:62ef0bfeb036 52 /*****************************************************************************
JardaPajskr 13:62ef0bfeb036 53 * TSA-related user types and macros
JardaPajskr 13:62ef0bfeb036 54 ******************************************************************************/
JardaPajskr 13:62ef0bfeb036 55
JardaPajskr 13:62ef0bfeb036 56 #include "freemaster_tsa.h"
JardaPajskr 13:62ef0bfeb036 57
JardaPajskr 13:62ef0bfeb036 58 /*****************************************************************************
JardaPajskr 13:62ef0bfeb036 59 * Constants
JardaPajskr 13:62ef0bfeb036 60 ******************************************************************************/
JardaPajskr 13:62ef0bfeb036 61
JardaPajskr 13:62ef0bfeb036 62 /* application command status information */
JardaPajskr 13:62ef0bfeb036 63 #define FMSTR_APPCMDRESULT_NOCMD 0xffU
JardaPajskr 13:62ef0bfeb036 64 #define FMSTR_APPCMDRESULT_RUNNING 0xfeU
JardaPajskr 13:62ef0bfeb036 65 #define MFSTR_APPCMDRESULT_LASTVALID 0xf7U /* F8-FF are reserved */
JardaPajskr 13:62ef0bfeb036 66
JardaPajskr 13:62ef0bfeb036 67 /* recorder time base declaration helpers */
JardaPajskr 13:62ef0bfeb036 68 #define FMSTR_REC_BASE_SECONDS(x) ((x) & 0x3fffU)
JardaPajskr 13:62ef0bfeb036 69 #define FMSTR_REC_BASE_MILLISEC(x) (((x) & 0x3fffU) | 0x4000U)
JardaPajskr 13:62ef0bfeb036 70 #define FMSTR_REC_BASE_MICROSEC(x) (((x) & 0x3fffU) | 0x8000U)
JardaPajskr 13:62ef0bfeb036 71 #define FMSTR_REC_BASE_NANOSEC(x) (((x) & 0x3fffU) | 0xc000U)
JardaPajskr 0:fb135bf60f82 72
JardaPajskr 0:fb135bf60f82 73 /******************************************************************************
JardaPajskr 13:62ef0bfeb036 74 * NULL needed
JardaPajskr 13:62ef0bfeb036 75 ******************************************************************************/
JardaPajskr 0:fb135bf60f82 76
JardaPajskr 13:62ef0bfeb036 77 #ifndef NULL
JardaPajskr 13:62ef0bfeb036 78 #ifdef __cplusplus
JardaPajskr 13:62ef0bfeb036 79 #define NULL (0)
JardaPajskr 13:62ef0bfeb036 80 #else
JardaPajskr 13:62ef0bfeb036 81 #define NULL ((void *) 0)
JardaPajskr 0:fb135bf60f82 82 #endif
JardaPajskr 0:fb135bf60f82 83 #endif
JardaPajskr 0:fb135bf60f82 84
JardaPajskr 0:fb135bf60f82 85 /*****************************************************************************
JardaPajskr 13:62ef0bfeb036 86 * Global functions
JardaPajskr 0:fb135bf60f82 87 ******************************************************************************/
JardaPajskr 13:62ef0bfeb036 88 #ifdef __cplusplus
JardaPajskr 13:62ef0bfeb036 89 extern "C" {
JardaPajskr 0:fb135bf60f82 90 #endif
JardaPajskr 0:fb135bf60f82 91
JardaPajskr 13:62ef0bfeb036 92 /* Assigning FreeMASTER communication module base address */
JardaPajskr 13:62ef0bfeb036 93 void FMSTR_SetSciBaseAddress(FMSTR_ADDR nSciAddr);
JardaPajskr 13:62ef0bfeb036 94 void FMSTR_SetCanBaseAddress(FMSTR_ADDR nCanAddr);
JardaPajskr 0:fb135bf60f82 95
JardaPajskr 13:62ef0bfeb036 96 /* FreeMASTER serial communication API */
JardaPajskr 13:62ef0bfeb036 97 FMSTR_BOOL FMSTR_Init(void); /* general initialization */
JardaPajskr 13:62ef0bfeb036 98 void FMSTR_Poll(void); /* polling call, use in SHORT_INTR and POLL_DRIVEN modes */
JardaPajskr 13:62ef0bfeb036 99 void FMSTR_Isr(void); /* SCI interrupt handler for LONG_INTR and SHORT_INTR modes */
JardaPajskr 13:62ef0bfeb036 100 void FMSTR_SetSciMbedObject(FMSTR_ADDR pSerObj);
JardaPajskr 12:15696acfeebe 101
JardaPajskr 13:62ef0bfeb036 102 /* Recorder API */
JardaPajskr 13:62ef0bfeb036 103 void FMSTR_Recorder(void);
JardaPajskr 13:62ef0bfeb036 104 void FMSTR_TriggerRec(void);
JardaPajskr 13:62ef0bfeb036 105 void FMSTR_SetUpRecBuff(FMSTR_ADDR nBuffAddr, FMSTR_SIZE_RECBUFF nBuffSize);
JardaPajskr 0:fb135bf60f82 106
JardaPajskr 13:62ef0bfeb036 107 /* Application commands API */
JardaPajskr 13:62ef0bfeb036 108 FMSTR_APPCMD_CODE FMSTR_GetAppCmd(void);
JardaPajskr 13:62ef0bfeb036 109 FMSTR_APPCMD_PDATA FMSTR_GetAppCmdData(FMSTR_SIZE* pDataLen);
JardaPajskr 13:62ef0bfeb036 110 FMSTR_BOOL FMSTR_RegisterAppCmdCall(FMSTR_APPCMD_CODE nAppCmdCode, FMSTR_PAPPCMDFUNC pCallbackFunc);
JardaPajskr 0:fb135bf60f82 111
JardaPajskr 13:62ef0bfeb036 112 void FMSTR_AppCmdAck(FMSTR_APPCMD_RESULT nResultCode);
JardaPajskr 13:62ef0bfeb036 113 void FMSTR_AppCmdSetResponseData(FMSTR_ADDR nResultDataAddr, FMSTR_SIZE nResultDataLen);
JardaPajskr 0:fb135bf60f82 114
JardaPajskr 13:62ef0bfeb036 115 /* Dynamic TSA API */
JardaPajskr 13:62ef0bfeb036 116 void FMSTR_SetUpTsaBuff(FMSTR_ADDR nBuffAddr, FMSTR_SIZE nBuffSize);
JardaPajskr 13:62ef0bfeb036 117 FMSTR_BOOL FMSTR_TsaAddVar(FMSTR_TSATBL_STRPTR name, FMSTR_TSATBL_STRPTR type, FMSTR_TSATBL_VOIDPTR addr, FMSTR_TSATBL_VOIDPTR info);
JardaPajskr 0:fb135bf60f82 118
JardaPajskr 13:62ef0bfeb036 119 #ifdef __cplusplus
JardaPajskr 13:62ef0bfeb036 120 }
JardaPajskr 0:fb135bf60f82 121 #endif
JardaPajskr 0:fb135bf60f82 122
JardaPajskr 13:62ef0bfeb036 123 #endif /* __FREEMASTER_H */
JardaPajskr 0:fb135bf60f82 124