annotate example/mainMem/spe/Hello.cc @ 312:57530cb7f7d1

memMain tester
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 08 Jun 2009 23:19:11 +0900
parents
children c9f8cfcdc5c2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
312
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include <stdio.h>
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #include "Hello.h"
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #include "Func.h"
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 /* これは必須 */
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 SchedDefineTask(Hello);
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 #define PP_STORE 3
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 #define SIZE (4096*sizeof(int))
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 int
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 Hello::run(void *rbuf, void *wbuf)
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 {
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 int task_id = get_param(0);
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 int *ptr = smanager->allocate(SIZE);
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 smanager->mainMem_alloc(0, sizeof(PolygonPack));
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 int i;
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 for(i=0;i<4096;i++) {
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 ptr[i] = i;
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 }
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 smanager->mainMem_wait();
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 void *next = (void *)smanager->mainMem_get(0);
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 smanager->dma_wait(PP_STORE);
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 smanager->dma_store(ptr, (uint32)next,
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 SIZE, PP_STORE);
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 printf("[%d] Main Mem %0x len %d\n", task_id, (int*)next,SIZE);
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 return 0;
57530cb7f7d1 memMain tester
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 }