Hier der Link ist über die Eigenheiten des 8051. Z.B Schreibweise für: const int* const X XDATA I-Data , halt das alte Intel-Derivat 8051. ###################################################### Fazit: Da muss man den Compiler genau kennen. Das Funktion Pointer -Konzept. Keil Compiler 8051, Zilog 8051 ... Embedded C - Seminar Link: https://www.youtube.com/watch?v=IJH4OhumN_U Da ich ein USB Interface von SILABS habe. Muss ich darüber informiert sein. Evtl. hat jemand auch Interesse an 8051 MCU Systems. Besonders die von SILABS mit USB Interface. ---------------------------------------------------- Gruss Holger.
Hallo Forum: Das Derivat C8051F32 ist der Ansatz für mein Project. Die MCU C8051F32 Silabs ... Link: Photo Beitrag "ISL21400, Programmable Temperature Slope Voltage" Frage: Hat einer Infos zu der Compiler Tool-Chain für diesen Chip von SILABS. Oder setzt den gar sebst in einem Project ein. Die USB JUNGO Treiber sind auch dafür nötig. (Ähnlich der FTDI Treiber). Ich finde kein Layer-Modell dazu. Die Silab Homepage ist nicht so hilfreich für mich. Frage: Hat einer einen Link dazu. Ich würde mich über Tips freuen. Gruss Holger.
Den 8051 haben wir schon vor 10 Jahren drei mal erschossen und tief eingebuddelt. Nun soll er mit einem USB Rollator neu aufstehen... will man sich das antun? Scheint so. Und Gurgel hat nichts gebracht? Kaum zu glauben. Dann scheint der Aufwand hoch zu werden... Um welche Stueckzahl geht es denn?
> Hat einer Infos zu der Compiler Tool-Chain für diesen Chip von SILABS.
SiLabs arbeitet in der Regel, was die C8051F-Familie angeht sehr stark
mit der Fa.Keil zusammen und verwendet deren C51-Compiler.
Ralf
@Ralf, @Victor Danke super, die Keil Tools ist der Hint_#1: Hier ist das erste Manifest. Link: http://www.silabs.com/products/mcu/Pages/USBXpress.aspx -------------------------------------------------------- Frage: 1) Was ist USBExpress für ein Software-Teil dabei. ########################################################## @Victor die wollen erst mal sehen ob unsere Firma als second Source son Silabs USB Derivat handeln kann. Es geht denen um ein Ref-Design. Wie halt immer muss man erst was als Ref-Design haben und warten können. ######################################################################## Gruss Holger.
Hier ein Bild: C8051F-Familie 51F3x ------------------------------------- Derivat C8051F32 ##################################### Bild: Adapter für I2-C-Bus Gruss Holger.
Viktor N. schrieb: > Den 8051 haben wir schon vor 10 Jahren drei mal erschossen und tief > eingebuddelt. Stimmt, eine Blink-LED ohne 32Bit sieht einfach scheußlich aus. Ich finde den 8051 für Steuerungen ideal. Die Bit-Funktionen sind das effizienteste, was ich bisher gesehen habe. Man kann Logikgleichungen in Assembler direkt hinschreiben. Und die 128 Byte DATA sind quasi 128 Register. Erst wenn massenhaft XDATA benötigt wird, sind andere MCs besser. Ich finds schon traurig, daß alles unter 32Bit nur noch verachtet wird, ohne jede Rücksicht auf die zu lösende (popel einfache) Aufgabe. Bald wird keiner mehr bügeln können, wenn das Bügeleisen keinen Web-Server hat. Und ob der Mülleimer voll ist, wird ohne Webcam auch keiner mehr feststellen können.
> Den 8051 haben wir schon vor 10 Jahren drei mal erschossen und tief > eingebuddelt. Dazu möchte ich mal anmerken dass ich ne Relaissteuerung mit DCF77-Empfänger inkl. Wochentagberechnung und Countdown- sowie Tagesprofil mit Ein-/Ausschaltzeiten, Display mit kompletter Menüführung und der Ausgabe einer Melodie im Countdown-Betrieb bei abgelaufener Zeit auf einem Standard-8051 implementiert habe - nahezu komplett in C. Nix mit kilobyteweise RAM, etc. Sicher, ist kein allzu großes Projekt gewesen, aber es ist mit 256 Bytes RAM, von denen ein paar Bytes schon für Registerbänke und Stack draufgehen durchaus machbar... > Nun soll er mit einem USB Rollator neu aufstehen... Glaub mir, der "Opa" überholt den "Flitzer", wenn du nicht gescheit programmieren kannst und/oder die Architektur nicht detailliert kennst. Ralf
Tach, der 8051 wird auch in 10 Jahre noch nicht tot sein. Für einige Dinge ist er einfach ideal, und es gibt Unmengen von Clones. Wir programmieren so einige 8051-Derivate allerdings mit SDCC, der Keil-Kram ist einfach in manchen Dingen sehr unflexibel. Ein schickes OpenSource-Projekt für die 8051 aus den China-Fotorähmchen, welches überdies die ganzen ROM images per Python zusammenlinkt findet man hier: http://sourceforge.net/projects/dpf-ax/ Da kann man sich auch für die Silab-USB-Dinger einiges abgucken. Den ganzen USB-Kram haben wir von Hand implementiert, ohne Jungo-Quatsch und zig unnötige Layer.
Fitzebutze schrieb: > Da kann man sich auch für die Silab-USB-Dinger einiges abgucken. Den > > ganzen USB-Kram haben wir von Hand implementiert, ohne Jungo-Quatsch und > > zig unnötige Layer. Ja das sehe ich auch so, mit dem Infineon 51 Core ist im Jahr 2009 noch was als "neues" Design aufgelegt worden. Der 8051 ist halt wie ne Schraube, aber ne SPAX-SCHRAUBE für die 8051 Industrie. Der Anwender muss die Syntax-Schreibweise, wie in dem Seminar oben beschrieben können & genau auf die Constraints verwenden. Sonst ...... Dan ist der schnell wie Hölle. So einfach ist das 8051 Rad gestrickt. (INTEL halt) Fazit: Deswegen habe ich mich mal da eingelesen, damit ich die Spax-Schraube genau kenne. Ich hoffe das ich die short ADDR IRQ variablen mit dem Bank-Switch peile. Da wird mir immer so mulmig bei. Atomarer IRQ C BANK ??? Erst mal "Danke" an alle für die Insider Infos. ################################################################### SPAX geht durch alles.. Blech, Holz, ... Ein Erprobtes Beispiel ist für mich besser, als jede obfuscate Doku. ################################################################### Gruss Holger.
Peter Dannegger schrieb: > Ich finde den 8051 für Steuerungen ideal. Die Bit-Funktionen sind das > effizienteste, was ich bisher gesehen habe. Man kann Logikgleichungen in > Assembler direkt hinschreiben. Der 8051 wurde schon vor 20 Jahren von Maulhelden gerne gestorben, und er lebt immer noch. Gäbe es nicht noch den ersten 8-bit-µC der Welt, den spartanischen Vorläufer des 8051, den 8048, und der wird sogar heute in Massenanwendungen immer noch gerne verwendet, dann wäre der 8051 der am längsten bisher lebende. Ich verwende ihn auch seeeeeehr gerne. Der hat doch eine richtige Erfolgsgeschichte. Das hat Intel wirklich sehr gut gemacht.
Klingt wie ein schweres traumatisches Erlebnis :-) der König ist tot, es lebe der König. Auweia, man nehme den Controller welcher zur Aufgabenstellung passt und gut ist. Das Design den 8051 war genial und bleibt es sicherlich auch. Am Ende entscheidet der Preis und der Aufwand. Für ne USB Anwendung, wie hier dargestellt, reicht ein 8051 von Silabs locker aber ich würde in der Tat keinen 8 BIT Controller für ne Ethernet Anwendung verwenden. Da gibt es in der Tat heute bessere Controller. Ich hol mal Popcorn :-)
Bernd N. schrieb: > Auweia, man nehme den Controller welcher zur Aufgabenstellung passt und > gut ist. Das Design den 8051 war genial und bleibt es sicherlich auch. So ist es. Für viele Zwecke reichte sogar ein 4-bit-Controller, der nur mit bspw. 100 kHz oder weniger getaktet ist. Aktuell kenne ich keinen 4-Bitter, aber es gab sie, und sie hatten noch einen hohen Marktanteil. Die ersten Taschenrechner ca. 1972 hatten so was. LED blinken mit sowas: Lieber als mit einem ARM. Aktuell heute Ostermontag bei mir Basteltag: PWM mit dem C515, auch ein 8051-Derivat: Beitrag "Re: PWM - Breite von 0"
Holger Harten schrieb: > Ich hoffe das ich die short ADDR IRQ variablen mit dem Bank-Switch > peile. Das muß man auch nicht peilen, bis 64kB ist der 8051 linear adressiert. Und wenn man mehr als 64kB Code benötigt, hat der 8051 keine Vorteile mehr. Meine Projekte sind typisch <8kB, das größte 40kB. Banking habe ich daher nie gebraucht. Nur Anfänger stellen den Compiler immer auf Large und Banking ein. Das ist quasi den Preßlufthammer nehmen, um auf der Platine die Löcher zu bohren.
Peter Dannegger schrieb: > Meine Projekte sind typisch <8kB, das größte 40kB. Banking habe ich > daher nie gebraucht. Keil unterstützt wohl automatisch Code-Banking, und ich sah schon 8051 mit 1MB ROM. Keil kostet ja auch etwas Geld, mehr als ein Trinkgeld in der Kneipe. Was sie aber machen, ist gut, da darf man etwas erwarten. Mit anderen Compilern und Assemblern muß man das von Hand machen. Aber bis man 100kB Assemblercode hat, gute Nacht zusammen! > Nur Anfänger stellen den Compiler immer auf Large und Banking ein. Das > ist quasi den Preßlufthammer nehmen, um auf der Platine die Löcher zu > bohren. Aus Bequemlichkeit habe ich Projekte auf dem 80C517A gerade auf Large stehen. Der hat auch Vollausbau 64k ROM und RAM. Die Peripherals wie PWM laufen ja ohnehin autonom. Kürzlich hatte ich aber eine Ausnahme, und mußte einen 80515 in Assembler programmieren. Der hatte nur 2kB ROM. Da hat man Speichermodelle wie Large und Small wiederum gar nicht.
Ich finde das neumodische Zeugs auch völlig überzogen. Das wäre ja, als wenn man mit Edlin seinen Code schreibt. Ich nehm da "copy con", das tuts schon lange und ist bewährt. NFU ;-)
der_Alte schrieb: > Ich finde das neumodische Zeugs auch völlig überzogen. Das wäre ja, als > wenn man mit Edlin seinen Code schreibt. Ich nehm da "copy con", das > tuts schon lange und ist bewährt. Öff, noch einer aus den frühen 80-ern. ;-)
Wilhelm Ferkes schrieb: > Öff, noch einer aus den frühen 80-ern. ;-) Jo, aus 8080 und Z80er(Mostek/Zilog) -Zeiten ;-) Habe früher viel mit 8032 und 8051 gemacht, ist aber schon lange her. Waren (und sind immer noch) gute Prozessoren.
der_Alte schrieb: > Habe früher viel mit 8032 und 8051 gemacht, ist aber schon lange her. > > Waren (und sind immer noch) gute Prozessoren. Genau ich finde das auch. Der (PSW) hat das REG-BANKING gemanaged. Reg:R0..R7; Damit hat der IRQ den Register-Push R0..R7 nicht machen müssen. Aber die IRQ C schreibweise kenne ich nicht mehr, und ist auch bei IARC anders als bei Keil. Und dann noch bit-Variablen TRUE/FALSE weiss ich auch nich mehr. Man sollte sowas halt horten. Aber die ziehen immer um, und weg ist das Spezi-Wissen. Gruss Holger.
@Fitzebutze: > Den ganzen USB-Kram haben wir von Hand implementiert, ohne Jungo-Quatsch > und zig unnötige Layer. Hast du dazu mehr Details? Habt ihr die OS-internen Treiber verwendet (CDC, etc.)? Ralf
Wilhelm Ferkes schrieb: > Der 8051 wurde schon vor 20 Jahren von Maulhelden gerne gestorben, und > > er lebt immer noch. Gäbe es nicht noch den ersten 8-bit-µC der Welt, den > > spartanischen Vorläufer des 8051, den 8048, und der wird sogar heute in > > Massenanwendungen immer noch gerne verwendet, dann wäre der 8051 der am > > längsten bisher lebende. > > > > Ich verwende ihn auch seeeeeehr gerne. Der hat doch eine richtige > > Erfolgsgeschichte. Das hat Intel wirklich sehr gut gemacht. ---------------------------------------- Genau die haben jetz sogar einen Zilog mit Crypto Engine. Oder als reinovated Watch-Dog-Analog-Frontend. Die alte 8051 Spax-Schraube von Intel. Gruss Holger. Video dazu. http://www.youtube.com/watch?v=1eYdfVa21dw
Peter Dannegger schrieb: > Holger Harten schrieb: > >> Ich hoffe das ich die short ADDR IRQ variablen mit dem Bank-Switch > >> peile. > > > > Das muß man auch nicht peilen, bis 64kB ist der 8051 linear adressiert. > > Und wenn man mehr als 64kB Code benötigt, hat der 8051 keine Vorteile > > mehr. Siehe Bild. Mit 4 States-Bits in (PSW). 00,01,10,11; http://www.mikrocontroller.net/attachment/175002/MC_8051_Bank_s4.PNG Nee Nee mir geht es nicht um Speicher-Modelle und grösser 64 KByte gedönse bzw. Tiny,Med, Large.. Nee ich meine die 4-Fache Reg-Bank. Siehe die Spez. REG-Bank via Register Statz R0.. R7 mit Reg.(PSW) ... Core Architektur 8051 Ich meine die Register-Bank R0,R1,R2...R7. Die musst du sonst alle in der IRQ Routine Pushen .. bzw danch wieder Poppen. (kostet also Zeit ) Das braucht man aber nicht zu machen wenn man via (PSW) im IRQ eine seperate autarke Reg-Bank hat (Arbeits-Register R0..R7). Bingo_> Hier kommt noch der Atomic IRQ mir volatile variablen. Die atomic zum main-Prog sind. -IRQ do IRQ stuff +IRQ Embedded Systems Programming Lesson 7: Arrays and Pointer Arithmetic http://www.youtube.com/watch?v=pQs8vp7JOSk Stelaris hat zwei Busse geschaffen. (HPB) und (AHB) -------------------------------------------------------------------- Gruss Holger.
Holger Harten schrieb: > Ich meine die Register-Bank R0,R1,R2...R7. > Die musst du sonst alle in der IRQ Routine Pushen .. bzw danch wieder > Poppen. (kostet also Zeit ) Ne, das sieht nur in der Theorie gut aus. In der Praxis geht das ganz schnell gegen den Baum. Mit dem Using sagst Du dem Compiler, kümmere Dich nicht um die Registersicherung. Wenn Du dann aber Unterfunktionen ohne Using callst oder Interrupts anderer Priorität die gleiche Bank benutzten, krachts. Auch wird vom Compiler immer die ganze Bank reserviert, wenn z.B. nur 2 Register benötigt werden. Du verlierst also kostbaren DATA-Speicher für Variablen. Als Anfänger fährt man daher am besten, wenn man solche dirty Tricks vermeidet und als Profi eigentlich auch. Die Spezialfälle, wo Using wirklich was bringt, muß man schon mit der Lupe suchen.
Peter Dannegger schrieb: > Ne, das sieht nur in der Theorie gut aus. In der Praxis geht das ganz > > schnell gegen den Baum. @Peda Danke das du dich noch mal gemeldet hast. Danke das ich das von einem Profi erfahre. Ich habe mir jetz einen Silabs c8051F330 u ..939 Kit in der Bucht geholt. Mal sehen ob ich da was machen kann. Keil Demo, aber ich fange mal damit an. Praxis 10.5.2. Split Mode without Bank Select Das ist das Banking für Xdata ... nicht zu verwechsen mir R0.R1.R2 ... R7 Register Banking. Link: http://www.keil.com/dd/docs/datashts/silabs/c8051f93x-92x.pdf Gruss Holger.
Peter Dannegger schrieb: > Wenn Du dann aber Unterfunktionen ohne Using callst > > oder Interrupts anderer Priorität die gleiche Bank benutzten, krachts. > > Auch wird vom Compiler immer die ganze Bank reserviert, wenn z.B. nur 2 > > Register benötigt werden. Du verlierst also kostbaren DATA-Speicher für > > Variablen. Ah, OK. Jetzt dämmert es mir wieder nach so langer Zeit. Ich habe auch noch so einen Source-Code mal auf dem Schreib-Tisch für Source-Code Analyse ... Da war der AT9051 .. der Programmierer hatte gekündigt, und das med. Lungen-Inhalator Teil hatte Ausraster..W-DOG kloppte das wieder gerade.. Der Code hatte keien Stack-Call weil das Ram ganz knapp war, ging alles über globale Variablen bzw Bit.Var , flg ... Das verstehe ich jetzt, Danke. Gruss Holger.
Holger Harten schrieb: > Der Code hatte keien Stack-Call weil das Ram ganz knapp war, ging alles > über globale Variablen Das Verwalten der Variablen ist Sache des Compilers, nicht des Programmierers. Nimm daher lokale Variablen, wenn möglich. Der Compiler kann sie besser optimieren und vor allem, er macht dabei keine Fehler. Die Compilerbauer sind keine Anfänger, die haben Optimierungstricks drauf, da klappt Dir die Kinnlade runter. Laß also den Compiler einfach seine Arbeit machen und konzentriere Dich nur auf den Algorithmus, den Du programmieren willst.
Holger Harten schrieb: > Ich habe auch noch so einen Source-Code mal auf dem Schreib-Tisch > > für Source-Code Analyse ... @Peda Oh da habe ich mich missverständlich ausgedückt. Ich meine die Funktions_Parameter einer C Funktion z.B Regeln_1( int min, int max, struct *ptr ect.pp ); Der C Source Code den ich bekommen habe(super schräg noch mit Compiler "option " use # Bank gespickt...) ist obendrein noch ohne jegliche Funktions-Parameter geschrieben. Was ich persönlich ich einfach nicht leiden kann. Keine Struktur Übergabe-Parameter usw. Kein sprechender Code. (Wie sich in den etlichen Dokus des exProgrammierers fand, ich habe alles in Code mit globalen Variablen gemacht, da der Pram-Stack Ram benötigt ) Und Ram hatte er recht wenig von den 128Byte über. So versuche ich auch noch die Kaufleute da mit ins Boot zu bekommen, das wir in ferner Zukunft ein Preis Vergleich Redesign machen dürfen. Ohne sone App-Killer Konstrukte usw. Wenn da immer die Vapo-Regelung duchdreht, und die Membrane zerstört, kostet das ja Ausfallzeit Immageverlust & Geld. So soll mir meine private Test-Hardware dienen ein 8051 Certificate-Manifest darüber zu schreiben. Besten Dank für die sogar mir einleuchtenden Argumente über diese spezielle 8051 Architektur. Gruss Holger.
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.