FreeCalypso > hg > fc-selenite
comparison src/cs/layer1/include/l1_mftab.h @ 0:b6a5e36de839
src/cs: initial import from Magnetite
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Sun, 15 Jul 2018 04:39:26 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:b6a5e36de839 |
|---|---|
| 1 /************* Revision Controle System Header ************* | |
| 2 * GSM Layer 1 software | |
| 3 * L1_MFTAB.H | |
| 4 * | |
| 5 * Filename l1_mftab.h | |
| 6 * Copyright 2003 (C) Texas Instruments | |
| 7 * | |
| 8 ************* Revision Controle System Header *************/ | |
| 9 | |
| 10 /*********************************************************** | |
| 11 * Content: | |
| 12 * This file contains the MultiFrame tables for all L1S | |
| 13 * basic tasks. | |
| 14 ***********************************************************/ | |
| 15 | |
| 16 /*******************************************************************************************/ | |
| 17 /* Multiframe Blocks for Dynamic MFTAB Building purpose. */ | |
| 18 /*******************************************************************************************/ | |
| 19 // Multiframe table size.... | |
| 20 #define BLOC_FBNEW_SIZE 14 + 2 // FB. | |
| 21 | |
| 22 #define BLOC_SB2_SIZE 5 + 2 // SB2. | |
| 23 | |
| 24 #define BLOC_SBCONF_SIZE 4 + 2 // SBCONF. | |
| 25 #define BLOC_BCCHN_SIZE 7 + 2 // BCCHN. | |
| 26 #define BLOC_BCCHN_TOP_SIZE 7 + 2 // BCCHN_TOP (BCCHN top priority) | |
| 27 | |
| 28 #define BLOC_SYNCHRO_SIZE 1 // SYNC. | |
| 29 #define BLOC_ADC_SIZE 1 // ADC in CS_MODE0 | |
| 30 #define BLOC_ABORT_SIZE 3 // ABORT. | |
| 31 #define BLOC_RAACC_SIZE 3 // RAACC. | |
| 32 #define S_RECT4_SIZE 6 // All "rectangular 4" serving tasks: NP/EP/BCCHS/ALLC. | |
| 33 #define BLOC_TCHT_SIZE 3 // TCHTF / TCHTH / TCHD. | |
| 34 #define BLOC_TCHA_SIZE 3 // TCHA. | |
| 35 #define BLOC_SMSCB_SIZE 6 // SMSCB. | |
| 36 #define BLOC_FB51_SIZE 14 // FB51. | |
| 37 #define BLOC_SB51_SIZE 4 // SB51. | |
| 38 #define BLOC_SBCNF51_SIZE 4 // SBCNF51. | |
| 39 #define BLOC_FB26_SIZE 4 // FB26. | |
| 40 #define BLOC_SB26_SIZE 5 // SB26. | |
| 41 #define BLOC_SBCNF26_SIZE 5 // SBCNF26. | |
| 42 #define BLOC_HWTEST_SIZE 4 // HWTEST. | |
| 43 #define BLOC_DUL_ADL_MIXED_SIZED 7 | |
| 44 #if (L1_GPRS) | |
| 45 #define BLOC_BCCHN_TRAN_SIZE 7 // BCCHN_TRAN. | |
| 46 #endif | |
| 47 | |
| 48 | |
| 49 | |
| 50 #ifdef L1_ASYNC_C | |
| 51 /*----------------------------------------------------*/ | |
| 52 /* TASK: Frequency Burst search... */ | |
| 53 /*----------------------------------------------------*/ | |
| 54 const T_FCT BLOC_FBNEW[] = | |
| 55 { | |
| 56 {l1s_ctrl_msagc,FBNEW,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 57 {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 58 {l1s_read_msagc,FBNEW,NO_PAR},{l1s_ctrl_fb,FBNEW,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 59 {NULL,NO_PAR,NO_PAR}, // frame 4 | |
| 60 {l1s_read_mon_result,FBNEW, 1},{NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 61 {l1s_read_mon_result,FBNEW, 2},{NULL,NO_PAR,NO_PAR}, // frame 6 | |
| 62 {l1s_read_mon_result,FBNEW, 3},{NULL,NO_PAR,NO_PAR}, // frame 7 | |
| 63 {l1s_read_mon_result,FBNEW, 4},{NULL,NO_PAR,NO_PAR}, // frame 8 | |
| 64 {l1s_read_mon_result,FBNEW, 5},{NULL,NO_PAR,NO_PAR}, // frame 9 | |
| 65 {l1s_read_mon_result,FBNEW, 6},{NULL,NO_PAR,NO_PAR}, // frame 10 | |
| 66 {l1s_read_mon_result,FBNEW, 7},{NULL,NO_PAR,NO_PAR}, // frame 11 | |
| 67 {l1s_read_mon_result,FBNEW, 8},{NULL,NO_PAR,NO_PAR}, // frame 12 | |
| 68 {l1s_read_mon_result,FBNEW, 9},{NULL,NO_PAR,NO_PAR}, // frame 13 | |
| 69 {l1s_read_mon_result,FBNEW,10},{NULL,NO_PAR,NO_PAR}, // frame 14 | |
| 70 {l1s_read_mon_result,FBNEW,11},{NULL,NO_PAR,NO_PAR}, // frame 15 | |
| 71 {l1s_read_mon_result,FBNEW,12},{NULL,NO_PAR,NO_PAR} // frame 16 | |
| 72 }; | |
| 73 | |
| 74 /*----------------------------------------------------*/ | |
| 75 /* TASK: SB2, New Synchro Burst search... */ | |
| 76 /*----------------------------------------------------*/ | |
| 77 /* C W R -> AGC */ | |
| 78 /* C W W R -> 1st SB */ | |
| 79 /* C W W R -> 2nd SB */ | |
| 80 /*----------------------------------------------------*/ | |
| 81 const T_FCT BLOC_SB2[] = | |
| 82 { | |
| 83 {l1s_ctrl_msagc,SB2,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 84 {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 85 {l1s_read_msagc,SB2,NO_PAR}, {l1s_ctrl_sbgen,SB2,1}, {NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 86 {l1s_ctrl_sbgen,SB2,2}, {NULL,NO_PAR,NO_PAR}, // frame 4 | |
| 87 {NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 88 {l1s_read_mon_result,SB2,1}, {NULL,NO_PAR,NO_PAR}, // frame 6 | |
| 89 {l1s_read_mon_result,SB2,2}, {NULL,NO_PAR,NO_PAR} // frame 7 | |
| 90 }; | |
| 91 | |
| 92 /*----------------------------------------------------*/ | |
| 93 /* TASK: SBCONF, Synchro confirmation. */ | |
| 94 /*----------------------------------------------------*/ | |
| 95 /* C W R -> AGC */ | |
| 96 /* C W W R -> SBCONF */ | |
| 97 /*----------------------------------------------------*/ | |
| 98 const T_FCT BLOC_SBCONF[] = | |
| 99 { | |
| 100 {l1s_ctrl_msagc,SBCONF,1}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 101 {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 102 {l1s_read_msagc,SBCONF,1},{l1s_ctrl_sbgen,SBCONF,1}, {NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 103 {NULL,NO_PAR,NO_PAR}, // frame 4 | |
| 104 {NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 105 {l1s_read_mon_result,SBCONF,1},{NULL,NO_PAR,NO_PAR} // frame 6 | |
| 106 }; | |
| 107 | |
| 108 /*----------------------------------------------------*/ | |
| 109 /* TASK: Serving cell Normal BCCH reading. */ | |
| 110 /*----------------------------------------------------*/ | |
| 111 /* frame 1 2 3 4 5 6 */ | |
| 112 /* | | | | | | */ | |
| 113 /* C W R | | | -> burst 1 */ | |
| 114 /* C W R | | -> burst 2 */ | |
| 115 /* C W R | -> burst 3 */ | |
| 116 /* C W R -> burst 4 */ | |
| 117 /*----------------------------------------------------*/ | |
| 118 const T_FCT BLOC_NBCCHS[] = | |
| 119 { | |
| 120 {l1s_ctrl_snb_dl,NBCCHS,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 121 {l1s_ctrl_snb_dl,NBCCHS,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 122 {l1s_read_snb_dl,NBCCHS,BURST_1},{l1s_ctrl_snb_dl,NBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 123 {l1s_read_snb_dl,NBCCHS,BURST_2},{l1s_ctrl_snb_dl,NBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4 | |
| 124 {l1s_read_snb_dl,NBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 125 {l1s_read_snb_dl,NBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 | |
| 126 }; | |
| 127 | |
| 128 /*----------------------------------------------------*/ | |
| 129 /* TASK: Serving cell Extended BCCH reading. */ | |
| 130 /*----------------------------------------------------*/ | |
| 131 /* frame 1 2 3 4 5 6 */ | |
| 132 /* | | | | | | */ | |
| 133 /* C W R | | | -> burst 1 */ | |
| 134 /* C W R | | -> burst 2 */ | |
| 135 /* C W R | -> burst 3 */ | |
| 136 /* C W R -> burst 4 */ | |
| 137 /*----------------------------------------------------*/ | |
| 138 const T_FCT BLOC_EBCCHS[] = | |
| 139 { | |
| 140 {l1s_ctrl_snb_dl,EBCCHS,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 141 {l1s_ctrl_snb_dl,EBCCHS,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 142 {l1s_read_snb_dl,EBCCHS,BURST_1},{l1s_ctrl_snb_dl,EBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 143 {l1s_read_snb_dl,EBCCHS,BURST_2},{l1s_ctrl_snb_dl,EBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4 | |
| 144 {l1s_read_snb_dl,EBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 145 {l1s_read_snb_dl,EBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 | |
| 146 }; | |
| 147 | |
| 148 /*----------------------------------------------------*/ | |
| 149 /* TASK: Neighbour Cell SYStem info reading. */ | |
| 150 /*----------------------------------------------------*/ | |
| 151 /* C W R -> AGC */ | |
| 152 /* C W W W W W R -> all bursts */ | |
| 153 /*----------------------------------------------------*/ | |
| 154 const T_FCT BLOC_BCCHN[] = | |
| 155 { | |
| 156 {l1s_ctrl_msagc,BCCHN,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 157 {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 158 {l1s_read_msagc,BCCHN,NO_PAR},{l1s_ctrl_nnb,BCCHN,NO_PAR},{NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 159 {NULL,NO_PAR,NO_PAR}, // frame 4 | |
| 160 {NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 161 {NULL,NO_PAR,NO_PAR}, // frame 6 | |
| 162 {NULL,NO_PAR,NO_PAR}, // frame 7 | |
| 163 {NULL,NO_PAR,NO_PAR}, // frame 8 | |
| 164 {l1s_read_nnb,BCCHN,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 9 | |
| 165 }; | |
| 166 | |
| 167 /*----------------------------------------------------*/ | |
| 168 /* TASK: Neighbour Cell SYStem info reading. */ | |
| 169 /*----------------------------------------------------*/ | |
| 170 /* C W R -> AGC */ | |
| 171 /* C W W W W W R -> all bursts */ | |
| 172 /*----------------------------------------------------*/ | |
| 173 const T_FCT BLOC_BCCHN_TOP[] = | |
| 174 { | |
| 175 {l1s_ctrl_msagc,BCCHN_TOP,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 176 {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 177 {l1s_read_msagc,BCCHN_TOP,NO_PAR},{l1s_ctrl_nnb,BCCHN_TOP,NO_PAR},{NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 178 {NULL,NO_PAR,NO_PAR}, // frame 4 | |
| 179 {NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 180 {NULL,NO_PAR,NO_PAR}, // frame 6 | |
| 181 {NULL,NO_PAR,NO_PAR}, // frame 7 | |
| 182 {NULL,NO_PAR,NO_PAR}, // frame 8 | |
| 183 {l1s_read_nnb,BCCHN_TOP,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 9 | |
| 184 }; | |
| 185 | |
| 186 /*----------------------------------------------------*/ | |
| 187 /* TASK: Neighbour Cell SYStem info reading. */ | |
| 188 /* for packet transfer mode */ | |
| 189 /*----------------------------------------------------*/ | |
| 190 /* C W W W W W R -> all bursts */ | |
| 191 /*----------------------------------------------------*/ | |
| 192 #if (L1_GPRS) | |
| 193 const T_FCT BLOC_BCCHN_TRAN[] = | |
| 194 { | |
| 195 {l1s_ctrl_nnb,BCCHN_TRAN,NO_PAR},{NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 196 {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 197 {NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 198 {NULL,NO_PAR,NO_PAR}, // frame 4 | |
| 199 {NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 200 {NULL,NO_PAR,NO_PAR}, // frame 6 | |
| 201 {l1s_read_nnb,BCCHN_TRAN,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 7 | |
| 202 }; | |
| 203 #endif | |
| 204 | |
| 205 /*----------------------------------------------------*/ | |
| 206 /* TASK: Synchronization (camp on a new serving cell) */ | |
| 207 /*----------------------------------------------------*/ | |
| 208 const T_FCT BLOC_SYNCHRO[] = | |
| 209 { | |
| 210 {l1s_new_synchro,NO_PAR,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 1 | |
| 211 }; | |
| 212 | |
| 213 | |
| 214 /*----------------------------------------------------*/ | |
| 215 /* TASK: ADC measurement in CS_MODE0 */ | |
| 216 /* C */ | |
| 217 /* the ADC is performed inside the frame and the */ | |
| 218 /* result is red in the same frame due to an */ | |
| 219 /* Interrupt (handle by Riviera) */ | |
| 220 /*----------------------------------------------------*/ | |
| 221 const T_FCT BLOC_ADC[] = | |
| 222 { | |
| 223 {l1s_ctrl_ADC,NO_PAR,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 1 | |
| 224 }; | |
| 225 | |
| 226 | |
| 227 /*----------------------------------------------------*/ | |
| 228 /* TASK: Short Message Service Cell Broadcast */ | |
| 229 /*----------------------------------------------------*/ | |
| 230 /* frame 1 2 3 4 5 6 */ | |
| 231 /* | | | | | | */ | |
| 232 /* C W R | | | -> hopp. + burst 1 */ | |
| 233 /* C W R | | -> hopp. + burst 2 */ | |
| 234 /* C W R | -> hopp. + burst 3 */ | |
| 235 /* C W R -> hopp. + burst 4 + Synch back*/ | |
| 236 /*----------------------------------------------------*/ | |
| 237 const T_FCT BLOC_SMSCB[] = | |
| 238 { | |
| 239 {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_ctrl_smscb, SMSCB,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 240 {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_ctrl_smscb, SMSCB,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 241 {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 | |
| 242 {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 | |
| 243 {l1s_read_snb_dl,SMSCB,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 244 {l1s_read_snb_dl,SMSCB,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 | |
| 245 }; | |
| 246 | |
| 247 /*----------------------------------------------------*/ | |
| 248 /* TASK: Normal Paging... */ | |
| 249 /*----------------------------------------------------*/ | |
| 250 /* frame 1 2 3 4 5 6 */ | |
| 251 /* | | | | | | */ | |
| 252 /* C W R | | | -> burst 1 */ | |
| 253 /* C W R | | -> burst 2 */ | |
| 254 /* C W R | -> burst 3 */ | |
| 255 /* C W R -> burst 4 */ | |
| 256 /*----------------------------------------------------*/ | |
| 257 const T_FCT BLOC_NP[] = | |
| 258 { | |
| 259 {l1s_ctrl_snb_dl,NP,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 260 {l1s_ctrl_snb_dl,NP,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 261 {l1s_read_snb_dl,NP,BURST_1},{l1s_ctrl_snb_dl,NP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 262 {l1s_read_snb_dl,NP,BURST_2},{l1s_ctrl_snb_dl,NP,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4 | |
| 263 {l1s_read_snb_dl,NP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 264 {l1s_read_snb_dl,NP,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 | |
| 265 }; | |
| 266 | |
| 267 /*----------------------------------------------------*/ | |
| 268 /* TASK: Extended Paging task... */ | |
| 269 /*----------------------------------------------------*/ | |
| 270 /* frame 1 2 3 4 5 6 */ | |
| 271 /* | | | | | | */ | |
| 272 /* C W R | | | -> burst 1 */ | |
| 273 /* C W R | | -> burst 2 */ | |
| 274 /* C W R | -> burst 3 */ | |
| 275 /* C W R -> burst 4 */ | |
| 276 /*----------------------------------------------------*/ | |
| 277 const T_FCT BLOC_EP[] = | |
| 278 { | |
| 279 {l1s_ctrl_snb_dl,EP,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 280 {l1s_ctrl_snb_dl,EP,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 281 {l1s_read_snb_dl,EP,BURST_1},{l1s_ctrl_snb_dl,EP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 282 {l1s_read_snb_dl,EP,BURST_2},{l1s_ctrl_snb_dl,EP,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4 | |
| 283 {l1s_read_snb_dl,EP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 284 {l1s_read_snb_dl,EP,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 | |
| 285 }; | |
| 286 | |
| 287 /*----------------------------------------------------*/ | |
| 288 /* TASK: All CCCH reading task... */ | |
| 289 /*----------------------------------------------------*/ | |
| 290 /* frame 1 2 3 4 5 6 */ | |
| 291 /* | | | | | | */ | |
| 292 /* C W R | | | -> burst 1 */ | |
| 293 /* C W R | | -> burst 2 */ | |
| 294 /* C W R | -> burst 3 */ | |
| 295 /* C W R -> burst 4 */ | |
| 296 /*----------------------------------------------------*/ | |
| 297 const T_FCT BLOC_ALLC[] = | |
| 298 { | |
| 299 {l1s_ctrl_snb_dl,ALLC,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 300 {l1s_ctrl_snb_dl,ALLC,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 301 {l1s_read_snb_dl,ALLC,BURST_1},{l1s_ctrl_snb_dl,ALLC,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 302 {l1s_read_snb_dl,ALLC,BURST_2},{l1s_ctrl_snb_dl,ALLC,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4 | |
| 303 {l1s_read_snb_dl,ALLC,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 304 {l1s_read_snb_dl,ALLC,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 | |
| 305 }; | |
| 306 | |
| 307 /*----------------------------------------------------*/ | |
| 308 /* TASK: SDCCH */ | |
| 309 /*----------------------------------------------------*/ | |
| 310 /* frame 1 2 3 4 5 6 */ | |
| 311 /* | | | | | | */ | |
| 312 /* C W R | | | -> burst 1 */ | |
| 313 /* C W R | | -> burst 2 */ | |
| 314 /* C W R | -> burst 3 */ | |
| 315 /* C W R -> burst 4 */ | |
| 316 /*----------------------------------------------------*/ | |
| 317 const T_FCT BLOC_DDL[] = | |
| 318 { | |
| 319 {l1s_hopping_algo,DDL,NO_PAR},{l1s_ctrl_snb_dl, DDL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 320 {l1s_hopping_algo,DDL,NO_PAR},{l1s_ctrl_snb_dl, DDL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 321 {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 | |
| 322 {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 | |
| 323 {l1s_read_dedic_dl,DDL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 324 {l1s_read_dedic_dl,DDL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 | |
| 325 }; | |
| 326 | |
| 327 const T_FCT BLOC_DUL[] = | |
| 328 { | |
| 329 {l1s_hopping_algo,DUL,NO_PAR},{l1s_ctrl_snb_ul, DUL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 330 {l1s_hopping_algo,DUL,NO_PAR},{l1s_ctrl_snb_ul, DUL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 331 {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 | |
| 332 {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 | |
| 333 {l1s_read_tx_result,DUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 334 {l1s_read_tx_result,DUL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 | |
| 335 }; | |
| 336 | |
| 337 const T_FCT BLOC_ADL[] = | |
| 338 { | |
| 339 {l1s_hopping_algo,ADL,NO_PAR},{l1s_ctrl_snb_dl, ADL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 340 {l1s_hopping_algo,ADL,NO_PAR},{l1s_ctrl_snb_dl, ADL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 341 {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 | |
| 342 {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 | |
| 343 {l1s_read_dedic_dl,ADL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 344 {l1s_read_dedic_dl,ADL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 | |
| 345 }; | |
| 346 | |
| 347 const T_FCT BLOC_AUL[] = | |
| 348 { | |
| 349 {l1s_hopping_algo,AUL,NO_PAR},{l1s_ctrl_snb_ul, AUL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 350 {l1s_hopping_algo,AUL,NO_PAR},{l1s_ctrl_snb_ul, AUL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 351 {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 | |
| 352 {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 | |
| 353 {l1s_read_tx_result,AUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 354 {l1s_read_tx_result,AUL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6 | |
| 355 }; | |
| 356 | |
| 357 /*-----------------------------------------------------------------------*/ | |
| 358 /* SPECIAL CASE: (ADL4,DDL4),(ADL5,DDL5),(ADL6,DDL6). */ | |
| 359 /*-----------------------------------------------------------------------*/ | |
| 360 /* frame 1 2 3 4 5 6 7 */ | |
| 361 /* | | | | | | | */ | |
| 362 /* C(DUL,1) W(DUL,1) R(DUL,1) | | | | */ | |
| 363 /* C(ADL,1) W(ADL,1) R(ADL,1) | | | */ | |
| 364 /* C(DUL,2) W(DUL,2) R(DUL,2) | | | */ | |
| 365 /* C(ADL,2) W(ADL,2) R(ADL,2) | | */ | |
| 366 /* C(DUL,3) W(DUL,3) R(DUL,3) | | */ | |
| 367 /* C(ADL,3) W(ADL,3) R(ADL,3) | */ | |
| 368 /* C(DUL,4) W(DUL,4) R(DUL,4) | */ | |
| 369 /* C(ADL,4) W(ADL,4) R(ADL,4) */ | |
| 370 /*-----------------------------------------------------------------------*/ | |
| 371 const T_FCT BLOC_DUL_ADL_MIXED[] = | |
| 372 { | |
| 373 {l1s_hopping_algo,AUL,NO_PAR},{l1s_ctrl_snb_ul, DUL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 374 {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 | |
| 375 {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 | |
| 376 {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 | |
| 377 {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 | |
| 378 {l1s_read_dedic_dl,ADL,BURST_3},{l1s_read_tx_result,DUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 6 | |
| 379 {l1s_read_dedic_dl,ADL,BURST_4}, {NULL,NO_PAR,NO_PAR} // frame 7 | |
| 380 }; | |
| 381 | |
| 382 /*----------------------------------------------------*/ | |
| 383 /* ABORT: used to abort a running task when a new */ | |
| 384 /* task with higher priority occurs. */ | |
| 385 /*----------------------------------------------------*/ | |
| 386 const T_FCT BLOC_ABORT[] = | |
| 387 { | |
| 388 {l1s_abort,NO_PAR,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 389 {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 390 {l1s_read_dummy,NO_PAR,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 3 | |
| 391 }; | |
| 392 | |
| 393 /*----------------------------------------------------*/ | |
| 394 /* TASK: RACH in access mode... */ | |
| 395 /*----------------------------------------------------*/ | |
| 396 const T_FCT BLOC_RAACC[] = | |
| 397 { | |
| 398 {l1s_ctrl_rach,RAACC,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 399 {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 400 {l1s_read_tx_result,RAACC,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 3 | |
| 401 }; | |
| 402 | |
| 403 /*----------------------------------------------------*/ | |
| 404 /* TASK: TCH */ | |
| 405 /*----------------------------------------------------*/ | |
| 406 /* C W R */ | |
| 407 /*----------------------------------------------------*/ | |
| 408 const T_FCT BLOC_TCHTF[] = | |
| 409 { | |
| 410 {l1s_hopping_algo,TCHTF,NO_PAR},{l1s_ctrl_tchtf,TCHTF,NO_PAR}, {NULL,NO_PAR}, // frame 1 | |
| 411 {NULL,NO_PAR}, // frame 2 | |
| 412 {l1s_read_dedic_dl,TCHTF,NO_PAR}, {NULL,NO_PAR} // frame 3 | |
| 413 }; | |
| 414 | |
| 415 const T_FCT BLOC_TCHTH[] = | |
| 416 { | |
| 417 {l1s_hopping_algo,TCHTH,NO_PAR},{l1s_ctrl_tchth,TCHTH,NO_PAR}, {NULL,NO_PAR}, // frame 1 | |
| 418 {NULL,NO_PAR}, // frame 2 | |
| 419 {l1s_read_dedic_dl,TCHTH,NO_PAR}, {NULL,NO_PAR} // frame 3 | |
| 420 }; | |
| 421 | |
| 422 const T_FCT BLOC_TCHD[] = | |
| 423 { | |
| 424 {l1s_ctrl_tchtd,TCHD,NO_PAR}, {NULL,NO_PAR}, // frame 1 | |
| 425 {NULL,NO_PAR}, // frame 2 | |
| 426 {l1s_read_dummy,TCHD,NO_PAR}, {NULL,NO_PAR} // frame 3 | |
| 427 }; | |
| 428 | |
| 429 const T_FCT BLOC_TCHA[] = | |
| 430 { | |
| 431 {l1s_hopping_algo,TCHA,NO_PAR},{l1s_ctrl_tcha,TCHA,NO_PAR}, {NULL,NO_PAR}, // frame 1 | |
| 432 {NULL,NO_PAR}, // frame 2 | |
| 433 {l1s_read_dedic_dl,TCHA,NO_PAR}, {NULL,NO_PAR} // frame 3 | |
| 434 }; | |
| 435 | |
| 436 /*----------------------------------------------------*/ | |
| 437 /* TASK: Frequency Burst search in dedic/SDCCH... */ | |
| 438 /*----------------------------------------------------*/ | |
| 439 const T_FCT BLOC_FB51[] = | |
| 440 { | |
| 441 {l1s_ctrl_fb,FB51,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 442 {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 443 {l1s_read_mon_result,FB51, 1},{NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 444 {l1s_read_mon_result,FB51, 2},{NULL,NO_PAR,NO_PAR}, // frame 4 | |
| 445 {l1s_read_mon_result,FB51, 3},{NULL,NO_PAR,NO_PAR}, // frame 5 | |
| 446 {l1s_read_mon_result,FB51, 4},{NULL,NO_PAR,NO_PAR}, // frame 6 | |
| 447 {l1s_read_mon_result,FB51, 5},{NULL,NO_PAR,NO_PAR}, // frame 7 | |
| 448 {l1s_read_mon_result,FB51, 6},{NULL,NO_PAR,NO_PAR}, // frame 8 | |
| 449 {l1s_read_mon_result,FB51, 7},{NULL,NO_PAR,NO_PAR}, // frame 9 | |
| 450 {l1s_read_mon_result,FB51, 8},{NULL,NO_PAR,NO_PAR}, // frame 10 | |
| 451 {l1s_read_mon_result,FB51, 9},{NULL,NO_PAR,NO_PAR}, // frame 11 | |
| 452 {l1s_read_mon_result,FB51,10},{NULL,NO_PAR,NO_PAR}, // frame 12 | |
| 453 {l1s_read_mon_result,FB51,11},{NULL,NO_PAR,NO_PAR}, // frame 13 | |
| 454 {l1s_read_mon_result,FB51,12},{NULL,NO_PAR,NO_PAR} // frame 14 | |
| 455 }; | |
| 456 | |
| 457 /*----------------------------------------------------*/ | |
| 458 /* TASK: SB51, Synchro Burst reading. Dedic/SDCCH. */ | |
| 459 /*----------------------------------------------------*/ | |
| 460 /* C W W R -> SB */ | |
| 461 /*----------------------------------------------------*/ | |
| 462 const T_FCT BLOC_SB51[] = | |
| 463 { | |
| 464 {l1s_ctrl_sbgen,SB51,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 465 {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 466 {NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 467 {l1s_read_mon_result,SB51,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 4 | |
| 468 }; | |
| 469 | |
| 470 /*----------------------------------------------------*/ | |
| 471 /* TASK: SBCNF51, Synchro confirmation. Dedic/SDCCH. */ | |
| 472 /*----------------------------------------------------*/ | |
| 473 /* C W W R -> SBCONF */ | |
| 474 /*----------------------------------------------------*/ | |
| 475 const T_FCT BLOC_SBCNF51[] = | |
| 476 { | |
| 477 {l1s_ctrl_sbgen,SBCNF51,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 478 {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 479 {NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 480 {l1s_read_mon_result,SBCNF51,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 4 | |
| 481 }; | |
| 482 | |
| 483 /*----------------------------------------------------*/ | |
| 484 /* TASK: FB26, Frequency Burst search in dedic/TCH... */ | |
| 485 /*----------------------------------------------------*/ | |
| 486 /* C W W R */ | |
| 487 /*----------------------------------------------------*/ | |
| 488 const T_FCT BLOC_FB26[] = | |
| 489 { | |
| 490 {l1s_ctrl_fb26,FB26,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 491 {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 492 {NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 493 {l1s_read_mon_result,FB26,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 4 | |
| 494 }; | |
| 495 | |
| 496 /*----------------------------------------------------*/ | |
| 497 /* TASK: SB26, Synchro. Burst reading in dedic/TCH... */ | |
| 498 /*----------------------------------------------------*/ | |
| 499 /* C W W W R */ | |
| 500 /*----------------------------------------------------*/ | |
| 501 const T_FCT BLOC_SB26[] = | |
| 502 { | |
| 503 {l1s_ctrl_sb26,SB26,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 504 {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 505 {NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 506 {NULL,NO_PAR,NO_PAR}, // frame 4 | |
| 507 {l1s_read_mon_result,SB26,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 5 | |
| 508 }; | |
| 509 | |
| 510 /*----------------------------------------------------*/ | |
| 511 /* TASK: SBCNF26, Synchro. Burst reading in dedic/TCH.*/ | |
| 512 /*----------------------------------------------------*/ | |
| 513 /* C W W W R */ | |
| 514 /*----------------------------------------------------*/ | |
| 515 const T_FCT BLOC_SBCNF26[] = | |
| 516 { | |
| 517 {l1s_ctrl_sb26,SBCNF26,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 518 {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 519 {NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 520 {NULL,NO_PAR,NO_PAR}, // frame 4 | |
| 521 {l1s_read_mon_result,SBCNF26,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 5 | |
| 522 }; | |
| 523 | |
| 524 /*----------------------------------------------------*/ | |
| 525 /* TASK: HWTEST after power-on... */ | |
| 526 /*----------------------------------------------------*/ | |
| 527 const T_FCT BLOC_HWTEST[] = | |
| 528 { | |
| 529 {l1s_ctrl_hwtest,HWTEST,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1 | |
| 530 {NULL,NO_PAR,NO_PAR}, // frame 2 | |
| 531 {NULL,NO_PAR,NO_PAR}, // frame 3 | |
| 532 {l1s_read_hwtest,HWTEST,NO_PAR}, {NULL,NO_PAR,NO_PAR} // frame 4 | |
| 533 }; | |
| 534 | |
| 535 #else | |
| 536 extern T_FCT BLOC_FB[]; | |
| 537 extern T_FCT BLOC_SB[]; | |
| 538 extern T_FCT BLOC_BCCHS[]; | |
| 539 extern T_FCT BLOC_BCCHN[]; | |
| 540 extern T_FCT BLOC_BCCHN_TOP[]; | |
| 541 extern T_FCT BLOC_EP[]; | |
| 542 extern T_FCT BLOC_SYNCHRO[]; | |
| 543 extern T_FCT BLOC_ADC[]; | |
| 544 extern T_FCT BLOC_SMSCB[]; | |
| 545 extern T_FCT BLOC_NP[]; | |
| 546 extern T_FCT BLOC_ALLC[]; | |
| 547 extern T_FCT BLOC_DDL[]; | |
| 548 extern T_FCT BLOC_DUL[]; | |
| 549 extern T_FCT BLOC_ADL[]; | |
| 550 extern T_FCT BLOC_AUL[]; | |
| 551 extern T_FCT BLOC_DUL_ADL_MIXED[]; | |
| 552 extern T_FCT BLOC_ABORT[]; | |
| 553 extern T_FCT BLOC_RAACC[]; | |
| 554 extern T_FCT BLOC_TCHTF[]; | |
| 555 extern T_FCT BLOC_TCHTH[]; | |
| 556 extern T_FCT BLOC_TCHTD[]; | |
| 557 extern T_FCT BLOC_TCHA[]; | |
| 558 extern T_FCT BLOC_FB51[]; | |
| 559 extern T_FCT BLOC_SB51[]; | |
| 560 extern T_FCT BLOC_SBCNF51[]; | |
| 561 extern T_FCT BLOC_FB26[]; | |
| 562 extern T_FCT BLOC_SB26[]; | |
| 563 extern T_FCT BLOC_SBCNF26[]; | |
| 564 extern T_FCT BLOC_HWTEST[]; | |
| 565 | |
| 566 #if (L1_GPRS) | |
| 567 extern T_FCT BLOC_BCCHN_TRAN[]; | |
| 568 #endif | |
| 569 | |
| 570 #endif | |
| 571 | |
| 572 | |
| 573 | |
| 574 |
