web在线升级方案遭否定

研究了3天,今天终于可以通过web下载文件到串行flash中了,这个虽然很简单,但是首先得理解代码然后修改,其实我总共也就改了1行代码而已。毕竟基本框架已经有现成的了。但是组长还是坚持用tftp方式实现在线升级,目的是方便以后维护,添加板子测试。web难于维护,而且占地大。虽然很多道理,但是我想所有的应用都应该给予用户角度考虑,我在做EtherMux V4在线升级时,让客户使用过在线升级,操作起来很是复杂,如果没有文档很难自主完成。但是如果是web的在线升级,我想不用教谁都会应该。对于扩充功能和维护考虑,我想也应该不是很难的。如果不想添加网页可以添加telnet程序,代码多不了多少。对于备份程序我想这个功能不是很有必要,应该可以给客户两个版本,如果想用老版本,只是从新升级回老版本就可以了。

我可以这么做,在telnet在线升级的基础上添加个宏控制打开web_interface,同时使用两种在线升级方式,只有结果才能改变看法,我把两种都实现最后由组长定夺,实现web_interface也很简单。

如果是从bootrom直接启动那么可以把程序直接下载到flash2去,实现升级。

添加串行flash的目的是为了程序在flash中运行过程中是看不到another flash的,所以只能先把程序download到sf中,然后启动时从sf中copy到flash2中实现启动。

我先实现在bootrom中下载程序到sf中,然后添加个copy到flash2并启动的选项。这个功能实现后才能在线升级。

 

DESCRIPTION:  This function is called to complete initialisation of the
               TFTP state structure.  Before calling this function, some
               fields in the struct tftp_state must be set up as follows:
                 ts->state = <0 for read, 1 for write>
                 ts->buf_addr = <physical address of xmem buffer>
                 ts->buf_len = <length of physical buffer, 0-65535>
                 ts->my_tid = <UDP port number.  Set 0 for default>
                 ts->sock = <address of UDP socket (udp_Socket *)>
                 ts->rem_ip = <IP address of TFTP server host>
                 ts->mode = <one of the following constants:
                   TFTP_MODE_NETASCII   ASCII text
                   TFTP_MODE_OCTET      8-bit binary
                   TFTP_MODE_MAIL       Mail>
                 strcpy(ts->file, <remote filename or mail address>)

rabbit编译器的命令行参数:

http://www.rabbitsemiconductor.com/documentation/docs/manuals/DC/DCUserManual/cmdlined.htm

查任何资料可以直接在rabbit网站直接搜索:

 http://www.rabbitsemiconductor.com/

你可能感兴趣的:(web在线升级方案遭否定)