C für 8051

Heinz Saathoff schrieb:
Marco Budde schrieb...

Und wartbar bedeutet halt auch: ein in C geschriebenes
uC Programm kann jeder C-Programmierer ohne Probleme ändern.
Bei Assembler sieht das ganz anders aus.


Das aber nur bei den hardwareunabhängigen Programmteilen. Sobald die
Peripherie in's Spiel kommt, muß sich der C-Programmierer schon mit der
Bedeutung einzelner Register zur Steuerung der Hardware auskennen.
Der Anteil der hardwarenahen Routinen nimmt aber mit zunehmender
Codegröße ab.
Das sind aber zwei paar Stiefel ob ich ich die Hardwarearchitektur
eines uC oder dessen Assembler kennen muss...

Ersteres ist unabhängig von der verwendeten Programmiersprache und muss
ich auf jeden Fall kennen, letzteres interessiert mich in der Regel
nicht wenn ich in C programmiere. OK, nachvollziehen können sollte
man schon was der Compiler produziert wenns mal klemmt...

Gerald
 
Rafael Deliano schrieb:
* der der wurstelt ist hauptberuflich Programmierer
und arbeitet die ganze Woche mit C.
Leute die nebenbei Löten oder anderes zu tun haben
werden mit einfacheren Sprachen eher glücklich.
Es ist aber auch nicht einfach, konkret etwas zu
Willi Wipfel zu sagen. Er spricht in einem Posting
ausdrücklich von der "Komplexität seiner Aufgabenstellung".
Baut er Roboter ? Vielleicht ist dann Forth die bessere
Wahl. Das kann ich nicht beurteilen. Oder müssen
Messwerte ausgewertet werden ?

Ausserdem war von den vielen Registern des Atmel-AVR die
Rede und dem blossen Akku der 8051er. Trotzdem kann
man aber deswegen doch effektive Compiler bauen. Diese
Bemerkung war wohl nur in Blaue hinein gesprochen.
Probleme bereitet der Stack der 8051er, dem enge
Grenzen gesetzt sind.

Mit Grüssen
Joachim Riehn
 
Rein zufällig ähneln heutige MCUs wohl doch
recht stark den Minicomputern von vor 25 Jahren,
Halte ich nicht für Zufall. C wurde so geschrieben,
daß es gut auf PDP11 läuft, weil das ehedem als zukunfts-
weisende Hardware galt.
Dann kippt das Ganze aber um: Leute die neue CPUs
entwickeln machen erstmal Benchmarks mit den
vermutlichen Applikationen ihrer Kunden.
Wenn die in C geschrieben sind, compilieren sie
besser, wenn man nicht allzusehr vom status quo
abweicht. Im Bereich PCs ist also jegliche Innovation
bezüglich Computerarchitektur sicher verhindert.

MfG JRD
 
Joachim Riehn <jriehn@gmx.de> wrote:

... Auch die Konkurrenz
(DOS, Windows) wurde in C programmiert meines
Wissens.
Windows ja (zumindest die aktuellen, Win2.x und vermutlich auch
3.x wohl eher noch nicht), DOS ist noch Assembler.

Das wesentliche Verdienst von C war es, die Implementierung von
Betriebssystemen aus der Assembler-Mottenkiste auf die Ebene einer
Programmiersprache zu heben. Ob man das da nun als ,,Hochsprache''
bezeichnen will, sei dahingestellt. Hardwarenähe und möglichst
effektive Umsetzung (siehe auch Bitfelder und so'n Kram) waren
notwendig dafür, auch das fast nicht vorhandene Laufzeitsystem ist
dafür praktisch fast eine Bedingnung (war es zumindest vor 25 Jahren,
als C entstanden ist). Rein zufällig ähneln heutige MCUs wohl doch
recht stark den Minicomputern von vor 25 Jahren, so daß sich C dort
auch als effektive Waffe der Wahl herausstellt.

--
J"org Wunsch Unix support engineer
joerg_wunsch@interface-systems.de http://www.interface-systems.de/~j/
 
Rafael Deliano schrieb...
Wenn es auf die gute Implementierbarkeit von C angekommen wäre, hätte
IBM beim Entwurf des PCs die Motorola 68000 verwenden müssen.
Für die Entscheidung von IBM gab es wohl zwei Gründe:
* vom 68000 gab es nur die CPU, aber noch keine Peripheriebausteine.
Der ältere 8086/88 hatte kompletten Chipsatz.
* der 68000 war zu Minicomputer-artig: er hätte einige schlappe
Systeme am unteren Ende von IBM diskreditiert. Man wollte ein
verkrüppeltes Gerät. Unabhängig davon, daß es teuer war.
Details finden sich in:
Bradley "The Creation of the IBM PC" Byte September 1990
5 Seiten, kann ich scannen. Wird man allerdings die Fotos
vom WireWrap Breadboard nichtmehr richtig erkennen können.
Scannen brauchst Du's nicht unbedingt. Das mit dem Chipsatz kann ich
nicht ganz als Argument verstehen, da der 68000 ja eine recht flexible
Busstruktur hatte, wo auch alte 8-bit Peripherie angeschlossen werden
konnte. Hatte Motorola wohl genau aus dem Grunde gemacht.
Kann aber ja auch sein, daß Intel eben alles liefern konnte, während IBM
sonst einen Mix von Motorola/Intel/Sonstige hätte verbauen müssen? In
dem von Dir genannten Buch wird sicherlich dazu auch was stehen, neben
dem, was Du hier schon angedeutet hast.

- Heinz
 
Mix von Motorola/Intel/Sonstige hätte verbauen müssen?
Bei den Stückzahlen arbeitet genau wie bei automotive
der IC-Hersteller direkt mit Kunden zusammen. Der Kunde
will nicht viele Zulieferer und er will aufeinander
abgestimmte, risikofreie Lösung. Man kann nicht Motorola
und Intel mit an den Tisch setzen und sie sollen
z.B. Karten offenlegen welche ICs in Entwicklung
sind und wieweit sie bei bestimmten ICs im Preis
nachgeben.

MfG JRD
 
Heinz Saathoff schrieb:
Rafael Deliano schrieb...
Wenn es auf die gute Implementierbarkeit von C angekommen wäre, hätte
IBM beim Entwurf des PCs die Motorola 68000 verwenden müssen.
Für die Entscheidung von IBM gab es wohl zwei Gründe:
* vom 68000 gab es nur die CPU, aber noch keine Peripheriebausteine.
Der ältere 8086/88 hatte kompletten Chipsatz.
* der 68000 war zu Minicomputer-artig: er hätte einige schlappe
Systeme am unteren Ende von IBM diskreditiert. Man wollte ein
verkrüppeltes Gerät. Unabhängig davon, daß es teuer war.
Details finden sich in:
Bradley "The Creation of the IBM PC" Byte September 1990
5 Seiten, kann ich scannen. Wird man allerdings die Fotos
vom WireWrap Breadboard nichtmehr richtig erkennen können.

Scannen brauchst Du's nicht unbedingt. Das mit dem Chipsatz kann ich
nicht ganz als Argument verstehen, da der 68000 ja eine recht flexible
Busstruktur hatte, wo auch alte 8-bit Peripherie angeschlossen werden
konnte. Hatte Motorola wohl genau aus dem Grunde gemacht.
Kann aber ja auch sein, daß Intel eben alles liefern konnte, während IBM
sonst einen Mix von Motorola/Intel/Sonstige hätte verbauen müssen? In
dem von Dir genannten Buch wird sicherlich dazu auch was stehen, neben
dem, was Du hier schon angedeutet hast.

zb.google:
http://www.reed-electronics.com/tmworld/index.asp?layout=article&articleid=CA187350


--
Bertram Geiger, Graz - Austria
 
Hallo,
ohne irgendwelche Programmierkenntnisse würde ich mir erstmal ein
allgemeines C/C++ Buch besorgen, als Einstieg.
In der Technikerschule haben wir da entsprechende Bücher eingesetzt, die
Titel kann ich bei Bedarf gerne mal nachreichen.
Ich habe selber ein 8051-Entwicklungssystem auf dem ich z.Z. in Assembler
programmiere, aber wohl auch bald mal in C.
Wegen der besseren Erweiterbarkeit habe ich die Hardware der BBS Winsen/Luhe
( www.goblack.de ) im Einsatz und als Entwicklungssoftware den uC51 von
Wickenhäuser ( www.wickenhaeuser.de ). Die "Demoversion" erlaubt Projekte
von maximal 8kByte Codegröße, was meistens reicht. Außerdem ist die
Vollversion auch nicht so teuer. Der C-Compiler erstellt aus dem Quellcode
einen ziemlich guten Assemblercode.
Bei Bedarf kann ich gern noch mehr Infos geben.

Gruß Oliver

"W. Wipfel" <willi.wipfel@gmx.de> schrieb im Newsbeitrag
news:3f22f1ef$0$30261$9b622d9e@news.freenet.de...
"Matthias Weißer" <DTMAN@gmx.de> schrieb im Newsbeitrag
news:bfukud$j8ite$1@ID-76219.news.uni-berlin.de...
W. Wipfel wrote:
Bei RISC Architektur (AVR, PIC) mag das ja stimmen....
aber was 8051 angeht war es so nicht geplant.
Die Dinger kamen auf den Markt bevor C so richtig
erwachsen war.
Die AVR und die PIC sind für C zwar eher geignet, aber

PIC? In C? Prust!
Die Architektur der PIC's ist älter als die der 8051er.


Ok, ich erlag einem Irrtum!
Sacktuch und Asche über mich ! ;-)



ich brauch C nun mal wegen der Komplexität der
Aufgabenstellung. BASIC zu unflexibel, ASS zu umständlich
für diesen Fall.....

Und ich schrieb ja das C _die_ Hochsprache für ľC ist. Alles andere ist
Flickwerk. Ob C jetzt für 8051 geeignet ist oder nicht es wird
verwendet.
Und so schlecht sind die C-Compiler für 8051 dann auch wieder nicht.
Selbst
mit dem SDCC kann man ganz passabel arbeiten.


Klar, aber C ist besser dran, wenn es genügend Register wie
beim AVR zur Verfügung hat.
Beim 8051 geht ja fast alles über den Akku !
Das kann ne Hochsprache schon mal etwas ins Schwitzen bringen....

Ich hätte mit AVR mal angefangen, aber dann werden ganze Myriaden
von MCs abgekündigt und neue rangebracht, nachdem man
endlich die Übersicht über die Dinger hatte.
Ich bleib bei den 8051, da bleibt alles beim alten........
(hoffe ich zumindest)
Und abkündigen des alten Industriestandards hat sich ja
meines Wissens noch kleiner getraut....


by W.
 

Welcome to EDABoard.com

Sponsor

Back
Top