Hallo,
Freescale selbst bezeichnet den Controller als Ultra-Low-End 8 Bit
Microcontroller!
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=RS08KA&nodeId=01624684499487
Hat jemand mit diesem Controller schon Erfahrungen gemacht?
Also so wie ich das sehe lässt sich darauf nicht mal ein C-Compiler
aufsetzen. Was bedeutet, dass dieser Controller NUR in Assembler zu
programmieren ist... klar, gibt es Leute, die das bevorzugen, aber sich
so einzuschränken, wer will das schon?
Mich würde eure Meinung zu diesem Low End Controller interessieren.
Würde euch spontan ein Einsatzgebiet für diesen Micro Zwerg einfallen?
lg
AVRNeuling schrieb:
>> Also so wie ich das sehe lässt sich darauf nicht mal ein C-Compiler> aufsetzen.
Was meinst Du mit "Compiler auf MCU aufsetzen"? Im Microcomputerbereich
hat sich im Allgemeinen das Crosscompiling durchgesetzt, das bedeutet
die Plattform auf der der Compiler läuft ist eine Andere als die
Zielplattform.
> Was bedeutet, dass dieser Controller NUR in Assembler zu programmieren ist
Stimmt doch gar nicht. Mit zwei Klicks auf der von Dir verlinkten Seite
gibts den CrossWorks Compiler zum Download. Auch in der "Freescale
Low-Power Microcontroller Solutions Brochure" wird auf die IDE mit
Compiler von Crossworks hingewiesen. Wie kommst Du also zu dieser
Aussage?
> Mich würde eure Meinung zu diesem Low End Controller interessieren.
Gefällt mir grundsätzlich. Die Dinger gibts mit ADC, Komperator, SPI,
I2C und sogar mit LCD-Controller. Von 6 bis 48 Pins. Nur mit Aussagen
wie "highly cost-effective" wäre ich vorsichtig, Freescale war
eigentlich schon immer eher teuer.
> Würde euch spontan ein Einsatzgebiet für diesen Micro Zwerg einfallen?
Ziemlich das selbe, was auch bei den Application Notes steht:
- Lüftersteuerung
- LED-Controller
- Einfaches Meßgerät (z.ß. Digitalthermometer)
- Weißwarensteuerung
- Ersatz einfacher Logikschaltungen
Übrigens hat er natürlich einen Stack(pointer) und Interrupts kennt er
natürlich auch. Mir scheint, hier soll die neue Controllerlinie
willkürlich schlecht gemacht werden, denn das kann nur mutwillige
Vorspiegelung falscher Tatsachen sein.
Hallo,
natürlich Kann man den Controller in C Programmieren. Codewarrior
unterstützt die Familie auch. Wirklich sinn macht der aber wohl nur wenn
man n roßen Stückzahlen produziert. Die HCS08 Familie ist in allen
belangen überlegen und in ebenso kleinen Gehäusen zu haben. Die Dinger
gibt es in 10000er Stückzahlen ab 0,32$ das macht sich dann schon
bemerkbar. Bei Digikey gibts die dann ab 70 Cent. Ich würde mal sagen
löhnt sich nur wenns bei großen stückzahlen auf jeden Cent ankommt.
Eckhard
Иван S. schrieb:
> Übrigens hat er natürlich einen Stack(pointer) und Interrupts kennt er> natürlich auch.
Die Dinger sind krass minimalisiert, bis kaum noch weniger geht.
Einen Stack-Pointer habe ich keinen gefunden, nur ein Link-Register
unter anderem Namen. Unterprogrammaufrufe sind natürlich möglich, aber
bei mehr als einer Ebene etwas umständlicher als sonst.
Interrupts gibt es nur dem Namen nach, nicht aber im üblichen Sinn. Als
Konzept zum Aufwecken aus Stromsparmodi existieren sie, als automatische
Aufrufe nicht.
> Mir scheint, hier soll die neue Controllerlinie> willkürlich schlecht gemacht werden, denn das kann nur mutwillige> Vorspiegelung falscher Tatsachen sein.
Sie sind hier im Forum völlig falsch untergebracht. Für industriellen
Einsatz in grossen Stückzahlen möglicherweise sinnvoll, im Hobbybereich
und bei Kleinstückzahlen m.E. völlig sinnlos, weil dafür keine Vorteile
vorhanden sind, wohl aber etliche Nachteile.
A. K. schrieb:
> Die Dinger sind krass minimalisiert, bis kaum noch weniger geht.>> Einen Stack-Pointer habe ich keinen gefunden, nur ein Link-Register> unter anderem Namen. Unterprogrammaufrufe sind natürlich möglich, aber> bei mehr als einer Ebene etwas umständlicher als sonst.
Stimmt, ich habe soeben nochmal nachgesehen. Das kommt davon, wenn man
die pdf-suche nur mit "Stack" füttert und nach 53 Ergebnissen implizit
irgendwelche Schlüsse zieht. Mea culpa. Fakt ist: Es gibt einen
Hardwarestack, der aber nur eine Ebene tief ist.
> Interrupts gibt es nur dem Namen nach, nicht aber im üblichen Sinn. Als> Konzept zum Aufwecken auf Stromsparmodi existieren sie, als automatische> Aufrufe nicht.
Es gibt zumindest keine Vektoren. Es gibt aber ein System Interrupt
Pending Register für den Komperator, Timer, etc. Daß man dieses Register
selbstständig abfragen muß, führt natürlich das Interruptkonzept ad
absurdum. Vektoren hätte man ihm schon spendieren können, IMO.
>> Mir scheint, hier soll die neue Controllerlinie>> willkürlich schlecht gemacht werden, denn das kann nur mutwillige>> Vorspiegelung falscher Tatsachen sein.
Daher möchte ich mich hiermit beim OP entschuldigen, er hat recht, wenn
er schreibt, es gäbe keine Vektoren und keinen Stackpointer. Mein
Fehler. Allerdings wundert mich dann schon, wie er den C-Compiler
übersehen hat können, über den stolpert man ja schon fast zwangsläufig.
> Sie sind hier im Forum völlig falsch untergebracht.
Finde ich nicht. Es ist doch schön zu sehen, was es sonst noch auf
dieser Welt an Hardware gibt. Leider gibt es für viele nur PIC und AVR,
Themen die mich persönlich eher weniger interessieren. Ich mag halt
eher die exotischeren Familien, es lohnt doch immer wieder über den
eigenen Tellerrand zu blicken.
> Für industriellen Einsatz in grossen Stückzahlen möglicherweise sinnvoll
Wobei ich bei großen Stückzahlen auch eher OTPs oder maskenprogrammierte
Typen einsetzen wollen würde, da nochmals billiger. Von dieser Familie
gibts aber anscheinend (soweit ich sehe) nur Flash-Typen. $0.32 für den
kleinsten Typen bei 10.000 Stück ist meiner Meinung nach nicht gerade
billig. Das muss günstiger gehen. Aber es ist eben Freescale.
> im Hobbybereich und bei Kleinstückzahlen m.E. völlig sinnlos,
Gerade beim Hobby kann man sich ja auch mal auf eine alternative
Lösungsmöglichkeit einlassen, da man von diversen Zwängen, die sich im
beruflichem Umfeld ergeben können, befreit ist. Angenommen, ich möchte -
aus Lust am Hobby und zur Erweiterung des Horizonts - gerne eine kleine,
beschränkte Architektur lernen, wo es keine Interruptvektoren gibt, und
ich nur eine Rücksprungadresse zur Verfügung habe, würde sich der RS08
wohl eher exzellent eignen.
> weil dafür keine Vorteile vorhanden sind, wohl aber etliche Nachteile.
Ich kann weder Vor- noch Nachteile erkennen.
Gruß, Iwan
Иван S. schrieb:
> Ich mag halt> eher die exotischeren Familien, es lohnt doch immer wieder über den> eigenen Tellerrand zu blicken.
Für Exoten habe ich durchaus auch was übrig. Allerdings nicht im
praktischen Einsatz, nur der Neugierde zuliebe. Diese RS08 sind mir nur
nicht exotisch genug. Da kenne ich Besseres.
Wenn dir nach Exoten zumute ist, dann wirf mal einen Blick auf die
soweit mir bekannt einzige real existierende One-Instruction-Machine
(immerhin 2 Adressierungsarten): MAXQ2000. Und spiel mal durch wie man
bei dem Ding auf den Speicher zugreift, byte- wie wortweise. Das Ding
wirkt, als hätte jemand frisch aus den gelegentlichen
Architekturdiskussionen in Informatik-Ecken einer Uni kommend noch im
Vollrausch einen Prozessor entworfen.
Fehlt eigentlich nur noch, dass demnächst einer mit der Turing-Maschine
ankommt.
Hi,
so neu ist dier µC nun auch wieder nicht, vor ca. 2 Jahren verschenkte
Spörle StarterKits für diesen µC. Ich hatte eines erhalten und mir
einmal die beiliegenden Doku´s durchelesen (war zu der Zeit, als in
Elektor der "größere" Bruder mit dem SoftTec Spyder behandelt wurde.
Wenn ich es noch richtig in Erinnerung habe lässt sich der µC
tatsächlich nur in Assembler programmieren und ist für absolute LowCost
Anwendungen ähnlich gut geeignet wie die PIC10/12 und Attiny (8pinner).
Da Freescale den Sample-Service aktuell nur über einen Distributor
abwickelt find ich sie ziemlich uninteressant für den Hobbybereich.
Daher mein Tipp, nutze die gut verfügbaren PIC´s bzw. AVR´s und vergiss
solche Exoten, der Aufwand in die Einarbeitung lohnt nicht, es sei denn
du musst es vom Arbeitgeber aus.
>aus Lust am Hobby und zur Erweiterung des Horizonts - gerne eine kleine,>beschränkte Architektur lernen, wo es keine Interruptvektoren gibt, und>ich nur eine Rücksprungadresse zur Verfügung habe, würde sich der RS08>wohl eher exzellent eignen.
Aus Lust am Hobby würde ich mit so einem Schrott keine Zeit
verschwenden.
Da fang ich dann lieber doch noch mal an VHDL zu lernen. Da kann
man wenigstens was mit anfangen.
holger schrieb:
> Da kann man wenigstens was mit anfangen.
Muss ein Hobby unbedingt praktisch sein? Mit einem RCA 1802 kam man
immerhin schon im letzten Jahrhundert bis ins All, was nicht jeder Mikro
von sich behaupten kann. Der hat immerhin 16 Program-Counter, wer kann
das sonst bieten? Ansonsten war der unpraktisch bis ins Mark, das einzig
Gute war die CMOS-Technik. Kann man aber tatsächlich noch kaufen, Segor
hat noch welche (der wirft wohl nie was weg ;-).
A. K. schrieb:
> Wenn dir nach Exoten zumute ist, dann wirf mal einen Blick auf die> soweit mir bekannt einzige real existierende One-Instruction-Machine> (immerhin 2 Adressierungsarten): MAXQ2000. Und spiel mal durch wie man> bei dem Ding auf den Speicher zugreift, byte- wie wortweise.
Danke für den Tip, ich hab mal ein paar passagen aus dem User Guide
überflogen, und muß sagen, daß mir das ganz gut gefällt. Ein
Register-Move und ein Immediate-move, was will man mehr? Das nenn' ich
mal echtes RISC ;-)
Ich werd' mir morgen das User Guide auf jedenfall nochmal genauer zu
Gemüte führen, da sind noch einige Schmankerl für mich versteckt,
scheint mir.
> Das Ding wirkt, als hätte jemand frisch aus den gelegentlichen> Architekturdiskussionen in Informatik-Ecken einer Uni kommend noch im> Vollrausch einen Prozessor entworfen.
Ich find das ganze schon sehr durchdacht, nur etwas gewöhnungsbedürftig.
Dankend, Iwan
Иван S. schrieb:
> Ich werd' mir morgen das User Guide auf jedenfall nochmal genauer zu> Gemüte führen, da sind noch einige Schmankerl für mich versteckt,> scheint mir.
Yep. Code der auf's Flash zugreifen will kann nicht selber im Flash
liegen. Code der auf's RAM zugreifen will kann nicht selber im RAM
liegen. Ok, die Busstrukturen lassen grüssen, ist so einfacher für die
Hardware-Spezis.
Wobei im Datenadressraum auch Flash liegt, was ja eigentlich ganz
praktisch ist (und bei AVR nicht, was recht unpraktisch ist). Aber man
eben auf das Flash im Datenadressraum nicht mit Code zugreifen kann, der
- wie üblich - im Flash liegt.
Wie also kann man Code schreiben, der gleichermassen auf Flash wie RAM
zugreifen kann? Richtig: Mit Code der in einem dritten Speicher liegt,
einem ROM mit ein paar Hilfsroutinen.
Wie gesagt, im gleichen Adressraum liegt sowohl Flash wie RAM. Sowohl im
Code- wie im Datenadressraum. Allerdings in beiden an unterschiedlicher
Stelle, d.h. das gleiche Flash-Wort liegt im Coderaum an einer anderen
Adresse als im Datenraum. Das gilt umgekehrt auch bei RAM.
Adressiert werden Bytes, wenn Bytes gemeint sind. Worte, wenn Worte
gemeint sind. 2 aufeinanderfolgende Bytes haben also wie üblich den
Abstand 1, 2 Worte aber auch. Erspart Alignment-Probleme, die treten so
garnicht auf. Aber es gibt Worte, die als Bytes nicht ansprechbar sind,
weil sie in der 2. Hälfte vom Wortadressraum liegen.
Würde mich ausserdem interessieren, wie laut der C-Compiler-Autor
deshalb beim Gedanken an type casts von pointern geflucht hat, weil die
gelegentlich umrechnen müssen. Ich kann mir rund um solche type casts
auch ein paar böse Fallen für Programmierer vorstellen, an die kein
Mensch denkt der auf normalen Maschinen laufen gelernt hat.
Sehr durchdacht kann schon sein. Aber eher im Sinn des Marquis de Sade.