Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Bug im Modul DS1631 oder IDE-Fehler? Kategorie: Programmierung (von André H. - 15.05.2005 23:10)
Als Antwort auf Re: Bug im Modul DS1631 oder IDE-Fehler? von Udo - 14.03.2005 21:16
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0
Hallo Udo,

> Zur Erklärung:
> Ein main thread darf nur einmal vorhanden sein. Ansonsten wird der Erste, der gefunden wird, gestartet.
> Da Module im Allgemeinen am Anfang stehen, sind die da eben bevorzugt. Alle weiteren main threads
> werden nicht beachtet.

Sorry, das ist falsch !
Der Name "main" ist für den Compiler nur ein Label, damit dieser wei�,
da� ein solcher Thread nicht mit der Priorität 0(=Thread steht), sondern mit
der Prio 32 kompiliert wird.
Alle Threads mit einer kompilierte Prio grö�er 0 laufen bei Programmstart selbsttätig an.
Die Reihenfolge des Anlaufens wird von der Reihenfolge der Main-Threads bestimmt.
Es ist daher absolut zulässig in einem Projekt mehrere Mainthreads zu haben.
In einigen Projekten habe ich selbst mehrere Mainthreads.

Um dies zu verstehen, mu� man mind. im groben wissen, wie das mit den Prioritäten
bei der CC2 funzt:
Es gibt 256 Stufen: 0 bis 255.
Dabei bedeutet 0, da� der Thread nicht läuft.
Die Zahl gibt an, wieviele VM-Instruktionen max. am Stück ausgeführt werden,
bevor ein Threadwechsel erfolgt.
Der Kernel des CC2-OS prüft, nachdem ein Thread die Rechenzeit "abgibt", welche Prio
der nächste Thread hat. Ist diese grö�er 0, so wird die entsprechende Anzahl
an Instruktinen ausgeführt, bis der nächste Thread dran ist. usw.


> Dies führt zu sehr unübersichtlichen Fehlern, die man sich erst im Nachhinein
> wirklich erklären kann.

Nein, das führt zu keinerlei Fehlern, wenn man mit Absicht mehrere Mainthreads betreibt.
Der Datensalat an HWCOM kam im Fall DS1631 nur zustande, da hier mehrere Threads
durcheinander Ausgaben über HWCOM machten.

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: