打印

请教:STM32F107上移植LWIP关于让编译器放弃字对齐的问题!

[复制链接]
2865|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
woshiwowo|  楼主 | 2010-11-18 14:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问大家一个问题,STM32F107上LWIP为什么没考虑放弃字节对齐?(我没有发现)C语言下struct是4字节对齐的,但处理包的时侯,在LWIP中根据不同数据长度读取相应数据的,所以,就该让编译器放弃struct的字节对齐。
我在cc.h中找到这个,(我用的是IAR)
#if defined (__ICCARM__)
#define PACK_STRUCT_BEGIN
#define PACK_STRUCT_STRUCT
#define PACK_STRUCT_END
#define PACK_STRUCT_FIELD(x) x
#define PACK_STRUCT_USE_INCLUDES
发现define并没有给PACK_STRUCT_BEGIN 后加什么代码以让编译器放弃字对齐
在etharp.h中的结构体eth_addr如下
PACK_STRUCT_BEGIN
struct eth_addr {
  PACK_STRUCT_FIELD(u8_t addr[ETHARP_HWADDR_LEN]);
} PACK_STRUCT_STRUCT;
PACK_STRUCT_END
以上面的看来,我觉得编绎器并没有放弃字对齐,可是这样做不是不能正常工作吗?可是我运行那个例程(网上下的)居然没有问题,小弟糊涂,望高人指点一下,谢谢!
沙发
linhaishi| | 2014-4-20 21:25 | 只看该作者
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

35

帖子

1

粉丝