我另外写了一个小程序测试sw5cc的动态库链接,我事先已经在当前文件夹下编译了一个动态链接库libprintsign.so,如下图所示
出现的问题是,我用-L ./指定了在当前文件夹下寻找.so文件,但是编译时却没有在我指定的文件夹下寻找.so文件,请问这是什么原因?
另外我的makefile是这样的
Tashkent 发布的帖子
-
关于sw5cc的动态库链接
-
RE: 关于Parallel.c的函数的定义
我已经解决问题了,方法是把修改后的函数和原函数一起放在Parallel.c里面,就不用另外重开一个文件了,虽然不知道为什么这样弄不会出错
-
关于Parallel.c的函数的定义
Parallel.c的文件中有4个函数SetMPI、bounce_send_init、bounce_communicate、bounce_update。
关于Parallel.c我有一些疑问:
1.这4个函数是在什么地方声明的,Argument.h文件里面声明的函数为SetMPI、bounce_send_init_test、bounce_communicate_Itest、bounce_update_test。为什么函数名对不上?
2.我另外设了一个文件Parallel_k.c。我把bounce_send_init、bounce_communicate、bounce_update三个函数从Parallel.c移到了Parallel_k.c。结果就报错,这是什么原因?(其实我是打算在另一个文件里重写这三个函数,但是只要这三个函数不是和SetMPI函数放在同一个文件中,程序的最终结果就会报错)
3.Argument.h中的bounce_send_init、bounce_communicate、bounce_update三个函数声明输入的参数能否更改。 -
关于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的示例? -
RE: 公告:非计时区代码不允许增,删,改
我有个疑问,假设我要把一个数组nodes传到从核,我就必须把nodes声明成全局变量,这样才能被extern。但是现有的程序中nodes是放在main函数里面的,不能被extern。请问,如果不在main函数计时区以外的地方改动代码把nodes的定义放到main函数外的话,我怎样定义nodes才能把它传给从核?
-
RE: GDB如何调试程序
@popo 我已经进入swgdb并且attach进程号了,我在从核程序中设置了断点,然后用c命令让程序自动运行到断点处,但是程序直接执行完了,没有跳到断点处,如下图所示。
请问我怎样让debug停在从核程序的断点处?