
#ifndef REMOVE_MC_TEST
#include "ucp2.h"
#include "LLRDemodulation.h"

#define MAX_ZISE 65536
#define QAM256_CASE



_DM6 int llr_config[] = {
  #include "llr_config.dat"
};
#ifdef QPSK_CASE
_DM0 int input_data[]= {
  #include <qpsk_input.dat>
};
_DM1 int gain_mmse_data[] = {
  #include <qpsk_gain_mmse.dat>
};
#endif

#ifdef QAM16_CASE
_DM0 int input_data[]= {
  #include <qam16_input.dat>
};
_DM1 int gain_mmse_data[] = {
  #include <qam16_gain_mmse.dat>
};
#endif
#ifdef QAM64_CASE
_DM0 int input_data[]= {
  #include <qam64_input.dat>
};
_DM1 int gain_mmse_data[] = {
  #include <qam64_gain_mmse.dat>
};
#endif
#ifdef QAM256_CASE
_DM0 int input_data[]= {
  #include <test_input.dat>
};
_DM1 int gain_mmse_data[] = {
  #include <test_gain_mmse.dat>
};
#endif
_DM4 int test[] = {
  #include <test.dat>
};
_DM1 int temp_reciprocalNoiseVar_output[10] ;
_DM2 int temp_Q_output[10] ;

_DM3 v16s32 SVRReg  = {
  0, 0, 0, 0,
  0x40, 0, 0, 0,
  0xff00ff, 0, 0, 0x0000,
  0xffff, 0x6, 0, 0
};

int main(void)
{

  volatile int a = 0;
  int Qm = 8;
  int ReNum = 6552;
#if 1
  LLRDemodulationSetConfig((int)llr_config,
                          MPU_ADDR(input_data),
                          MPU_ADDR(gain_mmse_data),
                          MPU_ADDR(temp_Q_output),
                          MPU_ADDR(temp_reciprocalNoiseVar_output),
                          0x100000,
                          Qm,
                          ReNum);

  SVRReg[0] = MPU_ADDR(llr_config);
  LLRDemodulationAsm(SVRReg);
	a = __ucps2_getStatB();
		__ucps2_delay();
  return a;
#endif
}


#endif
