diff gpf/tst_drv/ser_tr.c @ 0:75a11d740a02

initial import of gsm-fw from freecalypso-sw rev 1033:5ab737ac3ad7
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 09 Jun 2016 00:02:41 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gpf/tst_drv/ser_tr.c	Thu Jun 09 00:02:41 2016 +0000
@@ -0,0 +1,254 @@
+/* 
++------------------------------------------------------------------------------
+|  File:       ser_tr.c
++------------------------------------------------------------------------------
+|  Copyright 2004 Texas Instruments Deutschland, AG 
+|                 All rights reserved. 
+| 
+|                 This file is confidential and a trade secret of Texas 
+|                 Instruments Berlin, AG 
+|                 The receipt of or possession of this file does not convey 
+|                 any rights to reproduce or disclose its contents or to 
+|                 manufacture, use, or sell anything it may describe, in 
+|                 whole, or in part, without the specific written consent of 
+|                 Texas Instruments Deutschland, AG. 
++----------------------------------------------------------------------------- 
+|  Purpose :  This Modul contains the serial driver adaptation
++----------------------------------------------------------------------------- 
+*/ 
+
+#ifndef __SER_TR_C__
+#define __SER_TR_C__
+#endif
+
+#include "gpfconf.h"
+#include "typedefs.h"
+#include "../../serial/traceswitch.h"
+#include "../../serial/serialswitch.h"
+#include "gdi.h"
+#include "tstheader.h"
+
+/*==== TYPES ======================================================*/
+
+typedef struct
+{
+  USHORT Handle;
+  USHORT EnabledSignalType;
+  T_DRV_CB_FUNC Callback;
+  char Connected;
+} T_SER_TR_DATA;
+
+/*==== CONSTANTS ==================================================*/
+
+#define ALLOWED_SER_TR_SIGNALS   (DRV_SIGTYPE_READ|DRV_SIGTYPE_CONNECT)
+
+/*==== EXTERNALS ==================================================*/
+
+#ifdef RUN_FLASH
+ USHORT SER_TR_Write ( void *Buffer, ULONG *BytesToWrite );
+#endif
+
+/*==== VARIABLES ==================================================*/
+
+#ifndef RUN_INT_RAM
+T_SER_TR_DATA SER_TR_Data;
+#endif
+static T_DRV_SIGNAL Signal;
+
+/*==== FUNCTIONS ==================================================*/
+
+#ifndef RUN_INT_RAM
+/*
++--------------------------------------------------------------------+
+| PROJECT : GSM-Frame (8415)           MODULE  : SER                 |
+| STATE   : code                       ROUTINE : Callback            |
++--------------------------------------------------------------------+
+
+  PURPOSE : callback function of the driver
+
+*/
+void Callback ( void )
+{
+  if ( SER_TR_Data.EnabledSignalType & DRV_SIGTYPE_READ )
+  {
+    Signal.SignalType = DRV_SIGTYPE_READ;
+    Signal.DrvHandle = SER_TR_Data.Handle;
+
+    (SER_TR_Data.Callback)( &Signal );
+  }
+}
+#endif
+
+#ifndef RUN_INT_RAM
+/*
++--------------------------------------------------------------------+
+| PROJECT : GSM-Frame (8415)           MODULE  : SER                 |
+| STATE   : code                       ROUTINE : SER_TR_Exit         |
++--------------------------------------------------------------------+
+
+  PURPOSE : exit a driver
+
+*/
+void SER_TR_Exit ( void )
+{
+}
+#endif
+
+#ifndef RUN_INT_RAM
+/*
++--------------------------------------------------------------------+
+| PROJECT : GSM-Frame (8415)           MODULE  : SER                 |
+| STATE   : code                       ROUTINE : SER_TR_Read         |
++--------------------------------------------------------------------+
+
+  PURPOSE : read data from driver
+
+*/
+USHORT SER_TR_Read ( void *Buffer, ULONG *BytesToRead )
+{
+  *BytesToRead = (USHORT)SER_tr_ReadNChars ( SER_LAYER_1, Buffer, *BytesToRead );
+  return DRV_OK;
+}
+#endif
+
+
+#ifndef RUN_FLASH
+/*
++--------------------------------------------------------------------+
+| PROJECT : GSM-Frame (8415)           MODULE  : SER                 |
+| STATE   : code                       ROUTINE : SER_TR_Write        |
++--------------------------------------------------------------------+
+
+  PURPOSE : write data to driver
+
+*/
+USHORT SER_TR_Write ( void *Buffer, ULONG *BytesToWrite )
+{
+ULONG ToWrite = *BytesToWrite & ~PRIM_FLAG_MASK;
+ULONG BytesWritten;
+char *ptr = (char*)Buffer;
+
+  ptr--;
+  *ptr = 0x13;
+  ToWrite += 1;
+  BytesWritten = (ULONG)SER_tr_WriteNBytes (SER_LAYER_1, (SYS_UWORD8*)ptr, (SYS_UWORD32)ToWrite);
+  *BytesToWrite = BytesWritten;
+
+  return ( DRV_OK );
+}
+#endif
+
+#ifndef RUN_INT_RAM
+/*
++--------------------------------------------------------------------+
+| PROJECT : GSM-Frame (8415)           MODULE  : SER                 |
+| STATE   : code                       ROUTINE : SER_TR_SetSignal    |
++--------------------------------------------------------------------+
+
+  PURPOSE : enable signal for the driver
+
+*/
+USHORT SER_TR_SetSignal ( USHORT SignalType )
+{
+  if ( !(SignalType & ALLOWED_SER_TR_SIGNALS) )
+    return DRV_INVALID_PARAMS;
+  else
+    SER_TR_Data.EnabledSignalType |= SignalType;
+
+  return DRV_OK;
+}
+#endif
+
+#ifndef RUN_INT_RAM
+/*
++--------------------------------------------------------------------+
+| PROJECT : GSM-Frame (8415)           MODULE  : SER                 |
+| STATE   : code                       ROUTINE : SER_TR_ResetSignal  |
++--------------------------------------------------------------------+
+
+  PURPOSE : disable signal for the driver
+
+*/
+USHORT SER_TR_ResetSignal ( USHORT SignalType )
+{
+  if ( !(SignalType & ALLOWED_SER_TR_SIGNALS) )
+    return DRV_INVALID_PARAMS;
+  else
+    SER_TR_Data.EnabledSignalType &= ~SignalType;
+
+  return DRV_OK;
+}
+#endif
+
+#ifndef RUN_INT_RAM
+/*
++--------------------------------------------------------------------+
+| PROJECT : GSM-Frame (8415)           MODULE  : SER                 |
+| STATE   : code                       ROUTINE : SER_TR_SetConfig    |
++--------------------------------------------------------------------+
+
+  PURPOSE : set configuration for the driver
+
+*/
+USHORT SER_TR_SetConfig ( char *Buffer )
+{
+
+  if ( !SER_TR_Data.Connected )
+  {
+    Signal.SignalType = DRV_SIGTYPE_CONNECT;
+    Signal.DrvHandle = SER_TR_Data.Handle;
+    Signal.UserData = NULL;
+    (SER_TR_Data.Callback)( &Signal );
+    SER_TR_Data.Connected = TRUE;
+    return DRV_OK;
+  }
+  return DRV_OK;
+}
+#endif
+
+
+#ifndef RUN_INT_RAM
+/*
++--------------------------------------------------------------------+
+| PROJECT : GSM-Frame (8415)           MODULE  : SER                 |
+| STATE   : code                       ROUTINE : SER_TR_Init         |
++--------------------------------------------------------------------+
+
+  PURPOSE : initialize driver
+
+*/
+USHORT SER_TR_Init ( USHORT DrvHandle, T_DRV_CB_FUNC CallbackFunc, T_DRV_EXPORT const **DrvInfo )
+{
+static const T_DRV_EXPORT SER_TR_Info =
+{
+  "SER",
+  CALLED_FROM_ISR,
+  {
+#ifdef _TOOLS_
+    SER_TR_TR_Init,
+#endif
+    SER_TR_Exit,
+    SER_TR_Read,
+    SER_TR_Write,
+    NULL,
+    NULL,
+    NULL,
+    SER_TR_SetSignal,
+    SER_TR_ResetSignal,
+    SER_TR_SetConfig,
+    NULL,
+    NULL,
+  }
+};
+
+  SER_TR_Data.Handle = DrvHandle;
+  SER_TR_Data.EnabledSignalType = 0;
+  SER_TR_Data.Callback = CallbackFunc;
+  SER_TR_Data.Connected = FALSE;
+
+  SER_tr_Init ( SER_LAYER_1, TR_BAUD_115200, Callback ); 
+  *DrvInfo = &SER_TR_Info;
+
+  return DRV_OK;
+}
+#endif