📄 l1_confg.h
字号:
// Temporary modification for protocol stack compatibility - GSMLITE will be removed
#if (OP_L1_STANDALONE == 1)
#define GSMLITE 1
#endif
#if (CODE_VERSION == SIMULATION)
#define L1_VOICE_MEMO 1
#endif
#if ((OP_L1_STANDALONE == 1) || (!GSMLITE))
#define MELODY_E1 1 // Enable melody format E1 feature
#if(L1_VOICE_MEMO == 1)
#define VOICE_MEMO 1 // Enable voice memorization feature
#else
#define VOICE_MEMO 0
#endif
#define FIR 1 // Enable FIR feature
#if (DSP == 33) || (DSP == 34) || (DSP == 35) || (DSP == 36) || (DSP == 37) || (DSP == 38) || (DSP == 39)
#define AUDIO_MODE 1 // Enable Audio mode feature
#else
#define AUDIO_MODE 0 // Disable Audio mode feature
#endif
#else
#define MELODY_E1 0 // Disable melody format E1 feature
#if(L1_VOICE_MEMO == 1)
#define VOICE_MEMO 1 // Enable voice memorization feature
#else
#define VOICE_MEMO 0
#endif
#if (MELODY_E2)
#define FIR 1 // Enable FIR feature
#else
#define FIR 0 // Disable FIR feature
#endif
#define AUDIO_MODE 0 // Disable Audio mode feature
#endif
#else
#define KEYBEEP 0 // Enable keybeep feature
#define TONE 0 // Enable tone feature
#define MELODY_E1 0 // Enable melody format E1 feature
#define VOICE_MEMO 0 // Enable voice memorization feature
#define FIR 0 // Enable FIR feature
#define AUDIO_MODE 0 // Enable Audio mode feature
#endif
#define L1_AUDIO_BACKGROUND_TASK (SPEECH_RECO | MELODY_E2) // audio background task is used by speech reco and melody_e2
#if (OP_RIV_AUDIO == 1)
#define L1_AUDIO_DRIVER (L1_VOICE_MEMO_AMR | L1_EXT_AUDIO_MGT | L1_MP3) // Riviera audio driver (only Voice Memo AMR is available)
#endif
// Vocoder selections
//-------------------
#define FR 1 // Full Rate
#define FR_HR 2 // Full Rate + Half Rate
#define FR_EFR 3 // Full Rate + Enhanced Full Rate
#define FR_HR_EFR 4 // Full Rate + Half Rate + Enhanced Full Rate
// Standard (frequency plan) selections
//-------------------------------------
#define GSM 1 // GSM900.
#define GSM_E 2 // GSM900 Extended.
#define PCS1900 3 // PCS1900.
#define DCS1800 4 // DCS1800.
#define DUAL 5 // Dual Band (GSM900 + DCS 1800 bands)
#define DUALEXT 6 // Dual Band (E-GSM900 + DCS 1800 bands)
#define GSM850 7 // GSM850 Band
#define DUAL_US 8 // PCS1900 + GSM850
/*------------------------------------*/
/* Power Management */
/*------------------------------------*/
#define PWR_MNGT 1 // POWER management active if l1_config.pwr_mngt=1
/*---------------------------------------------------------------------------*/
/* DSP configurations */
/* ------------------ */
/* DSP | FR| HR|EFR|14.4| SPEED |12LA68|12LA68 |4L32|AEC| MCU/DSP */
/* (version) | | | | | |POLE80|POLE112| |/NS| interface */
/* ----------+---+---+---+----+---------+------+-------+----+---+---------- */
/* 0 (821) | x | | | | 39Mhz | x | | | | 1 */
/* ----------+---+---+---+----+---------+------+-------+----+---+---------- */
/* 1 (830) | x | | | | 39Mhz | (1) | | x | | 1 */
/* ----------+---+---+---+----+---------+------+-------+----+---+---------- */
/* 2 (912) | x | x | | | 58.5Mhz | x | | | | 2 */
/* ----------+---+---+---+----+---------+------+-------+----+---+---------- */
/* 3 (10xx) | x | | x | x | 65Mhz | x | | | x | 3 */
/* ----------+---+---+---+----+---------+------+-------+----|---+---------- */
/* 4 (11xx) | x | x | x | x | 65Mhz | x | x (3)| | x | 3 */
/* ----------+---+---+---+----+---------+------+-------+----+---+---------- */
/* 5 (830) | x | | | | 39Mhz | x | | | | 1 */
/* ----------+---+---+---+----+---------+------+-------+----+---+---------- */
/* 6 (11xx) | x | x | x | x | 65Mhz | x | x (3)| |(2)| 3 */
/* ----------+---+---+---+----+---------+------+-------+----+---+---------- */
/* */
/*(1) this version can be loaded on a 12LA68/POLE80 but the RIF/DL problem is*/
/* not corrected. */
/* */
/*(2) AEC is disabled at DSP level but L1 must be compiled with MCU/DSP */
/* interface which support AEC, therefore AEC is defined as 1. */
/* */
/*(3) Pole112 include RIF DL correction. No patch is needed if this one only */
/* include RIF/DL problem. */
/* */
/*---------------------------------------------------------------------------*/
#if (DSP == 16 || DSP == 17)
/* #define CLKMOD1 0x414e // ...
#define CLKMOD2 0x414e // ...65 Mips
#define CLKSTART 0x29 // ...65 Mips */
#define CLKMOD1 0x4006 // ...
#define CLKMOD2 0x4116 // ...65 Mips pll free
#define CLKSTART 0x29 // ...65 Mips
/* #define CLKMOD1 0x2116 //This settings force the DSP to never enteridle
#define CLKMOD2 0x2116 //In this case the PLL will be always on. 39 Mips
#define CLKSTART 0x25 // ...39 Mips */
#define VOC FR_HR_EFR // FR + HR + EFR.
#define DATA14_4 1 // No 14.4 data allowed.
#define AEC 1 // AEC/NS supported.
#define MAP 3
#define DSP_START 0x2000
#define W_A_DSP1 0 // Work Around correcting pb in DSP: SACCH
#define W_A_DSP_SR_BGD 0 // Work around about the DSP speech reco background task.
/* DSP debug trace configuration */
/*-------------------------------*/
#if (MELODY_E2)
// In case of the melody E2 the DSP trace must be disable because the
// melody instrument waves are overlayed with DSP trace buffer
// DSP debug trace API buffer config
#define C_DEBUG_BUFFER_ADD 0x17ff // Address of DSP write pointer... data are just after.
#define C_DEBUG_BUFFER_SIZE 7 // Real size is incremented by 1 for DSP write pointer.
#else
// DSP debug trace API buffer config
#define C_DEBUG_BUFFER_ADD 0x17ff // Address of DSP write pointer... data are just after.
#define C_DEBUG_BUFFER_SIZE 2047 // Real size is incremented by 1 for DSP write pointer.
#endif
#elif (DSP == 30) // First GPRS.
#define CLKMOD1 0x4006 // ...
#define CLKMOD2 0x4116 // ...65 Mips pll free
#define CLKSTART 0x29 // ...65 Mips
#define VOC FR_HR_EFR // FR + HR + EFR.
#define DATA14_4 1 // No 14.4 data allowed.
#define AEC 1 // AEC/NS not supported.
#define MAP 3
#define DSP_START 0x1F81
#define W_A_DSP1 0 // Work Around correcting pb in DSP: SACCH
#define ULYSSE 0
#define W_A_DSP_SR_BGD 0 // Work around about the DSP speech reco background task.
#elif (DSP == 31) // ROM Code GPRS G0.
#define CLKMOD1 0x4006 // ...
#define CLKMOD2 0x4116 // ...65 Mips pll free
#define CLKSTART 0x29 // ...65 Mips
#define VOC FR_HR_EFR // FR + HR + EFR (normaly FR_EFR : PBs).
#define DATA14_4 1 // 14.4 data allowed.
#define AEC 1 // AEC/NS not supported.
#define MAP 3
#define DSP_START 0x8763
#define INSTALL_ADD 0x87c9 // Used to set gprs_install_address pointer
#define INSTALL_ADD_WITH_PATCH 0x1352 // Used to set gprs_install_address pointer
#define W_A_DSP1 0 // Work Around correcting pb in DSP: SACCH
#define ULYSSE 0
#define W_A_DSP_SR_BGD 0 // Work around about the DSP speech reco background task.
#elif (DSP == 32) // ROM Code GPRS G1.
#define CLKMOD1 0x4006 // ...
#define CLKMOD2 0x4116 // ...65 Mips pll free
#define CLKSTART 0x29 // ...65 Mips
#define VOC FR_HR_EFR // FR + HR + EFR (normaly FR_EFR : PBs).
#define DATA14_4 1 // 14.4 data allowed.
#define AEC 1 // AEC/NS not supported.
#define MAP 3
#define DSP_START 0x8763
#define INSTALL_ADD 0x87c9 // Used to set gprs_install_address pointer
#define W_A_DSP1 0 // Work Around correcting pb in DSP: SACCH
#define ULYSSE 0
#define W_A_DSP_SR_BGD 0 // Work around about the DSP speech reco background task.
#elif (DSP == 33) // ROM Code GPRS.
#define CLKMOD1 0x4006 // ...
#define CLKMOD2 0x4116 // ...65 Mips pll free
#define CLKSTART 0x29 // ...65 Mips
#define C_PLL_CONFIG 0x154 // For VTCXO = 13 MHz and max DSP speed = 84.5 Mips
#define VOC FR_HR_EFR // FR + HR + EFR (normaly FR_EFR : PBs).
#define AEC 1 // AEC/NS not supported.
#define L1_NEW_AEC 1
#if ((L1_NEW_AEC) && (!AEC))
// First undef the flag to avoid warnings at compilation time
#undef AEC
#define AEC 1
#endif
#define MAP 3
#define DSP_START 0x7000
#define INSTALL_ADD 0x7002 // Used to set gprs_install_address pointer
#define W_A_DSP1 0 // Work Around correcting pb in DSP: SACCH
#define ULYSSE 0
#define W_A_DSP_SR_BGD 1 // Work around about the DSP speech reco background task.
#if (CODE_VERSION == NOT_SIMULATION)
#define W_A_DSP_IDLE3 1 // Work around to report DSP state to the ARM for Deep Sleep
// management.
// DSP_IDLE3 is not supported in simulation
#else
#define W_A_DSP_IDLE3 0
#endif
// DSP software work-around config
// bit0 - Work-around to support CRTG.
// bit1 - DMA reset on critical DMA still running cases, refer to REQ01260.
// bit2 - Solve Read/Write BULDATA pointers Omega & Nausica issue, refer to BUG00650.
// bit3 - Solve IBUFPTRx reset IOTA issue, refer to BUG01911.
#if (ANLG_FAM == 1) // OMEGA / NAUSICA
#define C_DSP_SW_WORK_AROUND 0x0006
#elif (ANLG_FAM == 2) // IOTA
#define C_DSP_SW_WORK_AROUND 0x000E
#elif (ANLG_FAM == 3) // SYREN
#define C_DSP_SW_WORK_AROUND 0x000E
#endif
/* DSP debug trace configuration */
/*-------------------------------*/
#if (MELODY_E2)
// In case of the melody E2 the DSP trace must be disable because the
// melody instrument waves are overlayed with DSP trace buffer
// DSP debug trace API buffer config
#define C_DEBUG_BUFFER_ADD 0x17ff // Address of DSP write pointer... data are just after.
#define C_DEBUG_BUFFER_SIZE 7 // Real size is incremented by 1 for DSP write pointer.
// DSP debug trace type config
// |<-------------- Features -------------->|<---------- Levels ----------->|
// [15-8:UNUSED|7:TIMER|6:BURST|5:BUFFER|4:BUFFER HEADER|3:UNUSED|2:KERNEL|1:BASIC|0:ISR]
#define C_DEBUG_TRACE_TYPE 0x0000 // Level = BASIC; Features = Timer + Buffer Header + Burst.
#if (C_DEBUG_TRACE_TYPE != 0) && ((TRACE_TYPE == 1) || (TRACE_TYPE == 4))
#define DSP_DEBUG_TRACE_ENABLE 1 // Enable DSP debug trace dumping capability
// Currently not supported !
#endif
#else
// DSP debug trace API buffer config
#define C_DEBUG_BUFFER_ADD 0x17ff // Address of DSP write pointer... data are just after.
#define C_DEBUG_BUFFER_SIZE 2047 // Real size is incremented by 1 for DSP write pointer.
// DSP debug trace type config
// |<-------------- Features -------------->|<---------- Levels ----------->|
// [15-8:UNUSED|7:TIMER|6:BURST|5:BUFFER|4:BUFFER HEADER|3:UNUSED|2:KERNEL|1:BASIC|0:ISR]
#define C_DEBUG_TRACE_TYPE 0x0012 // Level = BASIC; Features = Buffer Header.
#if (C_DEBUG_TRACE_TYPE != 0) && ((TRACE_TYPE == 1) || (TRACE_TYPE == 4))
#define DSP_DEBUG_TRACE_ENABLE 1 // Enable DSP debug trace dumping capability (supported since patch 2090)
#endif
#endif
/* d_error_status */
/*-------------------------------*/
#if ((TRACE_TYPE == 1) || (TRACE_TYPE == 4))
#define D_ERROR_STATUS_TRACE_ENABLE 1 // Enable d_error_status checking capability (supported since patch 2090)
// masks to apply on d_error_status bit field for DSP patch 0x2061 or 0x2062
#define DSP_DEBUG_GSM_MASK 0x08BD // L1_MCU-SPR-15852
#define DSP_DEBUG_GPRS_MASK 0x0f3d
#endif
#if DCO_ALGO
// DCO type of scheduling
#define C_CN_DCO_PARAM 0xA248
#endif
#elif (DSP == 34) // ROM Code GPRS AMR.
#define CLKMOD1 0x4006 // ...
#define CLKMOD2 0x4116 // ...65 Mips pll free
#define CLKSTART 0x29 // ...65 Mips
#define C_PLL_CONFIG 0x154 // For VTCXO = 13 MHz and max DSP speed = 84.5 Mips
#define VOC FR_HR_EFR // FR + HR + EFR (normaly FR_EFR : PBs).
#define AEC 1 // AEC/NS not supported.
#define L1_NEW_AEC 1
#if ((L1_NEW_AEC) && (!AEC))
// First undef the flag to avoid warnings at compilation time
#undef AEC
#define AEC 1
#endif
#define MAP 3
#define DSP_START 0x7000
#define INSTALL_ADD 0x7002 // Used to set gprs_install_address pointer
#define W_A_DSP1 0 // Work Around correcting pb in DSP: SACCH
#define ULYSSE 0
#define W_A_DSP_SR_BGD 1 // Work around about the DSP speech reco background task.
#if (CODE_VERSION == NOT_SIMULATION)
#define W_A_DSP_IDLE3 1 // Work around to report DSP state to the ARM for Deep Sleep
// management.
// DSP_IDLE3 is not supported in simulation
#else
#define W_A_DSP_IDLE3 0
#endif
// DSP software work-around config
// bit0 - Work-around to support CRTG.
// bit1 - DMA reset on critical DMA still running cases, refer to REQ01260.
// bit2 - Solve Read/Write BULDATA pointers Omega & Nausica issue, refer to BUG00650.
// bit3 - Solve IBUFPTRx reset IOTA issue, refer to BUG01911.
#if (ANLG_FAM == 1) // OMEGA / NAUSICA
#define C_DSP_SW_WORK_AROUND 0x0006
#elif (ANLG_FAM == 2) // IOTA
#define C_DSP_SW_WORK_AROUND 0x000E
#elif (ANLG_FAM == 3) // SYREN
#define C_DSP_SW_WORK_AROUND 0x000E
#endif
/* DSP debug trace configuration */
/*-------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -