FreeCalypso > hg > fc-magnetite
view src/cs/layer1/gtt_include/ctm/ctm_transmitter.h @ 673:62a5285e014a
Lorekeeping: allow tpudrv-leonardo.lib on Leonardo/Tango
Back in 2015 the Mother's idea was to produce a FreeCalypso development
board that would be a clone of TI Leonardo, including the original
quadband RFFE; one major additional stipulation was that this board
needed to be able to run original unmodified TCS211-20070608 firmware
with all blobs intact, with only minimal binary patches to main.lib
and tpudrv.lib. The necessary patched libs were produced at that time
in the tcs211-patches repository.
That plan was changed and we produced FCDEV3B instead, with Openmoko's
triband RFFE instead of Leonardo quadband, but when FC Magnetite started
in 2016, a TPUDRV_blob= provision was still made, allowing the possibility
of patching OM's tpudrv.lib for a restored Leonardo RFFE.
Now in 2020 we have FC Tango which is essentially a verbatim clone of
Leonardo core, including the original quadband RFFE. We have also
deblobbed our firmware so much that we have absolutely no real need
for a blob version of tpudrv.lib - but I thought it would be neat to put
the ancient TPUDRV_blob= mechanism (classic config) to its originally
intended use, just for the heck of it.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 29 May 2020 03:55:36 +0000 |
parents | 945cf7f506b2 |
children |
line wrap: on
line source
/* ******************************************************************************* * * COPYRIGHT (C) 2000 BY ERICSSON EUROLAB DEUTSCHLAND GmbH * 90411 NUERNBERG, GERMANY, Tel Int + 49 911 5217 100 * * The program(s) may be used and/or copied only with the * written permission from Ericsson or in accordance * with the terms and conditions stipulated in the agreement or * contract under which the program(s) have been supplied. * ******************************************************************************* * * File : ctm_transmitter.h * Author : EEDN/RV Matthias Doerbecker * Tested Platforms : Sun Solaris, Windows NT 4.0 * Description : header file for ctm_transmitter.c * * Changes since October 13, 2000: * - added reset function reset_ctm_transmitter() * * $Log: $ * ******************************************************************************* */ #ifndef ctm_transmitter_h #define ctm_transmitter_h "$Id: $" /* ******************************************************************************* * INCLUDE FILES ******************************************************************************* */ #include "ctm_typedefs.h" #include "ctm_defines.h" #include "init_interleaver.h" #include "tonemod.h" #include "conv_poly.h" #include "fifo.h" /* ******************************************************************/ /* Type definitions for variables that contain all states of the */ /* CTM Transmitter */ /* ******************************************************************/ typedef struct { BOOL burstActive; WORD16 cntIdleSymbols; WORD16 cntEncBitsInCurrentBlock; WORD16 cntTXBitsInCurrentBlock; /* vectors (not to be allocated) */ WORD16 resync_sequence[RESYNC_SEQ_LENGTH]; #if (NUM_MUTE_ROWS>0) WORD16 mutePositions[intlvB*NUM_MUTE_ROWS]; #else WORD16 mutePositions[1]; #endif fifo_state_t fifo_state; fifo_state_t octet_fifo_state; interleaver_state_t diag_int_state; conv_encoder_t conv_enc_state; } tx_state_t; /***********************************************************************/ /* init_ctm_transmitter() */ /* ********************** */ /* Initialization of the CTM Transmitter */ /* */ /* output vaiables: */ /* tx_state : pointer to a variable of tx_state_t containing the */ /* initialized states of the receiver */ /***********************************************************************/ void init_ctm_transmitter(tx_state_t* tx_state); /* *********************************************************************** * Shutdown_ctm_transmitter() * * ********************** * * Shutdown of the Cellular Text Telephone Modem transmitter and * * deallocate memory used by the CTM Tx buffers. * * * * Input variables: * * tx_state : pointer to a variable of tx_state_t containing the * * initialized states of the transmitter. * *********************************************************************** */ void Shutdown_ctm_transmitter(tx_state_t* tx_state); /* *********************************************************************** * reset_ctm_transmitter() * * ********************** * * Reset of the Cellular Text Telephone Modem transmitter, state * * machines and buffer pointers. * * * * Input variables: * * tx_state : pointer to a variable of tx_state_t containing the * * initialized states of the transmitter. * *********************************************************************** */ void reset_ctm_transmitter(tx_state_t* tx_state); /***********************************************************************/ /* ctm_transmitter() */ /* ***************** */ /* Runs the Cellular Text Telephone Modem (CTM) Transmitter for a */ /* block of 160 output samples, representing 8 gross bits. */ /* The bits, which are modulated into tones, are taken from an */ /* internal fifo buffer. If the fifo buffer is empty, zero-valued */ /* samples are generated. The fifo buffer is filled with */ /* channel-encoded and interlaeved bits, which are generated */ /* internally by coding the actual input character. With each call of */ /* this function one or less input characters can be coded. If there */ /* is no character to for transmission, one of the following code has */ /* be used: */ /* - 0xFFFF: indicates that there is no character to transmit and */ /* that the transmitter should stay in idle mode, if it is */ /* currently already in idle mode. If the transmitter is */ /* NOT in idle mode, it might generate <IDLE> symbols in */ /* to keep an active burst running. The CTM burst is */ /* terminated if five <IDLE> symbols have been generated */ /* consecutevely. */ /* */ /* - 0xFFFE: although there is no character to transmit, a CTM burst */ /* is initiated in order to signalize to the far-end side */ /* that CTM is supported. The burst starts with the <IDLE> */ /* symbol and will be contiued with <IDLE> symbols if there */ /* are no regular characters handed over during the next */ /* calls of this function. The CTM burst is terminated if */ /* five <IDLE> symbols have been transmitted consecutevely. */ /* */ /* In order to avoid an overflow of the internal fifo buffer, the */ /* variable *ptrNumBitsStillToModulate should be checked before */ /* calling this function. */ /* */ /* input variables: */ /* ucsCode UCS code of the character */ /* or one of the codes 0xFFFF or 0xFFFE */ /* sineOutput must be false in regular mode; if true, */ /* a pure sine output signal is generated */ /* output variables: */ /* txToneVec output signal (vector of 160 samples) */ /* input/output variables: */ /* tx_state pointer to the variable containing the */ /* transmitter states */ /***********************************************************************/ void ctm_transmitter(UWORD16 ucsCode, fifo_state_t* ctmCodeOutputVec, tx_state_t* tx_state ); #endif