Forum: Mikrocontroller und Digitale Elektronik FreeRTOS mit libopencm3


von Michael A. (mukululul)


Lesenswert?

Hallo,
hat schonmal jemand versucht FreeRTOS zusammen mit libopencm3 zu 
verwenden?
Bisher hab ich rausgefunden das man vector.c auf jedenfall anpassen 
muss.

Hat hier jemand Erfahrungen die mit anderen teilen will ;-)

Gruss
Michael

von Michael A. (mukululul)


Lesenswert?

Hallo,
ich hab die vectoren entsprechend angepasst sodass die von FreeRTOS 
verwendet werden.
Damit kann ich nun Tasks starten und delay verwenden. Soweit scheint 
alles zu funktionieren.

Gruss
Michael

von Greg H. (greg_h)


Lesenswert?

Hallo.

Ich möchte libopencm3 mit FreeRTOS verwenden. Können Sie erklären, Sie 
die Änderung vector.c gemacht?

Gruß
Greg

von Michael A. (mukululul)


Angehängte Dateien:

Lesenswert?

Hallo,
also im prinzip nur folgende Änderung im lib/cms/vector.c

#ifdef FREERTOS
extern void vPortSVCHandler(void);
#define sv_call_handler vPortSVCHandler
#else
void WEAK sv_call_handler(void);
#endif
void WEAK debug_monitor_handler(void);
#ifdef FREERTOS
extern void xPortPendSVHandler(void);
extern void xPortSysTickHandler(void);
#define pend_sv_handler xPortPendSVHandler
#define sys_tick_handler xPortSysTickHandler
#else
void WEAK pend_sv_handler(void);
void WEAK sys_tick_handler(void);
#endif

----> snip

#ifdef FREERTOS
#pragma weak sv_call_handler = null_handler
#endif
#pragma weak debug_monitor_handler = null_handler
#ifdef FREERTOS
#pragma weak pend_sv_handler = null_handler
#pragma weak sys_tick_handler = null_handler
#endif

Hab auch das file angehängt. Evt. sind Anpassungen bei der neusten 
Version nötig.

Beim compile noch -DFREERTOS angeben.

Ich hoffe das hilf weiter.

Bei mir läuft FreeRtos so einwandfrei.

Gruss
Michael

von Greg H. (greg_h)


Lesenswert?

Fantastisch, danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.