Forum: Mikrocontroller und Digitale Elektronik eigene Expansion Packages für die STM32CubeIDE


von Jens R. (tmaniac)


Lesenswert?

Hallo in die Runde.

ich fange mal mit einer kurzen Vorstellung an. Wer es nicht wissen will 
kann ein paar Zeilen weiter runter scrollen :-)

Mein Account hier ist ja schon einige Jahre alt. Vor ca 10 Jahren hatte 
ich den Arbeitgeber gewechselt und damit auch aus der Entwicklung in die 
Überwachung. Da ist das mit den µC eingeschlafen.
Damals hatte ich mich auf die 16bitter von Infineon eingeschossen.

Nun hat sich in den 10 Jahren viel geändert. Unter anderem auch der 
Zugang zu passender Unterstützung seitens der Hersteller.
Infineon hatte damals einen Code Generator welcher den asm-Startup Code 
erzeugen konnte.

Und heute gibt es für die STMs ja das Cube-Universum.
Ich hatte damals im Bereich AUTOSAR gearbeitet und auch Code Generatoren 
für die Konfiguration der Module entwickelt.

Jetzt bin ich seit ca einer Woche dabei mir ein "Expansion Pack" für die 
CubeIDE, bzw für die CubeMX zu basteln. Ziel ist es einen kompletten 
CAN-Kommunikationsstack zu konfigurieren.

So jetzt bin ich auch schon fast bei der Frage.
Mein Generator kann die notwendigen Werte für das BTRegister selber 
errechnen.
Dazu bekommt der die Eingangsfrequenz (entsprechend der ABP1 Peri. 
Clock), die gewünschte Bautrate und den gewünschten Abtastpunkt.

Bisher übergebe ich die Eingangsfrequenz in meiner eigenen Maske. Aber 
es ist sicher auch möglich den Wert aus den über gelagerten Schichten zu 
bekommen.

Meine Frage ist also: Wie komme ich an Werte heran, die in den Standard 
Eingabemasken drin stehen?

Hat jemand schon selber Expansion Packages geschrieben?

von Lutz (Gast)


Lesenswert?

Du meinst sowas wie GetClockRate(peripheral)?

von Jens R. (tmaniac)


Lesenswert?

Ja so ungefähr. Nur brauche ich die Clock nicht im C Code sondern im FTL 
Template.

Das Freemarker Template ist ja eine Art Interface um auf die Java 
Objekte der IDE zu zu greifen.
Die Namen die man selber vergibt, kennt man. Aber wie finde ich heraus 
was mir ST über ihr eigenes Interface zur Verfügung stellt.

Deswegen fragte ich ja, ob wer grundsätzlich schon einmal mit den 
Templates herum probiert hat.

von Jens R. (tmaniac)


Lesenswert?

Mit lesen und ausprobieren habe ich den Weg jetzt selber gefunden.

Ich denke mal es wird vielleicht irgendwen doch mal interessieren.
Es gibt ein sample_h.ftl (welches gemeiner Weise unter dem Namen 
sample_h_ftl also ohne Endung versteckt ist).
Dieses Sample Template liefert die Namen um die internen Parameter 
abzufragen.

iIn meinem Fall war es ja die APB1 Clock. Also kann man mit den 
folgenden Zeilen im FTL Template die Basis Clock für den CAN Controller 
abfragen:
1
[#list configs as dt]
2
[#assign data = dt]
3
[#assign peripheralParams =dt.peripheralParams]
4
[#assign peripheralGPIOParams =dt.peripheralGPIOParams]
5
[#assign peripheralDMAParams =dt.peripheralDMAParams]
6
[#assign peripheralNVICParams =dt.peripheralNVICParams]
7
8
[#assign usedIPs =dt.usedIPs]
9
10
/*  We read the CanClock speed from the RCC configuration
11
   APB1 Frequence Value   :   ${peripheralParams.get("RCC").get("APB1Freq_Value")}  Hz
12
   */
13
   [#assign APB1FreqValue = (peripheralParams.get("RCC").get("APB1Freq_Value"))?number]
14
   
15
[/#list]

Die Zahl der Frequenz kommt erst einmal (wie alle anderen Parameter auch 
als Text und muss mit dem ftl-build-in ?number in eine Zahl konvertiert 
werden wenn man damit rechnen möchte.


Bleibt weiter die Frage: beschäftigt sich noch irgendwer mit Code 
Generierung? Und im Speziellen mit innerhalb der STM32Cube Welt?

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.