STR912--自编TFTP(服务器模式)IAP下载

  在ST网站上下到的STR912IAP的示例,有两种,一种是用的HTTP方式,例外一种是DCHP+TFTP方式,前一种没什么好说的,后一种其实是网上常看到的建立无盘工作站的原理,不懂的,网上可以搜搜看看。
  第二种方法我个人觉得太复杂,且不适用。它的TFTP是采用客户端的模式,我于是想到采用TFTP服务器模式,不是更简单,只用在dos下敲tftp命令就可以下载了。我觉得TFTP协议是我至今为止看到过最简单的TCP/IP应用层协议(传输层采用UDP),说简单点就是你发一个数据包,下面发一个回应,每个数据包有个块编号,简单吧。部分代码
  /*******************************************************************************
* Function Name  : tftp_rcv_packet
* Description    : TFTP数据报处理函数
* Input1         : TFTP数据报头指针
* Return         : 0
*******************************************************************************/
int tftp_rcv_packet(unsigned char *skb)
{
    struct tftphdr *tftp_hdr;
    
    tftp_hdr = (struct tftphdr *)skb;

    switch (HTONS(tftp_hdr->th_opcode)) {

    case RRQ:
        break;
    case WRQ:
        tftp_rcv_wrq(skb);
        break;
    case DATA:
        tftp_rcv_data(skb);
        break;
    case ACK:
        break;
    case ERROR:
        break;
    default:
        break;
    }

    return 0;
}

  值得一题的是STR912的擦写时间,主flash一个扇区(64K),要1S多,这样会导致TFP请求超时。

 


  程序最后下载成功。下面是这个问题没?我是上传用sniffer抓的网络包

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值