Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: FreeMASTER_HelloWorld FreeMASTER_HelloWorld2 FreeMASTER_HelloWorld3
Fork of freemaster_lib by
freemaster.h@9:61b2beb811bf, 2014-06-03 (annotated)
- Committer:
- JardaPajskr
- Date:
- Tue Jun 03 22:56:38 2014 +0000
- Revision:
- 9:61b2beb811bf
- Parent:
- 0:fb135bf60f82
- Child:
- 12:15696acfeebe
updated fmstr_lib. new version uses serial API
Who changed what in which revision?
| User | Revision | Line number | New 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 | 9:61b2beb811bf | 103 | void FMSTR_SetSciMbedObject(FMSTR_ADDR pSerObj); |
| JardaPajskr | 0:fb135bf60f82 | 104 | |
| JardaPajskr | 0:fb135bf60f82 | 105 | /* Recorder API */ |
| JardaPajskr | 0:fb135bf60f82 | 106 | void FMSTR_Recorder(void); |
| JardaPajskr | 0:fb135bf60f82 | 107 | void FMSTR_TriggerRec(void); |
| JardaPajskr | 0:fb135bf60f82 | 108 | void FMSTR_SetUpRecBuff(FMSTR_ADDR nBuffAddr, FMSTR_SIZE_RECBUFF nBuffSize); |
| JardaPajskr | 0:fb135bf60f82 | 109 | |
| JardaPajskr | 0:fb135bf60f82 | 110 | /* Application commands API */ |
| JardaPajskr | 0:fb135bf60f82 | 111 | FMSTR_APPCMD_CODE FMSTR_GetAppCmd(void); |
| JardaPajskr | 0:fb135bf60f82 | 112 | FMSTR_APPCMD_PDATA FMSTR_GetAppCmdData(FMSTR_SIZE* pDataLen); |
| JardaPajskr | 0:fb135bf60f82 | 113 | FMSTR_BOOL FMSTR_RegisterAppCmdCall(FMSTR_APPCMD_CODE nAppCmdCode, FMSTR_PAPPCMDFUNC pCallbackFunc); |
| JardaPajskr | 0:fb135bf60f82 | 114 | |
| JardaPajskr | 0:fb135bf60f82 | 115 | void FMSTR_AppCmdAck(FMSTR_APPCMD_RESULT nResultCode); |
| JardaPajskr | 0:fb135bf60f82 | 116 | void FMSTR_AppCmdSetResponseData(FMSTR_ADDR nResultDataAddr, FMSTR_SIZE nResultDataLen); |
| JardaPajskr | 0:fb135bf60f82 | 117 | |
| JardaPajskr | 0:fb135bf60f82 | 118 | void FMSTR_SetUpTsaBuff(FMSTR_ADDR nBuffAddr, FMSTR_SIZE nBuffSize); |
| JardaPajskr | 0:fb135bf60f82 | 119 | FMSTR_BOOL FMSTR_TsaAddVar(FMSTR_TSATBL_STRPTR name, FMSTR_TSATBL_STRPTR type, FMSTR_TSATBL_VOIDPTR addr, FMSTR_TSATBL_VOIDPTR info); |
| JardaPajskr | 0:fb135bf60f82 | 120 | |
| JardaPajskr | 0:fb135bf60f82 | 121 | #ifdef __cplusplus |
| JardaPajskr | 0:fb135bf60f82 | 122 | } |
| JardaPajskr | 0:fb135bf60f82 | 123 | #endif |
| JardaPajskr | 0:fb135bf60f82 | 124 | |
| JardaPajskr | 0:fb135bf60f82 | 125 | #endif /* __FREEMASTER_H */ |
| JardaPajskr | 0:fb135bf60f82 | 126 |
