[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/driver/audio/src32_inc/ecall_defines.h b/mcu/driver/audio/src32_inc/ecall_defines.h
new file mode 100644
index 0000000..8bb9df5
--- /dev/null
+++ b/mcu/driver/audio/src32_inc/ecall_defines.h
@@ -0,0 +1,130 @@
+/*============================================================================*/
+/* eCall ANSI C fixed-point reference source code                             */
+/*                                                                            */
+/* File:         ecall_defines.h                                              */
+/* Version:      8.6.0 (Rel8) / 9.4.0 (Rel9)                                  */
+/* Date:         2011-02-08                                                   */
+/* Description:  constants and common data structures                         */
+/*----------------------------------------------------------------------------*/
+
+#ifndef ECALL_DEFINES_H_
+#define ECALL_DEFINES_H_
+
+#include <limits.h>
+
+//#define __ECALL_MODEM_SUPPORT_PSAP__
+#define ECALL_ENUM2STR
+
+/*============================================================================*/
+/* General conventions                                                        */
+/*----------------------------------------------------------------------------*/
+
+typedef enum { False, True } Bool;
+typedef enum { Minus = -1, Zero, Plus } Tern;
+
+typedef signed char          Int8;        /*  8 bit signed variable           */
+typedef signed short int     Int16;       /* 16 bit signed variable           */
+typedef signed int           Int32;       /* 32 bit signed variable           */
+
+typedef unsigned char        Ord1;        /*  1 bit variable                  */
+typedef unsigned char        Ord8;        /*  8 bit unsigned variable         */
+typedef unsigned short int   Ord16;       /* 16 bit unsigned variable         */
+typedef unsigned int         Ord32;       /* 32 bit unsigned variable         */
+
+#define MAX(a,b) ((a)>(b) ? (a) : (b))    /* macro: maximum                   */
+#define MIN(a,b) ((a)<(b) ? (a) : (b))    /* macro: minimum                   */
+#define ABS(a)   ((a)< 0 ? -(a) : (a))    /* macro: absolute value            */
+#define SIGN(a)  ((a)< 0 ? (-1) : (1))    /* macro: sign                      */
+
+#ifndef PCM_LENGTH
+#define PCM_LENGTH        (160)           /* length of PCM frame in samples   */
+#endif
+#ifndef ECALL_MSD_MAX_LENGTH
+#define ECALL_MSD_MAX_LENGTH    (140)           /* length of MSD message in bytes   */
+#endif
+#ifndef PCM_MIN
+#define PCM_MIN           (SHRT_MIN)      /* minimum PCM value                */
+#endif
+#ifndef PCM_MAX
+#define PCM_MAX           (SHRT_MAX)      /* maximum PCM value                */
+#endif
+
+/*============================================================================*/
+/* Synchronization                                                            */
+/*----------------------------------------------------------------------------*/
+
+#define SYNC_BADCHECK     (3)             /* sync consecutive bad check       */
+#define SYNC_BADTRACK     (4)             /* sync consecutive bad track       */
+#define SYNC_IDXLEN       (75)            /* sync index length                */
+#define SYNC_THRESHOLD    (10e6)          /* sync threshold                   */
+
+#define LOCK_RESYNC       (2)             /* messages to lock after sync loss */
+#define LOCK_START_UL     (2)             /* START messages to lock sync (UL) */
+#define LOCK_START_DL     (3)             /* START messages to lock sync (DL) */
+#define FAIL_RESTART      (3)             /* START messages to restart        */
+
+#define NRF_WAKEUP        (3)             /* number of wakeup frames          */
+#define NRF_SYNC          (13)            /* number of sync frames            */
+#define NRF_OBSERVE       (10)            /* number of sync observer frames   */
+#define NRF_RESYNC        (60)            /* resync frames after sync loss    */
+
+#define NRS_CHECK         (480)           /* number of samples to check       */
+#define NRS_TRACK         (240)           /* number of samples to track       */
+#define NRS_CP            (2)             /* number of samples next to peaks  */
+
+#define PNSEQ_OSF         (22)            /* oversampling of PN sequence      */
+#define PEAK_DIST_PP      (30*PNSEQ_OSF)  /* distance outer positive peaks    */
+#define PEAK_DIST_NN      (54*PNSEQ_OSF)  /* distance negative peaks          */
+#define PEAK_DIST_PN      (12*PNSEQ_OSF)  /* distance positive to negative    */
+
+/*============================================================================*/
+/* Uplink/Downlink format                                                     */
+/*----------------------------------------------------------------------------*/
+
+#define ARQ_MAX           (8)             /* number of redundancy versions    */
+#define NRB_TAIL          (3)             /* number of encoder tail bits      */
+#define NRB_CRC           (28)            /* order of CRC polynomial          */
+
+#define NRB_INFO          (8*ECALL_MSD_MAX_LENGTH)
+#define NRB_INFO_CRC      (8*ECALL_MSD_MAX_LENGTH + NRB_CRC)
+#define NRB_CODE_ARQ      (1380)
+#define NRB_CODE_BUFFER   (3*(8*ECALL_MSD_MAX_LENGTH + NRB_CRC) + 4*NRB_TAIL)
+
+#define SET_LLMSG         (16)            /* set size lower-layer messages    */
+#define SET_HLMSG         (16)            /* set size higher-layer messages   */
+
+#define NRF_DLDATA        (3)             /* downlink data frames             */
+#define NRF_DLMUTE1LL     (3)             /* 1st muting lower-layer message   */
+#define NRF_DLMUTE1HL     (1)             /* 1st muting higher-layer message  */
+#define NRF_DLCHUNK       (NRF_SYNC + NRF_DLMUTE1HL + 2*NRF_DLDATA)
+
+/*============================================================================*/
+/* IVS/PSAP processing                                                        */
+/*----------------------------------------------------------------------------*/
+
+#define NRF_MEMCTRL       (7)
+#define NRS_MEMSYNC       (508 + 38*NRS_CP)
+
+#define IVS_NUMSEND       (5)             /* number of SEND messages          */
+#define IVS_THRESHOLD     (40000)         /* threshold for control messages   */
+#define IVS_GOSTART       (6)             /* threshold for unreliable START   */
+#define IVS_TXFAST        (10)            /* fast modulator NACK condition    */
+#define IVS_TXINC         (87)            /* sample increment at restart      */
+
+#define PSAP_NUMSTART     (500)           /* number of START messages         */
+#define PSAP_NUMACK       (5)             /* number of ACK messages           */
+#define PSAP_NUMHLACK     (5)             /* number of HLACK messages         */
+#define PSAP_THRESHOLD    (40)            /* threshold for modulator type     */
+
+#define FEC_VAR           (30206)         /* variance: 1/4550000 in Q37       */
+#define FEC_MEAN          (0xB9999A)      /* mean: 5.8 in Q21                 */
+#define FEC_ITERATIONS    (8)             /* number of decoder iterations     */
+#define FEC_STATES        (8)             /* number of decoder states         */
+
+#define IntLLR            Int16
+#define LLR_MAX           ((Int32)(0x7fff-1))
+#define LOGEXP_RES        (401)           /* resolution of logexp table       */
+#define LOGEXP_DELTA      (-6)            /* internal Q-factor                */
+#define LOGEXP_QIN        (8)             /* input Q-factor of LLR values     */
+
+#endif