mikrocontroller.net

Forum: Compiler & IDEs at91sam7s and freertos 5.x


Autor: alexander (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi.

i tried

http://www.siwawi.arubi.uni-kl.de/avr_projects/arm...

works fine, but is a bit outdated.

is there a newer version based on FreeRTOS 5.x somewhere?

any ideas, how to 'upgrade'?

cheers,

alexander

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

2.) in portable.h eine portmacro datei auswählen, am einfachsten durch 
hinzufügen von "#define SAM7_GCC"

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

3.) im startup assembler code den SWI Vektor auf "vPortYieldProcessor" 
setzen

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"

Autor: Alexander Krohn (alexander9999)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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
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
hardware/
 dort liegen die header-files für die cpu und zb auch eine
lib_AT91SAM7X256.c

wenn ich diese sachen anfange zu vermischen bekomme ich tonnenweise 
kompiler-warnings und fehler wie zb
warning: nested extern declaration of ‘vPreemptiveTick’
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
#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
define portENTER_SWITCHING_ISR() 
in welchen das handling für context-switches in/aus isr's behandelt 
wird:
portSAVE_CONTEXT();

wie gehe ich damit um?

danke im voraus.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.