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. 20145317 网络对抗技术 逆向与Bof基础

    20145317 网络对抗技术 逆向与Bof基础 实践要求 1. 掌握NOP,JNE,JE,JMP,CMP汇编指令的机器码 2. 掌握反汇编与十六进制编程器 3. 能正确修改机器指令改变程序执行流程 ...

  2. 关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释

    初学STM32,在RealView MDK 环境中使用STM32固件库建立工程时,初学者可能会遇到编译不通过的问题.出现如下警告或错误提示: warning: #223-D: function &qu ...

  3. 2016年蓝桥杯B组C/C++省赛(预选赛)试题

    2016年蓝桥杯B组C/C++ 点击查看2016年蓝桥杯B组省赛题目解析(答案) 第一题:煤球数目 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成 ...

  4. 9.1C#中类的定义

    9.1 C#中类的定义 C#使用class关键字来定义类   [默认internal] class MyClass { //Class Members } 在默认情况下,类声明为内部的,即只有当前项目 ...

  5. Ubuntu 14.04 安装libssh

    参考: libssh [CMake] include command Ubuntu 14.04 安装libssh $ git clone https://github.com/substack/lib ...

  6. SPOJ - INTSUB 数学

    题目链接:点击传送 INTSUB - Interesting Subset no tags  You are given a set X = {1, 2, 3, 4, … , 2n-1, 2n} wh ...

  7. Ubuntu 14.04 编写service 服务

    有时我们需要将特定操作封装成服务,通过服务启动停止,例如nginx的启动停止,service nginx start 或者service nginx stop 下面我们将编写一个demo cd /et ...

  8. 常见dos命令汇总

    常用的内部命令有md.cd.rd.dir.path.copy.type.edit.ren.del.cls.ver.date.time.prompt.常用的外部命令有deltree.format.dis ...

  9. Python3 学习

    没有大括号,使用TAB缩进实现大括号的功能,if else等语句后面也没有小括号,注意和其他高级语言区别句尾没有分号,但if else后面有没有字符概念,用单引号包起来的也是字符串,也就是说单双引号都 ...

  10. 算法笔记--lca倍增算法

    算法笔记 模板: vector<int>g[N]; vector<int>edge[N]; ][N]; int deep[N]; int h[N]; void dfs(int ...