Mercurial > hg > Members > e085722 > Cerium
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; +}