📄 00000006.htm
字号:
<?xml version="1.0" encoding="gb2312"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><title>Re: 请教TCP/IP在uC/OS-II的实现 turbolinux </title></head><body><center><h1>BBS 水木清华站∶精华区</h1></center><a name="top"></a>发信人: threewater (三水), 信区: Embedded <br />标 题: Re: 请教TCP/IP在uC/OS-II的实现 <br />发信站: BBS 水木清华站 (Sun Oct 6 00:43:36 2002), 站内信件 <br /> <br />__packed应该是编译器的关键字吧。 <br /> <br />比如: <br />typedef struct <br />{ <br /> char x; <br /> int y; <br />}struct1; <br /> <br />typedef __packed struct <br />{ <br /> char x; <br /> int y; <br />}struct2; <br /> <br />在32位的ARM SDT编译器中,编译 <br />sizeof(struct1)==8 <br />sizeof(struct2)==5 <br /> <br />而处理数据包的时候,lwip使用的就是那种通过结构体指针转换, <br />读取相应的数据的,所以,一定要在定义struct的时候使用__packed。 <br /> <br />似乎,lwip也考虑到了这个问题,所以,在它的结构体定义中 <br />有几个宏。好像是什么PACKED_FIELD_xxx之类的,默认的时候 <br />这几个宏都是空的,可以在移植的时候添加到不同的编译器所需要 <br />的__packed上。可是,一旦定义了__packed的结构体,在使用上 <br />会有很多麻烦。就是因为数据没有32位对齐,操作的时候会出问题。 <br />我觉得这个应该是ARM SDT编译器的问题。 <br /> <br /> <br />【 在 wohaha (我FAINT故我在) 的大作中提到: 】 <br />∶<i> 没有明白你的问题,_packed是谁的关键字,C语言的(我好像不太知道,惭愧)? </i><br /> <br /> <br />-- <br />人生最大的痛苦就是 <br /> <br /> 想买的芯片买不到 <br /> <br /> <br />※ 来源:·BBS 水木清华站 smth.edu.cn·[FROM: 61.181.54.235] <br /><a href="00000005.htm">上一篇</a><a href="javascript:history.go(-1)">返回上一页</a><a href="index.htm">回到目录</a><a href="#top">回到页首</a><a href="00000007.htm">下一篇</a></h1></center><center><h1>BBS 水木清华站∶精华区</h1></center></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -