本指南包含故障排除信息,并解答使用 Eclipse* IDE(面向英特尔® 物联网平台)为英特尔® Galileo 或英特尔® Edison 开发板编程时所遇到的常见问题。具体安装步骤请参阅安装 Eclipse* IDE。
使用 Eclipse*
- 无法打开 Eclipse
- 如何打开并配置新/示例项目?
- 如何重命名我的项目?
- 如何创建新的目标连接?
- 如何调试我的应用?
- 我删除了 devkit-launcher.bat 文件,能否使用英特尔® 物联网开发人员套件插件运行 Eclipse?
- 如何恢复第一次运行 Eclipse 时显示的介绍窗口/Intel® IoT Developer Kit 选项卡?
- 我误删了远程系统连接,能否恢复?
- 如何设置 C++11?
- 我能否使用 USB/串行线缆传输 Eclipse(未联网)的数据并运行/调试程序?
- 我能否将多种连接用于同一个开发板?
- 我能否将 Eclipse 安装移至其他目录?
- 无法删除“Remote System Details”视图中的连接
- 尝试连接英特尔® Edison 开发板时,无法更改用户名
- 如何将该版本的 Eclipse 用于我之前的项目?
- 如何提供反馈信息?
传感器操作
- 如果想要使用其他 UPM 传感器,需要进行哪些更改?
- 我查看了所有 UPM 通用库文件,但我的传感器不受 UPM 的支持,我还能够继续使用吗?
- 编写完面向传感器的新界面后,能否将其添加至 UPM 通用库?
- 我能否使用 Eclipse IDE 构建、测试和维护新的 UPM 传感器?
解决错误消息
- 在运行程序的过程中开始收到“Error during file upload”消息,这一过程持续几分钟,我应该怎么做?
- 无法启动 – “The selection cannot be launched, and there are no recent launches"消息
- 我收到了“Failed to connect sshHD on XXX.XXX.XXX.XXX:22”错误,但我的 IP 地址是正确的,我应该怎么做?
- "Devkitlauncher can’t be opened because it is from an unidentified developer"消息
- "No Java virtual machine"消息
- "Windows cannot find eclipse.exe"消息
- 在 Eclipse 中运行程序时收到 "Failed to connect sshd"错误消息
如何将该版本的 Eclipse 用于我之前的英特尔® Edison 项目?
如果您曾经在英特尔® 物联网开发人员套件版 Eclipse 中运行过之前的项目,您可以将这些项目加载至这个版本。具体做法是:将工作区路径设置为之前的路径,或者将之前的项目文件拷贝至新创建的工作区。然后选择“File > Import”。在“General”类别中选择“Existing Projects into Workspace”,并按照屏幕上的说明导入您的项目。
如何打开并配置新/示例项目?
选择“File > New > Other”。展开“Intel(R) IoT Developer Kit”并选择“Intel(R) IoT C/C++ project”。点击“Next”,然后按照屏幕上的说明完成项目创建。详细步骤请参阅在 Eclipse* IDE 中创建新项目。
如果想要使用其他 UPM 传感器,需要进行哪些更改?
在“Intel IoT Developer Kit”选项卡中,选择“Sensor Examples using UPM libraries”并浏览示例文件,以确定想添加的传感器。您可以访问 http://iotdk.intel.com/docs/master/upm/modules.html,使用其中的列表查看当前是否支持该传感器;不过该列表可能不包含新添加的传感器。
找到传感器后,选择“Project > Properties”。前往“C/C++ Build > Settings > Tool Settings > Cross G++ Linker > Miscellaneous”并将通用库添加至链接器标记。有些传感器共享同一个通用库文件,而有些传感器有自己的通用库文件。例如,如果您想使用 Grove* - 空气质量传感器,请在“Miscellaneous”文本框中输入“–lupm-gas”;如果是 Grove* - 数字加速度传感器 (16g),输入“–lupm-adxl345”。或者,您还可以在开发板的“/usr/lib”的下方查找所有 UPM 通用库文件,并使用 opkg 命令更新 MRAA 和 UPM。
我查看了所有 UPM 通用库文件,但我的传感器不受 UPM 的支持,我还能够继续使用吗?
非常抱歉,但传感器多达数千种,您可能不希望使用目前 UPM 尚不支持的传感器。
在这种情况下,您首先可以确定您所使用的传感器种类,MRAA 通用库提供许多通用界面,可能会对您使用传感器的请求有所帮助。有时候非常简单,只需读取并处理模拟针脚的数值,但其他传感器会比较复杂。
一般来说,可以尝试找一个与您在 UPM 中已有的传感器相类似的传感器,查看其代码,了解其工作原理。您会看到,不同制造商会将同一块芯片用于相似的传感器,这样 UPM 代码只需稍微更改,或无需做出更改就可以运行。如果不属于这种情况,可以的话,使用现有的源或示例,但最重要的是要参考传感器产品说明,以掌握正确的使用方法。
更多详情,包括移植 Arduino 示例和构建 UPM,请访问:http://iotdk.intel.com/docs/master/upm/pages.html
编写完面向传感器的新界面后,能否将其添加至 UPM 通用库?
事实上,我们鼓励社区的开发人员添加在项目中使用的新传感器,以为 UPM 通用库做出贡献。添加至通用库之前,界面代码必须符合指导准则。因此,建议您阅读我们的投稿指南,这样可以加快审核流程。了解更多信息,请访问:http://iotdk.intel.com/docs/master/upm/contributions.html
我能否使用 Eclipse IDE 构建、测试和维护新的 UPM 传感器?
这一任务并不轻松,不过加以努力是可以实现这一目标的。UPM 使用 CMake* 生成可兼容源代码的 makefile。尽管提供 Eclipse 插件支持这类项目 (CMakeBuilder),但大多数用户表示,使用默认状态下提供的现有 makefile 项目类型并单独运行 CMake,能够提高成功率。为此,您需要将 UPM 副本以 Makefile 项目的形式导入至 Eclipse,并相应设置工具链。最好首先单独构建 UPM,以更好地了解这一流程。有关构建指南的更多信息,请访问:http://iotdk.intel.com/docs/master/upm/building.html
如何设置 C++11?
请按照下列步骤进行操作(这些步骤已在采用英特尔® Edison 开发板和物联网开发人员套件 v1.0 版 Eclipse 的 Windows* 7 上进行测试。)
- 选择“Project > Properties”。
- 导航至“C/C++ Build > Settings > Tool Settings > Cross G++ Compiler > Miscellaneous”。
- 在“Other Flags”字段的末尾部分添加“-std=c++11”。
资料来源:http://wiki.eclipse.org/CDT/User/FAQ#CDT_does_not_recognize_C.2B.2B11_features。
- 导航至“C/C++ General > Preprocessor Include Paths, Macros etc. > Providers”。
资料来源:http://stackoverflow.com/questions/17457069/enabling-c11-in-eclipse-juno-kepler-luna-cdt - 选择“CDT CROSS GCC Built-in Compiler settings”,然后在“Command to get compiler specs”字段的末尾部分添加“-std=c++11”。
- 如要重新创建指标,请选择“Project > C/C++ Index > Rebuild”。
我能否将多种连接用于同一个开发板?
不可以,每个项目只能选择一种连接。不过,您可以创建并将多种“Remote System Connections”分配给同一个 IP 地址(这种情况下,该地址是您开发板的 IP 地址)
我删除了 devkit-launcher.bat 文件,能否使用英特尔物联网开发人员套件插件运行 Eclipse?
不可以,使用批处理文件(而非 Eclipse 可执行文件)将启动 Eclipse 以及所有必要的环境设置。使用“devkit-launcher.bat”,以便在每次打开时启动 Eclipse。如要恢复“devkit-launcher.bat”文件,您需要重新下载“iotdk-ide-XXX.zip”文件。具体步骤请参阅在英特尔物联网平台上安装 Eclipse* IDE。
我能否使用 USB/串行线缆传输 Eclipse(未联网)的数据并运行/调试程序?
不可以,英特尔物联网开发人员套件版 Eclipse 不提供任何功能支持通过 USB 或串行线缆传输数据。
如何重命名我的项目?
- 右击“Project Explorer”选项卡中的项目,然后选择“Rename”。
- 输入新的项目名称。
- 右击重命名的项目,然后选择“Index > Rebuild”。
- 右击重命名的项目,然后选择“Clean Project”。
- 如要重新创建项目,请选择“Project > Build All”。
- 如果选择创建启动配置,请选择“Run > Debug Configurations…”,然后选择启动配置(包含“C/C++ Remote Application”中原来的项目名称)。
- 在顶部更改启动配置的“Name”。
- 点击“Search Project…”按钮,选择 C/C++ 应用,并在“Remote Absolute File Path for C/C++ Application”字段中替换掉原来的项目名称。
- 将“Commands to execute before application”设置为新的项目名称。
如何恢复第一次运行 Eclipse 时显示的介绍窗口/Intel® IoT Developer Kit 选项卡?
选择“Help > Intel(R) IoT Developer Kit”。如要在界面右侧显示选项卡,请点击窗口右上方的“Restore”图标。
如何创建新的目标连接?
在“Intel IoT Developer Kit”选项卡中,点击“Create Target Connection”。在对话框中输入目标设备的主机名称或 IP 地址。输入连接名称并点击“Finish”创建目标连接。
如何调试我的应用?
如果您决定使用项目创建启动配置,但跳过了设置新连接的步骤,可以按照如何创建新的目标连接中所述的步骤进行创建。
如要调试应用,请选择“Run > Debug Configurations…”,并展开“C/C++ Remote Application”。选择与项目名称相同的启动配置,并点击“Debug”。对话框将打开,并请求输入用户名和密码以连接目标设备。输入您在设备开发板时所指定的用户名和密码。
或者,您还可以点击工具栏中的运行/调试启动配置按钮的箭头,然后选择启动配置。
在运行程序的过程中开始收到“Error during file upload”消息,这一过程持续几分钟,我应该怎么做?
如果设备中的程序正在运行,而您又尝试重新加载,此时经常会出现这种情况,因为应用二进制代码已在使用过程中。首先您可以尝试通过控制台关闭程序。按下英特尔® Edison 开发板上的重置按钮,时间不要超过两秒钟,这样可以清空 sketch 文件夹和正在运行的程序。
另一种方法是断开软件与 IDE 的连接。选择“Window > Show View > Other”,然后选择“Remote Systems”(在“Remote Systems”组下方,现在是全新 Eclipse 版本的默认视图)。在新选项卡中右击开发板,并选择“Disconnect”,将终止正在运行的进程,从而解决问题。
无法启动– “The selection cannot be launched, and there are no recent launches”消息
当 Eclipse 无法启动当前选择时会显示该消息。请点击现有项目,尝试重新启动,或选择“Run > Debug Configurations…”,然后在“C/C++ Remote Application”类别中选择启动配置。
无法删除“Remote System Details”视图中的连接
点击“Remote System Details”视图中的“Refresh”按钮,更新连接列表。删除过的连接将会成功删除。
我能否将安装移至其他目录?
不可以,我们不建议您这么做,因为如果移动安装文件,英特尔物联网开发人员套件可能无法运行。
我误删了远程系统连接,能否恢复?
不能,您需要创建并配置新的“Remote System Connection”,如下所示:
- 选择“Run > Run Configurations…”
- 选择要设置的项目,然后点击“New”。
- 选择远程系统类型:
- 指定主机名称,然后点击“Finish”。
我收到了“Failed to connect sshHD on XXX.XXX.XXX.XXX:22”错误,但我的 IP 地址是正确的,我应该怎么做?
这一问题可能是错误代理程序设置所引起的。请进行以下操作设置正确的代理程序设置:
- 选择“Windows > Preferences”。
- 导航至“General > Network Connections”。
- 如果您的英特尔® Edison 开发板与计算机均连接 LAN/WLAN,请在代理程序设置中选择“Direct”连接。
尝试连接英特尔® Edison 开发板时,无法更改用户名
- 连接开发板时应出现下列对话框:
- 点击“Cancel”。
- 在左下方的“Remote System Details”选项卡中,右击连接开发板,然后选择“Clear Passwords”。
如何提供反馈信息?
您可以通过论坛提供反馈信息,地址为 https://software.intel.com/en-us/forums/internet-of-things。
无法打开 Eclipse
文件夹名称是否包含空格?
如果“iotdkide”文件夹的完整文件路径中包含空格,可能无法使用批处理文件运行 Eclipse。如果无法移动“iotdkide”文件夹,可能需要编辑“devkitlauncher.bat”,并对完整文件路径进行硬编码。例如,将第一行:
export DEVKIT_HOME=$(dirname $0)/
更改为:
export DEVKIT_HOME="/my parent folder/iotdkidemac/"
如果尝试启动 Eclipse 时,命令行窗口出现又消失,然后没有任何反应。
此时,批处理文件对当前开发设置没有任何作用。通过命令行运行批处理文件,查看是否有错误消息,然后尝试手动解决该问题,如下所示:
- 在“Start”菜单中选择“Run”。
- 输入命令:
cmd
- 在命令行窗口中导航至保存“
devkitlauncher.bat
”的目录。例如:cd c:\Users\username\Downloads\iotdkidewin。
- 输入命令:
devkitlauncher
- 仔细阅读错误消息的输出。
"Devkitlauncher can’t be opened because it is from an unidentified developer"消息
如果使用基于 Mac* OS X* 的系统,可能是看到这条消息。请进行以下操作:
- 右击“devkitlauncher.bat”,然后选择“Open with > Terminal”。
- 点击“Open”运行批处理文件。这些步骤只能操作一次。
"No Java virtual machine"消息
如果看到 "No Java virtual machine"消息,如下所示,您必须安装 JRE 或 JDK。具体步骤请参阅在英特尔物联网平台上安装 Eclipse* IDE。
"Windows cannot find eclipse.exe"消息
如果用 32位 Windows 操作系统尝试打开开发套件包看到 "Windows cannot find eclipse.exe"消息。您需要对开发套件包做出一些调整:
- 从软件下载页面下载并解压面向 Windows 的 Arduino IDE。
- 在已解压的 Arduino IDE 文件夹中,导航至“hardware\tools\edison\sysroots\”,并复制整个“ i686pokysdkmingw32”目录。
- 在“iotdkidewin”文件夹中,前往“\devkitx86\sysroots”文件夹。在此处粘贴“i686pokysdkmingw32”文件夹。
- 使用 Notepad 或类似的文本编辑器编辑“devkitlauncher.bat”脚本。将以下行:
set PATH=%PATH%;%DEVKIT_HOME%\devkitx86\sysroots\x86_64pokysdkmingw32\usr\bin\i586pokylinux;%DEVKIT_HOME%\iotdevkit\devkitdebugger
更改为:
set PATH=%PATH%;%DEVKIT_HOME%\devkitx86\sysroots\i686pokysdkmingw32\usr\bin\i586pokylinux;%DEVKIT_HOME%\iotdevkit\devkitdebugger
- 下载面向 C/C++ 开发人员的 Windows 32位版 Eclipse IDE,地址为:https://eclipse.org/downloads/packages/eclipseideccdevelopers/keplersr2。
- 解压 32 位版 Eclipse,并用它替换“iotdkidewin”文件夹中的 Eclipse。
- 双击“devkitlauncher.bat”运行 Eclipse。
在 Eclipse 中运行程序时收到"Failed to connect sshd"错误消息
如果英特尔® Edison 开发板使用 Wi-Fi* 连接,您必须为开发板设置密码,否则会出现 SSH 连接错误。
- 如要设置密码,请通过串行连接连接开发板,并输入命令“
configure_edison password
” - 按照屏幕上的说明设置密码。