nxtOSEK安装方法 (Windows XP/Vista) (2009/01 更新)

 

nxtOSEK 程序开发环境的安装需要许多第三方软件,多数的工具是基于 CUI (Command User Interface 命令行用户界面) 的软件。所以如果你不熟悉那些软件的话,它可能会让你很郁闷,但是还是请耐心按照下列的步骤做。

1. 安装Cygwin

2. 安装GNU ARM

3. 安装 nxtOSEK 程序上传软件

4. 设置 nxtOSEK

 

 


1. 安装 Cygwin

Cygwin 是GNU/Linux(Unix) 在Windows上的模拟环境,他允许你在Windows上运行许多 Linux 软件。
  • Cygwin官方网站下载 Cygwin 1.5.x 或者更新的版本(这里使用的是1.5.24)
  • 打开 setup.exe。 你可以去下载离线安装包或者是直接从网络上面(中华人民共和国台湾省的镜像服务器的速度比较快)下载。 请选择最适合你的。

  • 安装到你喜欢的目录,注意路径不能包含空格或者是多字节字符(比如中文)(例如 C:\cygwin 是合法的)

  • 在Devel分类下面选择 make 3.81-1

 

 


2. 安装 GNU ARM

GNU ARM 是 GCC (GNU Compiler Collection) for ARM core 的发行包,在NXT内它支持一个 ARM7 CPU 。
  • GNU ARM官方网站 下载一个GCC-4.02 工具系列 ( bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4.exe)。安装路径的选择也需要注意避免包含空格和多字节字符(比如中文) 注意:如果你使用其他版本的 GCC (比如 4.1.1),编译nxtOSEK程序的时候它可能会带来一些“神奇”的错误。
  • 安装时只能选择下图中所示的选项。NXT内置的ARM7处理器(ATMEL AT91SAM7S256)没有FPU(浮点运算单元)。

  • 由于Cygwin已经被安装,所以一定不要选择"Install Cygwin DLLs..."。

  • 安装的最后,你会被询问是否添加GNU ARM的tool path到Windows环境变量,这是不需要的。

 

 


3. 设置 nxtOSEK 程序上传软件

nxtOSEK 支持三种上传方法。而且三种方法的使用目的也不相同。 每种方法都需要安装不同的软件,而且功能上都有长有短。 不过,我们还是强烈推荐你使用John Hansen的NXT扩展固件,因为他提供了和LEGO标准固件一样的图形界面并且支持和其他标准固件上运行的编程语言 (比如 NXT-G, NBC/NXC) 共存。

 

NXT 固件
程序上传软件
描述
John Hansen的
扩展NXT固件
LEGO MINDSTROMS NXT 驱动
John Hansen的NeXTTool

nxtOSEK程序可以上传,使用扩展NXT固件。

优点:
- 可以上传多个 nxtOSEK 程序。
- 支持和其他标准固件上运行的编程语言 (比如 NXT-G, NBC/NXC) 共存。

缺点:
- 单个程序大小 (ROM+RAM) 限制在 64k 字节内。

适用群体:
- 多数的用户,特别是用于教育用途的用户。

LEGO MINDSTORMS NXT 驱动
John Hansen的 NeXTTool
nxtOSEK程序可以上传,使用 nxtOSEK NXT BIOS。

优点:
- 程序大小最大可达 224K字节(ROM) 和 50K字节(RAM)

缺点:
- 只能上传单个文件到NXT

适用群体:
- 需要开发超过64K字节程序的用户
LibUSB nxtOSEK程序直接上传到RAM,并且直接从RAM中执行。

优点:
- 不占Flash内存

缺点:
- 关机后程序就消失。
- 程序大小 (ROM+RAM) 限制在64K字节内
- 正确安装LibUSB比较难
- 只能在 Windows XP 上工作

适用群体:
- 无 (只是为了向后兼容)

 

 


设置 nxtOSEK 程序上传软件(适用于扩展NXT固件)

  • LEGO software update website 下载 LEGO MINDSTORMS NXT Driver v1.02 并且启动其中的 setup.exe ,跟随安装向导进行安装。在安装过程中,安装程序会添加一个USB设备到一个Windows系统文件夹,因此在安装前,您必须确保您的帐户有管理员的权限。

    注意:如果已经安装LEGO标准编程软件,那就不需要再安装LEGO MINDSTORMS NXT 驱动。

  • 下载 John Hansen的 NeXTTool 并且把它解压到没有包含空格和多字节字符(比如中文)的目录路径下(比如 C:\cygwin\nxettool)。 NeXTTool是一个具备有上传*.rxe和*.rfw文件功能的PC控制台程序。

    注意: NeXTTool提供了许多用于和NXT通讯的功能。不过,它不能和nxtOSEK协同工作,因为 nxtOSEK 在USB/Bluetooth上用的是非LEGO标准的通信协议。
  • 下载John Hansen的 扩展NXT固件 (标有106或者更新的版本,必须提供有native-invocation功能)(比如 lms_arm_nbcnxc_106.rfw),并且把它保存到NeXTTool的存储目录。

 

 

设置nxtOSEK程序上传软件(适用于NXT BIOS)

  • LEGO software update website 下载 LEGO MINDSTORMS NXT Driver v1.02 并且启动其中的 setup.exe ,跟随安装向导进行安装。在安装过程中,安装程序会添加一个USB设备到一个Windows系统文件夹,因此在安装前,您必须确保您的帐户有管理员的权限。

    注意:如果已经安装LEGO标准编程软件,那就不需要再安装LEGO MINDSTORMS NXT 驱动。

  • 下载 John Hansen的 NeXTTool 并且把它解压到没有包含空格和多字节字符(比如中文)的目录路径下(比如 C:\cygwin\nxettool)。 NeXTTool是一个具备有上传*.rxe和*.rfw文件功能的PC控制台程序。

    注意: NeXTTool提供了许多用于和NXT通讯的功能。不过,它不能和nxtOSEK协同工作,因为 nxtOSEK 在USB/Bluetooth上用的是非LEGO标准的通信协议。

 

 

设置 nxtOSEK 程序上传软件(适用于无固件)

注意:
我们只在Windows XP SP2上测试过nxtOSEK。但是,一些用户已经试过在Vista上安装nxtOSEK。在Vista上安装LibUsb好像会给很多USB设备(比如 鼠标、键盘)带来严重问题。因此,我们强烈建议您不要在装有 Windows Vista的机器上安装LibUsb。
真不幸,如果你试过,那么在你的PC上的所有的设备都将停止工作。在这种情况下,下列的的步骤会帮你解决问题:
- 插入早年的ps2键盘和鼠标设备
- 重启机器
- 在设备管理器中,删除所有的USB设备
- 卸载LibUSB
- 先插入USB键盘和鼠标,然后重启机器。
  • LibUSB 是一个开源的C函数库,用于访问USB设备。 libUSB安转程序Windows版本已经包含在nxtOSEK发行包中 (nxtOSEK\lejos_nxj\3rdparty\lib\libusb-win32-filter-bin-0.1.12.1.exe)。执行 libusb-win32-filter-bin-0.1.12.1.exe 来安装libUSB。

    根据 一些用户对leJOS的反馈,LibUsb一定要被安装在没有包含空格和多字节字符(比如中文)的目录路径下。

 

 

 


4. 设置 nxtOSEK
  • 解压nxtOSEK压缩包到没有包含空格和多字节字符(比如中文)的目录路径下(比如 C:\cygwin\nxtOSEK)。 解压后的nxtOSEK发行包内有下列的目录结构。

  • 在ecrobot目录下,有一个叫做tool_gcc.mak的文件,它是用来指明GNUARM的安装路径的。您需要修改GNUARM_ROOT(GNUARM的安装路径)使之符合您的系统环境配置。 tool_gcc.mak 还包含一个宏 NEXTTOOL_ROOT 用于指定NeXTTool的安转路径。
    如果你用NeXTTool,你需要修改 NEXTTOOL_ROOT使之符合您的系统环境配置。

# specify GNU-ARM root directory
ifndef GNUARM_ROOT
GNUARM_ROOT = /cygdrive/C/cygwin/GNUARM
endif

# specify NeXTTool root directory
ifndef NEXTTOOL_ROOT
NEXTTOOL_ROOT = /cygdrive/C/cygwin/nexttool
endif

  • 启动Cygwin Bash Shell,到 nxtOSEK\samples_c\helloworld 目录下,输入下面命令:
    (假设nxtOSEK解压在C:\cygwin)
    $ cd C:/cygwin/nxtOSEK/samples_c/helloworld
  • 输入下列命令来生成helloworld的样例
    $ make all
    如果一切正常的话,二进制程序文件和程序上传脚本会被自动生成在hellworld文件夹下面。

 

 

 

主页