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, [email protected] 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 <mailto:[email protected]> 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
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users
_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users