Forum: Mikrocontroller und Digitale Elektronik Compiler und dessen Bekanntheitsgrade, speziell CCS


von Beda (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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

von let (Gast)


Lesenswert?

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

von let (Gast)


Lesenswert?

^ es sollte heißen:

int func(int i)
{
   ...
}



von Beda (Gast)


Lesenswert?

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

von Carsten S. (carsten)


Lesenswert?

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.

von Johannes A. (Gast)


Lesenswert?

> 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

von Carsten S. (carsten)


Lesenswert?

> 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

von Johannes A. (Gast)


Lesenswert?

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

von Carsten S. (carsten)


Lesenswert?

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.

von Kola (Gast)


Lesenswert?

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).



von Johannes A. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.