@@ -24,37 +24,37 @@ void test_schedule_init(void)
24
24
{
25
25
rt_kprintf ("create Mutex_Control failed\n" );
26
26
}
27
-
27
+
28
28
sem_test = rt_sem_create ("sem_test" , 0 , RT_TEST_IPC_TYPE );
29
29
if (sem_test == RT_NULL )
30
30
{
31
31
rt_kprintf ("create sem_test failed\n" );
32
32
}
33
-
33
+
34
34
mutex_test = rt_mutex_create ("mutex_test" , RT_TEST_IPC_TYPE );
35
35
if (mutex_test == RT_NULL )
36
36
{
37
37
rt_kprintf ("create mutex_test failed\n" );
38
38
}
39
-
39
+
40
40
event_test = rt_event_create ("event_test" , RT_TEST_IPC_TYPE );
41
41
if (event_test == RT_NULL )
42
42
{
43
43
rt_kprintf ("create event_test failed\n" );
44
44
}
45
-
45
+
46
46
mailbox_test = rt_mb_create ("mailbox_test" , RT_TEST_IPC_SIZE , RT_TEST_IPC_TYPE );
47
47
if (mailbox_test == RT_NULL )
48
48
{
49
49
rt_kprintf ("create mailbox_test failed\n" );
50
50
}
51
-
51
+
52
52
mq_test = rt_mq_create ("mq_test" ,RT_TEST_SINGLE_IPC_SIZE ,RT_TEST_IPC_SIZE , RT_TEST_IPC_TYPE );
53
53
if (mq_test == RT_NULL )
54
54
{
55
55
rt_kprintf ("create mq_test failed\n" );
56
56
}
57
-
57
+
58
58
// //add for Thread_IPC
59
59
60
60
// //初始化线程
@@ -65,8 +65,8 @@ void test_schedule_init(void)
65
65
// rt_thread_startup(thread_IPC_TCB);
66
66
#endif
67
67
68
-
69
-
68
+
69
+
70
70
#ifdef RT_TEST_NEED_THREAD_A
71
71
//add for Thread_A
72
72
@@ -107,7 +107,7 @@ void test_schedule_init(void)
107
107
int index ;
108
108
int priority = 5 ;
109
109
char name [16 ];
110
-
110
+
111
111
thread_DUMMY_TCB = (rt_thread_t * )rt_malloc (sizeof (rt_thread_t )* RT_TEST_DUMMY_THREAD_NUM );
112
112
for (index = 0 ; index < RT_TEST_DUMMY_THREAD_NUM ; index ++ )
113
113
{
@@ -161,21 +161,21 @@ void thread_A_entry(void* parameter)
161
161
sem_Rx_TCB = rt_thread_create ("sem_Rx_TCB" ,
162
162
thread_sem_RX_entry , RT_NULL ,
163
163
512 , THREAD_IPC_RX_PRIORITY , THREAD_IPC_RX_TIME_SLICE );
164
-
164
+
165
165
166
166
rt_kprintf ("\n" );
167
167
/* 先要开启收TCB */
168
168
if (sem_Rx_TCB != RT_NULL )
169
169
{
170
170
rt_thread_startup (sem_Rx_TCB );
171
171
}
172
-
173
-
172
+
173
+
174
174
if (sem_Tx_TCB != RT_NULL )
175
175
{
176
176
rt_thread_startup (sem_Tx_TCB );
177
177
}
178
-
178
+
179
179
//for sem
180
180
{
181
181
rt_sem_take (IPC_Control , RT_WAITING_FOREVER );
@@ -187,7 +187,7 @@ void thread_A_entry(void* parameter)
187
187
//for mutex
188
188
rt_sem_init (Mutex_Control , "Mutex_Control" ,0 , RT_TEST_IPC_TYPE );
189
189
rt_sem_release (Mutex_Control );
190
- rt_kprintf ("\n" );
190
+ rt_kprintf ("\n" );
191
191
192
192
//for Mutex
193
193
/* 首先创建2个mutex线程 */
@@ -196,7 +196,7 @@ void thread_A_entry(void* parameter)
196
196
512 , THREAD_IPC_RX_PRIORITY , THREAD_IPC_TX_TIME_SLICE );
197
197
mutex_Rx_TCB = rt_thread_create ("mutex_Rx_TCB" ,
198
198
thread_mutex_RX_entry , RT_NULL ,
199
- 512 , THREAD_IPC_TX_PRIORITY , THREAD_IPC_RX_TIME_SLICE );
199
+ 512 , THREAD_IPC_TX_PRIORITY , THREAD_IPC_RX_TIME_SLICE );
200
200
//对于mutex ,先启动Tx,占用资源
201
201
if (mutex_Tx_TCB != RT_NULL )
202
202
{
@@ -207,19 +207,19 @@ void thread_A_entry(void* parameter)
207
207
{
208
208
rt_thread_startup (mutex_Rx_TCB );
209
209
}
210
-
210
+
211
211
{
212
212
rt_sem_take (IPC_Control , RT_WAITING_FOREVER );
213
213
rt_sem_take (IPC_Control , RT_WAITING_FOREVER );
214
214
}
215
-
215
+
216
216
rt_kprintf ("mutex test Done\n" );
217
217
rt_thread_delay (100 );//等待删除退出的线程
218
218
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
219
219
//for event
220
220
rt_sem_init (Mutex_Control , "Mutex_Control" ,0 , RT_TEST_IPC_TYPE );
221
221
rt_sem_release (Mutex_Control );
222
- rt_kprintf ("\n" );
222
+ rt_kprintf ("\n" );
223
223
224
224
/* 首先创建2个event线程 */
225
225
event_Tx_TCB = rt_thread_create ("event_Tx_TCB" ,
@@ -228,11 +228,11 @@ void thread_A_entry(void* parameter)
228
228
event_Rx_TCB = rt_thread_create ("event_Rx_TCB" ,
229
229
thread_event_RX_entry , RT_NULL ,
230
230
512 , THREAD_IPC_RX_PRIORITY , THREAD_IPC_RX_TIME_SLICE );
231
-
232
231
233
-
234
-
235
-
232
+
233
+
234
+
235
+
236
236
if (event_Tx_TCB != RT_NULL )
237
237
{
238
238
rt_thread_startup (event_Tx_TCB );
@@ -242,15 +242,15 @@ void thread_A_entry(void* parameter)
242
242
{
243
243
rt_thread_startup (event_Rx_TCB );
244
244
}
245
-
245
+
246
246
{
247
247
rt_sem_take (IPC_Control , RT_WAITING_FOREVER );
248
248
rt_sem_take (IPC_Control , RT_WAITING_FOREVER );
249
249
}
250
-
250
+
251
251
rt_kprintf ("event test Done\n" );
252
252
rt_thread_delay (100 );
253
-
253
+
254
254
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
255
255
256
256
// /* 首先创建2个event线程 */
@@ -260,9 +260,9 @@ void thread_A_entry(void* parameter)
260
260
// event_Rx_TCB = rt_thread_create("event_Rx_TCB",
261
261
// thread_event_RX_entry, RT_NULL,
262
262
// 512, THREAD_IPC_RX_PRIORITY, THREAD_IPC_RX_TIME_SLICE);
263
- //
264
- // rt_kprintf("\n");
265
- //
263
+ //
264
+ // rt_kprintf("\n");
265
+ //
266
266
// if(event_Tx_TCB != RT_NULL)
267
267
// {
268
268
// rt_thread_startup(event_Tx_TCB);
@@ -272,20 +272,20 @@ void thread_A_entry(void* parameter)
272
272
// {
273
273
// rt_thread_startup(event_Rx_TCB);
274
274
// }
275
- //
275
+ //
276
276
// {
277
277
// rt_sem_take(IPC_Control, RT_WAITING_FOREVER);
278
278
// rt_sem_take(IPC_Control, RT_WAITING_FOREVER);
279
279
// }
280
- //
280
+ //
281
281
// rt_kprintf("event test Done\n");
282
282
// rt_thread_delay(100);
283
283
284
284
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
285
285
286
286
rt_sem_init (Mutex_Control , "Mutex_Control" ,0 , RT_TEST_IPC_TYPE );
287
287
rt_sem_release (Mutex_Control );
288
- rt_kprintf ("\n" );
288
+ rt_kprintf ("\n" );
289
289
290
290
/* 首先创建2个mailbox线程 */
291
291
mb_Tx_TCB = rt_thread_create ("mb_Tx_TCB" ,
@@ -294,9 +294,9 @@ void thread_A_entry(void* parameter)
294
294
mb_Rx_TCB = rt_thread_create ("mb_Rx_TCB" ,
295
295
thread_mb_RX_entry , RT_NULL ,
296
296
512 , THREAD_IPC_RX_PRIORITY , THREAD_IPC_RX_TIME_SLICE );
297
-
298
- rt_kprintf ("\n" );
299
-
297
+
298
+ rt_kprintf ("\n" );
299
+
300
300
if (mb_Tx_TCB != RT_NULL )
301
301
{
302
302
rt_thread_startup (mb_Tx_TCB );
@@ -306,16 +306,16 @@ void thread_A_entry(void* parameter)
306
306
{
307
307
rt_thread_startup (mb_Rx_TCB );
308
308
}
309
-
309
+
310
310
{
311
311
rt_sem_take (IPC_Control , RT_WAITING_FOREVER );
312
312
rt_sem_take (IPC_Control , RT_WAITING_FOREVER );
313
313
}
314
-
314
+
315
315
rt_kprintf ("mailbox test Done\n" );
316
316
rt_thread_delay (100 );
317
-
318
-
317
+
318
+
319
319
//============================================================
320
320
//============================================================
321
321
rt_thread_suspend (rt_thread_self ());//只是做了suspend标记,并未切换,需要shedule调度
@@ -381,9 +381,9 @@ void thread_sem_TX_entry(void* parameter)
381
381
rt_sem_release (sem_test );
382
382
rt_thread_delay (50 );
383
383
}
384
-
384
+
385
385
}
386
-
386
+
387
387
rt_sem_release (IPC_Control );//跑完放出control信号量
388
388
//rt_thread_suspend(rt_thread_self());//把自己挂起
389
389
}
@@ -402,7 +402,7 @@ void thread_sem_RX_entry(void* parameter)
402
402
calc_count ();
403
403
}
404
404
}
405
-
405
+
406
406
rt_sem_release (IPC_Control );//跑完放出control信号量
407
407
//rt_thread_suspend(rt_thread_self());
408
408
}
@@ -411,7 +411,7 @@ void thread_sem_RX_entry(void* parameter)
411
411
void thread_mutex_TX_entry (void * parameter )
412
412
{
413
413
unsigned int loop_num = IPC_REPEAT_TIME ;
414
-
414
+
415
415
//need to take the mutex first to ensure that Rx Thread can not get it
416
416
rt_mutex_take (mutex_test , RT_WAITING_FOREVER );
417
417
@@ -423,7 +423,7 @@ void thread_mutex_TX_entry(void* parameter)
423
423
start_count ();
424
424
rt_mutex_release (mutex_test );
425
425
}
426
-
426
+
427
427
rt_sem_release (IPC_Control );//跑完放出control信号量
428
428
}
429
429
@@ -436,12 +436,12 @@ void thread_mutex_RX_entry(void* parameter)
436
436
rt_mutex_take (mutex_test , RT_WAITING_FOREVER );
437
437
stop_count ();
438
438
calc_count ();
439
-
439
+
440
440
//we should start schedule to Thread TX
441
441
//list_thread();
442
442
rt_sem_release (Mutex_Control );
443
443
}
444
-
444
+
445
445
rt_sem_release (IPC_Control );//跑完放出control信号量
446
446
}
447
447
@@ -460,7 +460,7 @@ void thread_event_TX_entry(void* parameter)
460
460
start_count ();
461
461
rt_event_send (event_test , IPC_EVENT );
462
462
}
463
-
463
+
464
464
rt_sem_release (IPC_Control );//跑完放出control信号量
465
465
}
466
466
@@ -480,10 +480,10 @@ void thread_event_RX_entry(void* parameter)
480
480
//rt_kprintf("thread1: AND recv event 0x%x\n", e);
481
481
482
482
rt_sem_release (Mutex_Control );
483
-
483
+
484
484
}
485
485
}
486
-
486
+
487
487
rt_sem_release (IPC_Control );//跑完放出control信号量
488
488
}
489
489
@@ -498,7 +498,7 @@ void thread_mb_TX_entry(void* parameter)
498
498
start_count ();
499
499
rt_mb_send (mailbox_test ,(rt_uint32_t )& mb_str [0 ]);
500
500
}
501
-
501
+
502
502
rt_sem_release (IPC_Control );//跑完放出control信号量
503
503
}
504
504
@@ -518,7 +518,7 @@ void thread_mb_RX_entry(void* parameter)
518
518
rt_sem_release (Mutex_Control );
519
519
}
520
520
}
521
-
521
+
522
522
rt_sem_release (IPC_Control );//跑完放出control信号量
523
523
}
524
524
0 commit comments