lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [lwip-users] lwip + sam7x = udef exception


From: Kieran Mansley
Subject: RE: [lwip-users] lwip + sam7x = udef exception
Date: Wed, 14 Feb 2007 11:28:25 +0000

On Wed, 2007-02-14 at 11:19 +0000, B B wrote:

> offending instruction:
> adds r4, r3, #0x0
>  
> offending c statement:
> tcphdr = (struct tcp_hdr *)((u8_t *)p->payload + IPH_HL(iphdr) * 4);
>  
> Register data:
> R3 = 0x0020135c
> R4 = 0x0020b1fa
> CPSR = 0x0000009b
> SPSR_UND = 0x0000001f
> 
> Packetdata:
> tcphdr @0x0020b1fa


Looks to me (not 100% sure what "adds" does or the argument format on
your hardware) that it's the instruction that is trying to store the
result of that C statement into tcphdr that is causing the problem.  I
think this because the value of R4 matches the address given for tcphdr.
Please correct me if you disagree.

The problem would seem to be that tcphdr has an address that is 2 byte
aligned, not 4 byte aligned as you require.  However, it's not clear
from the above to me whether the value give for tcphdr is the address of
the tcphdr variable, or the contents of the tcphdr variable (i.e. the
address of what it points to).

Can you clarify this?

Kieran





reply via email to

[Prev in Thread] Current Thread [Next in Thread]