reference :https://forum.openwrt.org/viewtopic.php?id=43237

reference :http://blog.chinaunix.net/uid-22547469-id-5048943.html

cp  httpd     cus531-16m/  -a

cp  net/httpd.c   cus531-16m/

cp  net/httpd.h   cus531-16m/

修改net.c

#ifdef CONFIG_STATUS_LED

#include <status_led.h>

#include <miiphy.h>

#endif

//add by panzidong

#include "httpd.h"

#include "../httpd/uipopt.h"

#include "../httpd/uip.h"

#include "../httpd/uip_arp.h"

#if (CONFIG_COMMANDS & CFG_CMD_SNTP)

#include "sntp.h"

#endif

#if (CONFIG_COMMANDS & CFG_CMD_NET)

#if 0

#define ET_DEBUG

#endif

// add by panzidong

unsigned char *webfailsafe_data_pointer = NULL;

int     webfailsafe_is_running = 0;

int     webfailsafe_ready_for_upgrade = 0;

int     webfailsafe_upgrade_type = WEBFAILSAFE_UPGRADE_TYPE_FIRMWARE;

void NetReceiveHttpd(volatile uchar * inpkt, int len);

extern int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);

void

NetReceive(volatile uchar * inpkt, int len)

{

// add by panzidong

if(webfailsafe_is_running){

NetReceiveHttpd(inpkt, len);

return;

}

NetRxPkt = inpkt;

NetRxPktLen = len;

et = (Ethernet_t *)inpkt;

从蓝本的net/net.c中将后面三个函数粘贴到此。以#define BUF ((struct uip_eth_hdr *)&uip_buf[0])开头的那段代码。

增加httpd命令:

./include/net.h

/* Initialize the network adapter */

extern int      NetLoop(proto_t);

//add by panzidong

extern int      NetLoopHttpd(void);

extern void     NetSendHttpd(void);

static int netboot_common (proto_t, cmd_tbl_t *, int , char *[]);

// add by panzidong

int do_httpd(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]){

return NetLoopHttpd();

}

U_BOOT_CMD(httpd, 1, 1, do_httpd, "start www server for firmware recovery\n", NULL);

顶层的Makefiel

board953x_config                :       unconfig

@ >include/config.h

@echo '#define CONFIG_ATHEROS           1'      >include/config.h

@echo '#define CONFIG_MACH_QCA953x      1'      >>include/config.h

@echo '#define CFG_INIT_STACK_IN_SRAM   1'      >>include/config.h

@echo '#define CONFIG_'`echo $(CFG_BOARD_TYPE) | tr [a-z] [A-Z] | sed s/-/_/g`' 1' >>include/config.h

@echo '#define __CONFIG_BOARD_NAME $(CFG_BOARD_TYPE)' >>include/config.h

@echo '#define CONFIG_BOARD_NAME "$(CFG_BOARD_TYPE)"' >>include/config.h

@echo "#define BUILD_VERSION "\"$(BUILDVERSION)\" >>include/config.h

##

## add by panzidong

##

@echo "#define CONFIG_DELAY_TO_AUTORUN_HTTPD        3" >> include/config.h

@echo "#define CONFIG_DELAY_TO_AUTORUN_CONSOLE      5" >> include/config.h

@echo "#define CONFIG_DELAY_TO_AUTORUN_NETCONSOLE   7" >> include/config.h

@echo "#define CONFIG_MAX_BUTTON_PRESSING          10" >> include/config.h

Common/main.c

#ifdef CONFIG_SILENT_CONSOLE

DECLARE_GLOBAL_DATA_PTR;

#endif

// add by panzidong

extern int reset_button_status(void);

extern void all_led_on(void);

extern void all_led_off(void);

extern int NetLoopHttpd(void);

extern void udelay(unsigned long usec);

#define milisecdelay(_x)                        udelay((_x) * 1000)

Board/Atheros/board953x.c

// add by panzidong

int reset_button_status(void){

return 0;

}

void all_led_on(void){

}

void all_led_off(void){

}

learning uboot support web http function in qca4531 cpu的更多相关文章

  1. learning uboot how to enable watchdog in qca4531 cpu

    find cpu datasheet , watchdog relate registers: 0x18060008 watchdong timer control 0x1806000c watchd ...

  2. learning uboot distro design in am335x-evm board

    reference: uboot_dir/doc/README.distro Linux distributions are faced with supporting a variety of bo ...

  3. Orthogonal Least Squares Learning Algorithm for Radial Basis Function Networks

    Orthogonal Least Squares Learning Algorithm for Radial Basis Function Networks S. Chen, C. F. N. Cow ...

  4. learning uboot auto switch to stanbdy system in qca4531 cpu

    design: when uboot load kerne failed,we can switch to stanbdy system; how to realize: when boot fail ...

  5. learning uboot how to set ddr parameter in qca4531 cpu

    DDR工作频率  在600MHZ. include/configs/board953x.h #define CFG_PLL_FREQ            CFG_PLL_650_600_200 #d ...

  6. learning uboot enable protect console

    reference :https://github.com/lentinj/u-boot/blob/master/doc/README.autoboot how to enable protect s ...

  7. learning uboot test command

    uboot commad test test - minimal test like /bin/sh so we can use test command to some judge for exam ...

  8. learning uboot switch to standby system using button

    pseudocode: If(reset_button was pressed ) { Change  uboot env bootslot^1 }

  9. learning uboot source command

    reference: http://www.denx.de/wiki/DULG/UBootCmdGroupExec => help source source - run script from ...

随机推荐

  1. Duilib 实现右下角弹出像QQ新闻窗口,3秒后窗口透明度渐变最后关闭,若在渐变过程中鼠标放到窗口上,窗口恢复最初状态(二)

    效果: 1.定义两个个定时器ID #define ID_TIMER_DISPLAY_DELAY 30 #define ID_TIMER_DISPLAY_CLOSE 40 2.添加一个成员函数和成员变量 ...

  2. 自定义鼠标右键(层叠式菜单:cascading menu)(文件系统右键、文件夹系统右键和桌面鼠标右键)

    转载:http://www.cnblogs.com/killerlegend/p/3575391.html 转载:http://www.cnblogs.com/shouce/p/5101001.htm ...

  3. HTML基本格式

    <html> <head> <title>放置文章标题</title> <meta http-equiv="Content-Type&q ...

  4. Hadoop新增和删除节点

    #新增节点 1.安装lunix,和以前一样的版本 2.初始化系统环境 2.1.设置静态ip vi /etc/sysconfig/network-scripts/ifcfg-eth0 //增加 #Adv ...

  5. MSM8937系统启动流程【转】

    本文转载自:https://blog.csdn.net/chenzhen1080/article/details/54945992?utm_source=blogxgwz8 1 Boot Addres ...

  6. POJ 3630 Phone List(字符串前缀重复)题解

    Description Given a list of phone numbers, determine if it is consistent in the sense that no number ...

  7. 【第三十六章】 metrics(4)- metrics-graphite

    将metrics report给graphite(carbon-relay) 一.代码 1.pom.xml <!-- metrics-graphite --> <dependency ...

  8. [TODO]The way to Go(9): 基本类型和运算符

    参考: Github: Go Github: The way to Go 基本类型和运算符 表达式是一种特定的类型的值,它可以由其它的值以及运算符组合而成. 每个类型都定义了可以和自己结合的运算符集合 ...

  9. 【异常记录(11)】 Web应用程序项目 已配置为使用 IIS。无法访问 元数据库。您没有足够的特权访问计算机上的 IIS 网站

    解决办法: 1.项目上右键, 编辑 xxxx.csproj 2.找到  <UseIIS> 标签, 改为 <UseIIS>False</UseIIS> 3.右键,重新 ...

  10. plsql过期解决方法

    1.首先,登陆PL/SQL Developer,PL/SQL Developer要到期了 2.输入指令“regedit”打开注册表,如图所示 3.然后,在注册表里按HKEY_CURRENT_USER\ ...