lpc2103+enc28j60+uip1.0实现telnet功能
来论坛这么久一直都是看别人的文章,下大家分享的资源,最近在学习UIP虽然还没摸透,在自己的LPC2103板上试验了远程登录功能,下面我写下我移植uip的记录和修改的地方,而且还做了proteus仿真。移植过程:
1、准备uip-1.0源码包,主要移植的应用程序是telnetd
2、建立工程,我使用的LPC2103,将uip-1.0的源码添加的到工程内,uip文件夹下除uip-split.c的所有文件,lib文件夹下所有文件以及unix文件夹下除main.c的所有文件。下面截图是我的工程的添加内容:
http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_709150IXLRD7.jpg
(原文件名:工程.jpg)
3、移植修改文件:我对uip还不是很熟悉,多的就不说了,几个移植需要修改的文件需要说明下
uip的底层驱动接口有三个函数,初始化、写数据和读数据。这三个函数位于unix文件夹下名为tapdev.c.看我的工程内就会看到,我再三个函数内添加了底层enc28j60的读写代码。
uip内需要时钟进行处理比如arp老化等,这个时钟就是单片机来提供的,我的工程内sys_clock.c就是LPC2103的时钟函数,包括定时器初始化中断初始化以及中断服务函数。而uip内有一个函数用来连接系统的时钟就是在unix文件夹下的clock-arch.c内的那个函数,我的代码内直接返回系统时钟的计数,看代码就知道了。
4、uip的应用程序都是通过一个叫做UIP_APPCALL的宏定义来实现的,其实这个宏定义是函数名,比如我使用的是远程登录的应用程序,那么就要定义具体的UIP_APPCALL函数实体。在telnetd.h文件内有这个定义#define UIP_APPCALL telnetd_appcall//这个是telnet的一个函数。
5、主函数的编写,主函数可以直接参考源码内unix文件夹下的main.c文件。
6、我使用的keil mdk仿真程序的时候发现一个问题,就是调用string.h库内的strlen()函数时会进入死循环,这个问题至今没有解决,所以我自己编写了一个mystrlen()函数位于main.c内,用它来替代原库的strlen(),并将uip内所有使用了strlen()的,全比进行替换。
下面贴上proteus的仿真图:
http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_709154WYOWD6.jpg
(原文件名:仿真.jpg)
使用keil mdk生成的程序不能直接仿真,需要将HEX文件的倒数第二行删除掉才行。
http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_709153VSK1YZ.jpg
(原文件名:ping测试.jpg)
ping的IP地址是192.168.1.200
http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_709152WPQ1ON.jpg
(原文件名:远程登陆.jpg)
远程登录 telnet 192.168.1.200
废话不多说,附上源代码点击此处下载 ourdev_709155E7ED5K.rar(文件大小:544K) (原文件名:LCLlpc2103Enc28j60ok.rar) 补充:源码内有proteus仿真文件版本为proteus7.5 mark mark 顶下!!! ding 谢谢分享 收藏 MARK mark mark uip-split.c,split功能很好用的。 lpc2103+enc28j60+uip1.0实现telnet功能mark 目前正在收集telnet相关资料~ 谢谢了 看看吧,希望有收获 谢谢分享~~~~~~~~~~~~~~~~~~~~ 兄台 我想问下 这边为什么
使用keil mdk生成的程序不能直接仿真,需要将HEX文件的倒数第二行删除掉才行。
??????
我试了下 的确是,但是我编译其他单片机仿真的时候都不需要删除啊 莫非LPC的特殊? mark,正准备使用 十分感谢,正在搞网络上的东西。 3050311118 发表于 2013-10-13 03:05
兄台 我想问下 这边为什么
使用keil mdk生成的程序不能直接仿真,需要将HEX文件的倒数第二行删除掉才行。
? ...
请教一下,怎么删去HEX文件的倒数第二行呀,谢谢 glyhw 发表于 2014-8-27 22:35
请教一下,怎么删去HEX文件的倒数第二行呀,谢谢
文本文档打开即可 LPC芯片不错,虽然没用过 3050311118 发表于 2014-8-28 07:02
文本文档打开即可
谢谢你的帮助
页:
[1]