Mercurial > hg > Members > kono > Cerium
annotate example/get_segment/ppe/Hello.cc @ 466:4fa8760e18c2
prohibit global variable in Task....
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 01 Oct 2009 17:33:58 +0900 |
parents | 01b321c86747 |
children | 60aa3f241b10 |
rev | line source |
---|---|
354 | 1 #include "Hello.h" |
2 #include "Func.h" | |
3 | |
4 /* これは必須 */ | |
5 SchedDefineTask(Hello); | |
6 | |
7 #define PP_STORE 3 | |
8 #define SIZE (4096*sizeof(int)) | |
9 | |
464
01b321c86747
task run is mere C function now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
425
diff
changeset
|
10 static int |
01b321c86747
task run is mere C function now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
425
diff
changeset
|
11 run(SchedTask *smanager, void *rbuf, void *wbuf) |
354 | 12 { |
464
01b321c86747
task run is mere C function now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
425
diff
changeset
|
13 int task_id = smanager->get_param(0); |
354 | 14 int *ptr = 0; |
15 #if 1 | |
16 ptr = (int*)smanager->allocate(SIZE); | |
17 | |
18 smanager->mainMem_alloc(0, SIZE); | |
19 | |
20 int i; | |
21 for(i=0;i<4096;i++) { | |
22 ptr[i] = i; | |
23 } | |
24 #endif | |
25 | |
26 void *next = 0; | |
27 #if 1 | |
28 smanager->mainMem_wait(); | |
29 next = (void *)smanager->mainMem_get(0); | |
30 | |
31 smanager->dma_wait(PP_STORE); | |
32 smanager->dma_store(ptr, (uint32)next, | |
33 SIZE, PP_STORE); | |
34 #endif | |
35 | |
36 | |
466
4fa8760e18c2
prohibit global variable in Task....
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
464
diff
changeset
|
37 smanager->fprintf(smanager->stderr_,"sizeof(int) = [%d] sizeof(void*)=[%d]\n", (int)sizeof(int),(int)sizeof(void*)); |
4fa8760e18c2
prohibit global variable in Task....
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
464
diff
changeset
|
38 smanager->fprintf(smanager->stderr_,"[%d] Main Mem %0x len %d\n", task_id, (unsigned int)next,(int)SIZE); |
354 | 39 |
40 return 0; | |
41 } |