Programmiersprache in Automotive-Systemen

Gast #3148445
Hallo Forum, mir hat jemand erzählt dass für Automotive-Steuergeräte 
heute ausschließlich grafische Programmiersprachen wie Simulink oder 
LabVIEW verwendet werden, da die einfacher & besser für große Systeme 
geeignet sind als C oder C++. Stimmt das?
Wenn man bereits gut C und C++ kann, lohnt es sich den Umgang mit 
solchen Systemen zu lernen, wenn es sonst keinen Grund dazu gibt (wie zB 
bestehende Projekte oder Mit-Programmierer die nur solche Systeme 
beherrschen)?
Gast
Modellbasierte Entwicklung mit Matlab/Simulink oder Ascet wird gerne 
verwendet, aber nicht nur. Viel wird auch direkt in C oder bei 
Multimedia-Zeugs auch in Java gemacht. Kommt hald drauf an welches Tool 
für welches Projekt am besten taugt und ob die Software 
sicherheitskritisch ist oder nicht. Bei Matlab/Simulink kommt übrigens 
auch erstmal automatisch generierter C-Code raus...
Gast
Leider wird im Automotive-Bereich so ziemlich alles verwendet. 
Hauptsache, das Tool hat eine Zertifizierung und ist somit teuer.
(Aber nicht unbedingt besser, da viel weniger Nutzer da sind um Bugs zu 
finden)

Über Sinn und Unsinn automatischer Toolketten wie Programmierung mit 
Matlab lässt sich auch streiten. Meine Meinung: Je komplexer desto mehr 
mögliche Fehlerstellen.
Gast
Was macht den dieser automatisch generierte C-Code?

Ist das mehr als die Parameter für die PID Regler zu setzen oder States 
einer State-machine zu konfigurieren?

Kann man sich da auch einen Treiber zusammen klicken? (so richtig schön 
low-leveliges register/bit schubsen)
Gast
Welche Steuergeräte?

Motorsteuergerät?
Steuergerät für ein Getriebe?
Steuergerät für den Fensterhebermotor?
Steuergerät für den Schalter für den Fensterheber?
Steuergerät an der Droselklapenenheit?
Radio / Multimedia?
Gast
Autocode hin oder her.
Man braucht aber auch ein Framework aus Betriebssystem mit 
Peripherietreibern, Kommunikations-Stacks, ect. in das der generierte 
Code eingebettet wird.
Dieses 'Framework' ist fast immer in 'C', wenn nicht sogar in Assembler 
codiert.
Wie schon vorher gesagt, erzeugen die Codegeneratoren aus den 
(graphischen) Modellen auch erst einmal Java- oder C-Code, der dann ins 
Framework integriert wird und mit entsprechenden Compilern in ein 
ausführbares File übersetzt wird.

P.S.: Bei sicherheitskritischen Systemen geht nichts über C wenn nicht 
sogar ADA.
Gast
Bei sicherheitsrelevanten System ist es wohl zu 99,9 % C.
Da für C automatisierte Test Tools wie zb für MISRA verfügbar sind und 
auch angewendet werden (müssen).
Das restliche 0,1 % ist dann Assembler. Der wird aber nur da eingesetzt 
wo es nicht anders machbar ist. Zb der Teil des OS Scheduler der dann 
die eigentliche Taskumschaltung macht. Also die Register, Stackaddresen, 
Programmcounter,.... umschaltet.
Das Problem beim Assembler ist dann die Prüfung des Codes auf 
Funktion,Logikfehler, Überläufe,... das geht nur Per Hand und nicht 
automatisiert. ==> Große Aufwand und damit Teuer

Ob dieser C-Code jetzt Manuell oder per Codegenerierung erzeugt wird ist 
wieder ein anderes Ding.

Codegeneratoren sind zb Matlab/Simulink, oder auch AUTOSAR Toolsets.
Wobei hier Matlab/Simulink auf der Ebene der Regelkreise vertreten ist.
Die AUTOSAR tools sind dann mehr auf IO und OS Bereichen unterwegs.

Allerdings wird auch noch sehr viel in den sicherheitskritischen 
Bereichen per Hand codiert.
Das liegt ganz einfach daran das jedes Tool zertifiziert und freigegeben 
sein muss. Und dieser Aufwand ist gewaltig, damit wieder Teuer.


Also wenn du dich mit Codegenerierung beschäftigst kann das nicht 
Schaden
, allerdings solltest du C nicht außen vor lassen.
Gast
Ohne Auto schrieb:
> Was macht den dieser automatisch generierte C-Code?
>
> Ist das mehr als die Parameter für die PID Regler zu setzen oder States
> einer State-machine zu konfigurieren?

Der automatisch aus einem Modell generierte Code kann prinzipiell alles 
machen, Peripherietreiber, Kommunikations-Stacks, Task-Managemnt usw. 
überläßt man aber normalerweise der Basis-Software des Steuergeräts.
Die Regler baut man dann aber z.B. komplett modellbasiert auf, also 
Struktur+Parameter, Fehlerreaktionen usw.
Gast
Okay danke für eure Tipps, d.h. mit C, C++ ist man nicht beim alten 
Eisen...
Könnte es evtl. sein dass solche allgemeinen Programmiersprachen den 
Vorteil haben dass man quasi alles machen kann, also beliebige 
"ungewöhnliche" Datenstrukturen & Algorithmen verwenden, an die die 
LabView/Simulink/... -Entwickler nicht gedacht haben?
Gast
Floh schrieb:

> Über Sinn und Unsinn automatischer Toolketten wie Programmierung mit
> Matlab lässt sich auch streiten. Meine Meinung: Je komplexer desto mehr
> mögliche Fehlerstellen.

Meinnung? Interessant sind nur Fakten.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.