我已经在我的Linux机器上安装了Quartus和NIOS II IDE。最初,我尝试将一个现有的NIOS II项目导入Eclipse,但它只是坐在那里旋转,最终告诉我它不能导入该项目,因为它已经存在了。
我试着在Win10机器上安装所有的东西,然后导入OK项目。我确实注意到,原始项目中的一些路径有反斜杠。因此,例如:
#include "..\subfolder\include_file.h" 就像一件事。我不知道这是否是引起问题的原因。
于是,我尝试在Quartus中创建hello world NIOS处理器,并从零开始创建一个NIOS II项目。在使用Eclipse的过程中,每一步都非常缓慢,但最终还是起了作用,直到我到达终点时,它就像挂在一个小小的圆圈上,旋转着红色和蓝色的箭头。
我还有一个弹出窗口,上面有一个长长的列表:
远程系统资源管理器操作
上面写着:
用户操作正在等待后台工作的完成。
似乎所有安装都是正确的,例如,我可以从Quartus打开NIOS II Eclipse。Quartus本身工作得很好。
我使用这些指令安装了Eclipse:
有人能给我指点为什么这个速度这么慢吗?我的Linux机器是相当高的规格和苍蝇。没有别的东西,即使是模糊地挣扎在这上面。
如果有什么我可以提供的诊断信息,我非常乐意提供。谢谢!
发布于 2021-01-14 05:45:09
我在这里找到了一个解决办法
https://askubuntu.com/questions/761604/eclipse-not-working-in-16-04
若要测试此修补程序是否有效,请尝试打开一个终端,然后执行
$export SWT_GTK3=0然后运行eclipse-nios2 2。也就是说,做类似的事情
$ ~/intelFPGA_lite/20.1/nios2eds/bin/eclipse-nios2如果这解决了问题,那么使修复永久编辑eclipse.ini,这对我来说是在eclipse.ini中。
在该文件中,在openFile和- lines .附录between两行之间
插入
--launcher.GTK_version
2它是这样写的:
openFile
--launcher.GTK_version
2
--launcher.appendVmargs还有拯救。
为我工作!
发布于 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中运行的。
编撰
如果允许Eclipse为您创建项目,它将在应用程序目录中生成一个makefile。编译就像从应用程序目录中运行'make‘一样简单。我喜欢在VSCODE中打开一个终端窗口,这样我就可以在工作时运行各种工具,所以这通常是我编译代码的方式。如果您想将其集成到VSCODE中,则可以定义一个任务(https://code.visualstudio.com/docs/editor/tasks)。
Eclipse自动将您创建的新源添加到makefile中。VSCODE不会这么做-不过,我个人并不认为这是一件坏事。我不喜欢IDEs捣乱我的制作文件,我想完全控制他们自己。因此,当您创建一个新的源文件时,只需记住将它添加到makefile中。可能有一种方法可以让VSCODE自动添加源文件(您可以在保存等方面运行命令)--但我没有任何动机去尝试解决这个问题。
调试
还可以通过使用VSCODE在目标上调试Nios2软件。为此,请在项目的launch.json文件夹中打开.vscode文件。如果该文件不存在,只需创建它。这条道路应该是:
<project root dir>/.vscode/launch.json将以下内容复制到launch.json文件中:
{
"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',如果你愿意的话,你可以改变它来适应你自己的项目。
您将在屏幕顶部的launch.json中定义的配置旁边看到play按钮。点击play按钮-这将启动gdb服务器的一个实例,然后是gdb客户端并将两者连接起来。如果一切顺利,你的目标将运行和停止在主要。
VSCODE将为您提供一组调试工具,用于步进、监视变量、调用堆栈--所有这些都是好东西。在右边,您可以查看调试控制台,这将允许您将命令直接输入到gdb控制台。注意,您必须在命令前面加上-exec。例如,要打印变量x的值,您可以键入:
-exec print x警告
这种调试方法存在一个问题: nios2-gdb-server并不总是干净地退出,因此端口没有关闭。如果尝试启动另一个调试会话,服务器将不会启动,因为端口正在使用。Eclipse通过每次启动gdb时随机化端口来解决这个问题。我还没有找到办法去做那个VSCODE。
我发现最简单的方法就是在需要的时候手动运行gdb服务器。注释掉上面的两行“debugServer”。在VSCODE中打开第二个终端并运行:
nios2-gdb-server --tcpport 2334 --reset-target --tcppersist即使在停止调试时,这也将使服务器继续运行。如果启动另一个调试会话,它将重新连接到同一个服务器实例。
Update: rioV8为这个问题提供了一个有用的解决方案,它涉及使用vscode扩展来生成一个随机环境变量,该变量可以用来代替端口号。解决方案是这里。
https://stackoverflow.com/questions/65240134
复制相似问题