关于DMA intrinsic
-
我用DMA intrinsic接口把DMA_PUT定义如下,我想用它代替athread_put
#define A_DMA_PUT(mode,src,dest,len,re_addr)
({
dma_desc da = 0;
dma_set_op(&da, DMA_PUT);
dma_set_mode(&da, mode);
dma_set_size(&da, len);
dma_set_reply(&da, re_addr);
dma(da, src, dest);
dma_wait(re_addr, 1);
})
我的代码是这样的,上面是原本的athread_put,下面是我替换后的DMA_PUT。
put_reply = 0;
/-----------------------athread_put-------------------------/
athread_put(PE_MODE, &T2[0][0], &nodes[current0][i0][j0][kst][0], size, &put_reply, 0, 0);
while(put_reply != 1);
/-------------------------DMA_PUT------------------------/
A_DMA_PUT(PE_MODE, (long)&T2[0][0], (long)&nodes[current0][i0][j0][kst][0], size, (volatile int *)&put_reply);
while(put_reply != 1);但是替换成DMA_PUT后就会报错,错误如下
请问这是什么原因?如果可以的话,能否提供一个DMA替换athread的示例?
-
https://github.com/nsccwxtech/cpc/blob/master/Athread/EX9-mpi-athread-register/my_slave.h
听我的,七夕节就不要写代码了^_^
-
@Tashkent 你是不是主存地址和LDM地址写反了?
-
@popo 确实写反了,感谢指正!