首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NIOSⅡIDE太慢了

NIOSⅡIDE太慢了
EN

Stack Overflow用户
提问于 2020-12-10 18:20:26
回答 2查看 634关注 0票数 1

我已经在我的Linux机器上安装了Quartus和NIOS II IDE。最初,我尝试将一个现有的NIOS II项目导入Eclipse,但它只是坐在那里旋转,最终告诉我它不能导入该项目,因为它已经存在了。

我试着在Win10机器上安装所有的东西,然后导入OK项目。我确实注意到,原始项目中的一些路径有反斜杠。因此,例如:

代码语言:javascript
复制
#include "..\subfolder\include_file.h" 

就像一件事。我不知道这是否是引起问题的原因。

于是,我尝试在Quartus中创建hello world NIOS处理器,并从零开始创建一个NIOS II项目。在使用Eclipse的过程中,每一步都非常缓慢,但最终还是起了作用,直到我到达终点时,它就像挂在一个小小的圆圈上,旋转着红色和蓝色的箭头。

我还有一个弹出窗口,上面有一个长长的列表:

远程系统资源管理器操作

上面写着:

用户操作正在等待后台工作的完成。

似乎所有安装都是正确的,例如,我可以从Quartus打开NIOS II Eclipse。Quartus本身工作得很好。

我使用这些指令安装了Eclipse:

有人能给我指点为什么这个速度这么慢吗?我的Linux机器是相当高的规格和苍蝇。没有别的东西,即使是模糊地挣扎在这上面。

如果有什么我可以提供的诊断信息,我非常乐意提供。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2021-01-14 05:45:09

我在这里找到了一个解决办法

https://askubuntu.com/questions/761604/eclipse-not-working-in-16-04

若要测试此修补程序是否有效,请尝试打开一个终端,然后执行

代码语言:javascript
复制
$export SWT_GTK3=0

然后运行eclipse-nios2 2。也就是说,做类似的事情

代码语言:javascript
复制
$ ~/intelFPGA_lite/20.1/nios2eds/bin/eclipse-nios2

如果这解决了问题,那么使修复永久编辑eclipse.ini,这对我来说是在eclipse.ini中。

在该文件中,在openFile和- lines .附录between两行之间

插入

代码语言:javascript
复制
--launcher.GTK_version
2

它是这样写的:

代码语言:javascript
复制
openFile
--launcher.GTK_version
2
--launcher.appendVmargs

还有拯救。

为我工作!

票数 1
EN

Stack Overflow用户

发布于 2021-04-06 03:08:03

尝试使用Visual代码代替。它可以(几乎)完成Eclipse可以做的所有事情,还有可以远程调试的额外好处。例如,在我的设置中,我只使用macOS进行开发。我在Ubuntu20.04VM中安装了Quartus,VSCODE允许我开发和调试,就像我在macOS中本地运行Quartus一样。

下面我将提供一个粗略的“如何-到”。

我强烈建议对Quartus使用Ubuntu环境(其他linux环境也应该可以工作:我已经测试了Arch和Manjaro)。无论IDE的选择是什么,Windows安装都是非常痛苦的。从20.1开始,我就没有尝试过Windows版本,但是没有什么可以解决的,而且修复它需要花费很多小时或者修改配置文件。而且,Windows版本并不是原生的-它实际上是通过WSL在Ubuntu中运行的。

  1. 确保您已经安装了您所需的Quartus版本-这应该适用于专业版、标准版和Lite版本。如果您愿意,可以跳过NiosII构建工具的手动安装,但实际上我建议安装它。它仍然是有用的,如果只是创建一个新的项目,BSP等。
  2. 安装VSCODE以及Microsoft提供的C/C++扩展(如果要使用该特性,则安装Visual代码远程- SSH扩展)
  3. 使用Eclipse创建一个新项目(如果您已经有了一个项目,请跳过)
  4. 打开VSCODE,选择Open并导航到项目的软件目录。
  5. VSCODE将打开您的项目,您应该看到您的应用程序目录和BSP目录。
  6. 从这里开始,您可以在代码上进行完全排列、自动完成等操作。
  7. 如果您需要重新生成BSP,您可以使用Eclipse进行重新生成,或者只运行命令行工具。

编撰

如果允许Eclipse为您创建项目,它将在应用程序目录中生成一个makefile。编译就像从应用程序目录中运行'make‘一样简单。我喜欢在VSCODE中打开一个终端窗口,这样我就可以在工作时运行各种工具,所以这通常是我编译代码的方式。如果您想将其集成到VSCODE中,则可以定义一个任务(https://code.visualstudio.com/docs/editor/tasks)。

Eclipse自动将您创建的新源添加到makefile中。VSCODE不会这么做-不过,我个人并不认为这是一件坏事。我不喜欢IDEs捣乱我的制作文件,我想完全控制他们自己。因此,当您创建一个新的源文件时,只需记住将它添加到makefile中。可能有一种方法可以让VSCODE自动添加源文件(您可以在保存等方面运行命令)--但我没有任何动机去尝试解决这个问题。

调试

还可以通过使用VSCODE在目标上调试Nios2软件。为此,请在项目的launch.json文件夹中打开.vscode文件。如果该文件不存在,只需创建它。这条道路应该是:

代码语言:javascript
复制
<project root dir>/.vscode/launch.json

将以下内容复制到launch.json文件中:

代码语言:javascript
复制
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "app",
      "type": "cppdbg",
      "request": "launch",
      "program": "${workspaceFolder}/app/app.elf",
      "stopAtEntry": true,
      "cwd": "${workspaceFolder}",
      "MIMode": "gdb",
      "miDebuggerServerAddress": "localhost:2334",
      "miDebuggerPath": "/PATH/TO/intelFPGA/20.1/nios2eds/bin/gnu/H-x86_64-pc-linux-gnu/bin/nios2-elf-gdb",
      "debugServerPath": "/PATH/TO/intelFPGA/20.1/quartus/bin/nios2-gdb-server",
      "debugServerArgs": "--tcpport 2334 --reset-target --tcppersist",
    }
  ]
}

此文件是调试目标和设置的列表。您可以在这里添加任意数量的配置,但现在最简单的是从一个配置开始。上面的配置叫做'app',如果你愿意的话,你可以改变它来适应你自己的项目。

  • 使用应用程序精灵文件的路径更新“程序”条目
  • 更新"miDebuggerPath“路径,在您的系统上使用nios2-elf-gdb路径。这是Nios2的gdb客户端。
  • 使用nios2-gdb服务器路径更新"debugServerPath“路径。这是Nios2的gdb服务器。
  • 保存文件,然后单击VSCODE中左侧控制面板上的“运行和调试”按钮。

您将在屏幕顶部的launch.json中定义的配置旁边看到play按钮。点击play按钮-这将启动gdb服务器的一个实例,然后是gdb客户端并将两者连接起来。如果一切顺利,你的目标将运行和停止在主要。

VSCODE将为您提供一组调试工具,用于步进、监视变量、调用堆栈--所有这些都是好东西。在右边,您可以查看调试控制台,这将允许您将命令直接输入到gdb控制台。注意,您必须在命令前面加上-exec。例如,要打印变量x的值,您可以键入:

代码语言:javascript
复制
-exec print x

警告

这种调试方法存在一个问题: nios2-gdb-server并不总是干净地退出,因此端口没有关闭。如果尝试启动另一个调试会话,服务器将不会启动,因为端口正在使用。Eclipse通过每次启动gdb时随机化端口来解决这个问题。我还没有找到办法去做那个VSCODE。

我发现最简单的方法就是在需要的时候手动运行gdb服务器。注释掉上面的两行“debugServer”。在VSCODE中打开第二个终端并运行:

代码语言:javascript
复制
nios2-gdb-server --tcpport 2334 --reset-target --tcppersist

即使在停止调试时,这也将使服务器继续运行。如果启动另一个调试会话,它将重新连接到同一个服务器实例。

Update: rioV8为这个问题提供了一个有用的解决方案,它涉及使用vscode扩展来生成一个随机环境变量,该变量可以用来代替端口号。解决方案是这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65240134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档