在FPGA中为什么打开programmer没反应呢?光标一直在运行没反应,没进入到 Hardware setup这个界面??

在FPGA中为什么打开programmer没反应呢?光标一直在运行没反应,没进入到 Hardware setup这个界面??,第1张

你能关电脑吗?我感觉那是卡住了,我有一次点编译就给卡住了,quartus ll也关不了,后来强制关机了(按电源键),后来没问题了,我那是重装系统后才有了这个不稳定的时候,我感觉你那应该是不是删错东西了,让系统有问题了。如果是这样你应该修补漏洞了。。。这是个人感觉因为没见你的到底什么情况。

try {

ss = new ServerSocket(3001)

this.ranMethod()// 生成5个随机数

System.out.println()

} catch (IOException e) {

System.out.println("端口被占用!请重启服务器!")

e.printStackTrace()

}

while (over!=true) {

这里每次监听一个客户端。。。

try {System.out.println("监听客户端")

client = ss.accept()// 监听客户端

} catch (IOException e) {

System.out.println("监测客户端连接异常。")

e.printStackTrace()

}

第二个循环后,已经是新的客户端了。

str = this.accpetMethod()// 输出客户端信息

System.out.println(str)

bool = this.message(str)// 判断客户端输入是否为数字,是返回true,否返回false.

if (bool == true) {

bool = this.judgement(bool, str)

this.sendMethod(bool)

} else {

try {

dos = new DataOutputStream(client.getOutputStream())

dos.writeUTF("输入错误,请输入0~100间的数字!")

dos.flush()

//

} catch (IOException e) {

e.printStackTrace()

}

}

}

主要的问题是,你每一次循环都会执行accept,等待新的客户端连接。

要改的话,首先要把Accecpt后的client的处理放在独立的循环里面。也就是:

while (! over)

{

accept ()

while (client answer is wrong) // loop for current cilent.

{

// read client input.

// check client answer

// write message to client.

}

}

这样,服务器会在每次接受到一个客户端后,会进行持续的处理,直到客户端退出,然后返回accecpt下一个。

你能发现问题在于服务器同时只能为一个client服务,所以,很简单的把第二个while改成在单独的线呈里执行就好了

反对建议用TCP的答案。你要分析包是在哪儿丢的,我估计是Matlab处理不过来。

Matlab远远追不上fpga的输出速度。我们用fpga的话和cpu通信用srio,cpu上跑的也是c语言程序,速度勉强跟得上fpga。如果用tcp,流控会把fpga速度给拖慢了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8088939.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存