comparison L1/include/l1_mftab.h @ 3:f93dab57b032

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