搜索
bottom↓
回复: 22

lpc2103+enc28j60+uip1.0实现telnet功能

[复制链接]

出0入0汤圆

发表于 2011-12-30 23:01:37 | 显示全部楼层 |阅读模式
来论坛这么久一直都是看别人的文章,下大家分享的资源,最近在学习UIP虽然还没摸透,在自己的LPC2103板上试验了远程登录功能,下面我写下我移植uip的记录和修改的地方,而且还做了proteus仿真。
移植过程:
1、准备uip-1.0源码包,主要移植的应用程序是telnetd
2、建立工程,我使用的LPC2103,将uip-1.0的源码添加的到工程内,uip文件夹下除uip-split.c的所有文件,lib文件夹下所有文件以及unix文件夹下除main.c的所有文件。下面截图是我的工程的添加内容:

(原文件名:工程.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的仿真图:

(原文件名:仿真.jpg)
使用keil mdk生成的程序不能直接仿真,需要将HEX文件的倒数第二行删除掉才行。

(原文件名:ping测试.jpg)
ping的IP地址是192.168.1.200

(原文件名:远程登陆.jpg)
远程登录 telnet 192.168.1.200
废话不多说,附上源代码点击此处下载 ourdev_709155E7ED5K.rar(文件大小:544K) (原文件名:LCLlpc2103Enc28j60ok.rar)

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

 楼主| 发表于 2011-12-30 23:05:14 | 显示全部楼层
补充:源码内有proteus仿真文件版本为proteus7.5

出0入0汤圆

发表于 2011-12-31 00:00:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-31 00:12:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-4 15:57:45 | 显示全部楼层
顶下!!!

出0入0汤圆

发表于 2012-1-15 01:44:17 | 显示全部楼层
ding

出0入0汤圆

发表于 2012-1-15 11:02:18 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2012-1-15 13:22:30 | 显示全部楼层
收藏

出0入0汤圆

发表于 2012-1-15 13:38:12 | 显示全部楼层
MARK

出0入0汤圆

发表于 2012-1-19 10:06:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-28 14:00:26 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-28 18:02:20 | 显示全部楼层
uip-split.c,split功能很好用的。

出0入0汤圆

发表于 2012-1-28 18:15:34 | 显示全部楼层
lpc2103+enc28j60+uip1.0实现telnet功能  mark

出0入0汤圆

发表于 2012-9-21 13:49:13 | 显示全部楼层
目前正在收集telnet相关资料~ 谢谢了

出0入0汤圆

发表于 2012-12-20 13:35:47 | 显示全部楼层
看看吧,希望有收获

出0入0汤圆

发表于 2012-12-31 20:58:59 | 显示全部楼层
谢谢分享~~~~~~~~~~~~~~~~~~~~

出0入0汤圆

发表于 2013-10-13 03:05:48 | 显示全部楼层
兄台 我想问下 这边为什么
使用keil mdk生成的程序不能直接仿真,需要将HEX文件的倒数第二行删除掉才行。
??????
我试了下 的确是,但是我编译其他单片机仿真的时候  都不需要删除啊   莫非LPC的特殊?

出0入0汤圆

发表于 2014-3-11 11:24:27 | 显示全部楼层
mark,正准备使用

出0入0汤圆

发表于 2014-3-13 20:10:49 | 显示全部楼层
十分感谢,正在搞网络上的东西。

出0入0汤圆

发表于 2014-8-27 22:35:08 | 显示全部楼层
3050311118 发表于 2013-10-13 03:05
兄台 我想问下 这边为什么
使用keil mdk生成的程序不能直接仿真,需要将HEX文件的倒数第二行删除掉才行。
? ...

请教一下,怎么删去HEX文件的倒数第二行呀,谢谢

出0入0汤圆

发表于 2014-8-28 07:02:50 | 显示全部楼层
glyhw 发表于 2014-8-27 22:35
请教一下,怎么删去HEX文件的倒数第二行呀,谢谢

文本文档打开即可

出0入0汤圆

发表于 2014-8-29 16:44:16 | 显示全部楼层
LPC芯片不错,虽然没用过

出0入0汤圆

发表于 2014-9-2 13:26:51 | 显示全部楼层
3050311118 发表于 2014-8-28 07:02
文本文档打开即可

谢谢你的帮助
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 01:38

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表