2016-04-12 11 views
0

Ich bin neu in RTOS und ich werde durch einige Demo-Code in freeRTOS, stieß ich auf xtaskcreate function.I wissen, dass, wenn eine Funktion aufgerufen wird, sollte es einige, wo haben ihre Funktion Körper schafft im code.When verwiesen ich die task.c-Datei und keine xtaskcreate Funktion Körper gefunden. Kann mir jemand erklären, wo der xtaskcreat-Funktionskörper sonst ist, wenn nicht, dann wie er ausgeführt wird.Wie xtaskcreat Aufgabe ohne Funktion Körper in FreeRTOS

+0

Es kann Makro zu einer anderen Funktion sein. – i486

Antwort

0

Es ist in der Datei Source/tasks.c in der Nähe der Linie 595 (FreeRTOS v9.0.0rc2) definiert.

Wenn aber SUPPORT_DYNAMIC_ALLOCACTION nicht definiert ist, wird auch xTaskCreate nicht definiert.

0

Es hängt davon ab, welche FreeRTOS-Version Sie verwenden.

Die neueste Version 9.0.0rc2 hat sowohl xTaskCreate() als auch xTaskCreateStatic() als separate Funktionen in tasks.c. Bei einigen Versionen werden beide Aufrufe als Makros definiert, die jeweils xTaskGenericCreate() mit Parametern aufrufen, die für das erforderliche Verhalten entsprechend eingestellt sind (die Komplexität wird vom Endbenutzer ausgeblendet).

In beiden Fällen ist es leicht herauszufinden. Die ‚Aufgabe‘ on the front of the function name tells you the prototype is in tasks.h - so suchen Sie einfach die Datei für xTaskCreate() und sehen, ob es einen direkten Funktionsaufruf oder ein Makro, die ein andere Funktion aufruft - die Sie dann in tasks.c finden.