Jarda Pajskr / freemaster_lib

Dependents:   FreeMASTER_HelloWorld FreeMASTER_HelloWorld2 FreeMASTER_HelloWorld3

Fork of freemaster_lib by Jarda Pajskr

Committer:
JardaPajskr
Date:
Sun Nov 16 21:22:03 2014 +0000
Revision:
20:355a9738a180
Parent:
13:62ef0bfeb036
updated header files

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