Gibt es Codegeneratoren für Mikrocontroller, die (fast) 100 % des Codes erzeugen können? Angetestet habe ich mal Matlab/Simulink, aber der damit erzeugte Code ist weitgehend generisch und ohne größeren Aufwand nur auf dem PC lauffähig. Ich suche aber einen Codegenerator der fast den kompletten Code erzeugt, beispielsweise aus einem Zustandsübergangsmodell. Bis auf die Hardware-Konfiguration wie CPU-Takt, Größe vom externen RAM usw. soll der Generator alles selber machen, inklusive Timing und Sheduling, weil sich beides aus dem Modell ergibt und damit Aufgabe des Codegenerators ist. Welche Codegeneratoren können das?
Toll ... wer will mehr ? Man koennt ja selbst sowas schreiben, wenn Bedarf danach waer.
Erwin Meyer schrieb: > aber der damit erzeugte Code > ist weitgehend generisch und läuft nicht auf verschiedenen platformen? dann ist es kein generischer code sondern zusammengewürfelter kram aus einem sehr kuriosen codegenerator dann schreib für die platform(en) ne grundsoftware wo du den erzeugten code parsen kannst
Erwin Meyer schrieb: > Ich suche aber einen Codegenerator der fast den kompletten > Code erzeugt, beispielsweise aus einem Zustandsübergangsmodell. Das gibt es für VHDL etc. und nennt sich qfsm. Du hackst einfach nur ein Zustandsübergangsmodell ein und das Programm rechnet es in eine Hardwarebeschreibungssprache um.
Aha, aber eigentlich suche ich einen Generator für C (oder C++, ...). Im Prinzip reicht also ein Codegenerator für VHDL und ein Compiler der es nach C übersetzt, oder?
ja, und wenns das gibt mit Spracheingabe und semantischem Fuzzy-Analyse-Modul ;-)
Nicht zu vergessen mit Do-what-I-mean-not-what-I-say Optimierer!
A. K. schrieb: > Nicht zu vergessen mit Do-what-I-mean-not-what-I-say Optimierer! Genau, der muss unbedingt rein, damit jeder Entwickler auch ja nur seine eigene Semantik und Methodik verwenden kann... :-)))
Erwin Meyer schrieb: > Gibt es Codegeneratoren für Mikrocontroller, die (fast) 100 % des Codes > erzeugen können? Softwareentwickler
Vielleicht verrätst du uns, was du genau willst. Gibt ja diverse Möglichkeiten, das Programmieren zu vereinfachen: - Bibliotheken einbinden - Code-Templates - Tools, die einem Registerkonfigurationen berechnen Für viele Anwendungen muss man danach kaum mehr eine Zeile Code selber schreiben. Einen FSM-Codegenerator kann man sich in ein paar Stunden mit jeder beliebigen Skript/Programmiersprache auch sehr gut selbst basteln. Ganz ohne Programmierkenntnisse wird's aber sowieso nie gehen, ausser auf einem grösstenteils vordefinierten System.
Wozu Zustandsübergangsmodelle, die C-Code erzeugen, der dann wieder umständlich compiliert und gelinkt werden muss? Ich suche einen Codegenerator mit Chefspracherkennung, der die Anforderungen meines Chefs direkt in Maschinencode umsetzt und den Prozessor automatisch flasht. Optimal wäre ein integrierter Gehaltserhöhungsunterschriftengenerator mit Dauerurlaubsgenemigungssignaturgenerierung.
Codegenerator schrieb: > Wozu Zustandsübergangsmodelle, die C-Code erzeugen, der dann wieder > umständlich compiliert und gelinkt werden muss? > Ich suche einen Codegenerator mit Chefspracherkennung, der die > Anforderungen meines Chefs direkt in Maschinencode umsetzt und den > Prozessor automatisch flasht. genau das sucht dein Chef schon lange, um dich rauswerfen zu können. Sei froh, daß es das nicht gibt.
Hallo Erwin, schau Dir mal den Realizer von Actum Solutions an. Damit kannst Du sowas machen. Ist halt nicht billig und das Ding erzeugt "nur" fertigen Code. Wenn Du ein Feature nicht findest, dann kannst Du Assembler Macros selber schreiben. Die Idee von Actum hinter dem Tool ist, schnell und übersichtlich uC zu Programmieren, auch wenn man kein Softi ist. Gruß, avrGerd
VisSIM ist ein Codegenerator für TIs. Ein Kollege Schaft damit. Mehr weiß ich auch nicht darüber.
Ihr macht Euch darüber lustig, als wenn das ein total abwegiger Wunsch wäre. Dabei ist das insbesondere in der Softwarenentwicklung für Steuergeräte seit Jahren ein etabliertes Feature. Stichwort "Seriencodegenerierung aus Matlab/Simulink". Ich vermute mal allerdings auch recht teuer.
google graphical microcontroller programming
Von Elektrobit Automotive (EB) gibt es das Programm "Guide". Geht in deine Richtung, nur dass der Code meines Wissens nicht für Mikrocontroller erzeugt wird, sondern für Windows CE-Geräte. Hier wird mit Zustandsdiagrammen gearbeitet.
warum sollte jemand sowas programmieren, wenn er nach Fertigstellung arbeitslos wäre
Florian V. schrieb: > Ihr macht Euch darüber lustig, als wenn das ein total abwegiger Wunsch > wäre. Mitnichten. Der Wunsch selbst nicht. ;-) Mal im Ernst: Natürlich gibt es solche Werkzeuge. Und je eingeschränkter die Anforderungen an die Art der Problemstellung sind, desto effektiver kann so ein Werkzeug sein. Was umgekehrt auch heisst, dass solche Werkzeuge oft nur einen eingeschränkten Kreis von Problemen gut abhandeln können. Ebenso gilt hier wie für alle Highlevel-Programmierung: Je mehr komplexe Layer sich bei der Programmierung unter dem eigenen Programm befinden, desto mehr Bugs aus diesen Layern landen auf dem Tisch und desto mehr Doku und Support-Fragen ergeben sich. Egal ob das nun Codegeneratoren sind, oder APIs wie DotNet.
finde das auch nicht so abwegig.. vom Prinzip mach ja jede SPS sowas (und JA es wird wohl meist nur "konfiguriert" und kein Code erzeugt, ...)
Rational Rhapsody kann aus UML C oder C++ Code für Embedded Controller erzeugen. Ist aber von IBM und daher extrateuer.
Viel wichtiger als ein Codegenerator wäre erstmal ein Pflichtenheftgenerator. Also das Erstellen der kompletten Hardware- und Funktionsbeschreibung. Dann ginge das Entwickeln und Programmieren viel einfacher. Peter
>Codegeneratoren für Mikrocontroller, die (fast) 100 % des Codes erzeugen?
Schau mal bei den SPS rein, da gibt's graphische Tools, die machen
alles. Keine Zeile Code noetig. Dafuer wird auch ein 32bitter verbraten,
und unter einer Milisekunde Reaktionszeit ist nichts. Mit Stromspar ist
auch nichts.
Gibt's. Nennt sich Programmierer. Schüttet man oben Arbeitsanweisung und Koffein rein und nach einiger Zeit fällt bei der Gelegenheit Code raus.
Schau dir mal z.B: ethersex an. Alternativ gibt es auch von Conrad diese C-Stamp-Geschichte. Oder (kein Scheiß) von Lego: Mindstorms und MS NXT Da kannste grafisch sagen, was Phase ist und los gehts. ABER: Du musst dem Rechner IMMER sagen, was er machen soll. Und das wiederum wird als Programmieren bezeichnet. Ob das nun C Java Labview ist, es bleibt Programmieren.
Mit LabVIEW von National Instruments könnte das auch Möglich sein - die Module für Flussdiagramm-Eingabe und der C-Code-Generator sollten sich kombinieren lassen.
Heinz L. schrieb: > Koffein rein und nach einiger Zeit fällt bei der Gelegenheit Code raus. Das fässt dann aber keiner an.
>Gibt es Codegeneratoren für Mikrocontroller, die (fast) 100 % des Codes >erzeugen können? Rational Rhapsody. http://www-01.ibm.com/software/rational/products/rhapsody/developer/
Michael S. schrieb: > Heinz L. schrieb: >> Koffein rein und nach einiger Zeit fällt bei der Gelegenheit Code raus. > > Das fässt dann aber keiner an. Ja, das ist wie bei selbstdokumentierendem Code ("Das sieht doch jeder", "Das war schon immer so") und beim Ballmer-Peak ( https://xkcd.com/323/ ). Es wäre ja schon viel gewonnen wenn es einen Grob- und einen Feinentwurf gäbe, der genau so umgesetzt wurde. Aber schon das ist selten.
Da noch nicht genannt: QM von Quantum Leaps visualState von IAR
>QM von Quantum Leaps
Open Source ... klingt gut. Hast Du das Programm schon einmal
ausprobiert?
Rational Rhapsody ist etwas teuer, liegt so bei mehreren 1000 Euro.
Hi, @Erwin Meyer und andere: Ja, es gibt solche Generatoren, die von sich selbst den Anspruch erheben, den gesamten Steuergeräte-Code erzeugen zu können! Und NEIN, sie werden mit fast (!) absoluter Sicherheit nicht das tun, was Du vielleicht geplant hast! Der Anspruch ist der feuchte Traum jedes höheren leitenden Mitarbeiters in unzähligen Firmen auf der Welt, die zum einen nicht wissen (und es eventuell auch nicht wissen wollen!), was tatsächlich alles dahinter steht, sich aber zum anderen darüber ärgern, so viel (!) an "popelige Programmierer" zu bezahlen! (ok, da ist jetzt auch ein gut Teil Sarkasmus drin, aber letztlich ist es recht oft so!) Peter Dannegger hat geschrieben, das es zuerst mal einen "Pflichtenheft-Generator" bräuchte - und hat damit vollkommen Recht! Mal abgesehen davon, das Du bei solch einem Pflichtenheft-Generator das identische Problem bekommst) I.d.R. sind solche "Pflichtenhefte" (bewusst in Hochkomma geschrieben, weil diese den Namen nicht verdienen!) nur: "ich stelle mir vor ... und DU musst das jetzt realisieren!". Sie sind leider meistens das Papier nicht wert! Erst danach könntest Du überhaupt einen Generator auswählen und prüfen, ob er Deinen Ansprüchen (aka Pflichtenheft! ;-) ) genügt! Was dann auch dazu führen kann, das es trotzdem nicht funktioniert. Zumal von den Herstellern solcher Generatoren recht oft viel versprochen wird (Marketing), was das Produkt im Einzelfall einfach nicht erfüllt. Alles in allem: für Spezialfälle (!!!) kannst Du so etwas bekommen! (und mal nicht auf das - sehr oft vorhandene - Preisschild geschaut) Jedoch nicht "ein Tool für alle Fälle"! Für wirklich gute, stabile und wartbare, damit letztlich auch bezahlbare Software wirst Du Wissen in verschiedenen Kategorien benötigen. Als Hobbyist bist das Du selbst. Als Firma wirst Du diese Leute auch entsprechend bezahlen müssen. Und nicht etwa, weil die "armen Ingenieure" ja auch mal eine Semmel zu beissen haben wollen, sondern weil das - vor allem in der heutigen und vermehrt auch in der zukuenftigen Zeit - mit all den gestiegenen Ansprüchen und Funktionalitäten auf der einen Seite und den gestiegenen Sicherheits- und gesetzlichen Anforderungen auf der anderen Seite einfach notwendig ist. Schönen Tag noch, Thomas
Thomas K. schrieb: > Der Anspruch ist der feuchte Traum jedes höheren leitenden Mitarbeiters > in unzähligen Firmen auf der Welt, die zum einen nicht wissen (und es > eventuell auch nicht wissen wollen!), was tatsächlich alles dahinter > steht, sich aber zum anderen darüber ärgern, so viel (!) an "popelige > Programmierer" zu bezahlen! (ok, da ist jetzt auch ein gut Teil > Sarkasmus drin, aber letztlich ist es recht oft so!) Ja, überzogene Ansprüche an Programmierer, von Leuten die davon keine Ahnung haben, kenne ich gut. Aber das ein Codegenerator keinen Programmierer ersetzen kann ist doch klar: Zuerst muss zu einem Lastenheft ein Pflichtenheft erstellt werden. Daraus muss ein Grobentwurf abgeleitet werden und daraus wiederum ein Feinentwurf, aus dem ein Modell abgeleitet wird, das man dem Codegenerator geben kann. Danach muss der Programmierer meist noch nachhelfen, z. B. die Berechnung von Polynomen nach dem Horner-Schema durchführen und nicht nach der Definitionsformel, wenn das zu langsam ist. Und zur Fehlersuche oder Wartung wird der Programmierer auch benötigt. Die Änderungen müssen ja nicht nur in den Sourcecode, sondern in die Linie darüber, im Worst Case bis zum Pflichtenheft und weiter wenn sich herausstellt das etwas nicht realisierbar ist.
Hi, Erwin Meyer schrieb: > Aber das ein Codegenerator keinen Programmierer ersetzen kann ist doch > klar: Zuerst muss zu einem Lastenheft ein Pflichtenheft erstellt werden. > Daraus muss ein Grobentwurf abgeleitet werden und daraus wiederum ein > Feinentwurf, aus dem ein Modell abgeleitet wird, das man dem > Codegenerator geben kann. Es sollte ein Gesetz geben, nach dem jeder leitende Angestellte einer Firma, die mit Software zu tun hat, dies jeden Morgen vor dem Einschalten des eigenen Computers aufzusagen hat! :-) So ungefähr, wie der Frühsport der Asiaten. Nun ja, so vor dem Jahresende wird man ja noch träumen dürfen! :-) Aber Träume müssen eben nicht in Erfüllung gehen. Das sagt mir meine Berufserfahrung auf diesem Gebiet. Das angesprochene Matlab/Simulink ist sicher ein Kandidat. Wird praktisch (praktisch, weil ich eben noch nicht alle kenne. :-) ) in der gesamten deutschen Automobilindustrie zusammen mit ASCET zur Codeentwicklung verwendet. Das bezieht sich dann aber fast ausschliesslich auf die funktionale Entwicklung im Steuergerät! Nicht auf das OS und Infrastruktur. (Bus-Ankopplung, Sensoren, Aktoren etc.) Und die hat dann mitunter auch noch so ihre Tücken. Und Matlab/Simulink hat ob der Historie von Matlab in Steuergeräten auch eine Reihe von Problemen. Nur um eines (aber recht zentrales) zu nennen: FloatingPoint vs. FixPoint. Ist machbar, solange derjenige, der davor sitzt, auch weiss, was er da tut. (also normales Business! ;-) ) Für kleine Steuerungen, z.B. mit den 8-Bit-AVR's aber m.E. nach unsinnig. Die 32-bit-ARM-Prozessoren bzw. AVR32 sind da schon eher geeignet. Aber: wenn das Ganze sich rentieren soll und auch bearbeitbar bleiben soll, braucht's a) Aufwand (=Preis) und b) Wissen! Also auch wie üblich! :-) Schönen Tag noch, Thomas
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.