|
From: | |
Subject: | Re: [lwip-users] What is the memory alignment of the pointer returned by mem alloc() in mem.c? |
Date: | Mon, 27 May 2019 20:55:24 +0800 |
But what is your CPU type ?
Some CPU's can load/save an 8 Byte (64 bit) value (such as uint64_t, double) on a 4 Byte boundary, while some others cannot. I suspect you need to set MEM_ALIGNMENT to 8 for your CPU.
Terry
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 4Terry
On 27/05/2019 04:17, address@hidden 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 address@hidden https://lists.nongnu.org/mailman/listinfo/lwip-users
_______________________________________________ lwip-users mailing list address@hidden https://lists.nongnu.org/mailman/listinfo/lwip-users
[Prev in Thread] | Current Thread | [Next in Thread] |