小编Ada*_*dam的帖子

SWIG C-to-Python Int Array

我试图使用swig从python中使用以下原型访问C函数:

int cosetCoding(int writtenDataIn, int newData, const int memoryCells, int *cellFailure, int failedCell);
Run Code Online (Sandbox Code Playgroud)

Swig创建.so没有问题,我可以将它导入到python中,但是当我尝试使用以下内容访问它时:

 cosetCoding.cosetCoding(10,11,8,[0,0,0,0,0,0,0,0],0)
Run Code Online (Sandbox Code Playgroud)

我得到以下回溯:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: in method 'cosetCoding', argument 4 of type 'int *'
Run Code Online (Sandbox Code Playgroud)

指针应该是一个int数组,其大小由memoryCells定义

c python linux swig

11
推荐指数
2
解决办法
8493
查看次数

在Verilog生成语句中增加多个Genvars

我正在尝试用verilog创建一个多级比较器,我无法弄清楚如何在单个生成循环中增加多个genvars.我正在尝试以下方法:

genvar i,j;
//Level 1
generate
  j=0;
  for (i=0;i<128;i=i+1)
  begin: level1Comp
    assign ci1[i] = minw(tc[j],tc[j+1]);
    j = j+2;
  end
endgenerate
Run Code Online (Sandbox Code Playgroud)

并收到以下错误:

Error-[SE] Syntax error
  Following verilog source has syntax error :
  "encoder.v", 322: token is '='
    j=0;
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何在同一个生成语句中增加多个genvars?或者至少获得相同的功能?

hardware verilog syntax-error hdl system-verilog

10
推荐指数
2
解决办法
1万
查看次数

在C中实现互斥锁

我试图在C中制作一个非常简单的自旋锁互斥锁,由于某种原因我得到两个线程同时获得锁定的情况,这是不可能的.它运行在多处理器系统上,这可能是出现问题的原因.任何想法为什么它不起作用?

void mutexLock(mutex_t *mutexlock, pid_t owner)
{
int failure = 1;
while(mutexlock->mx_state == 0 || failure || mutexlock->mx_owner != owner)
{
    failure = 1;
    if (mutexlock->mx_state == 0)
    {
        asm(
        "movl    $0x01,%%eax\n\t"      // move 1 to eax
        "xchg    %%eax,%0\n\t"         // try to set the lock bit
        "mov     %%eax,%1\n\t"         // export our result to a test var
        :"=r"(mutexlock->mx_state),"=r"(failure)
        :"r"(mutexlock->mx_state)
        :"%eax"
        );
    }
    if (failure == 0)
    {
        mutexlock->mx_owner = owner; //test to see if we got the lock bit
    }
    } …
Run Code Online (Sandbox Code Playgroud)

c assembly mutex

7
推荐指数
1
解决办法
6100
查看次数

标签 统计

c ×2

assembly ×1

hardware ×1

hdl ×1

linux ×1

mutex ×1

python ×1

swig ×1

syntax-error ×1

system-verilog ×1

verilog ×1