[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/driver/audio/src32_inc/ecall_modem.h b/mcu/driver/audio/src32_inc/ecall_modem.h
new file mode 100644
index 0000000..e1d296a
--- /dev/null
+++ b/mcu/driver/audio/src32_inc/ecall_modem.h
@@ -0,0 +1,61 @@
+/*============================================================================*/
+/* eCall ANSI C fixed-point reference source code                             */
+/*                                                                            */
+/* File:         ecall_modem.h                                                */
+/* Version:      8.6.0 (Rel8) / 9.4.0 (Rel9)                                  */
+/* Date:         2011-02-08                                                   */
+/* Description:  modulator and demodulator functions (header file)            */
+/*----------------------------------------------------------------------------*/
+
+#ifndef ECALL_MODEM_H_
+#define ECALL_MODEM_H_
+
+#include "ecall_defines.h"
+
+
+typedef enum {
+  ModUndef,
+  Mod3bit4smp,
+  Mod3bit8smp
+} ModType;
+
+typedef struct {
+  ModType type;      /* identifies modulator type */
+
+  Int16 bpsym;       /* bits per symbol */
+  Int16 spmf;        /* samples per modulation frame */
+  Int16 mfpf;        /* modulation frames per frame = PCM_LENGTH/spmf */
+  Int16 decpos1;     /* position 1st decoding trial */
+  Int16 decpos2;     /* position 2nd decoding trial */
+  Int16 wutperiod;   /* wakeup tone period in samples */
+  Int16 nfmute1;     /* number of muting frames 1st interval */
+  Int16 nfmute4;     /* number of muting frames 4th interval */
+  Int16 nfmuteall;   /* number of muting frames total */
+  Int16 nfdata;      /* number of data frames = NRB_CODE_ARQ/(mfpf*bpsym) */
+
+  const Int16 *ulPulse;
+  const Int16 *ulPulseMatch;
+  const Int16 *mgTable;
+  const Int16 *wakeupSin;
+  const Int16 *wakeupCos;
+} ModState;
+
+
+/*============================================================================*/
+/* Modem functions                                                            */
+/*----------------------------------------------------------------------------*/
+
+void SetModState(ModState*, ModType);
+
+void IvsTransmitter(const ModState*, const Ord1*, Int16*, Int16, Int16);
+void PsapReceiver(const ModState*, const Int16*, IntLLR*);
+
+void SymbolMod(const ModState*, Int16, Int16*);
+void SymbolDemod(const ModState*, const Int16*, IntLLR*);
+
+void Byte2Bit(const Ord8*, Ord1*, Int16);
+void Bit2Byte(const Ord1*, Ord8*, Int16);
+
+Int32 MpyLacc(Int32, Int16);
+
+#endif