TINA Deadlock (vermutlich gelöst)

  • 1
  • 2
  • Page 1 of 2
ThomasW69
 
Avatar
 
Subject:

TINA Deadlock (vermutlich gelöst)

 · 
Posted: 08.02.2013 - 08:25  ·  #1
Hallo Rolf

Ich will mal an dieser Stelle bezüglich eines Problems nachhaken welches User AV schon per Email angesprochen hatte. AV hat bei uns als wissenschaftliche Hilfskraft in einem Projekt bis vorige Woche mitgearbeitet. Jetzt, da er eine andere Stelle hat bin ich am Zuge.

Die Controllerplatine wurde inzwischen umgebaut und anstelle des 90CAN128 von AV werkelt nun ein XMEGA256A3U auf dem Board. Als Ethernetschnittstelle wird ein ENC28J60-H Modul von Olimex eingesetzt. Der Controller hängt per Ethernet direkt am PC, also ohne Switch oder Hub dazwischen. Die Kommunikation zum PC erfolgt über TINA in einem eigenen Prozess. In der Procedur RTCTickSecond wurde sekündlich eine Semaphore gesetzt. Auf diese Semaphore wartet der Prozess, bevor er die zu sendeneden Daten aufarbeitet und zum PC sendet. Das klappt prinzipiell, bleibt aber wie AV shcon beschrieb, irgendwann mal hängen. Wann das Passiert ist unterschiedlich. Ich hatte mit dem XMega eigentlich immer so im Bereich zwischen 600 und 900 Sendungen einen Deadlock. Der Hauptprozess läuft hingegen komplikationsfrei weiter. irgendwas bei TINA muss da den Prozess blockieren.

Und nun zu meiner Lösung des Problems.
Jetzt habe ich in RTCTickSecond mal einen Zähler eingebaut der nun nur alle 2 Sekunden die Semaphore setzt. Der Rest des Codes ist gleich geblieben. Der Sendeprozess startet nun auch nur alle 2 Sekunden und siehe da es läuft deutlich länger.
Ich checke gerade wie lange es durchhält.

Warum das allerdings so ist kann ich nicht nachvollziehen.
Könnte es sein, dass die Parameter
Timeout:=500; und
RetryCount:=2; in der Initialisierung der Sockets bei sekündlichen Aufrufen von TinaSendPackage probleme machen?
ThomasW69
 
Avatar
 
Subject:

Re: TINA Deadlock (vermutlich gelöst)

 · 
Posted: 08.02.2013 - 09:18  ·  #2
OK hat sich gerade erledigt. Es fährt immer noch fest. War wahrscheinlich Zufall, dass er da bei 2100 Sendungen erst abgeschmiert ist.
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: TINA Deadlock (vermutlich gelöst)

 · 
Posted: 08.02.2013 - 13:11  ·  #3
Hallo Thomas,

ich habe ein kleines Problem im TINA gefunden, das zur Verfälschung des Frames unter
ganz bestimmten Umständen führen kann. User Mario hatte dies gemeldet und wir
haben zusammen den kritischen Punkt eingekreist. Nach einer Treiber Änderung
war das Problem zumindest bei Mario verschwunden. Den neuen Treiber gibts am WE.

rolf
ThomasW69
 
Avatar
 
Subject:

Re: TINA Deadlock (vermutlich gelöst)

 · 
Posted: 11.02.2013 - 11:18  ·  #4
Hallo Rolf.

Irgendwie ist es nach dem Update von heute nur noch schlimmer geworden. Nicht dass er nur hängen bleibt, was jetzt viel rascher passiert, sondern er sendet beim letzten Block viel zu viele Daten. Ich habe mal ein log (von der Empfängerseite) angehängt.

Code
192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:22:59.905
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:00.974
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:02.056
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:03.129
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:04.200
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:05.272
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:06.344
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:07.414
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:08.491
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:09.564
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:10.634
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:11.706
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:12.775
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:13.845
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:14.922
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:15.986
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:17.056
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:18.132
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:23:19.216
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 782 bytes
MD5 = 436DDC589994D322E2F76DC9464CDA8B
---- 11.02.2013 12:23:20.298
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF 00 00   ...w@..w@.......
0010   0E 2A 44 2C 17 2A 44 00 00 FF DC 8C 00 00 00 00   .*D,.*D.........
0020   00 24 01 00 00 00 00 00 00 00 00 00 00 00 00 00   .$..............
0030   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0040   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0050   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0060   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0070   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0080   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0090   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00F0   00 00 00 00 00 4A 49 00 02 20 00 00 02 00 4A AF   .....JI.. ....J.
0100   00 3A 2D 00 00 00 00 00 00 00 00 00 00 00 00 00   .:-.............
0110   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0120   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0130   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0140   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0150   00 00 00 20 00 00 00 20 08 20 00 00 00 00 00 80   ... ... . ......
0160   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0170   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0180   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0190   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
01A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
01B0   00 00 00 00 00 00 00 00 00 00 00 60 39 00 2A 05   ...........`9.*.
01C0   00 21 00 21 09 00 42 F6 00 00 B9 00 28 F3 03 06   .!.!..B.....(...
01D0   00 4C 00 0F 1D 21 95 22 F0 00 23 00 17 6F 00 22   .L...!."..#..o."
01E0   F1 21 B3 00 42 F6 00 40 16 6E 04 24 00 4B BA 00   .!..B..@.n.$.K..
01F0   3E 78 00 5C 00 00 54 9B 00 03 00 18 00 0A 8C 00   >x.\..T.........
0200   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0210   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0220   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0230   00 00 00 00 00 00 00 28 2E 00 00 00 00 00 00 00   .......(........
0240   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0250   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0260   00 00 00 00 00 00 00 00 00 08 05 05 00 00 00 F4   ................
0270   2D B6 21 09 2E 00 00 90 2E 10 03 03 00 00 01 93   -.!.............
0280   2B 0B 2C 26 2C 4F 22 A0 2E 20 00 03 00 00 02 11   +.,&,O".. ......
0290   2D 69 2D 6A 2D 08 20 80 2E 00 00 00 00 00 00 00   -i-j-. .........
02A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
02B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
02C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
02D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
02E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
02F0   00 00 00 00 00 00 00 00 00 64 48 00 FF 00 00 00   .........dH.....
0300   01 00 D5 29 11 30 30 2D 41 30 2D 41 03 A4         ...).00-A0-A..  


Könnte es sein, dass in der Zeile

if NOT TinaSendPacket(udp_sendStatus, @byteList, sizeOf(byteList)) then
endif;

das Sizeof gelegentlich einen falschen Wert liefert?
Da meine Blockgröße in dem Falle fix ist werde ich da mal anstelle von Sizeof den Wert 14 fest rein schreiben und testen.


Edit:

Festsetzung der Paketgröße hat nichts gebracht. Es kommt immer noch vor, dass zu große Pakete gesendet werden. Allerdings hat er sich jetzt nach dem großen Paket auch mal gefangen, zweimal korrekt gesendet und dann wieder ein zu großes Paket. Dann ist er hängen geblieben.
Code
192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:34:17.771
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:34:18.842
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 782 bytes
MD5 = 78F735F30782761D1C6E61902B1C5C20
---- 11.02.2013 12:34:19.926
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF 00 00   ...w@..w@.......
0010   0E 2A 44 2C 17 2A 44 00 00 FF DC 8C 00 00 00 00   .*D,.*D.........
0020   00 24 01 00 00 00 00 00 00 00 00 00 00 00 00 00   .$..............
0030   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0040   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0050   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0060   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0070   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0080   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0090   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00F0   00 00 00 00 00 4A 43 00 02 20 00 00 02 00 4A A9   .....JC.. ....J.
0100   00 3A 27 00 00 00 00 00 00 00 00 00 00 00 00 00   .:'.............
0110   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0120   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0130   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0140   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0150   00 00 00 20 00 00 00 20 08 20 00 00 00 00 00 80   ... ... . ......
0160   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0170   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0180   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0190   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
01A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
01B0   00 00 00 00 00 00 00 00 00 00 00 60 39 00 07 2A   ...........`9..*
01C0   05 00 21 00 21 09 00 42 F0 00 00 00 00 00 03 06   ..!.!..B........
01D0   00 4C 00 0F 1D 21 95 22 F0 00 23 00 17 6F 00 22   .L...!."..#..o."
01E0   F1 21 B3 00 42 F0 00 40 13 39 04 24 00 4B B4 00   .!..B..@.9.$.K..
01F0   3E 72 FF 44 00 00 2A 07 2A 07 00 E8 00 0A 8C 00   >r.D..*.*.......
0200   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0210   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0220   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0230   00 00 00 00 00 00 00 28 2E 00 00 00 00 00 00 00   .......(........
0240   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0250   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0260   00 00 00 00 00 00 00 00 00 08 05 05 00 00 00 F4   ................
0270   2D B3 21 09 2E 00 00 90 2E 10 03 03 00 00 01 93   -.!.............
0280   2B 0B 2C 26 2C 4F 22 A0 2E 20 00 03 00 00 02 11   +.,&,O".. ......
0290   2D 69 2D 6A 2D 08 20 80 2E 00 00 00 00 00 00 00   -i-j-. .........
02A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
02B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
02C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
02D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
02E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
02F0   00 00 00 00 00 00 00 00 00 5E 48 00 FF 00 00 00   .........^H.....
0300   01 00 D5 29 11 30 30 2D 41 30 2D 41 03 A4         ...).00-A0-A..  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:34:21.004
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 14 bytes
MD5 = 995AFC420B2B9301CACFF5ADDEBD6884
---- 11.02.2013 12:34:22.085
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF         ...w@..w@.....  


192.168.1.16 : 11051 Length = 782 bytes
MD5 = FAFA3CD5E28E3546497F2C2A2E2E8FBD
---- 11.02.2013 12:34:23.171
0000   01 00 EC 77 40 00 EC 77 40 00 00 00 00 FF 00 00   ...w@..w@.......
0010   0E 2A 44 2C 17 2A 6C 00 00 FF DC 8C 00 00 00 00   .*D,.*l.........
0020   00 24 01 00 00 00 00 00 00 00 00 00 00 00 00 00   .$..............
0030   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0040   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0050   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0060   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0070   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0080   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0090   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00F0   00 00 00 00 00 4A 43 00 02 20 00 00 02 00 4A A9   .....JC.. ....J.
0100   00 3A 27 00 00 00 00 00 00 00 00 00 00 00 00 00   .:'.............
0110   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0120   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0130   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0140   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0150   00 00 00 20 00 00 00 20 08 20 00 00 00 00 00 80   ... ... . ......
0160   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0170   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0180   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0190   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
01A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2A   ...............*
01B0   05 00 21 00 21 09 00 42 F0 00 00 1F 00 21 8B 00   ..!.!..B.....!..
01C0   44 1E 00 2A 05 00 21 00 21 09 00 42 F0 00 03 06   D..*..!.!..B....
01D0   00 4C 00 0F 1D 21 95 22 F0 00 23 00 17 6F 00 22   .L...!."..#..o."
01E0   F1 21 B3 00 42 F0 00 40 13 39 04 24 00 4B B4 00   .!..B..@.9.$.K..
01F0   3E 72 00 B5 00 39 2A 09 2A 05 FF 16 00 01 88 00   >r...9*.*.......
0200   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0210   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0220   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0230   00 00 00 00 00 00 00 28 2E 00 00 00 00 00 00 00   .......(........
0240   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0250   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0260   00 00 00 00 00 00 00 00 00 08 05 05 00 00 00 F4   ................
0270   2D B3 21 09 2E 00 00 90 2E 10 03 03 00 00 01 93   -.!.............
0280   2B 0B 2C 26 2C 4F 22 A0 2E 20 00 03 00 00 02 11   +.,&,O".. ......
0290   2D 69 2D 6A 2D 08 20 80 2E 00 00 00 00 00 00 00   -i-j-. .........
02A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
02B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
02C0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
02D0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
02E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
02F0   00 00 00 00 00 00 00 00 00 5E 48 00 FF 00 00 00   .........^H.....
0300   01 00 D5 29 11 30 30 2D 41 30 2D 41 03 A4         ...).00-A0-A..  


ThomasW69
 
Avatar
 
Subject:

Re: TINA Deadlock (vermutlich gelöst)

 · 
Posted: 11.02.2013 - 12:14  ·  #5
Hier mal mein Testprogramm
Code
program TINABETATEST;

{$WG-}                      {global Warnings on}

Device = XMega256A3U, VCC=3.3;
{ $BOOTRST $20000}         {Reset Jump to $20000}

Define_Fuses
  Override_Fuses;
  NoteBook               = D;
  COMport                = USB;
  LockBits0              = [];
  FuseBits0              = [];
  FuseBits1              = [];
  FuseBits2              = [];
  // Brown-out is obligatory with USB !!!
  FuseBits5              = [BODACT0, BodLevel0, BodLevel1, BodLevel2];

Import SysTick, RTClock,  SerPortD0;
Import TINAstack;

From System Import Float, longint, FlashCheck_S,pipes, Pids, Processes;
From RTclock Import RTCtimer;

Define
  // XMega USB must use the internal 32MHz OSC. So the system must use the 2MHz OSC
  // Wegen USB Port
  OSCtype                = int2MHz,
                           PLLmul = 16,
                           prescB = 1,
                           prescC = 1;
  SysTick        = 10;             {msec}
  StackSize      = $0100, iData;
  FrameSize      = $0200, iData;


  //Alle ehemaligen SeroutD0 Aufrufe müssen in SeroutD0 geändert werden
  SerPortD0        = 57600, Stop2;    {Baud, StopBits|Parity}
  RxBufferD0       = 64, iData;
  TxBufferD0       = 64, iData;




 // RTClock        = iData, DateTime;{Time, DateTime}
  FlashChksum    = ProgEnd;        {or absolute address}
  Scheduler      = 30,30,iData;




  // UDP-Konfiguration
  TINAdriver  = ENC28J60;
  TINAport    = SPI_E, PortE, 4;       // SPItyp, SS_Port, SS_Pin
  TINAtimer = Timer_D1;
  TINAsockets = 4;

  RTclock        = iData, DateTime; {Time or DateTime}
  RTCsource      = SysTick;


Uses TINA;

Implementation

{$IDATA}
//****************************************************************************
//****************************************************************************
// TINA (Transport Independent Network Access)
// Beta Testprogramm
// This is only a Betaversion of TINA with no support !!!
// If you find any Bugs ... don't cry ! Just inform us at rh@e-lab.de !
//
// 05.03.2006 U. Purwin
//****************************************************************************
//****************************************************************************



{--------------------------------------------------------------}
{ Type Declarations }

type

  tStatus = (
    Initialisation,
    Running,
    Cleaning,
    CleaningPumpOff,
    Emergency,
    Restart
    );


{--------------------------------------------------------------}
{ Const Declarations }


{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
VAR
  RemoteIP                : TIPaddr;
  UDP3                    : TSocketHandle;
  MyBuf3                  : Array[0..99] of Byte;
  AutoSendxUDP,
  AutoPing                : Boolean;
  sendflag                : boolean;

  status      : tStatus;
  SensPress1  : float;
  SensPress2  : float;
  Flow        : float;


{--------------------------------------------------------------}
{ functions }

procedure InitPorts;
begin
end InitPorts;

procedure RTCtickSecond;      // CallBack from RTCclock
begin
    sendFlag := true;  // signal for Send_status Process to send status data
end;


procedure RTCtickMinute;      // CallBack from RTCclock
begin
end;

procedure RTCtickHour;      // CallBack from RTCclock
begin
end;


PROCEDURE UDP_SendCurrentSensorStatus(var udp_sendStatus  : TSocketHandle);
var
  byteList  :Array[0..13] of Byte; // size of UDP data field
  floBytes  :Array[0..3] of Byte;  // Bytes of a Float value
begin
  // TODO:  Daten aus globalen Variablen lesen + einpacken + verschicken

  status      := Running;
  SensPress1  := 1.1;        //einfach erst mal werte setzen
  SensPress2  := -2.222;
  Flow        := 333;



  byteList[0] := byte(status);
  // SensPress1
  CopyBlock(@sensPress1, @floBytes, 4);  // convert Float to Byte array
  byteList[1] := floBytes[0];            // geht bestimmt auch eleganter
  byteList[2] := floBytes[1];
  byteList[3] := floBytes[2];
  byteList[4] := floBytes[3];

  // SensPress2
  CopyBlock(@sensPress2, @floBytes, 4);
  byteList[5] := floBytes[0];
  byteList[6] := floBytes[1];
  byteList[7] := floBytes[2];
  byteList[8] := floBytes[3];

  // Flow
  CopyBlock(@flow, @floBytes, 4);
  byteList[9]  := floBytes[0];
  byteList[10] := floBytes[1];
  byteList[11] := floBytes[2];
  byteList[12] := floBytes[3];

  // End symbol
  byteList[13] := 255;

  // WICHTIG bei Paket-Änderungen:
  //  * Größe des Byte-Arrays "byteList" anpassen
  //  * Index des Ende-Symbols (255) anpassen


  // Paket senden
  if NOT TinaSendPacket(udp_sendStatus, @byteList, sizeOf(byteList)) then
  endif;

end; // UDP_SendCurrentSensorStatus



PROCESS StatusUpdate(128, 128 :iData; 3, suspended);  {Stacksize, Framesize, priotity, suspended}
                  // 138, 139 --> maximal mögliche Werte laut Compilerstatus
begin
  ProcWaitFlag(sendflag);          //warten bis sendflag true ist
  sendflag := false;
  UDP_SendCurrentSensorStatus(UDP3);
end;

{--------------------------------------------------------------}
{ Main Program }
{$IDATA}





begin
  InitPorts;
  EnableInts($87);
  AutoSendxUDP:=False;

  //Init the Core of TINA with Params
  With TinaCore do
    StrToIP('192.168.1.16', IP);        // tina ip address
    StrToIP('255.255.255.0', Mask);
    StrToMac('00-A0-A1-A2-A3-A4', MAC);
    ResponsePing:= True;
    Prio:= TinaPrioAuto;
    RXCheckSumCheck:=True;
  endwith;

  //Init TINA
  IF NOT TINA_Init then
   loop
    mdelay(500);
   endloop;
  endif;

  //Start TINA - lets do the Job!
  TINA_Start;

  mdelay(500);
  
  StrToIP('192.168.1.20', RemoteIP);

  UDP3 := TinaCreateSocket;
  With UDP3^ do
    Protocol:= pUDP;
    LocalPort:= 11005;
    RemotePort:= 11001;
    RemoteHost:= RemoteIP;
    TimeOut:=500;
    RetryCount := 1;
    PacketRecInfo.BufferPtr:= @MyBuf3;
    PacketRecInfo.BufferLen:= SizeOf(MyBuf3);
  endwith;

  Start_Processes($87);


  AutoPing := true;
  resume(StatusUpdate); //Prozess zum zyklischen Senden starten
  loop
   // UDP_SendCurrentSensorStatus(UDP3);
    mdelay(500);
  endloop;
end TINABETATEST.
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: TINA Deadlock (vermutlich gelöst)

 · 
Posted: 12.02.2013 - 01:35  ·  #6
Hallo Thomas,

das Problem liegt offensichtlich darin dass der TINA im Prozess läuft.
Im Hauptprogramm gibt es keine Probleme. Wir sind am debuggen :ertrink:

rolf
ThomasW69
 
Avatar
 
Subject:

Re: TINA Deadlock (vermutlich gelöst)

 · 
Posted: 12.02.2013 - 07:15  ·  #7
Das wäre natürlich eine Ursache. Man kann ja mal versuchen dem Prozess mit Lock die komplette Rechenzeit zu geben und den Scheduler zu deaktivieren.
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: TINA Deadlock (vermutlich gelöst)

 · 
Posted: 12.02.2013 - 13:05  ·  #8
Hallo Thomas,

hatten wir versucht. Hat leider nicht geholfen. Wir sind dran...
btw.
Der ENC28J60 ist ein Auslaufmodell, sehr buggy.
Der ENC424J600 ist da viel geschmeidiger.

rolf
  • 1
  • 2
  • Page 1 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   136   150 · Page-Gen-Time: 0.027468s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI