diff example/mainMem/ppe/Hello.cc @ 0:04e28d8d3c6f

first commit
author Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
date Mon, 08 Nov 2010 01:23:25 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/mainMem/ppe/Hello.cc	Mon Nov 08 01:23:25 2010 +0900
@@ -0,0 +1,44 @@
+#include <stdio.h>
+#include "Hello.h"
+#include "Func.h"
+
+/* これは必須 */
+SchedDefineTask(Hello);
+
+#define PP_STORE 3
+#define SIZE (4096*sizeof(int))
+
+static int
+run(SchedTask *smanager, void *rbuf, void *wbuf)
+{
+    long task_id = (long)smanager->get_param(0);
+    int *ptr = 0;
+#if 1
+    ptr = (int*)smanager->allocate(SIZE);
+
+    smanager->mainMem_alloc(0, SIZE);
+
+    int i;
+    for(i=0;i<4096;i++) {
+	ptr[i] = i;
+    }
+#endif
+
+    void *next = 0;
+#if 1
+    smanager->mainMem_wait();
+    next = (void *)smanager->mainMem_get(0);
+
+    smanager->dma_wait(PP_STORE);
+    smanager->dma_store(ptr, (memaddr)next,
+		SIZE, PP_STORE);
+#endif
+
+
+    //smanager->fprintf(smanager->stderr_,"sizeof(int) = [%d] sizeof(void*)=[%d]\n", (int)sizeof(int),(int)sizeof(void*));
+    //smanager->fprintf(smanager->stderr_,"[%d] Main Mem %0lx len %d\n", task_id, (unsigned long)next,(int)SIZE);
+
+    smanager->printf("sizeof(int) = [%d] sizeof(void*)=[%d]\n", (int)sizeof(int),(int)sizeof(void*));
+    smanager->printf("[%d] Main Mem %0lx len %d\n", task_id, (unsigned long)next,(int)SIZE);
+    return 0;
+}