Habe ein SM32F4 Discovery mit Ethernet Phy (DM83848) am laufen. Am uC
läuft FreeRTOS zusammen mit lwIP. Genauer gesagt es läuft ein Beispiel
Webserver aus den Sourcen von ST.
Nun folgendes verhalten: Bei einem Ethernet-Stresstest (wget der
index.html) habe ich undefinierte UsageFaults mit dem dem Unaligned Bit
gesetzt.
Ein Stack-Trace im UsageFault Handler ergibt folgende Register:
1 | R0: 0x00000023
|
2 | R1: 0x20002308
|
3 | R2: 0x20002201
|
4 | R3: 0x200016D8
|
5 | R12: 0x200033F8
|
6 | LR: 0x080093E7
|
7 | PC: 0x08008E0C
|
8 | PSR: 0x00000000
|
An der Adresse des Program Counters steht folgender Befehl:
1 | 278: ethernet_input(msg->msg.inp.p, msg->msg.inp.netif);
|
2 | 279: } else
|
3 | 280: #endif /* LWIP_ARP */
|
4 | 0x08008E0A 9A00 LDR r2,[sp,#0x00]
|
5 | 0x08008E0C E9D20102 LDRD r0,r1,[r2,#0x08]
|
6 | 0x08008E10 F7FAFB06 BL.W ethernet_input (0x08003420)
|
7 | 0x08008E14 E004 B 0x08008E20
|
Wie gesagt, dieses Verhalten ist "zufällig", tritt nach einigen 100
Zugriffen auf.
Hat jemand eine Idee woran das liegen kann - oder woran man näher an die
Ursache kommt?
lg Robert