Hallo, mich würde mal interessieren, wie groß die Verwendung des CCS-Compilers in der Industrie ist. (Stichwort: Bekanntheitsgrad) Vielleicht auch eine Einschätzung, im allgemeinen Gebrauch. Und welcher Compiler in der Industrie denn am meisten Anwendung findet. (Vielleicht aufgelistet nach Microcontrollertypen) Gruß Beda
Was ist CCS, kann man das essen ? Einfach davon auszugehen, daß 3 Buchstaben nur eine Bedeutung haben bzw. sogar ein konkretes Produkt ausreichend spezifizieren, dürfte arg in die Hose gehen. Bei Compilern sollte man zumindest den Hersteller oder Webseite und die Targetfamilie angeben, damit anderen damit was anfangen können. Versionsnummer wäre auch nicht schlecht, wenn es um konkrete Features geht. Ich benutze z.B. von Keil den C51 V5.02 für die 8051 Familie. V5.02 ist zwar von 1995, aber da ja alle 8051-er kompatibel sind, brauch ich keine neuere. Der Keil C51 ist sehr bekannt, aber auch teuer und wird in der Industrie häufig verwendet. Von Keil gibts noch andere Compiler, z.B. für den ARM7TDMI (LPC2xxx-Familie). Peter
Der Bekanntheitsgrad des PIC-C von CCS in der Industrie dürfte irgendwo bei null liegen. Dort wird man wohl auf Keil oder IAR setzen (gibt es Keil für PICs?). Das liegt einfach daran das er genau wie der CodeVision AVR relativ einfach gestrickt ist. Zwar haben beide eine gute Unterstützung für einige spezielle Eigenschaften des jeweiligen µC (Bit-Variablen, Flash, EEprom), doch sie arbeiten ohne Linker. Der gesamte Quellcode wird zu einer einzigen (Text-) Datei zusammengefaßt und dann übersetzt. Die Verwendung von Bibliotheken wird dadurch etwas erschwert. Beim CV erfolgt diese Zusammenfassung wenigstens transparent über den Projekt-Manager (und der Coder ist damit einigermaßen portabel), beim CCS muß man per #include <xy.c> selbst Hand anlegen. Die Code-Optimierung ist ebenfalls eher einfach. Ausdrücke wie: int a; a = 3 + 2; a += 5; a = a - 1; werden zur Laufzeit berechnet. 'Große' Compiler (wie auch der GCC) setzen einfach a = 9; Oder bei Arrays: for (i = 0; i < 10; i++) { xyz[i].a = 1; xyz[i].b = 2; xyz[i].c = 3; a = 5; } Hier wird die Adresse (xyz+i) für jede Zeile neu berechnet, während die 'großen' Compiler das nur einmal pro Schleifendurchlauf machen. Auch die Zuweisung 'a = 5', die in der Schleife nichts zu suchen hat, wird vom CCS nicht vor oder hinter die Schleife gesetzt, sondern jedesmal ausgeführt. Noch ein Beispiel? void func(int i) { int x = 5; if (x == 0) { i = 0; } return i; } Dazu muß ich glaube ich nichts weiter sagen. Im Hobbybereich spielt das alles keine große Rolle aber in der Industrie schon eher. Wenn eine Lizenz dann auch 3000$ kostet: 'So what?'. Disclaimer: Ich habe nichts gegen den CCS oder CV. Den CCS verwenden wir in der Firma (wenige Entwickler) und für den CV habe ich eine Lizenz, wobei ich auch den GCC benutze. Man muß nur sehen wofür man was braucht. Apropos Firma: Wir verwenden mehrere Versionen des CCS parallel weil einige Projekte sich zwar mit jeder Version übersetzen lassen aber nur mit einer bestimmten Version funktionieren. Solche Phänomene dürfte es bei allen Compilern geben. Wie ausgeprägt das bei Keil oder IAR ist bzw. ob und inwiefern es sich um Compilerfehler handelt weiß ich nicht. - Michael
Danke für die Antworten! Die Frage sollte sich auch allgemein, auf sämtliche Compiler (GCC, CodeVision, Keil, CCS, etc.) beziehen. Und die Frage klären, welche Compiler überwiegend in der Industrie eingesetzt werden. Soweit man das Pauschal sagen kann! Die spezielle Frage nach dem CCS-Compiler ( www.ccsinfo.com , PIC-Controller Compiler ) sollte natürlich nur die Leute ansprechen, die den Compiler auch kennen bzw. wissen wofür die drei Buchstaben stehen. Ansonsten weiß ich nicht, wie man eine vernünftige Bewertung abgeben kann. Naja, vielleicht hätte ich das "..., speziell CCS" aus dem Titel lassen sollen?! Gruß Beda
Generell werden KEIL, IAR, TASKING und GREEN HILLS als Third Party Compiler eingesetzt. Ab und zu auch noch Ride von Raisonance. Bei vielen µC-Familien gibt es aber Compiler dirket vom Chip-Hersteller, z.B. C18/C30 von Microchip, Softune von Fujitsu, HEW von Renesas etc.
> Generell werden KEIL, IAR, TASKING und GREEN HILLS als Third Party > Compiler eingesetzt. Ab und zu auch noch Ride von Raisonance. Na, so generell kann man das gar nicht sagen, denn ein Compiler ist immer nur für eine gewisse Auswahl von Prozessoren geeignet. Und die genannten sind generell eigentlich nur für 8051er und ARMs zu gebrauchen und z.B. für die PICs überhaupt nicht. Von daher ist ein Compiler immer an bestimmte Prozessoren oder Controller gebunden, was in den Zeiten, als "die Großen" groß geworden sind, noch kein wirkliches Thema war - damals gab es praktisch nur den 8051, und ansonsten waren 6502, 8085 und Z80 noch beliebte "Embedded Controlller". Und auch die hohen Kosten wurden noch nicht hinterfragt... In den letzten zehn Jahren ist die unvermeidliche Bindung an bestimmte CPUs allerdings zum regelmäßigen K.O.-Kriterium für die angestammten Compilerbauer geworden, und das brachte Luft in den Markt für neue, zum Teil nur auf einen Controller spezialisierte Lösungen (z.B. CCS, CodeVision und in der Anfangszeit auch imagecraft), die "bei der Gelegenheit" auch das Low-Cost-Marktsegment aufs Korn nahmen. Noch zwei "übrigense": 1. Ich habe nur von C-Compilern geredet. 2. Ich finde bemerkenswert, dass USA im Geschäft mit Compilern für Controller eine so relativ kleine und Europa eine so große Rolle spielen: Von den genannten sind Green Hills, CCS und imagecraft US-Firmen, Altium (TASKING) sitzt in Australien, und Keil, IAR und HP Info Tech (CodeVision) sind europäisch. Gruß Johannes
> Na, so generell kann man das gar nicht sagen, denn ein Compiler ist > immer nur für eine gewisse Auswahl von Prozessoren geeignet. Und die > genannten sind generell eigentlich nur für 8051er und ARMs zu gebrauchen > und z.B. für die PICs überhaupt nicht. Die Compiler-Hertseller die ich genannt habe decken deutlich mehr µCs ab, wie du meinst: IAR: -8051 -PIC/dsPIC -NEC -ARM -AVR32 -MSP430 - etc. KEIL: -8051 -(X)C166/ST10 -ARM TASKING: - TriCore -(X)C166 -Renesas Mir fällt spontan keine 8-u.16-Bit Architektur ein, die nicht von diesen genannten Herstellern abgedeckt wird. Natürlich gibt es auch andere, sind aber nicht so stark in der Industrie vertreten sondern mehr im Bereich von kleinen Ing.-Büros und Hobbyentwicklern
Carsten, was ich meinte, war nicht, dass die von Dir genannten Compiler nicht mehr abdecken, sondern, dass man sie nicht generell nebeneinander setzen kann, weil jeder, außer dem 8051 und dem ARM, seine speziellen Schwerpunkte hat. Oder anders gesagt: Sie stehen gar nicht mehr wirklich zur Auswahl. Es geht entweder nur der eine oder nur ein anderer. Ansonsten hab ich mal die Frage, was Du eigentlich unter "der Industrie" verstehst, wenn Du dagegen gleich den Bereich der kleinen Ing.-Büros und Hobbyentwickler setzt. Und ob Du wirklich überzeugt bist, dass sich "die Industrie" immer noch von den großen (und teuren) Compilerbauern diktieren lässt, welche Controller sie einzusetzen hat. Ich meine, ich arbeite selber in einem Industriebetrieb, und kann Deine Einschätzung über "die anderen" absolut nicht teilen. Gruß Johannes
Hallo Johannes, ich arbeite in der Distribution mit Schwerpunkt Industriekunden. Daher ist es meine Erfahrung, dass die von mir genannten Compiler die häufigsten Third-Party Compiler sind - zumindest für NEC, Infineon, ST, MSP430 (TI). Bei Firmen wie Microchip, Renesas, Fujitsu, etc. die ihre eigenen Compiler bauen sind diese meistens die 1. Wahl. Unter Industrie verstehe ich das Gebiet in dem der Kunde entwickelt, also z.B. Automatisierungstechnik, Motorsteuerung, etc.
Ich habe mal in einem Projekt mit CCS-Compiler für PICs gearbeitet. Ist 2 Jahre har, und die Version war glaube ich 3.8.1. Erfahrungen: -Die Bibliotheken für I2C/RS232 funktionieren nur für bestimmte PICs -Der Compiler hat beim ersten Fehler gestoppt -Man muss dem Compiler oft sagen, ob ein array (z.B. LUT) ins ROM oder RAM soll Das Projekt war trotzdem lustig, wir haben alle Bibliotheken selbst implementiert, und dann ging das mit dem CCS gut. Das Projekt war für die Abfüllung eines Nahrungsmittels, und ging über ein Hobby-Projekt hinaus (war aber nicht so professionell wie z.B. automotive-Projekte).
Hallo Carsten, danke für die Erläuterungen. Ich habe mir sowas schon gedacht, aber sich denken und wissen sind halt doch verschiedene Paar Schuhe. Ok, ich sehe, dass Du ganz andere Bereiche beackerst als ich, aber ich sehe auch, dass Du wohl, ebenso wie die meisten Distri-Ings, die ich so kenne, über den vorgegebenen (?) Bereich hinaus nichts weiter weißt. Ich meine, ich habe mit reichlich Glück vor ein paar Wochen mal gerade einen Sales-Engineer für die Atmel AVRs aufgetan, mit dem ich auch über die "anderen" Compiler reden kann, die dafür existieren. Wobei ich feststellte, dass der Compiler, mit dem ich seit Jahren arbeite, und der, obwohl Low-Cost, inzwischen der meistverkaufte AVR-Compiler schlechthin ist und ganz nebenbei einen Support bietet, an den IAR und nicht einmal Atmel heranreichen können, gar nicht bekannt war... Mein Fazit: In der Distribution sitzen leider immer noch zu viele Leute, die einfach alles glauben, auch wenn man ihnen sagt, der Himmel sei grün. Insofern für Dich zur Info: Von derselben Firma, die besagten Low-Cost-AVR-Compiler anbietet, gibt es auch einen Low-Cost-Compiler für die MSP430er. Und auch für ARMe. Und auch für HC12er... Und jetzt sag nicht, Deine Kunden hätten Dich nie nach "günstigeren" Compilern gefragt ;-) Gruß Johannes
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.