FreeCalypso > hg > freecalypso-sw
diff gsm-fw/gpf/misc/trace.c @ 320:397b22c607c8
gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Sat, 12 Apr 2014 07:59:49 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gsm-fw/gpf/misc/trace.c Sat Apr 12 07:59:49 2014 +0000 @@ -0,0 +1,239 @@ +/* ++------------------------------------------------------------------------------ +| File: trace.c ++------------------------------------------------------------------------------ +| Copyright 2002 Texas Instruments Berlin, 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 Berlin, AG. ++----------------------------------------------------------------------------- +| Purpose : This Modul provides data and functions for fast in memory tracing ++----------------------------------------------------------------------------- +*/ + +#ifndef TRACE_C +#define TRACE_C +#endif +#define FAST_TRACE + +/*==== INCLUDES ===================================================*/ + +#include <string.h> +#include "typedefs.h" +#include "header.h" +#include "custom.h" +#include "vsi.h" +#include "gsm.h" +#include "prim.h" +#include "pei.h" +#include "tok.h" + +#include "trace.h" + +#include <string.h> +#include <stdio.h> +#include "message.h" + +/*==== CONST ======================================================*/ + +#define TRC_ENTITY 0x60 +#define TRC_FILE 1 + + +#ifdef OPTION_MULTITHREAD +#define VSI_CALLER "ACI", +#define VSI_CALLER_SINGLE "ACI" +#else +#define VSI_CALLER +#define VSI_CALLER_SINGLE +#endif + + +/*==== TYPES ======================================================*/ + +/*==== VARIABLES ==================================================*/ + + +/*==== FUNCTIONS ==================================================*/ +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : TRACE | +| STATE : code ROUTINE : trc_init | ++--------------------------------------------------------------------+ + + PURPOSE : This function is called to initialize the trace function + +*/ + +GLOBAL void trc_init + ( + void + ) +{ + trc_p_buffer = trc_buffer; + trc_p_buffer_end = &trc_buffer[TRC_BUF_LEN-1]; + trc_wrap_around = FALSE; + trc_wrap_around_enable = TRUE; + trc_enabled = TRUE; + /*semTRC = vsi_s_open (VSI_CALLER "TRC"); */ +} + + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : TRACE | +| STATE : code ROUTINE : trc_enable_wrap_around | ++--------------------------------------------------------------------+ + + PURPOSE : This function is called to enable wrap around + +*/ + +GLOBAL void trc_enable_wrap_around + ( + void + ) +{ + trc_wrap_around_enable = TRUE; +} + + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : TRACE | +| STATE : code ROUTINE : trc_disable_wrap_around | ++--------------------------------------------------------------------+ + + PURPOSE : This function is called to disable wrap around + +*/ + +GLOBAL void trc_disable_wrap_around + ( + void + ) +{ + trc_wrap_around_enable = FALSE; +} + + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : TRACE | +| STATE : code ROUTINE : trc_enable | ++--------------------------------------------------------------------+ + + PURPOSE : This function is called to enable fast trace + +*/ + +GLOBAL void trc_enable + ( + void + ) +{ + trc_enabled = TRUE; +} + + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : TRACE | +| STATE : code ROUTINE : trc_disable | ++--------------------------------------------------------------------+ + + PURPOSE : This function is called to disable fast trace + +*/ + +GLOBAL void trc_disable + ( + void + ) +{ + trc_enabled = FALSE; +} + + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : RA_SHM | +| STATE : code ROUTINE : trc_dump | ++--------------------------------------------------------------------+ + + PURPOSE : the content of the stored dump is dumped + into the system trace window. + +*/ + +GLOBAL void trc_dump (void) +{ + T_TRC_BUF_ENTRY *p_readOut; + ULONG *p; + ULONG i; + char buf [40]; + char buf1 [40]; + +#ifndef NEW_FRAME + vsi_o_trace ("", 0xff, "---FASTTRACEBUFFER---"); +#else + vsi_o_ttrace (0, 0xff, "---FASTTRACEBUFFER---"); +#endif + if (trc_wrap_around) + { + for (p_readOut= trc_p_buffer; + p_readOut < trc_p_buffer_end; + p_readOut++) + { + p = (ULONG*)p_readOut; + + buf1[0]='\0'; + + for (i = sizeof(T_TRC_BUF_ENTRY); i>=0; i-=sizeof(ULONG)) + { + sprintf(buf1, "0x%x ", *p++); + strcat (buf, buf1); + } +#ifndef NEW_FRAME + vsi_o_trace ("", 0xff, buf); + vsi_t_sleep("", 1); +#else + vsi_o_ttrace (0, 0xff, buf); + vsi_t_sleep(0, 1); +#endif + } + } + for (p_readOut= trc_buffer; + p_readOut < trc_p_buffer; + p_readOut++) + { + p = (ULONG*)p_readOut; + + buf1[0]='\0'; + + for (i = sizeof(T_TRC_BUF_ENTRY); i>=0; i-=sizeof(ULONG)) + { + sprintf(buf1, "0x%x ", *p++); + strcat (buf, buf1); + } +#ifndef NEW_FRAME + vsi_o_trace ("", 0xff, buf); + vsi_t_sleep("", 1); +#else + vsi_o_ttrace (0, 0xff, buf); + vsi_t_sleep(0, 1); +#endif + } + +#ifndef NEW_FRAME + vsi_o_trace ("", 0xff, "---END---"); +#else + vsi_o_ttrace (0, 0xff, "---END---"); +#endif +}