hallo.
danke für die antwort.
Tobi wrote:
> FreeRTOS Installation
>
> 1.) Alle Dateien dem Projekt hinzufügen. Dabei eine Datei aus MemMang
> auswählen und aus einem DemoProjekt eine FreeRTOSConfig.h auswählen.
alle dateien von FreeRTOS selbst? die portierung von dem link aus dem
ersten post ignorieren?
>
> 2.) in portable.h eine portmacro datei auswählen, am einfachsten durch
> hinzufügen von "#define SAM7_GCC"
unter
1 | Source/portable/GCC/ARM7_AT91SAM7S
|
finden sich nur sachen für die SAM7X-variante der cpu, die nicht
pinkompatibel ist mit der SAM7S-variante.
die portierung vom link aus dem ersten post hat dafür scheinbar das
verzeichnis
dort liegen die header-files für die cpu und zb auch eine
wenn ich diese sachen anfange zu vermischen bekomme ich tonnenweise
kompiler-warnings und fehler wie zb
1 | warning: nested extern declaration of ‘vPreemptiveTick’
|
1 | warning: nested extern declaration of ‘vApplicationTickHook’
|
usw.
>
> 3.) In port.c ist in der fkt prvSetupTimerInterrupt ein Fehler (im
> Auslieferungszustand), es fehlt beim Aufruf von AT91F_AIC_ConfigureIt
> das erste Pointer Argument "AT91C_BASE_AIC,...."
> -> hinzufügen
ok.
>
> 3.) im startup assembler code den SWI Vektor auf "vPortYieldProcessor"
> setzen
hierzu habe ich ein
1 | #define vPortYieldProcessor SWI_Handler
|
gesehen. im startup ist dieses symbol 'weak' deklariert. reicht das
define?
>
> 4.) prvCheckTasksWaitingTermination public machen indem das static
> entfertnt wird und der Prototyp in die task.h Datei integriert wird.
> Dies erlaubt es Tasks zu löschen, ohne auf den "Idle Task" angewiesen zu
> sein"
ok.
die portierung aus dem ersten post hat noch spezielle makros für isr's
1 | define portENTER_SWITCHING_ISR()
|
in welchen das handling für context-switches in/aus isr's behandelt
wird:
wie gehe ich damit um?
danke im voraus.