FreeCalypso > hg > fc-magnetite
view src/cs/layer1/include/l1_mftab.h @ 702:9394305d4ff5 default tip
etm_audio.c: fix off-by-one error in auw of FIR coefficients
This fix was already made in FC Tourmaline a while back, but it is also
the kind of bugfix that deserves to be backported to Magnetite and
Selenite as well.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 31 Oct 2022 00:14:44 +0000 |
parents | 945cf7f506b2 |
children |
line wrap: on
line source
/************* Revision Controle System Header ************* * GSM Layer 1 software * L1_MFTAB.H * * Filename l1_mftab.h * Copyright 2003 (C) Texas Instruments * ************* Revision Controle System Header *************/ /*********************************************************** * Content: * This file contains the MultiFrame tables for all L1S * basic tasks. ***********************************************************/ /*******************************************************************************************/ /* Multiframe Blocks for Dynamic MFTAB Building purpose. */ /*******************************************************************************************/ // Multiframe table size.... #define BLOC_FBNEW_SIZE 14 + 2 // FB. #define BLOC_SB2_SIZE 5 + 2 // SB2. #define BLOC_SBCONF_SIZE 4 + 2 // SBCONF. #define BLOC_BCCHN_SIZE 7 + 2 // BCCHN. #define BLOC_BCCHN_TOP_SIZE 7 + 2 // BCCHN_TOP (BCCHN top priority) #define BLOC_SYNCHRO_SIZE 1 // SYNC. #define BLOC_ADC_SIZE 1 // ADC in CS_MODE0 #define BLOC_ABORT_SIZE 3 // ABORT. #define BLOC_RAACC_SIZE 3 // RAACC. #define S_RECT4_SIZE 6 // All "rectangular 4" serving tasks: NP/EP/BCCHS/ALLC. #define BLOC_TCHT_SIZE 3 // TCHTF / TCHTH / TCHD. #define BLOC_TCHA_SIZE 3 // TCHA. #define BLOC_SMSCB_SIZE 6 // SMSCB. #define BLOC_FB51_SIZE 14 // FB51. #define BLOC_SB51_SIZE 4 // SB51. #define BLOC_SBCNF51_SIZE 4 // SBCNF51. #define BLOC_FB26_SIZE 4 // FB26. #define BLOC_SB26_SIZE 5 // SB26. #define BLOC_SBCNF26_SIZE 5 // SBCNF26. #define BLOC_HWTEST_SIZE 4 // HWTEST. #define BLOC_DUL_ADL_MIXED_SIZED 7 #if (L1_GPRS) #define BLOC_BCCHN_TRAN_SIZE 7 // BCCHN_TRAN. #endif #ifdef L1_ASYNC_C /*----------------------------------------------------*/ /* TASK: Frequency Burst search... */ /*----------------------------------------------------*/ const T_FCT BLOC_FBNEW[] = { {l1s_ctrl_msagc,FBNEW,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_read_msagc,FBNEW,NO_PAR},{l1s_ctrl_fb,FBNEW,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 3 {NULL,NO_PAR,NO_PAR}, // frame 4 {l1s_read_mon_result,FBNEW, 1},{NULL,NO_PAR,NO_PAR}, // frame 5 {l1s_read_mon_result,FBNEW, 2},{NULL,NO_PAR,NO_PAR}, // frame 6 {l1s_read_mon_result,FBNEW, 3},{NULL,NO_PAR,NO_PAR}, // frame 7 {l1s_read_mon_result,FBNEW, 4},{NULL,NO_PAR,NO_PAR}, // frame 8 {l1s_read_mon_result,FBNEW, 5},{NULL,NO_PAR,NO_PAR}, // frame 9 {l1s_read_mon_result,FBNEW, 6},{NULL,NO_PAR,NO_PAR}, // frame 10 {l1s_read_mon_result,FBNEW, 7},{NULL,NO_PAR,NO_PAR}, // frame 11 {l1s_read_mon_result,FBNEW, 8},{NULL,NO_PAR,NO_PAR}, // frame 12 {l1s_read_mon_result,FBNEW, 9},{NULL,NO_PAR,NO_PAR}, // frame 13 {l1s_read_mon_result,FBNEW,10},{NULL,NO_PAR,NO_PAR}, // frame 14 {l1s_read_mon_result,FBNEW,11},{NULL,NO_PAR,NO_PAR}, // frame 15 {l1s_read_mon_result,FBNEW,12},{NULL,NO_PAR,NO_PAR} // frame 16 }; /*----------------------------------------------------*/ /* TASK: SB2, New Synchro Burst search... */ /*----------------------------------------------------*/ /* C W R -> AGC */ /* C W W R -> 1st SB */ /* C W W R -> 2nd SB */ /*----------------------------------------------------*/ const T_FCT BLOC_SB2[] = { {l1s_ctrl_msagc,SB2,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_read_msagc,SB2,NO_PAR}, {l1s_ctrl_sbgen,SB2,1}, {NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_ctrl_sbgen,SB2,2}, {NULL,NO_PAR,NO_PAR}, // frame 4 {NULL,NO_PAR,NO_PAR}, // frame 5 {l1s_read_mon_result,SB2,1}, {NULL,NO_PAR,NO_PAR}, // frame 6 {l1s_read_mon_result,SB2,2}, {NULL,NO_PAR,NO_PAR} // frame 7 }; /*----------------------------------------------------*/ /* TASK: SBCONF, Synchro confirmation. */ /*----------------------------------------------------*/ /* C W R -> AGC */ /* C W W R -> SBCONF */ /*----------------------------------------------------*/ const T_FCT BLOC_SBCONF[] = { {l1s_ctrl_msagc,SBCONF,1}, {NULL,NO_PAR,NO_PAR}, // frame 1 {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_read_msagc,SBCONF,1},{l1s_ctrl_sbgen,SBCONF,1}, {NULL,NO_PAR,NO_PAR}, // frame 3 {NULL,NO_PAR,NO_PAR}, // frame 4 {NULL,NO_PAR,NO_PAR}, // frame 5 {l1s_read_mon_result,SBCONF,1},{NULL,NO_PAR,NO_PAR} // frame 6 }; /*----------------------------------------------------*/ /* TASK: Serving cell Normal BCCH reading. */ /*----------------------------------------------------*/ /* frame 1 2 3 4 5 6 */ /* | | | | | | */ /* C W R | | | -> burst 1 */ /* C W R | | -> burst 2 */ /* C W R | -> burst 3 */ /* C W R -> burst 4 */ /*----------------------------------------------------*/ const T_FCT BLOC_NBCCHS[] = { {l1s_ctrl_snb_dl,NBCCHS,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 {l1s_ctrl_snb_dl,NBCCHS,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_read_snb_dl,NBCCHS,BURST_1},{l1s_ctrl_snb_dl,NBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_read_snb_dl,NBCCHS,BURST_2},{l1s_ctrl_snb_dl,NBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4 {l1s_read_snb_dl,NBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 {l1s_read_snb_dl,NBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 }; /*----------------------------------------------------*/ /* TASK: Serving cell Extended BCCH reading. */ /*----------------------------------------------------*/ /* frame 1 2 3 4 5 6 */ /* | | | | | | */ /* C W R | | | -> burst 1 */ /* C W R | | -> burst 2 */ /* C W R | -> burst 3 */ /* C W R -> burst 4 */ /*----------------------------------------------------*/ const T_FCT BLOC_EBCCHS[] = { {l1s_ctrl_snb_dl,EBCCHS,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 {l1s_ctrl_snb_dl,EBCCHS,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_read_snb_dl,EBCCHS,BURST_1},{l1s_ctrl_snb_dl,EBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_read_snb_dl,EBCCHS,BURST_2},{l1s_ctrl_snb_dl,EBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4 {l1s_read_snb_dl,EBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 {l1s_read_snb_dl,EBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 }; /*----------------------------------------------------*/ /* TASK: Neighbour Cell SYStem info reading. */ /*----------------------------------------------------*/ /* C W R -> AGC */ /* C W W W W W R -> all bursts */ /*----------------------------------------------------*/ const T_FCT BLOC_BCCHN[] = { {l1s_ctrl_msagc,BCCHN,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_read_msagc,BCCHN,NO_PAR},{l1s_ctrl_nnb,BCCHN,NO_PAR},{NULL,NO_PAR,NO_PAR}, // frame 3 {NULL,NO_PAR,NO_PAR}, // frame 4 {NULL,NO_PAR,NO_PAR}, // frame 5 {NULL,NO_PAR,NO_PAR}, // frame 6 {NULL,NO_PAR,NO_PAR}, // frame 7 {NULL,NO_PAR,NO_PAR}, // frame 8 {l1s_read_nnb,BCCHN,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 9 }; /*----------------------------------------------------*/ /* TASK: Neighbour Cell SYStem info reading. */ /*----------------------------------------------------*/ /* C W R -> AGC */ /* C W W W W W R -> all bursts */ /*----------------------------------------------------*/ const T_FCT BLOC_BCCHN_TOP[] = { {l1s_ctrl_msagc,BCCHN_TOP,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_read_msagc,BCCHN_TOP,NO_PAR},{l1s_ctrl_nnb,BCCHN_TOP,NO_PAR},{NULL,NO_PAR,NO_PAR}, // frame 3 {NULL,NO_PAR,NO_PAR}, // frame 4 {NULL,NO_PAR,NO_PAR}, // frame 5 {NULL,NO_PAR,NO_PAR}, // frame 6 {NULL,NO_PAR,NO_PAR}, // frame 7 {NULL,NO_PAR,NO_PAR}, // frame 8 {l1s_read_nnb,BCCHN_TOP,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 9 }; /*----------------------------------------------------*/ /* TASK: Neighbour Cell SYStem info reading. */ /* for packet transfer mode */ /*----------------------------------------------------*/ /* C W W W W W R -> all bursts */ /*----------------------------------------------------*/ #if (L1_GPRS) const T_FCT BLOC_BCCHN_TRAN[] = { {l1s_ctrl_nnb,BCCHN_TRAN,NO_PAR},{NULL,NO_PAR,NO_PAR}, // frame 1 {NULL,NO_PAR,NO_PAR}, // frame 2 {NULL,NO_PAR,NO_PAR}, // frame 3 {NULL,NO_PAR,NO_PAR}, // frame 4 {NULL,NO_PAR,NO_PAR}, // frame 5 {NULL,NO_PAR,NO_PAR}, // frame 6 {l1s_read_nnb,BCCHN_TRAN,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 7 }; #endif /*----------------------------------------------------*/ /* TASK: Synchronization (camp on a new serving cell) */ /*----------------------------------------------------*/ const T_FCT BLOC_SYNCHRO[] = { {l1s_new_synchro,NO_PAR,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 1 }; /*----------------------------------------------------*/ /* TASK: ADC measurement in CS_MODE0 */ /* C */ /* the ADC is performed inside the frame and the */ /* result is red in the same frame due to an */ /* Interrupt (handle by Riviera) */ /*----------------------------------------------------*/ const T_FCT BLOC_ADC[] = { {l1s_ctrl_ADC,NO_PAR,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 1 }; /*----------------------------------------------------*/ /* TASK: Short Message Service Cell Broadcast */ /*----------------------------------------------------*/ /* frame 1 2 3 4 5 6 */ /* | | | | | | */ /* C W R | | | -> hopp. + burst 1 */ /* C W R | | -> hopp. + burst 2 */ /* C W R | -> hopp. + burst 3 */ /* C W R -> hopp. + burst 4 + Synch back*/ /*----------------------------------------------------*/ const T_FCT BLOC_SMSCB[] = { {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_ctrl_smscb, SMSCB,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_ctrl_smscb, SMSCB,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_read_snb_dl,SMSCB,BURST_1},{l1s_ctrl_smscb, SMSCB,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_read_snb_dl,SMSCB,BURST_2},{l1s_ctrl_smscb, SMSCB,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4 {l1s_read_snb_dl,SMSCB,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 {l1s_read_snb_dl,SMSCB,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 }; /*----------------------------------------------------*/ /* TASK: Normal Paging... */ /*----------------------------------------------------*/ /* frame 1 2 3 4 5 6 */ /* | | | | | | */ /* C W R | | | -> burst 1 */ /* C W R | | -> burst 2 */ /* C W R | -> burst 3 */ /* C W R -> burst 4 */ /*----------------------------------------------------*/ const T_FCT BLOC_NP[] = { {l1s_ctrl_snb_dl,NP,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 {l1s_ctrl_snb_dl,NP,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_read_snb_dl,NP,BURST_1},{l1s_ctrl_snb_dl,NP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_read_snb_dl,NP,BURST_2},{l1s_ctrl_snb_dl,NP,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4 {l1s_read_snb_dl,NP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 {l1s_read_snb_dl,NP,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 }; /*----------------------------------------------------*/ /* TASK: Extended Paging task... */ /*----------------------------------------------------*/ /* frame 1 2 3 4 5 6 */ /* | | | | | | */ /* C W R | | | -> burst 1 */ /* C W R | | -> burst 2 */ /* C W R | -> burst 3 */ /* C W R -> burst 4 */ /*----------------------------------------------------*/ const T_FCT BLOC_EP[] = { {l1s_ctrl_snb_dl,EP,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 {l1s_ctrl_snb_dl,EP,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_read_snb_dl,EP,BURST_1},{l1s_ctrl_snb_dl,EP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_read_snb_dl,EP,BURST_2},{l1s_ctrl_snb_dl,EP,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4 {l1s_read_snb_dl,EP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 {l1s_read_snb_dl,EP,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 }; /*----------------------------------------------------*/ /* TASK: All CCCH reading task... */ /*----------------------------------------------------*/ /* frame 1 2 3 4 5 6 */ /* | | | | | | */ /* C W R | | | -> burst 1 */ /* C W R | | -> burst 2 */ /* C W R | -> burst 3 */ /* C W R -> burst 4 */ /*----------------------------------------------------*/ const T_FCT BLOC_ALLC[] = { {l1s_ctrl_snb_dl,ALLC,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 {l1s_ctrl_snb_dl,ALLC,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_read_snb_dl,ALLC,BURST_1},{l1s_ctrl_snb_dl,ALLC,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_read_snb_dl,ALLC,BURST_2},{l1s_ctrl_snb_dl,ALLC,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4 {l1s_read_snb_dl,ALLC,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 {l1s_read_snb_dl,ALLC,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 }; /*----------------------------------------------------*/ /* TASK: SDCCH */ /*----------------------------------------------------*/ /* frame 1 2 3 4 5 6 */ /* | | | | | | */ /* C W R | | | -> burst 1 */ /* C W R | | -> burst 2 */ /* C W R | -> burst 3 */ /* C W R -> burst 4 */ /*----------------------------------------------------*/ const T_FCT BLOC_DDL[] = { {l1s_hopping_algo,DDL,NO_PAR},{l1s_ctrl_snb_dl, DDL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 {l1s_hopping_algo,DDL,NO_PAR},{l1s_ctrl_snb_dl, DDL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_hopping_algo,DDL,NO_PAR},{l1s_read_dedic_dl,DDL,BURST_1},{l1s_ctrl_snb_dl, DDL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_hopping_algo,DDL,NO_PAR},{l1s_read_dedic_dl,DDL,BURST_2},{l1s_ctrl_snb_dl, DDL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4 {l1s_read_dedic_dl,DDL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 {l1s_read_dedic_dl,DDL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 }; const T_FCT BLOC_DUL[] = { {l1s_hopping_algo,DUL,NO_PAR},{l1s_ctrl_snb_ul, DUL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 {l1s_hopping_algo,DUL,NO_PAR},{l1s_ctrl_snb_ul, DUL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_hopping_algo,DUL,NO_PAR},{l1s_read_tx_result,DUL,BURST_1},{l1s_ctrl_snb_ul, DUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_hopping_algo,DUL,NO_PAR},{l1s_read_tx_result,DUL,BURST_2},{l1s_ctrl_snb_ul, DUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4 {l1s_read_tx_result,DUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 {l1s_read_tx_result,DUL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 }; const T_FCT BLOC_ADL[] = { {l1s_hopping_algo,ADL,NO_PAR},{l1s_ctrl_snb_dl, ADL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 {l1s_hopping_algo,ADL,NO_PAR},{l1s_ctrl_snb_dl, ADL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_dedic_dl,ADL,BURST_1},{l1s_ctrl_snb_dl, ADL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_dedic_dl,ADL,BURST_2},{l1s_ctrl_snb_dl, ADL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4 {l1s_read_dedic_dl,ADL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 {l1s_read_dedic_dl,ADL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 }; const T_FCT BLOC_AUL[] = { {l1s_hopping_algo,AUL,NO_PAR},{l1s_ctrl_snb_ul, AUL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 {l1s_hopping_algo,AUL,NO_PAR},{l1s_ctrl_snb_ul, AUL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_hopping_algo,AUL,NO_PAR},{l1s_read_tx_result,AUL,BURST_1},{l1s_ctrl_snb_ul, AUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_hopping_algo,AUL,NO_PAR},{l1s_read_tx_result,AUL,BURST_2},{l1s_ctrl_snb_ul, AUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4 {l1s_read_tx_result,AUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 {l1s_read_tx_result,AUL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 }; /*-----------------------------------------------------------------------*/ /* SPECIAL CASE: (ADL4,DDL4),(ADL5,DDL5),(ADL6,DDL6). */ /*-----------------------------------------------------------------------*/ /* frame 1 2 3 4 5 6 7 */ /* | | | | | | | */ /* C(DUL,1) W(DUL,1) R(DUL,1) | | | | */ /* C(ADL,1) W(ADL,1) R(ADL,1) | | | */ /* C(DUL,2) W(DUL,2) R(DUL,2) | | | */ /* C(ADL,2) W(ADL,2) R(ADL,2) | | */ /* C(DUL,3) W(DUL,3) R(DUL,3) | | */ /* C(ADL,3) W(ADL,3) R(ADL,3) | */ /* C(DUL,4) W(DUL,4) R(DUL,4) | */ /* C(ADL,4) W(ADL,4) R(ADL,4) */ /*-----------------------------------------------------------------------*/ const T_FCT BLOC_DUL_ADL_MIXED[] = { {l1s_hopping_algo,AUL,NO_PAR},{l1s_ctrl_snb_ul, DUL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 {l1s_hopping_algo,ADL,NO_PAR},{l1s_ctrl_snb_dl, ADL,BURST_1},{l1s_ctrl_snb_ul, DUL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_tx_result,DUL,BURST_1},{l1s_ctrl_snb_dl, ADL,BURST_2},{l1s_ctrl_snb_ul, DUL,BURST_3}, {NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_dedic_dl, ADL,BURST_1},{l1s_read_tx_result,DUL,BURST_2},{l1s_ctrl_snb_dl, ADL,BURST_3},{l1s_ctrl_snb_ul, DUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4 {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_dedic_dl, ADL,BURST_2},{l1s_read_tx_result,DUL,BURST_3},{l1s_ctrl_snb_dl, ADL,BURST_4}, {NULL,NO_PAR,NO_PAR}, // frame 5 {l1s_read_dedic_dl,ADL,BURST_3},{l1s_read_tx_result,DUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 6 {l1s_read_dedic_dl,ADL,BURST_4}, {NULL,NO_PAR,NO_PAR} // frame 7 }; /*----------------------------------------------------*/ /* ABORT: used to abort a running task when a new */ /* task with higher priority occurs. */ /*----------------------------------------------------*/ const T_FCT BLOC_ABORT[] = { {l1s_abort,NO_PAR,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_read_dummy,NO_PAR,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 3 }; /*----------------------------------------------------*/ /* TASK: RACH in access mode... */ /*----------------------------------------------------*/ const T_FCT BLOC_RAACC[] = { {l1s_ctrl_rach,RAACC,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_read_tx_result,RAACC,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 3 }; /*----------------------------------------------------*/ /* TASK: TCH */ /*----------------------------------------------------*/ /* C W R */ /*----------------------------------------------------*/ const T_FCT BLOC_TCHTF[] = { {l1s_hopping_algo,TCHTF,NO_PAR},{l1s_ctrl_tchtf,TCHTF,NO_PAR}, {NULL,NO_PAR}, // frame 1 {NULL,NO_PAR}, // frame 2 {l1s_read_dedic_dl,TCHTF,NO_PAR}, {NULL,NO_PAR} // frame 3 }; const T_FCT BLOC_TCHTH[] = { {l1s_hopping_algo,TCHTH,NO_PAR},{l1s_ctrl_tchth,TCHTH,NO_PAR}, {NULL,NO_PAR}, // frame 1 {NULL,NO_PAR}, // frame 2 {l1s_read_dedic_dl,TCHTH,NO_PAR}, {NULL,NO_PAR} // frame 3 }; const T_FCT BLOC_TCHD[] = { {l1s_ctrl_tchtd,TCHD,NO_PAR}, {NULL,NO_PAR}, // frame 1 {NULL,NO_PAR}, // frame 2 {l1s_read_dummy,TCHD,NO_PAR}, {NULL,NO_PAR} // frame 3 }; const T_FCT BLOC_TCHA[] = { {l1s_hopping_algo,TCHA,NO_PAR},{l1s_ctrl_tcha,TCHA,NO_PAR}, {NULL,NO_PAR}, // frame 1 {NULL,NO_PAR}, // frame 2 {l1s_read_dedic_dl,TCHA,NO_PAR}, {NULL,NO_PAR} // frame 3 }; /*----------------------------------------------------*/ /* TASK: Frequency Burst search in dedic/SDCCH... */ /*----------------------------------------------------*/ const T_FCT BLOC_FB51[] = { {l1s_ctrl_fb,FB51,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 {NULL,NO_PAR,NO_PAR}, // frame 2 {l1s_read_mon_result,FB51, 1},{NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_read_mon_result,FB51, 2},{NULL,NO_PAR,NO_PAR}, // frame 4 {l1s_read_mon_result,FB51, 3},{NULL,NO_PAR,NO_PAR}, // frame 5 {l1s_read_mon_result,FB51, 4},{NULL,NO_PAR,NO_PAR}, // frame 6 {l1s_read_mon_result,FB51, 5},{NULL,NO_PAR,NO_PAR}, // frame 7 {l1s_read_mon_result,FB51, 6},{NULL,NO_PAR,NO_PAR}, // frame 8 {l1s_read_mon_result,FB51, 7},{NULL,NO_PAR,NO_PAR}, // frame 9 {l1s_read_mon_result,FB51, 8},{NULL,NO_PAR,NO_PAR}, // frame 10 {l1s_read_mon_result,FB51, 9},{NULL,NO_PAR,NO_PAR}, // frame 11 {l1s_read_mon_result,FB51,10},{NULL,NO_PAR,NO_PAR}, // frame 12 {l1s_read_mon_result,FB51,11},{NULL,NO_PAR,NO_PAR}, // frame 13 {l1s_read_mon_result,FB51,12},{NULL,NO_PAR,NO_PAR} // frame 14 }; /*----------------------------------------------------*/ /* TASK: SB51, Synchro Burst reading. Dedic/SDCCH. */ /*----------------------------------------------------*/ /* C W W R -> SB */ /*----------------------------------------------------*/ const T_FCT BLOC_SB51[] = { {l1s_ctrl_sbgen,SB51,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 {NULL,NO_PAR,NO_PAR}, // frame 2 {NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_read_mon_result,SB51,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 4 }; /*----------------------------------------------------*/ /* TASK: SBCNF51, Synchro confirmation. Dedic/SDCCH. */ /*----------------------------------------------------*/ /* C W W R -> SBCONF */ /*----------------------------------------------------*/ const T_FCT BLOC_SBCNF51[] = { {l1s_ctrl_sbgen,SBCNF51,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 {NULL,NO_PAR,NO_PAR}, // frame 2 {NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_read_mon_result,SBCNF51,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 4 }; /*----------------------------------------------------*/ /* TASK: FB26, Frequency Burst search in dedic/TCH... */ /*----------------------------------------------------*/ /* C W W R */ /*----------------------------------------------------*/ const T_FCT BLOC_FB26[] = { {l1s_ctrl_fb26,FB26,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 {NULL,NO_PAR,NO_PAR}, // frame 2 {NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_read_mon_result,FB26,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 4 }; /*----------------------------------------------------*/ /* TASK: SB26, Synchro. Burst reading in dedic/TCH... */ /*----------------------------------------------------*/ /* C W W W R */ /*----------------------------------------------------*/ const T_FCT BLOC_SB26[] = { {l1s_ctrl_sb26,SB26,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 {NULL,NO_PAR,NO_PAR}, // frame 2 {NULL,NO_PAR,NO_PAR}, // frame 3 {NULL,NO_PAR,NO_PAR}, // frame 4 {l1s_read_mon_result,SB26,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 5 }; /*----------------------------------------------------*/ /* TASK: SBCNF26, Synchro. Burst reading in dedic/TCH.*/ /*----------------------------------------------------*/ /* C W W W R */ /*----------------------------------------------------*/ const T_FCT BLOC_SBCNF26[] = { {l1s_ctrl_sb26,SBCNF26,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 {NULL,NO_PAR,NO_PAR}, // frame 2 {NULL,NO_PAR,NO_PAR}, // frame 3 {NULL,NO_PAR,NO_PAR}, // frame 4 {l1s_read_mon_result,SBCNF26,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 5 }; /*----------------------------------------------------*/ /* TASK: HWTEST after power-on... */ /*----------------------------------------------------*/ const T_FCT BLOC_HWTEST[] = { {l1s_ctrl_hwtest,HWTEST,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 {NULL,NO_PAR,NO_PAR}, // frame 2 {NULL,NO_PAR,NO_PAR}, // frame 3 {l1s_read_hwtest,HWTEST,NO_PAR}, {NULL,NO_PAR,NO_PAR} // frame 4 }; #else extern T_FCT BLOC_FB[]; extern T_FCT BLOC_SB[]; extern T_FCT BLOC_BCCHS[]; extern T_FCT BLOC_BCCHN[]; extern T_FCT BLOC_BCCHN_TOP[]; extern T_FCT BLOC_EP[]; extern T_FCT BLOC_SYNCHRO[]; extern T_FCT BLOC_ADC[]; extern T_FCT BLOC_SMSCB[]; extern T_FCT BLOC_NP[]; extern T_FCT BLOC_ALLC[]; extern T_FCT BLOC_DDL[]; extern T_FCT BLOC_DUL[]; extern T_FCT BLOC_ADL[]; extern T_FCT BLOC_AUL[]; extern T_FCT BLOC_DUL_ADL_MIXED[]; extern T_FCT BLOC_ABORT[]; extern T_FCT BLOC_RAACC[]; extern T_FCT BLOC_TCHTF[]; extern T_FCT BLOC_TCHTH[]; extern T_FCT BLOC_TCHTD[]; extern T_FCT BLOC_TCHA[]; extern T_FCT BLOC_FB51[]; extern T_FCT BLOC_SB51[]; extern T_FCT BLOC_SBCNF51[]; extern T_FCT BLOC_FB26[]; extern T_FCT BLOC_SB26[]; extern T_FCT BLOC_SBCNF26[]; extern T_FCT BLOC_HWTEST[]; #if (L1_GPRS) extern T_FCT BLOC_BCCHN_TRAN[]; #endif #endif