凌阳科技大学计划论坛

首页 » eCos技术讨论专区 » redboot技术讨论 » 使用Redboot进行程序下载
leajian - 2008-4-29 11:15:00
Redboot内含一个GDB Stub,可以用于程序的下载和调试。另外,在控制台下Redboot支持使用load命令通过串口或网络进行程序下载,接下来就看看在控制台下怎么完成程序的下载。

首先使用IDE下的“Download Redboot”工具将Redboot下载到开发板,如果开发板内已经有Redboot,则不需要再次下载。

注意一下硬件连接:

将以太网接口处的SPICSN的跳线断开,然后用导线将IOA1与28J60的SPICSN相连,并关闭其他关于IOA1的拨码开关或跳线

使用串口先将开发板连接至PC的串口

一、通过串口下载程序

将开发板上的拨码开关最左侧的CFG0拨至ON的位置,然后按下复位按键,可以在超级终端等软件中看到如下图所示的信息,说明Redboot已经成功启动:

 附件: 您所在的用户组无法下载或查看附件

此时,可以敲入下面的指令:

load -m xModem

如下图所示:

 附件: 您所在的用户组无法下载或查看附件

按下回车,可以看到Redboot不断打出“C”字符,表示正在等待用户发送文件:

 附件: 您所在的用户组无法下载或查看附件

然后,在超级终端等软件中选择通过xModem发送文件,并选择一个已经编译好的*.elf文件,确定,可以看到PC正在通过串口向Redboot传输文件:

 附件: 您所在的用户组无法下载或查看附件

传输过程中,PC端会出现类似于下面的提示信息:

 附件: 您所在的用户组无法下载或查看附件

这个提示信息并不是说传输失败,而是表示Redboot已经接收到了足够的数据,所以放弃了剩余数据的接收。此时,可以看到超级终端等软件中会打出下图所示的信息:

 附件: 您所在的用户组无法下载或查看附件

其中,Entry point表示了之前下载的*.elf程序的入口地址,address range表示了之前下载的程序所占用的地址范围。至此,程序下载已经成功。

接下来,可以直接敲入“go”命令,Redboot即可开始运行刚刚下载的那个程序。

如果希望停止程序运行,直接按下开发板上的复位按键即可~
leajian - 2008-4-29 11:53:00
二、通过网络下载程序

Redboot可以通过TFTP协议或HTTP协议进行程序的下载。在使用网络进行程序下载之前,首先需要使用网线将开发板与PC或交换机相连。另外,PC端需要运行TFTP Server或HTTP Server程序,以便Redboot可以获取PC上的文件。

TFTP Server或HTTP Server在网上搜索即可得到,这里,为大家奉上两个非常好用的TFTP和HTTP Server,并简单介绍它们的使用方法。

 附件: 您所在的用户组无法下载或查看附件

 附件: 您所在的用户组无法下载或查看附件

TFTPD32是一个小巧的TFTP Server程序,它是一个绿色软件,使用简单。
打开TFTPD32.exe后,界面如下图所示:

 附件: 您所在的用户组无法下载或查看附件

使用TFTP Server下载程序,需要设置PC端的工作目录。点击“Settings”按钮,打开TFTP Server的设置对话框,如下图所示:

 附件: 您所在的用户组无法下载或查看附件

在Base Directory中输入工作目录的路径,或点击“Browse”按钮选择一个路径。工作路径内需要放置下载的*.elf文件,这样,Redboot便可以通过TFTP协议,访问TFTP Server,然后TFTP Server即可根据Redboot的请求在工作路径内查找制定的文件。
设置完工作路径之后,点击OK,然后关闭TFTP Server,并重新打开,此时,新的设置即可生效。

Small HTTP Server也是一个绿色软件,直接运行http.exe即可启动HTTP Server。启动之后,HTTP Server会显示一些基本信息,如下图所示:

 附件: 您所在的用户组无法下载或查看附件

这些信息显示了HTTP Server的工作目录、端口号等信息。HTTP Server默认的工作目录可能不是我们需要的。设置工作目录的方法是,在桌面的右下角,会看到Small HTTP Server的图标,右键点击,选择Settings,如下图所示:

 附件: 您所在的用户组无法下载或查看附件

在弹出的对话框中,找到“Default Web Folder”一项,并选择工作目录,如下图所示:

 附件: 您所在的用户组无法下载或查看附件

点击右上角的“OK”,确认。

经过上面的设置之后,Redboot即可通过TFTP或HTTP来访问工作目录里的文件。
leajian - 2008-4-29 12:01:00
在PC端建立好HTTP或TFTP Server之后,启动Redboot,并使用ip_address命令为Redboot设置IP地址。ip_address的常用用法如下:

ip_address -l 192.168.100.2 -h 192.168.100.3

上面的命令的意义为:将Redboot的IP地址设置为192.168.100.2,并告诉RedbootPC的IP地址为192.168.100.3

然后,可以使用load命令来通过网络下载程序:

load -v -m TFTP test.elf  或 load -v -m HTTP test.elf

上面的命令分别表示了使用TFTP协议下载test.elf这个文件,或使用HTTP协议下载 test.elf这个文件。参数-v的意义是让Redboot在下载过程中指示下载进度。

敲入上面的命令并回车后,在超级终端等软件中会看到左侧有线条在不断旋转,表示Redboot正在通过网络下载程序。如下图所示:

 附件: 您所在的用户组无法下载或查看附件

下载完毕后,Redboot同样会显示刚刚下载的elf文件的入口地址、地址范围等信息,图下图所示:

 附件: 您所在的用户组无法下载或查看附件

然后,使用go命令即可执行该程序。
云里雾里 - 2008-4-29 14:39:00
呵呵,正好干上用,太谢谢楼主了!
寂寞歌唱 - 2008-5-20 12:57:00
能把针对i386的*.elf文件传上来我试试吗?这边似乎搞不定……
leajian - 2008-5-20 22:16:00
如果希望elf文件可以通过redboot下载,那么这个elf文件需要经过处理的~否则它跟redboot的地址空间冲突,就完蛋了
我这里没有x86下的elf,呵呵,倒是有一大堆score平台下的~~呵呵
savagex - 2008-8-12 7:51:00
如何让下载的程序脱机运行呀
lameck - 2008-8-15 11:36:00
Redboot是支持脚本功能的,不过现在针对精简开发板的Redboot里的flash驱动还不是很完善,所以暂时还不支持脚本功能,所以在世还不能通过Redboot来让程序脱机运行.

不过可以通过EzWriter把程序烧进flash中,这样就可以脱机运行了!
大于1M的程序也能用EzWriter来烧写了.
joseph_hoo - 2008-8-20 10:57:00
这个文章很好!
 1 
查看完整版本: 使用Redboot进行程序下载