Hi, Terry. Thanks for your reply. The memory alignment I set in lwipopts.h is 4
as follows. Since I am using a 32 bit processor. #define MEM_ALIGNMENT
4 On 05/27/2019 13:16, Terry Barnaby wrote: In your lwipopts.h what have you
set for MEM_ALIGNMENT ? // MEM_ALIGNMENT: should be set to the alignment of the
CPU for which lwIP is compiled. #define MEM_ALIGNMENT 4 Terry On
27/05/2019 04:17, yanhc...@aliyun.com wrote: Could anyone give me some advice?
I recently use mem_alloc() to allocate a structure memory which have a int64
member. However, mem_alloc() returns a memory poniter which is 4 byte aligned
which cause a memory unaligned fault. The code is as follows,
ifp=mem_alloc(sizeof(structure interface)); The structure intrface has a member
flags which is int64. The size of structure interface is 112 which is a
multiple of 8 while the address returned is 0x720ef324 which is not 8 byte
aligned. So when I want to access ifp->flags, an unaligned fault will be
triggered. Could any give some hint? Thanks! Best regards, yan On 05/25/2019
22:19, yanhc519 wrote: Hi all. What is the memory alignment of the pointer
returned by mem_alloc() in mem.c? Since the only argument of mem_alloc() is
size, so what alignment will mem_alloc() choose? In
http://man7.org/linux/man-pages/man3/malloc.3.html, it says "The malloc() and
calloc() functions return a pointer to the allocated memory, which is suitably
aligned for any built-in type." Since the largest type is double or int64 which
are 8 bytes, so I guess malloc() in linux will choose alignment of 8 bytes. Is
this guess also applied to mem_alloc() in LwIP? That is, does mem_alloc() in
LwIP also choose alignment of 8 bytes? Thanks! Best regard, yan
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-users
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-users