[etherlab-users] Crash porting Ethercat Master on arm

paluan.luca at tiscali.it paluan.luca at tiscali.it
Tue Sep 11 11:48:58 CEST 2012


Hello everybody, I need some advices about how to proceed...

I'm developing a real time application based on Ethercat Master fee219bb31a9
The Sw is working well on a Pentium M with Ubuntu 1004.4 LTS, Linux Kernel 2.6.35.9 and xenomai 2.6.0, using e100 driver
Unfortunatly that's not the target Hw.
I tried to port the same Sw on arm926ej-s Cpu on Linux Kernel 2.6.30 compiled for my arm, xenomai 2.5.4, using generic driver.
I'm using a  large tick time=8ms  (both on servos and for real time task), just to relax hw requirments.
The real time system is working and the ethercat master seems to do the same.
When I run the application I often experience system crashes, like this one

user:~ /etc/init.d/ethercat start
root at user:~ ./mos
EtherCAT: Requesting master 0...
EtherCAT: Successfully requested master 0.
EtherCATrtdm 0: Master attach start!
EtherCAT: Requesting master 0...
EtherCAT: attaching Master 0!
EtherCATrtdm 0: Master searching for domain!
EtherCATrtdm 0: Creating Master mutex ETHrtdmLOCK0!
EtherCATrtdm 0: MSTR ATTACH done domain=3235525344!
EtherCAT 0: Domain0: Logical address 0x00000000, 56 byte, expected working counter 6.
EtherCAT 0:   Datagram domain0-0: Logical offset 0x00000000, 56 byte, type LRW.
EtherCAT 0: Master thread exited.
EtherCAT 0: Starting EtherCAT-OP thread.
EtherCAT WARNING 0-0: Slave does not support changing the PDO mapping!
EtherCAT WARNING 0-0: Currently mapped PDO entries: 0x6040:00/16 0x6060:00/8. Entries to map: 0x6081:00/32 0x60FF:00/32
EtherCAT WARNING 0-0: Slave does not support changing the PDO mapping!
EtherCAT WARNING 0-0: Currently mapped PDO entries: 0x6040:00/16 0x607A:00/32. Entries to map: 0x6083:00/32 0x6084:00/32
EtherCAT WARNING 0-0: Slave does not support changing the PDO mapping!
EtherCAT WARNING 0-0: Currently mapped PDO entries: 0x6041:00/16. Entries to map: 0x6041:00/16 0x6063:00/32
EtherCAT WARNING 0-0: Slave does not support changing the PDO mapping!
EtherCAT WARNING 0-0: Currently mapped PDO entries: 0x6041:00/16 0x6061:00/8. Entries to map: 0x606C:00/32
EtherCAT 0: Domain 0: Working counter changed to 2/6.
EtherCAT 0: Domain 0: Working counter changed to 3/6.
EtherCAT WARNING 0-1: Slave does not support changing the PDO mapping!
EtherCAT WARNING 0-1: Currently mapped PDO entries: 0x6040:00/16 0x6060:00/8. Entries to map: 0x6081:00/32 0x60FF:00/32
EtherCAT WARNING 0-1: Slave does not support changing the PDO mapping!
EtherCAT WARNING 0-1: Currently mapped PDO entries: 0x6040:00/16 0x607A:00/32. Entries to map: 0x6083:00/32 0x6084:00/32
EtherCAT WARNING 0-1: Slave does not support changing the PDO mapping!
EtherCAT WARNING 0-1: Currently mapped PDO entries: 0x6041:00/16. Entries to map: 0x6041:00/16 0x6063:00/32
EtherCAT WARNING 0-1: Slave does not support changing the PDO mapping!
EtherCAT WARNING 0-1: Currently mapped PDO entries: 0x6041:00/16 0x6061:00/8. Entries to map: 0x606C:00/32
EtherCAT 0: Domain 0: Working counter changed to 5/6.
EtherCAT 0: Slave states: OP.
Unable to handle kernel NULL pointer dereference at virtual address 00000030
pgd = c0550000
[00000030] *pgd=2055d031, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1]
Modules linked in: ec_rtdm ec_generic ec_master
CPU: 0    Not tainted  (2.6.30 #49)
PC is at wakeup_preempt_entity+0x1c/0x140
LR is at 0xc09200d0
pc : [<c0033ff8>]    lr : [<c09200d0>]    psr: a0000013
sp : c0b6bf28  ip : 00000000  fp : c0b6bf54
r10: 00000000  r9 : c0b6a000  r8 : c002810c
r7 : 0000009e  r6 : c0dc4dcc  r5 : 00000000  r4 : c037c140
r3 : c02a0958  r2 : 00000002  r1 : 0000001c  r0 : f0adad09
Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 0005317f  Table: 20550000  DAC: 00000015
Process mos (pid: 799, stack limit = 0xc0b6a268)
Stack: (0xc0b6bf28 to 0xc0b6c000)
bf20:                   f0adad09 0000001c 60000013 c037c140 00000000 c0dc4dcc 
bf40: 0000009e c002810c c0b6a000 00000000 c0b6bf64 c00351e8 c037c140 c0dc4c40 
bf60: c0b6bf8c c029e0f4 00000000 c0b6a000 4050d490 404d6000 0000009e c002810c 
bf80: c0b6a000 00000000 c0b6bf9c c029e3e0 4050d490 bef1e8a0 c0b6bfa4 c0035f40 
bfa0: 00000000 c0027f24 bef1e8a0 4050d490 00000000 00000000 4050ce40 4050d490 
bfc0: bef1e8a0 4050d490 404d6000 0000009e 404d6000 003d0f00 404be864 00000000 
bfe0: 00000152 4050ce30 00035048 4044042c 60000010 00000000 20726f20 6c696166 
[<c0033ff8>] (wakeup_preempt_entity+0x1c/0x140) from [<c00351e8>] (pick_next_task_fair+0x3c/0x88)
[<c00351e8>] (pick_next_task_fair+0x3c/0x88) from [<c029e0f4>] (__schedule+0x194/0x468)
[<c029e0f4>] (__schedule+0x194/0x468) from [<c029e3e0>] (schedule+0x18/0x34)
[<c029e3e0>] (schedule+0x18/0x34) from [<c0035f40>] (sys_sched_yield+0x48/0x58)
[<c0035f40>] (sys_sched_yield+0x48/0x58) from [<c0027f24>] (ret_fast_syscall+0x0/0x10)
Code: e1a0a001 e1a0e000 e1c003d0 e14b02fc (e1ca23d0) 
---[ end trace eba8fcd0de91cb32 ]---

Sometimes the application seems to work but I cannot use mail boxes, infact everytime I'm going to write sdo the procedure successfully ends but the value doesn't change.
I tried to recompile the kernel enabling/disabling FCSE ,  NwFPE, FastFPE (I know I always need one Fpu emulation switch) and VFP (Which is supported by my CPU),without appreciable results.
Could someone point out the direction to investigate on?
Thanks in advance for your answers, Best Regards Luca


Invita i tuoi amici e Tiscali ti premia! Il consiglio di un amico vale più di uno spot in TV. Per ogni nuovo abbonato 30 € di premio per te e per lui! Un amico al mese e parli e navighi sempre gratis: http://freelosophy.tiscali.it/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20120911/4c508a72/attachment-0003.htm>


More information about the Etherlab-users mailing list