在Google上查到了一年前的一篇帖子:
以文本方式查看主题 - 电子产品世界 (http://bbs.edw.com.cn/index.asp) -- 嵌入式系统设计 (http://bbs.edw.com.cn/list.asp?boardid=3) ---- goahead web server调试通过的一点经验 (http://bbs.edw.com.cn/dispbbs.asp?boardid=3&id=22249)
-- 作者:quting -- 发布时间:2004-1-5 17:04:00 -- goahead web server调试通过的一点经验 这两天一直在调试goahead的webserver在S3c4510b上的移植,昨天终于成功,特此发文祝贺一下,另外说明一下我遇到的关键问题。 我的问题还是出在了S3c4510b的BSP上面,我用的是Tornado2.0。在成功的建立了TFFS的文件系统,以及成功编译Goahead的程序并下载到板子上后,通过IE访问就出现“Data Abort”的现象,应该是在某处发生了数据异常中断。后来调试中我又发现其他的许多网络应用也会有这个问题,说明应该是同我的网络驱动有关系。 通过debug调试发现数据异常中断发生在cksum程序中,可确定与校验和计算有关系,但不知如何解决。 偶然一次我看了Tornado2.2的BSP中包含了一个sbcCksum.c文件,而这个文件就是重定义了in_cksum(),而在我发现cksum在我的vxWorks中就是由in_cksum()调用的,因此感觉三星一定是在Tornado2.2中将in_cksum()重写了,因此决定修改我的Tornado2.0的BSP。 首先将libARM7TDMIgnuvx.a中的in_cksum.o文件删除,然后将sbcCksum.c考到BSP目录下,重新生成BSP,重建基于该BSP的工程,下载到板上执行,就大功告成了。 现在其他的网络应用也没有出现数据异常错误了。
我遇到的问题quting完全一样,但异常时查看堆栈,chSum()并非in_ckSum()调用:
Data abort Exception address: 0x 001ce9dc Current Processor Status Register: 0x20000013 17ec60 vxTaskEntry +28 : netTask () 17e7a0 netTask +a4 : ipintr () 1c1c0c ipintr +5f4: tcp_input () 1d4bfc tcp_input +728: tcp_output () 1e3780 tcp_output +86c: cksum ()
在Tornado for PPC的2.0,2.2,及Tornado for Arm中均未找到sbcCksum.c文件,运行
ararm dv libARM7TDMIgnuvx.a in_cksum.o时提示如下:
D:\TornadoForArm\host\x86-win32\bin>ararm dv libARM7TDMIgnuvx.a in_cksum.o No member named `in_cksum.o'
哪位大侠遇到过这类问题吗,恳请指点一二!