如何把程序上传到NXT (2009/01 更新)

 

如何把nxtOSEK程序上传到NXT扩展标准固件

如何把程序上传到装有NXT BIOS的Flash

如何在无固件情况下把nxtOSEK程序上传到RAM并执行

注意:
如果你要重新安装NXT标准固件,请使用标准NXT编程软件来更新固件
(比如 NXT-G) 或者使用NeXTTool的固件安装功能。

注意:
Windows Vista用户上传程序到NXT,必须使用管理员账户来执行Cygwin。方法很简单,右键单击Cygwin图标,选择 "以管理员身份运行..." 菜单项。

 

 


如何把nxtOSEK程序上传到NXT扩展标准固件

 

注意:
T把nxtOSEK程序上传到NXT扩展标准固件,这首先需要上传NXT扩展标准固件到NXT。不过,如果你以前已经装过的话,那就不用了。


1. 上传扩展NXT固件到NXT

如果你有LEGO标准编程软件(比如 NXT-G), 你可以用它自带的固件升级功能上传扩展NXT固件。所以,在这个部分,将介绍另外一种办法,就是使用NeXTTool。

步骤 1:重置NXT
转换到固件升级模式,做法是,长按重置钮(在NXT的USB联机口背后,靠左的一个洞里)5秒以上,会转换到固件升级模式。这时,NXT会嘀嗒地响。

步骤 2:复制扩展NXT固件(比如 lms_arm_nbcnxc_106.rfw)到NeXTTool的解压目录。

步骤 3:执行Cygwin,更改当前工作目录到NexTTool的解压文件夹,输入下列命令(注意不要复制‘$‘):
(假设NeXTTool是被解压在 C:\cygwin\nexttool )
$ cd C:/cygwin/nexttool

步骤 4:用USB联机线连接PC和NXT。

步骤 5:上传扩展固件到NXT,在Cygwin输入下列命令:
$ ./NeXTTool.exe /COM=usb -firmware=lms_arm_nbcnxc_106.rfw
程序上传可能会花费半分钟,之后,NXT的LCD会显示一些块块(就是一些不太正常的东西在屏幕上跳)。

步骤 6: 从NXT移除电池,等一下子,然后再插入。接着按橘红色的长方形按钮,打开NXT。可以看到扩展固件含有一些和标准固件类似的图形界面。

 


2. 何把nxtOSEK程序上传到NXT扩展标准固件

步骤 1:打开装有NXT标准扩展固件的 NXT。

步骤 2:用USB联机线连接PC和NXT 。

步骤 3:转到工程所在目录 (比如 samples_c\helloworld) 并且编译目标文件。

步骤 4:在Cygwin中输入下列命令。
$ ./rxeflash.sh

如果程序上传成功,程序的大小会被显示在Cygwin,比如下列输出的第二行。
Executing NeXTTool to upload helloworld.rxe...
helloworld.rxe=15280
NeXTTool is terminated.

步骤 5:用NXT标准固件的一贯启动步骤启动刚刚上传的程序。

步骤 6:在nxtOSEK启动界面显示以后,nxtOSEK的主界面就会显示。 nxtOSEK应用程序被上传到了Flash,之后被拷贝到 RAM,然后从RAM启动。 这样,[R]会显示在主界面上。


nxtOSEK 启动界面


nxtOSEK 主界面 (在RAM执行)

步骤 7:NXT上的按钮有下列功能:
- ENTR:打开NXT
- EXIT:关闭NXT
- RUN:启动上传的nxtOSEK应用程序
- STP:停止正在运行的nxtOSEK应用程序并且自动返回nxtOSEK主界面。
如果电压 (BATT:) 是非0值的话, NXT 就会启动。nxtOSEK应用程序一启动,NXT就会被nxtOSEK控制。


nxtOSEK 按钮指示


Hello World 样例

步骤 8:NXT扩展标准固件允许用户上传多个nxtOSEK应用程序到NXT,其他的NXT标准编程语言亦然。 可是这样的话,一个nxtOSEK应用程序的大小将被限制在64Kbytes以内。 如果你要写超过64Kbytes的程序,请用NXT BIOS。

 


如何把程序上传到装有NXT BIOS的Flash

 

注意:
把程序上传到装有NXT BIOS的Flash,首先需要上传NXT BIOS到NXT。不过,如果你以前已经装过的话,那就不用了。

 

1. 上传到NXT BIOS到NXT

步骤 1:重置NXT
转换到固件升级模式,做法是,长按重置钮(在NXT的USB联机口背后,靠左的一个洞里)5秒以上,会转换到固件升级模式。这时,NXT会嘀嗒地响。

步骤 2:用USB联机线连接PC和NXT 。

步骤 3:转到工程所在目录 (比如 samples_c\helloworld) 并且编译目标文件。

步骤 4:在Cygwin中输入下列命令。
$ ./biosflash.sh

步骤 5: 几秒钟以后,BIOS的屏幕会显示在LCD。


NXT BIOS 屏幕 (上传已经准备好)

步骤 6: 如果 BATT: 是0,从NXT移除电池,等一下子,然后再插入。接着按橘红色的长方形按钮,打开NXT。可以看到NXT BIOS被打开。

 

 

2. 把nxtOSEK程序上传到装有NXT BIOS的Flash

步骤 1:确保NXT BIOS已经显示,并且已经开始准备上传

步骤 2: 用USB联机线连接PC和NXT。

步骤 3:转到工程所在目录 (比如 samples\helloworld) 并且编译目标文件。

步骤 4:在Cygwin输入下列命令。
$ ./appflash.sh

步骤 5:上传的状态可以在LCD上的进度条上看到。几秒后,上传完成。


NXT BIOS 屏幕 (上传完成)

步骤 6:按EXIT 按钮 (灰色的长方形按钮) 关闭NXT。

步骤 7:按ENTR按钮 (橘色的长方形按钮)打开NXT。 在nxtOSEK启动界面显示后,nxtOSEK主界面就会显示出来。如果nxtOSEK 应用程序是从Flash启动的,[F] 会显示在nxtOSEK主界面。


nxtOSEK 启动界面


nxtOSEK 主界面 (在Flash中执行)

步骤 8:NXT上的按钮有下列功能:
- ENTR:打开NXT
- EXIT:启动上传的nxtOSEK应用程序
- RUN:启动上传的nxtOSEK应用程序
- STP: 停止正在运行的nxtOSEK应用程序并且自动返回nxtOSEK主界面。
如果电压 (BATT:) 是非0值的话, NXT 就会启动。 nxtOSEK应用程序一启动, NXT就会被nxtOSEK控制。


nxtOSEK 按钮指示


Hello World 样例

步骤 9:上传一个新的nxtOSEK程序:
ENTR + STP 按钮不动,至少坚持一秒等到nxtOSEK主界面显示出来,NXT会自动关闭。
再按ENTR按钮打开NXT,然后NXT BIOS屏幕会显示出来。

 

 



如何在无固件情况下把nxtOSEK程序上传到RAM并执行

 

步骤 1:重置NXT
转换到固件升级模式,做法是,长按重置钮(在NXT的USB联机口背后,靠左的一个洞里)5秒以上,会转换到固件升级模式。这时,NXT会嘀嗒地响。

注意:
步骤 1只在第一次上传程序到RAM的时候做,这次以后就不用再做了。

步骤 2:用USB联机线连接PC和NXT。

步骤 3:按ENTR按钮(橘红色长方形按钮)打开NXT。

步骤 4:改变当前的目录到项目目录 (比如 samples_c\helloworld)然后编译目标文件。

步骤 5:在Cygwin输入下列命令。
$ ./ramboot.sh

步骤 6:在nxtOSEK启动界面显示后, nxtOSEK主界面就会显示出来。如果nxtOSEK应用程序是从RAM执行,那么[R]会被显示在nxtOSEK 主界面。


nxtOSEK 启动界面


nxtOSEK 主界面(在RAM中执行)

步骤 7:NXT上的按钮有下列功能:
- ENTR:打开NXT
- EXIT:启动上传的nxtOSEK应用程序
- RUN:启动上传的nxtOSEK应用程序
- STP: 停止正在运行的nxtOSEK应用程序并且自动返回nxtOSEK主界面。
如果电压 (BATT:) 是非0值的话, NXT 就会启动。 nxtOSEK应用程序一启动, NXT就会被nxtOSEK控制。


nxtOSEK 按钮指示


Hello World 样例

步骤 8:要上传一个新的nxtOSEK应用程序到RAM, 关闭NXT,然后去做步骤 2。



 

 

主页