您尚未登录。

楼主 #1 2021-04-08 10:58:20

cube
会员
注册时间: 2021-03-11
已发帖子: 288
积分: 202.5

8051 + RTL819AS ISA 网卡 [扔旧硬盘前备份]

离线

楼主 #2 2021-04-08 11:14:39

cube
会员
注册时间: 2021-03-11
已发帖子: 288
积分: 202.5

Re: 8051 + RTL819AS ISA 网卡 [扔旧硬盘前备份]

  1. google一下uip,点击进入主页 http://www.sics.se/~adam/uip/index.php/Main_Page
    当前最新的uIP版本是 1.0,这个版本比较复杂,所以还是移植历史版本吧.
    打开 http://www.sics.se/~adam/old-uip/ 下载0.9版:
    http://www.sics.se/~adam/download/?f=uip-0.9.tar.gz

  2. 打开Keil新建项目uIP0.9.uv2, 设置项目属性.
    memory_model 设置为large 模式,这样默认的存储方式是xdata
    因为uIP0.9编译后占用20K rom, 所以必须选一个32K(>20K)的rom的单片机,
    比如Device可设置为SST89x58或者SST89x516xx,
    解压缩官方下载的uIP0.9压缩包,添加文件至项目,
    需添加至项目的文件有:uip\uip.c, uip.c\uip.h, uip.c\uip_arch.h,
    uip.c\uip_arp.c,uip.c\uip_arp.h
    unix\main.c, unix\uip_arch.c, unix\uipopt.h,
    apps\httpd\所有文件

  3. 因为data是系统关键字, 所以标识符data => dat
    以下文件需要改动: fs.h, fsdata.h,httpd.c

  4. 为RTL8019AS 编写驱动程序(具体如何操作寄存器老古的网站有详细的教程),
    内容在压缩包中的RTL8019AS.c, RTL8019AS.h
    需要更改main.h中的如下地方:
    include "tapdev.h" => #include "rtl8019as.h"
    tapdev_init() -> rtl8019as_init()
    tapdev_send() -> rtl8019as_send()
    tapdev_read() -> rtl8019as_read()

  5. fsdata.c 首行添加 #include "fsdata.h"
    关键字替换:
    static const char -> const char code
    const struct fsdata_file -> const struct fsdata_file code

fsdata.h 文件末尾添加:

	#define FS_ROOT file_tcp_header_html
	#define FS_NUMFILES 14
	
	const char code data_cgi_files[];
	const char code data_cgi_stats[];
	const char code data_cgi_tcp[];
	const char code data_img_bg_png[];
	const char code data_about_html[];
	const char code data_control_html[];
	const char code data_404_html[];
	const char code data_files_footer_plain[];
	const char code data_files_header_html[];
	const char code data_index_html[];
	const char code data_stats_footer_plain[];
	const char code data_stats_header_html[];
	const char code data_tcp_footer_plain[];
	const char code data_tcp_header_html[];
	const struct fsdata_file code file_cgi_files[];
	const struct fsdata_file code file_cgi_stats[];
	const struct fsdata_file code file_cgi_tcp[];
	const struct fsdata_file code file_img_bg_png[];
	const struct fsdata_file code file_about_html[];
	const struct fsdata_file code file_control_html[];
	const struct fsdata_file code file_404_html[];
	const struct fsdata_file code file_files_footer_plain[];
	const struct fsdata_file code file_files_header_html[];
	const struct fsdata_file code file_index_html[];
	const struct fsdata_file code file_stats_footer_plain[];
	const struct fsdata_file code file_stats_header_html[];
	const struct fsdata_file code file_tcp_footer_plain[];
	const struct fsdata_file code file_tcp_header_html[];   
  1. fs.c 第55行删除: #include "fsdata.c"

  2. uipopt.h

    181行: #define UIP_FIXEDETHADDR 0 -> 1
    299行: #define UIP_ACTIVE_OPEN 1 ->0
    497行: #define BYTE_ORDER     LITTLE_ENDIAN -> BIG_ENDIAN
    280行: #define UIP_UDP_APPCALL  udp_appcall -> httpd_appcall

更改单片机的IP地址和子网掩码(比如我的demo项目改为192.168.2.254,255.255.0.0)
文件末尾添加:
#ifndef NULL
#define NULL (void *)0
#endif / NULL /

  1. httpd.c
    删除以下内容:
    extern const struct fsdata_file file_index_html;
    extern const struct fsdata_file file_404_html;
    220行更改:
    fs_open(file_index_html.name, &fsfile); => file_index_html->name
    224行同上更改

  2. 烧录,运行。
    命令提示符下运行 c:\>ping 192.168.2.254

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn


东莞哇酷科技有限公司开发