MCU für Assembler: AVR oder doch was Anderes?

Oct 21, 2010 108 Replies

Heiko Nocon schrieb:

[zur C-Deklaration "volatile void *next;"]

Es sagt dem C-Compiler zweierlei.

  1. Es handelt sich um einen Zeiger auf etwas unbestimmtes (void)
  2. Das, worauf gezeigt wird, kann durch nicht vom Compiler veranlassten Code geändert werden. Gerade (2) ist im Hinblick auf Optimierungen wichtig.

Mit volatile verhinderst Du, daß ein guter Optimierer zu viel und deshalb aus Programmierersicht falsch optimiert. Beispiel:

/*0*/ int irq_counter; /* wird in ISR inkrementiert */

/* wartet, bis mindestens ein Interrupt auslöst */ void wait_for_irq() { /*1*/ int start_counter = irq_counter; /*2*/ while(start_counter == irq_counter) ; /* !! */ /*3*/ /* hier kommt er vielleicht nie hin */ }

Ein optimierender Compiler erkennt, dass sich nach (1) offensichtlich start_counter und irq_counter nicht ändern. Deshalb ist die while-Bedingung immer true und es entsteht eine Endlosschleife. Eine Endlosschleife kann zu Label: jmp Label optimiert werden. OK, ein guter Compiler sollte vielleicht noch eine Warnung ausgeben.

Wenn (0) als volatile int irq_counter; deklariert wird, sagt es dem Compiler, daß er die Bedingung in der while-Schleife tatsächlich generieren muß.

- Heinz

Siehe das frische Photo im 48Mhz Thread. :)

Das LCD benoetig zum Betrieb ein paar Kondensatoren. Wie der Zufall es so will habe ich mir dafuer auch mal eine Platine gemacht und einen Grafikbus dafuer erfunden dessen Stecker sich auch auf meinem M16C Board befindet. .-) (100% SMD) Ohne eine Platine laesst es sich nur schlecht verwenden weil es Kontakte hat die zum aufloeten auf ein Layout gedacht sind. Da gibt es keinen Stecker fuer.

Olaf

Ich weiss nicht ob der Comiler das unbedingt benoetigt. Ich denke aber das volatile notwendig ist. Grund dafuer ist das ich in C ein struct mit verschiedenen Variablen erzeuge, "next" ist nur eine davon, und sie nicht alle in C verwende. Auf diese Variablen wird teilweise nur im Assemblercode und da auch nicht direkt sondern ueber den Framepointer drauf zugegriffen. Da moechte ich es nicht erleben das mir der Compiler die Variable wegoptimiert.

[olaf] ~/sources/M16C62A/MultiTest: m32c-elf-gcc --version m32c-elf-gcc (GCC) 4.1.1

Ich fuerchte das sehe ich etwas anders. Ein Grund ist z.b das ich gerade meine komplette Libary fuer das Pollin LCD aus meinem M16C Verzeichniss zum sh2a rueberkopiert habe und ich nach einmal make bereits etwas auf dem LCD lesen konnte. Einfach so. Hat keine 15min gedauert und dabei sind schon 5min draufgegangen weil ich noch einen Pullup an der /CS Leitung auf der Platine vergessen hatte.

Olaf

Ich muss allerdings sagen die Internetseiten von Renesas sind etwas chaotisch. Es gibt IMHO fuer alles mehrere Zugaenge. Jedenfalls sieht die Seite bei denen jedesmal anders aus. Und ich lade dort in 99% der Faelle was runter ohne das ich mich registrieren musste. Allerdings ist das auch schonmal vorgekommen. Du kannst dich jedenfalls darauf verlassen das sie zu allem wirklich ausfuehrliche Dokus haben. Bloss das finden ist manchmal nicht so einfach. Es gibt z.B auf jedenfall eine Doku die dir zeigt wie du mit dem HEW ein neues Projekt anlegst und damit rumpielst. Aber frag mich nicht wie die heisst.

Gestern kam eine Email das jeder der es haben will ein neue RX Board bekommen kann um an einem Contest teilzunehmen.

formatting link

Ist ja ganz nett, aber ich fuerchte meine coolen Ideen brauche ich erstmal fuer mich selber. :)

Olaf

Olaf Kaluza schrieb:

Was mich daran erinnert, dass ich hier noch ein Eval-Board zum M16C/26A herumliegen habe, für das ich ja doch keine Zeit finden werde und das ich an einen anderen M16C-Interessenten abgeben kann.

Das Kit mit einem M30260F8AGP weist neben dem Üblichen (LEDs, Microtaster) als Besonderheit einen Audioverstärker plus Klinkenbuchse sowie einen 8-MBit-Dataflash-Baustein auf. Programmier- und (wimre) debugbar ist es per USB. Es ist so gut wie neu, einmal ausgepackt, nie wirklich benutzt. Das Kit ist von 2008, leider finde ich auf Anhieb keine Informationen bei Renesas dazu.

Für 5 Euro für Porto und Verpackungsaufwand würde ich es abgeben. Bitte per E-Mail anfragen: czietz (at) gmx.net.

Christian

Christian Zietz - CHZ-Soft - czietz (at) gmx.net WWW: http://www.chzsoft.de/ PGP/GnuPG-Key-ID: 0x6DA025CA

Olaf Kaluza schrieb:

Oh, da kann das Board natürlich nicht mithalten, das ich gerade gegen Portoerstattung abgeben will.

Wenn ich nicht schon wüsste, dass ich eh keine Zeit dafür haben würde, würde ich mich glatt um so ein Board bewerben. (Obwohl, ich hatte mal beruflich mit M16C zu tun und habe die Entwicklungsumgebung nicht in bester Erinnerung. Hat Renesas da mittlerweile nachgebessert (bzw. war die für die RX-Serie schon immer besser)?)

Christian

Christian Zietz - CHZ-Soft - czietz (at) gmx.net WWW: http://www.chzsoft.de/ PGP/GnuPG-Key-ID: 0x6DA025CA

Als ich mit den Teilen angefangen habe (4-5Jahre) war das noch etwas wackelig und ist auch ab und an mal abgestuerzt. Lag wohl daran das sie damals noch die M16C in den HEW eingebaut haben. Urspruenglich kommt die Oberflaeche ja von Hitachi.

Mittlerweile laeuft es aber gut. Ich kenne jetzt aber nur M16C/R8C, R32 und SH2. Zu den RX kann ich nichts sagen.

Olaf

[x] done:)
Bye, Dietmar

Ich hab auf die Dokuseiten mal Flashget losgelassen, und an deren Seiten bin ich heute auch schon leicht verzeifelt, vor allem wenn man versucht, mal Quellcodes von Application Notes runterzuladen - da ist dann auch ein Login dazwischen. Grml. Bei Atmel war das deutlich einfacher.

Ha, guter Tip, denn im Zuge dessen ließ sich die Installations-CD für dieses Kit runterladen, auf dem auch die HEW 4.08 enthalten ist - sofern da nicht ein Haken bei ist und das Ganze nur mit diesem Spezialboard geht.

Lese dort auch gerade, daß man auch ohne Contest ein Free Demo Kit (Launch Promo) bekommen kann - allerdings nur, wenn man in Nord- oder Südamerika zu Hause ist. Sowas aber auch.

Bye, Dietmar

Hm..gerade bei Applikationen bin ich sicher das es auch ohne Login geht. Aber gut, ich lade da auch nicht jeden Tag was runter. Mag also sein das sich da was gaendert hat. Mal testen...

formatting link

Ich habe gerade auf der Seite mal die Applikation fuer I2C runtergeladen.

formatting link

Dazu musste ich mich nicht anmelden. Die scheint auch ganz neu und lesenwert zu sein. :)

Auch das HEW Usermanual (rej10j2169_hew48_u.pdf) haette ich normal runterladen koennen.

Du findest im uebrigen auch bei Glyn das ein oder andere. Allerdings musst du da etwas aufpassen weil die nicht immer die aktuellsten Datenblaetter auf der Homepage haben.

Oh...und hier gibt es noch ein Brennprogramm fuer RS232 unter Windows das nicht von Renesas ist:

formatting link
formatting link

Olaf

Das Dokument runterladen geht ohne Login. Klicke aber mal rechts auf den Link "C-Source", dann kommt eine weitere Seite mit rotem Download-Knopf, und dieser geht ausschließlich mit Login.

Andererseits dürfte sich der Quellcode auch im Dokument selbst befinden und wenn die das nicht gesperrt haben auch rauskopieren lassen ...

Ja, das geht alles ohne Login, nur eben so Dokumente wie oben nicht.

Herzlichen Dank.

Bye, Dietmar

Hm..gut das kann sein. Den Source lade ich mir nur seltenst mal runter.

Olaf

p.s: Email angekommen?

Auch wenn ich's grad nicht akut brauche würd' mich mal interessieren, obs da auch zumindest Bestandteile einer Entwicklungsumgebung verfügbar sind, die nicht nur kein Windows brauchen, sondern auch von bestimmten Linux-Distributionen unabhängig sind. Klar, 'n gcc als cross-compiler ist noch nicht die Hürde, aber irgendwie muß man das Kompilat dann ja noch in den Controller bekommen, und debuggen will man möglicherweise auch. Und spätestens dann ist man schon aufgeschmissen, wenn man nicht wenigstens ein gut abgehangenes RedHat irgendwo am laufen hat. Aber mit Exoten wie Archlinux, LinuxFromScratch oder Gentoo ist man recht schnell geplatzt. Vernünftige Doku dazu wäre natürlich auch recht schön... Dann kann man nämlich mit den Quellen bzw. äquivalenter OpenSourceSoftware oft noch was reissen.

Gruß, Florian

Du kannst eigene Programme problemos ueber RS232 reinladen. Fuer den E8 gibt es IMHO keine Unterstuetzung.

Ehrlich gesagt ich weiss nicht ob es fuer die M16C einen gdb-stub gibt, fuer den SH2 hab ich einen, aber der ist alles andere als ausgereift.

Ich nutze Mandrake und uebersetze alles selbst.

Olaf

Jep. War nur aufm Sprung zum Zug und erst eben wieder online:)

Bye, Dietmar

Michael Baeuerle schrieb:

Sehr schön auch hier:

formatting link

MfG hjs

Rafael Deliano :

Mhh, IRC ist aber mindestens genauso alt wie usenet :-).

M.

Hans-Jürgen Schneider :

Macht TI bei den MSP430 so: bei Bugs im Chip wird erstmal versucht, die im Assembler oder Compiler zu flicken, ehe die die Maske ändern. ;-(

M.

Ich war heute in meiner alten Heimat, im Keller lagen noch zwei Originalverpackungen mit den Mini-Boards von Glyn.

Ein EVBM16C/62P und einen EVBM16C/6NA, mit CD und Manual.

Die Dinger dürften laut Manual und meiner Erinnerung so ungefähr von 2003 sein. Auf der CD ist der NC30, KD30 und Trial-Versions von IAR, Altium/Tasking.

Olaf, wäre das noch was sinnvolles? Ich weiß echt nicht mehr den Leistungsumfang von den Teilen und habe jetzt keine Lust zu lesen. Hatte nur ein Projekt mit den Controllern gemacht.

73 de Tom
DL7BJ * DL-QRP-AG #1186 * AGCW-DL #2737 * DARC OV I19 * http://www.dl7bj.de

Am 25.10.2010 18:16, schrieb Matthias Weingart:

Das halte ich aber für ein Gerücht!!!

Gruß Joachim

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required