Hallo zusammen, ich stecke momentan in einem ziemlich umfangreichen Bastler Projekt mit einem STM32 in C und habe mich das ein oder andere Mal schon gefragt, ob es eine Richtlinie auch speziell für die Mikrocontrollerprogrammierung gibt. Was wird den in der Industrie so angewendet? Ich hätte gerne einen roten Faden, der sich durch meine Programme zieht. Momentan bin ich sehr inkonsistent was Funktionen und Variablen betrifft. Mal hier mal dort und ziemlich global. Viele Grüße Simon
Wir nutzen die MISRA-Regeln mit einigen Ausnahmen die wir in der Team-Runde diskutiert haben. Zusätzlich gibt es abteilungsweite Coding-Style-Guides.
@Dennis: Gibt es die auch für C++ und eventuell irgendwo kostenlos verfügbar?
Wow, danke! Das Buch ist dann schon ziemlich dick ;) Vielleicht kommt ja noch was kompakteres/ weniger umfangreiches.
Tcf K. schrieb: > @Dennis: Gibt es die auch für C++ und eventuell irgendwo kostenlos > verfügbar? Ja, es gibt eine C und eine C++-Variante. Ob es die legal und kostenlos gibt weiß ich nicht. Aber wenn dann vermutlich nur eine ältere Version oder ein "draft". Gruß Dennis Edit: Aber denk nicht, dass das ein "Lehrbuch" ist! Wenn du einen Einstieg brauchst dann solltest du einfach mal nach "Coding style" suchen oder so. Auch da gibt es viele verschiedene Meinungen und das wichtigste ist in der Regel einen konsistenten Weg für dich zu finden. In der Praxis macht es ja doch jede Firma anders..
:
Bearbeitet durch User
Tcf K. schrieb: > Gibt es die auch ... eventuell irgendwo kostenlos > verfügbar? Versuche es doch einmal (ganz altmodisch :-) in einer klassischen Bibliothek Deines Vertrauens. Gut sortierte Bibliotheken an Universitäten mit technischen Fachrichtung haben so etwas oft da oder können es zumindest besorgen.
:
Bearbeitet durch User
Simon W. schrieb: > Ich hätte gerne einen roten Faden, der sich durch meine Programme zieht. Das hätten viele gern. SCNR.
Hi Simon, wie die anderen schon sagten, mal ein gutes Buch hernehmen und im Netz nach Style-Guids schauen. Aber jede Firma kocht da mehr oder weniger sein eigenes Süppchen. zu Variablen: Wie einer hier mal richtig schrieb: "So lokal wie möglich und so global wie nötig!" Den Satz finde ich sehr gut. Brauche ich: - eine Variable nur in einer Funktion, dann rein in die Funktion. - eine Variable mehrere Durchläufe einer Funktion, dann rein in die Funktion und static machen. - eine Variable in mehren Funktionen, dann nur Modul-Global erstellen. - eine Variable im kompl. Programm, dann Programm-Global erstellen. Um die geschützten Modul-Globale-Variablen zu lesen oder zu beschreiben, gibt es immer noch die einfachen Set- und Get-Funktionen. Bei Funktionen, lernt man es am besten durch lesen von Programmen von anderen Programmierern. (meine Erfahrung) z.B.: Wie soll eine Funktion einen Fehler melden?!? atoi - hier wird ein gültiges Ergebnis, als Fehlercode missbraucht. d.h. wenn eine '0' als Ergebnis in Betracht kommt, muß man den String selbst parsen, um zu sehen, war es ein Fehler oder eine richtige '0'. Das macht man einmal und dann schreibt man sich seine eigene Funktion. :-) sprintf - hier wird nach vollendeter Tat die Anzahl der geschriebenen Zeichen zurückgeliefert, bzw ein Fehlercode. Sollte nun der Buffer zu kleine gewesen sein(Anzahl der geschriebenen Zeichen +1 > Buffergröße), so ist der schaden schon angerichtet und der Programmierer kann nur nachträglich versuchen etwas zu retten. Ob man solche Funktionen verwendet bzw. in der Art selber schreibt, kann sehr schnell beantworten. Ich hoffe mit NEIN. Es gibt noch andere Funktionen, bei denen man sich überlegt sie einzusetzen, dies sind nur Beispiele. Auch die Anzahl bzw die Orte der Ausgänge(returns) einer Funktion, können festgelegt werden. Bei uns war es so, das nur nach Prüfung der Eingangsparameter und am Ende der Funktion ein 'return' erlaubt war. Zwischen drin, war es verboten. Wie gesagt es verschiedene Möglichkeiten. Was aber wirklich wichtig ist, wenn du einmal damit anfängst, dann auch durchziehen!!!! Nicht nach 1 Woche schlapp machen. :-)
Dennis S. schrieb: > Tcf K. schrieb: >> @Dennis: Gibt es die auch für C++ und eventuell irgendwo kostenlos >> verfügbar? > > Ja, es gibt eine C und eine C++-Variante. Ob es die legal und kostenlos > gibt weiß ich nicht. Legal gibt es die MISRA natürlich schon, kostenlos aber nicht. Es kostet aber auch nicht die Welt, GBP 15,- + VAT für das PDF: http://www.misra.org.uk/Buyonline/tabid/58/Default.aspx Nur das Dokument bringt dir aber wenig. Es iszt kaum möglich beliebige Quellcode händisch auf das Befolgen der Regeln zu überprüfen. Dafür gibt es Tools wie PC-Lint und QA-C, die aber alles außer kostenlos sind...
Hab ganz vergessen mich hier zu bedanken... Ist ja doch einiges zusammen gekommen. Also 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.