2016-06-21 7 views
0

Serielle Schnittstelle für die Öffentlichkeit zugänglich und ein Thread arbeitet immer mit dem Port. Ein oder mehrere Threads mit hoher Priorität werden zur Laufzeit erstellt, ohne dass ein Konflikt mit dem Haupt-Thread mit dem Port arbeiten und nach Abschluss des Threads zerstören sollte. Wie kann ich diese Threads planen und den Zugriff auf die serielle Schnittstelle verwalten?Terminierung und Zugriffskontrolle auf serielle Schnittstelle in Multi-Thread-C-Programm

danke.

Antwort

0

Wenn Sie viele Threads erstellen und immer nur ein Thread mit dem seriellen Port arbeiten soll (ein Thread nach dem anderen), können Sie den Zugriff durch Semaphore verwalten (damit sie nicht kollidieren) .

Allerdings hängt der Scheduling-Algorithmus, den Sie verwenden möchten rein von Ihrem Bedarf. Wenn Sie mehr als einen Thread erstellen, bin ich sicher, dass Sie die pthread_create API verwenden müssen, die mehr Flexibilität bietet, um Ihre Attribute (wie die Priorität) in ihrem zweiten Parameter festzulegen. Bitte verwenden Sie diesen Parameter, um Ihre Prioritätsstufen festzulegen. Sie können sie planen, indem Sie ihre Prioritäten berücksichtigen, oder Sie können sogar eine Zeitscheiben-Technik verwenden.

Bei der Analyse Ihrer Frage sieht es so aus, als würden Sie an einem Entwicklungsboard arbeiten. Falls es sich um einen RTOS-Code handelt, können Sie versuchen, den Vorkaufsmechanismus zusammen mit Semaphoren zu implementieren.