Forum: Mikrocontroller und Digitale Elektronik Keil 5, Armclang, CubeMX & FreeRTOS


von funky (Gast)


Lesenswert?

Hallo,

hat jemand mit CubeMX, Keil, ArmClang & FreeRTOS es schon geschafft, 
Kernel Awareness hinzubekommen?

Ich probiere den EventRecorder in Betrieb zu nehmen, aber da kommt sich 
alles in die Quere, mit ArmClang scheint einiges noch nicht getestet und 
es macht Unterschiede, von wo z.B. Freertos kommt.

Man kann das ja über CubeMX zum Projekt hinzufügen und darüber alles 
konfigurieren(auch TouchGFX) und man könnte alles auch über die Keil 
Packages hinzufügen(Freertos, Eventrecorder, etc) was dann wieder nicht 
100% mit TouchGFX zusammenspielt.

Passt man dann manuell Header an, hat man das Problem, das bei der 
nächsten Codegenerierung alles wieder futsch ist(nicht bei den CubeMX 
generierten Sachen...wenn man die Änderungen dort an die richtigen 
Stellen packt, bleibt das bestehen)

Aber irgendwie ist das Zusammenspielt nicht so 100% rund oder ist das 
Gefummel so gewollt?

von funky (Gast)


Angehängte Dateien:

Lesenswert?

ok, die Frage war unpräzise gestellt.

Ursprünglich wollte ich cubeMX&touchgfx zusammen mit Keil RTX5 
verwenden.
Die Mischung aus Keil RunTime Environment & CubeMX Codegenerierung 
funktioniert in dem Fall aber nicht(zumindest hab ich es nicht 
hinbekommen)

Deshalb dann mit  Freertos 10 mit cmsis V2 API, TouchGFX usw alles per 
CubeMX zusammen mit dem Keil EventRecorder

Für den EventRecorder benötigt man eine freertos_evr.h. CubeMX generiert 
die nicht, aber Keil liefert eine mit. Die soll mit RTX5 funktionieren. 
Von daher war mein Ansatz, RTX5.scvd für den Komponentenviewer zu 
verwenden und ich hätte erwartet das Freertos mit cmsis v2 API damit 
dann tut, da Keil RTX auch cmsis-v2 implementiert. Das geht aber nur 
teilweise. Z.B. Threadnamen werden nicht angezeigt.

Weiß jemand wie da das weitere Vorgehen wäre?

Meine Eventrecorder defines sehen so aus:
1
#define configEVR_SETUP_LEVEL 1
2
#define configEVR_INITIALIZE 1
3
4
#define traceTASK_NOTIFY_GIVE_FROM_ISR_DISABLE
5
#define traceTASK_NOTIFY_TAKE_BLOCK_DISABLE
6
#define traceTASK_NOTIFY_TAKE_DISABLE
7
#define traceTASK_NOTIFY_WAIT_BLOCK_DISABLE
8
#define traceTASK_NOTIFY_FROM_ISR_DISABLE
9
//#define traceTASK_NOTIFY_DISABLE
10
#define traceTASK_NOTIFY_WAIT_DISABLE
11
12
#define configEVR_LEVEL_TASKS 0x05
13
#define configEVR_LEVEL_QUEUE 0x05
14
#define configEVR_LEVEL_TIMERS 0x05
15
#define configEVR_LEVEL_EVENTGROUPS 0x05
16
#define configEVR_LEVEL_HEAP 0x05
17
#define configEVR_LEVEL_STREAMBUFFER 0x05
18
19
#define USE_TRACE_EVENT_RECORDER

Einige der Traces musste ich deaktivieren, da sich da anscheinend intern 
Parameter geändert haben.


Weiß da jemand weiter und hat das schonmal benutzt?

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.