Forum: Mikrocontroller und Digitale Elektronik Suche Assembler für 32-bit ARM


von Peter H. (peterhofbauer)


Lesenswert?

Suche Assembler für 32-bit ARM

Will vom ATMEGA zu irgend einen 32-Bitter umsteigen. Habe einige IDEs 
dafür auf den PC und kurz getestet. Mir fehlt aber ein "richtiger" 
Assembler, der Inline-Assembler ist für größere Programmteile 
ungeeignet.
Gibt es das und wenn ja, Wo? Ich kann im Netz nichts dazu finden, außer 
schlaue Bemerkungen: "So was braucht man nicht".
Vielen Dank!

Gruß Peter

von (prx) A. K. (prx)


Lesenswert?

Da der GCC keinen Binärcode erzeugt, sondern Assembler-Quellcode, wirst 
du im Gefolge eines auf GCC basierenden Entwicklungsssystems immer auch 
den passenden Assembler finden.

von avr (Gast)


Lesenswert?

Die meisten C-Compiler kommen in der Regel auch mit einem Assembler. Du 
kannst eigentlich eine beliebige IDE nehmen und anfangen den Startupcode 
umzuschreiben. Für ein reines Assemblerprogramm musst du dann aber 
wahrscheinlich doch eher mit einem Makefile oder so arbeiten. Ich glaube 
nicht dass es IDEs gibt, die reine Assemblerprogrammierung von ARMs 
unterstützen.

von Oliver S. (oliverso)


Lesenswert?

Keine Ahnung, was du unter "richtige" Assembler verstehst, aber das, was 
Google unter "arm assembler" findet, oder der, der in jeder gcc - Arm - 
toolchain dabei ist, scheint es ja nicht zu sein.

Also, was ist ein "richtiger" Assembler, und was spricht gegen den in 
der Standard-Toolchain?

Oliver

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Assembler-Inlines in C verwenden zwar den gleichen Assembler wie 
separater Assembler-Quellcode, die praktische Programmiertechnik ist 
aber erheblich verschieden. Für grössere Codesequenzen sind Inlines 
unpraktisch. Der GNU Assembler in den binutils ist ein vollwertiger 
Assembler, inklusive Makros und bedingter Assemblierung.

: Bearbeitet durch User
von Guest (Gast)


Lesenswert?

Segger Embedded Studio
https://www.segger.com/embedded-studio.html

Wüsste jetzt nicht wo das Problem sein sollte ein Projekt zu benutzen, 
in dem kein einziges C Modul ist.

von Peter D. (peda)


Lesenswert?

Einfach die Quelltext-Datei *.S nennen und dem GCC übergeben.

von Oliver S. (oliverso)


Lesenswert?

A. K. schrieb:
> ...

Danke, aber die Frage ging an den TO ;)

Oliver

von (prx) A. K. (prx)


Lesenswert?

Meine Antwort auch. ;-)

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

gibt es keine GNU "Binutils" für 32bit-ARM?

z.B. unter ubuntu:
https://wiki.ubuntuusers.de/Archiv/GNU_ARM-Toolchain/

von Peter H. (peterhofbauer)


Lesenswert?

Vielen Dank für die schnellen Antworten!
Jetzt kann ich also davon ausgehen, das es auch mit Asm noch geht.
Mit den Stichworten hier werde ich das hinbekommen.

Gruß Peter

von W.S. (Gast)


Lesenswert?

Peter H. schrieb:
> Suche Assembler für 32-bit ARM

Wo ist das Problem?

Lade dir einfach die Demo vom "Keil" herunter und du wirst dort einen 
guten und professionellen Assembler für ARM-Zielplattformen finden.

Kann ja aber auch sein, daß du einen Assembler suchst, der AUF einer 
ARM-Architektur läuft. Da muß ich passen, also drück dich nochmal exakt 
aus, wonach du eigentlich suchst.

W.S.

von (prx) A. K. (prx)


Lesenswert?

W.S. schrieb:
> Kann ja aber auch sein, daß du einen Assembler suchst, der AUF einer
> ARM-Architektur läuft. Da muß ich passen,

Das wär zu einfach. Dafür braucht man bloss einen RasPi mit 
installierten binutils. ;-)

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Scheint vielen nicht klar zu sein: Der gcc ist kein C-Compiler. Der gcc 
ist ein Compilerdriver. Der eigentliche C-Compiler heisst cc1. Der gcc 
guckt sich die Endungen des/der Files an, die ihm zum Frass vorgeworfen 
werden und ruft davon (und von den Kommandozeilenoptionen) abhaengig 
Praeprozessor, Compiler, Assembler und Linker auf. Kann man auch schoen 
angucken, wenn man mal ein

gcc -save-temps -v hello.c

macht. Dann "erzaehlt" der gcc, wen er alles mit welchen Argumenten 
aufruft, etc. und er loescht die diversen files nicht, die er auf dem 
Weg vom .c zum executable so anlegt.

Das "schoene" an gcc/binutils ist, dass man damit auch solche netten 
Sachen treiben kann:
https://en.wikipedia.org/wiki/Cross_compiler#Canadian_Cross

Wenn man tatsaechlich mal nur einen ARM-assembler, der auf einem Arm 
laeuft braucht, dann ist das ja nur kalter Kaffee :-D

Gruss
WK

von Peter H. (peterhofbauer)


Lesenswert?

Hallo!

Hier noch mal genauer um was es mir geht.
Mein aktive Zeit habe ich hinter mir, mache das als Hobby um nicht 
einzurosten. Teure Software entfällt. Die Anforderungen bei mir sind 
nicht mit denen eines Profis identisch. Ich will mit den Prozessor 
arbeiten, haber aber absolut keine Lust mich mit überfrachteten IDEs rum 
zu ärgern.

Was ich suche:
Ich entwickel Hardware und dazu ist immer auch ein Controller nötig. Den 
ich sehr Harware-nahe einsetze. Bisher habe ich den ATMEGA verwendet. 
Jetzt habe ich aber Projekte vor, bei denen der ATMEGA, auch in 
Assembler programmiert, zu langsam ist. Also habe ich das www nach Tools 
für den STM32 (oder ähnlich) durchsucht. Mir fehlten leider die 
richtigen Begriffe. Finde aber nur C bis zum abwinken. Meine Befürchtung 
ist, das ich mit STM32 + C nicht viel mehr erreiche.

Was ich gefunden habe:
Der Hinweis auf die GNU "Binutils" hat geholfen. Der Assembler nennt 
sich "as.exe" und der Linker "ld.exe".
Habe mit einer Testdatei aus dem www getestet:
  as -mcpu=cortex-m3 -oblinky.o blinky.S  >> funktioniert
  as -mcpu=cortex-m3 -ostartup.o startup.S  >> dto
  ld startup.o blinky.o  >> funktioniert,
mal abgesehen das noch einiges dem Linker fehlt.

Jetzt werde ich mir erstmal ein Board (NUCLEO...) besorgen und dann 
gehts weiter.

Gruß Peter

von Peter II (Gast)


Lesenswert?

Peter H. schrieb:
> Finde aber nur C bis zum abwinken. Meine Befürchtung
> ist, das ich mit STM32 + C nicht viel mehr erreiche.

Die laufen doch mit bis zu 72Mhz - da sollte auch mit C einiges mehr 
drin als beim Atmel.

Ich würde es zumindest mal testen, bevor man sich mit ASM beschäftig.

von Dr. Sommer (Gast)


Lesenswert?

Peter H. schrieb:
> Meine Befürchtung
> ist, das ich mit STM32 + C nicht viel mehr erreiche.
Mit halbwegs ordentlichem C Code kannst du natürlich ein vielfaches der 
Leistung aus einem Cortex-M4, wie zB STM32F4, erreichen als wie mit dem 
AVR. Wie wärs damit, es erst einmal mit C oder C++ auszuprobieren, und 
nur wenn es tatsächlich zu langsam ist, sich die Mühe zu machen 
Assembler zu verwenden? Insbesondere hast du so direkt Code, mit dem du 
anfangen und optimieren kannst... Es hat schon einen Grund warum du 
wenig zu Assembler gefunden hast - die Cortex-M sind auf C optimiert, 
und moderne Compiler erzeugen schon fast perfekten Code, das kannst du 
von Hand kaum besser schaffen, insbesondere mit Hinblick auf 
Pipeline-Optimierungen, für die man den Core schon sehr genau kennen 
muss.

von hp-freund (Gast)


Lesenswert?

... und nicht den DMA vergessen ...

von Dr. Sommer (Gast)


Lesenswert?

Peter II schrieb:
> Die laufen doch mit bis zu 72Mhz - da sollte auch mit C einiges mehr
> drin als beim Atmel.
Die neuen STM32F7 gehen bis 216 MHz und sind teilweise superskalar, 
können also 2 Befehle in einem Takt ausführen. Zudem sind die Befehle 
auch gleich viel mächtiger (32bit und FPU halt). Kein Vergleich zu den 
gammeligen 20MHz-AVR's...

von (prx) A. K. (prx)


Lesenswert?

Es ist ziemlich offensichtlich, dass er kein C sucht. Und da er dies 
bisher kein Bisschen missionarisch sieht, sondern einfach nur einen 
Assembler sucht, sehe ich erst einmal wenig Sinn darin, in zu C 
missionieren zu wollen.

von hp-freund (Gast)


Lesenswert?


von Georg (Gast)


Lesenswert?

A. K. schrieb:
> Und da er dies
> bisher kein Bisschen missionarisch sieht

Er ist ja auch nicht der Missionar, er ist der primitive Wilde, den man 
zu den "Benefits of C" bekehren muss...

Jedenfalls nach Meinung der C-Missionare. Die Tatsache, dass man hier 
sofort lächerlich gemacht wird, wenn man das Wort Assembler auch nur in 
den Mund nimmt, musste ich hier im Forum auch gerade mit dem C-Guru 
Peter Dannegger machen.

Georg

von Lothar (Gast)


Lesenswert?

Peter H. schrieb:
> Mir fehlt aber ein "richtiger" Assembler, der Inline-Assembler
> ist für größere Programmteile ungeeignet.

Der Hinweis auf die kostenfreie Version von Keil IDE und IAR IDE ist 
schon richtig und ASM dürfte kaum über das 32KB Code-Limit kommen. Hier 
mal ein Beispiel wie in IAR standalone ASM Blinky für LPC ARM aussieht:

        MODULE  ?main
        PUBLIC  __iar_program_start

        SECTION .text:CODE(2)
        CODE

__iar_program_start
main
        MOVS R0, #10000B        ; für P0.4 bit 4

        LDR  R1, DIR0           ; R1=DIR0=0xA0002000
        STR  R0, [R1]           ; P0.4 output

        LDR  R1, PIN0BASE       ; R1=PIN0BASE=0xA0000000

        MOVS R2, #0
        MOVS R3, #1
loop
        STRB R2, [R1, #4]       ; clear P0.4
        BL   delay
        STRB R3, [R1, #4]       ; set P0.4
        BL   delay

        B    loop

von Mark B. (markbrandis)


Lesenswert?

Peter H. schrieb:
> Ich will mit den Prozessor arbeiten, haber aber absolut keine Lust mich
> mit überfrachteten IDEs rum zu ärgern.

Das hat dann freilich mit der Wahl der Programmiersprache rein gar 
nichts zu tun. Eine GCC Toolchain (und auch diverse andere Compiler und 
Assembler) kann man immer auch von Hand an der Kommandozeile bedienen, 
wenn man das will. Als Editor für den Code kann man irgendeinen 
beliebigen Texteditor nehmen, und sei es Emacs (obwohl vi besser ist ;-)

Somit ist es völlig wahlfrei, ob man nun in Assembler oder C oder C++ 
programmiert.

> Finde aber nur C bis zum abwinken. Meine Befürchtung ist, das ich mit
> STM32 + C nicht viel mehr erreiche.

Wie kommst Du auf die Idee? Ein STM32 mit ARM Cortex Kern und 32 Bit ist 
schon eine andere Nummer als ein ATmega mit 8 Bit. Auch bei der 
maximalen Taktfrequenz lassen die STM32 die ATmegas weit hinter sich.

Georg schrieb:
> Jedenfalls nach Meinung der C-Missionare. Die Tatsache, dass man hier
> sofort lächerlich gemacht wird, wenn man das Wort Assembler auch nur in
> den Mund nimmt

Wenn schon Assembler, dann bitte aus den richtigen Gründen. 
"Überfrachtete IDE" als Begründung für oder gegen eine bestimmte Sprache 
kann man als Argument nicht gelten lassen. Programmiersprache und 
Entwicklungsumgebung sind nun mal zwei völlig verschiedene Dinge.

: Bearbeitet durch User
von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Zu den ARM7TDMI gibts noch eher Assembler-Literatur aber die sind auch 
noch eher als Mikrocontroller zu sehen.
ISBN 9781447717157 von 2011/2007

zu Cortex M3 und M4:
ISBN 9780124080829
The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors 2013
auch die DSP-Funktionen im M4

von Robert T. (robertteufel)


Lesenswert?

Ist noch etwas unklar wofuer der ATmega zu langsam ist. Falls wir von 
pin togglen sprechen, dann ist beim einen oder anderen ARM eine derbe 
Ueberraschung faellig, dafuer sind die nicht so wirklich gemacht.
Sollte es sich allerdings um Algorithmen handeln um beispielsweisse 
Sensordaten zu Verknuepfen und mit Modellen neues Verhalten 
vorherzusagen, dann ist ein Cortex-M4 auch mit "C" Lichtjahre schneller.
Persoenlich habe ich sehr viel Repekt vor dem ARM Assembler, sogar 
soviel, dass ich ihn nicht anruehre, allerdings hab ich auch mit den 
Bitmanipulationen aufgehoert, als ich die 8-bit verlassen hab.
Also wenn es tatsaechlich um Bitvariablen geht, dann ist es vielleicht 
wirklich am besten ASM zu benuetzen.
Allerdings moechte ich noch gesagt habe, dass es fuer en M0+ mehrere 
Anbieter gibt, die auch einen kostenlosen Keil C-Compiler anbieten mit 
256KB Limit.
Also Kosten sind wirklich kein guter Grund mehr von "C" Abstand zu 
nehmen. Ein Abneigung gegen "C" ist allerdings durchaus eine 
Moeglichkeit warum sich Peter mehr fuer ASM interessieren koennte.
Viel Spass beim Erkunden des unteren Endes der 32-bit Welt.

Cheers, Robert

von Georg (Gast)


Lesenswert?

Mark B. schrieb:
> "Überfrachtete IDE" als Begründung für oder gegen eine bestimmte Sprache
> kann man als Argument nicht gelten lassen.

Das ist schon wieder so eine Sprachverirrung: wir sind hier doch nicht 
vor Gericht, wo du als Richter entscheidest welche Argumente anerkannt 
werden und welche nicht. Wenn der TO Assembler programmieren will und 
keine IDE mag, dann ist das seine freie Entscheidung - das DARF er!

Die C-Missionierung eifert hier wohl den spanischen Vorbildern nach: 
wenn die in Amerika einem neuen Indianerstamm begegnet sind, hat ihnen 
ein Priester die Bibel entgegengehalten, und wenn sie nicht auf die Knie 
fielen, wurden sie umgehend geköpft. Aber klar, das waren ja auch bloss 
primitve Wilde, wie heute die Assemblerprogrammierer.

Georg

von m.n. (Gast)


Lesenswert?

A. K. schrieb:
> sehe ich erst einmal wenig Sinn darin, in zu C
> missionieren zu wollen.

Das würde ich auch nicht machen wollen, aber ein Hinweis auf C ist schon 
sinnvoll, um ihn eine wenig hinter dem Ofen hervorzuholen ;-)
Am Anfang war für mich C ein besserer Assembler, der die ganze 
Knochenarbeit abgenommen hat.

Peter H. schrieb:
> Jetzt werde ich mir erstmal ein Board (NUCLEO...) besorgen und dann
> gehts weiter.

Das ist schon mal gut! Ich würde zum ..F411RE raten.

von temp (Gast)


Lesenswert?

Lothar schrieb:
> MODULE  ?main
>         PUBLIC  __iar_program_start
>
>         SECTION .text:CODE(2)
>         CODE
>
> __iar_program_start

In der Regel sind die Programme aber keineswegs so simpel. Und der Teil 
um den STM32 mit PLL und 72MHz zu betreiben wird die Anzahl der Zeilen 
in deinem Code sicher auch mindestens verdreifachen. Als größten 
Nachteil von reinem Assembler sehe ich, dass man wirklich alles selbst 
machen muss. Beispiele von Assembler und Arm im Netz sind sehr rar. 
Allerdings muss man auch sagen, die STM32 Samples sind fast durchgängig 
mit den STM32-Libs gemacht. Wenn man dagegen eine eine natürliche 
Abscheu hat, dünnt sich der verwertbare Teil auch aus.
Die Frage ist ja auch warum Assembler. Wenn es nur die persönliche 
Vorliebe ist erkauft man sich das zu einem hohem Preis. Wenn es um 
Geschwindigkeit geht, sollte man sich besser nicht auf seine Vorurteile 
verlassen. Insbesondere die Architektur der Cortexe ist eine völlig 
andere als bei AVR. Das hat dann z.B. zur Folge, dass das das Setzen 
eines Bits im Port noch lange nicht sofort am Hardwareausgang erscheint. 
Auch das Zählen von Assemblerbefehlen um Laufzeiten zu bestimmen 
funktioniert hier nicht problemlos. Besonders schön ist es, wenn das 
Löschen eines Interruptflags im Interrupt und danach gleich return so 
schnell geht, dass das Bit im Interruptkontroller noch nicht angekommen 
ist und den Interrupt gleich wieder neu triggert. Was ich damit nur 
sagen wollte, Assembler bringt fast nichs um schneller mit der Hardware 
umzugehen, das ist beim AVR anders.

von Axel S. (a-za-z0-9)


Lesenswert?

Georg schrieb:
> Mark B. schrieb:
>> "Überfrachtete IDE" als Begründung für oder gegen eine bestimmte Sprache
>> kann man als Argument nicht gelten lassen.
>
> Das ist schon wieder so eine Sprachverirrung: wir sind hier doch nicht
> vor Gericht, wo du als Richter entscheidest welche Argumente anerkannt
> werden und welche nicht. Wenn der TO Assembler programmieren will und
> keine IDE mag, dann ist das seine freie Entscheidung - das DARF er!

Schon interessant was du Mark hier in den Mund legst, und das in einem 
Atemzug mit der Aufforderung doch nicht alles wörtlich zu nehmen. Denn 
niemand hat Peter verboten, Assembler zu programmieren. Es wurde nur 
(vollkommen zurecht IMHO) darauf hingewiesen daß "überfrachtete IDE" 
kein gültiges Argument gegen C und für Assembler ist.

Mein Rat an Peter ist der gleiche wie ihn Vorredner schon gaben: er soll 
sich eine C Toolchain installieren. Welche genau, ist erstmal egal. Wenn 
er unter Linux (oder einem anderen UNIX) unterwegs ist, dann dürfte GNU 
die beste Wahl sein. Für Windows ruhig auch Keil & Co. Ein Assembler ist 
aus offensichtlichen Gründen immer Bestandteil dieser Toolchain. Und 
falls er C mal ausprobieren will - was ich ihm auf jeden Fall empfehlen 
würde - dann hat er schon alles dabei.

Im Prinzip hat er ein sehr ähnliches Mindset wie W.S. (dem ja schon 
Makefiles zu "fancy" sind). Dann sollte er mit dem Lernbetty Paket von 
W.S. recht glücklich sein. Eine Betty liegt hier noch rum - Peter, wenn 
du die haben willst, melde dich.

Andererseits sind die STM32 Discovery Boards sehr nett und preiswert. 
Man hat im Gegensatz zur Betty einen Debug-Adapter drauf und einen 
aktuelleren ARM Core sowieso.

von hp-freund (Gast)


Lesenswert?

Eigentlich gibt es keinen Streit ob ASM oder C.
Die lassen sich doch wunderbar gleichzeitig nutzen.

In dem ASM link von oben:

> http://www.bravegnu.org/gnu-eprog/index.html

wird am Ende auch dezent zu C übergeleitet ;-)

von Georg (Gast)


Lesenswert?

hp-freund schrieb:
> Eigentlich gibt es keinen Streit ob ASM oder C.
> Die lassen sich doch wunderbar gleichzeitig nutzen.

Das mache ich seit Jahrzehnten so. Aber eben deswegen wehre ich mich 
dagegen, gleich als blöd und rückschrittlich angegriffen zu werden, wenn 
das Thema mal Assembler ist und nicht nur C.

Georg

von Mark B. (markbrandis)


Lesenswert?

Georg schrieb:
> Wenn der TO Assembler programmieren will und
> keine IDE mag, dann ist das seine freie Entscheidung - das DARF er!

Selbstverständlich darf er das. Nur sind seine Argumente für Assembler 
und gegen C eben völliger Käse.

Georg schrieb:
> Aber eben deswegen wehre ich mich dagegen, gleich als blöd und
> rückschrittlich angegriffen zu werden, wenn das Thema mal Assembler ist
> und nicht nur C.

Das hat niemand getan. Jedenfalls nicht in diesem Thread. Entspann 
Dich.

: Bearbeitet durch User
von Peter H. (peterhofbauer)


Lesenswert?

Hallo Freunde!

Einen Glaubenskrieg sollte das hier nicht werden!
Mal kurz ein paar Infos über meine Gründe.

Wegen "übefrachtete IDEs"
Logischerweise habe ich einige IDEs auf meinen PC geladen (Exclipse, 
CoIDE usw) und mit einigen (C-) Beispielen experimentiert. Mir geht es 
um den Lehrnaufwand. Weil ich nur in großen Abständen diese IDEs 
anwenden werde, ist der Lehrnaufwand jedesmal neu nötigt. Oft nur ein 
mal pro Jahr. Auf Erfahrungen kann ich kaum zurückgreifen ("Mist, alles 
vergessen"). Was für einen Profi Zeit spart, ist für mich nur 
hinderlich.

Wegen der Geschwindigkeit
Beim übergang vom (16MHz-) Atmega zum (76MHz-) STM32 habe ich einen 
Geschwindigkeitzuwachs von (76/16=) 4,75. Dazu noch den Zuwachs wegen 
der 32 bit, so da ich bei hoffentlich 10 lande. Das ist für mich 
verdammt knapp, eigentlich zu wenig. Das möchte ich mir nicht mit einen 
C-Compiler teilen. Die relavanten Teile muß ich also sowieso in ASM 
machen. Also muß ich mich auf jeden Fall mit 32bit-ASM beschäfigen. Die 
Beschäftigung mit C + IDE kommt noch oben dauf. Die Probleme habe ich 
jetzt aber nur mit fehlenden Infos zum Assembler. Über C gibt es 
massenhaft.

Was ich vor habe
In meiner aktiven Zeit hatte ich nie die Zeit mal eine Entwicklung in 
Ruhe maximal zu optimieren. Das ewige Gedrängel der sch... Kaufleute! 
Das will ich jetzt mal als Hobbyist machen. Zum Beispiel geht es um die 
Steuerung eines Erodiervogangs. Hier sollen beispielsweise in 2us 
mehrere ADCs und die dazugehörenen Berechnungen ablaufen. Ist eine 
Experimentierei.
Danach ist noch ein HF-Speki in Planung.

Ist erst mal genug Text. Nochmals Danke für jeden "zielführenden" Link!

Gruß Peter

von Michael L. (Firma: Ingenieurbüro Lehr) (ml-net)


Lesenswert?

Na hoffentlich erlebst du die Fertigstellung in Assembler noch.
Wie schon viele geschrieben haben: du bist in Assembler nicht schneller.
Die Compiler sind alle sehr gut.
Nimm nen STM32F4 mit 168MHz und C.

von (prx) A. K. (prx)


Lesenswert?

Peter H. schrieb:
> Beim übergang vom (16MHz-) Atmega zum (76MHz-) STM32 habe ich einen
> Geschwindigkeitzuwachs von (76/16=) 4,75.

Für diese Rechnung sollte man dich dazu verdonnern, 100 Kübel Milch auf 
dem Markt zu verkaufen. Um dich dran zu erinnern, welch schwere Arbeit 
Milchmädchen einst hatten. ;-)

von Lothar (Gast)


Lesenswert?

Robert T. schrieb:
> Falls wir von
> pin togglen sprechen, dann ist beim einen oder anderen ARM eine derbe
> Ueberraschung faellig, dafuer sind die nicht so wirklich gemacht

Die meisten LPC ARM haben wie bereits erwähnt bit-adressierbaren 
Speicher wie ein 8051 und können Pins in einem Zyklus toggeln also 
schneller als AVR

Dazu kommt noch: z.B. der A7 im Raspberry Pi hat zwar einen sehr lahmen 
GPIO Controller dafür läuft der aber mit 1 GHz und ist in ASM beim Pin 
toggeln trotzdem extrem schnell.

von (prx) A. K. (prx)


Lesenswert?

Lothar schrieb:
> Die meisten LPC ARM haben wie bereits erwähnt bit-adressierbaren
> Speicher wie ein 8051 und können Pins in einem Zyklus toggeln also
> schneller als AVR

Viele µCs mit ARM Core haben spezielle Portmodule, die 
Einzelbitoperationen unterstützen. Das ist aber eine Eigenschaft des 
Portmoduls, nicht des ARM Cores.

Bitbanding wiederum läuft beim Schreiben in 2 Buszyklen ab, einem Lese- 
und einem Schreibzyklus. In einem Zyklus zu togglen ist damit also nicht 
möglich.

: Bearbeitet durch User
von avr (Gast)


Lesenswert?

Selbst setzen oder löschen sollte nicht in einem Zyklus gehen, da einn 
nicht sequentieller schreibzugriff auf den ARMs 2 Takte braucht. Somit 
ist doch der AVR beim Portzugriff schneller (idealerweise 1 Takt für 
Toggle/Set/Reset).

Abgesehen davon muss man für effizienten Code bei ARMs ein bisschen mehr 
machen als bei den AVRs. Man kann ohne Probleme besseren Code schreiben 
als der Compiler. Es kostet halt Zeit. Und besonders beim ARM mehr, weil 
man z.B. darauf achten muss, dass man er den Cache gut nutzen kann. Man 
kann den Core durch schlechten Code ziemlich ausbremsen.

von Axel S. (a-za-z0-9)


Lesenswert?

A. K. schrieb:
> Bitbanding wiederum läuft beim Schreiben in 2 Buszyklen ab, einem Lese-
> und einem Schreibzyklus. In einem Zyklus zu togglen ist damit also nicht
> möglich.

Dazu kommt noch, daß der Flash der meisten Cortexe nicht mit dem vollen 
Takt läuft. Z.B. ein STM32 kann zwar die CPU mit 72MHz takten, den Flash 
aber nur mit maximal 24MHz (bei höherem Takt braucht man Waitstates). 
Der Prefetch-Buffer fängt das zwar zum Teil auf, aber trotzdem steigt 
die Systemleistung oberhalb 24MHz Taktfrequenz nicht mehr linear weiter.

von (prx) A. K. (prx)


Lesenswert?

Axel S. schrieb:
> Dazu kommt noch, daß der Flash der meisten Cortexe nicht mit dem vollen
> Takt läuft.#

Beim STM32F7 ist ein echter Cache dazwischen. Inwieweit die Performance 
mit dem Takt steigt hängt davon ab, wie sehr der interessante Teils des 
Programms auf in den Cache passenden Hotspots basiert.

: Bearbeitet durch User
von chris_ (Gast)


Lesenswert?

>Für diese Rechnung sollte man dich dazu verdonnern, 100 Kübel Milch auf
>dem Markt zu verkaufen. Um dich dran zu erinnern, welch schwere Arbeit
>Milchmädchen einst hatten. ;-)

Sehr schön ;-) Ich probiers auch mal mit dem Milchmädchen.

> Beim übergang vom (16MHz-) Atmega zum (76MHz-) STM32 habe ich einen
> Geschwindigkeitzuwachs von (76/16=) 4,75.

Ich habe vor kurzem eines meiner Programme für den Arduino Nano ( 
Atmega328, optimiert für 16 Bit Integer in C ) auf einem Arduino DUE ( 
ARM M3 84MHz ) laufen lassen. Ergebnis: ~Faktor 4

von m.n. (Gast)


Lesenswert?

chris_ schrieb:
> optimiert für 16 Bit Integer in C ) auf einem Arduino DUE (
> ARM M3 84MHz ) laufen lassen. Ergebnis: ~Faktor 4

Ganz schlecht, denn damit zwingst Du den Armen, immer wieder zwischen 16 
und 32 Bit zu konvertieren ;-)

von chris_ (Gast)


Lesenswert?

>Ganz schlecht, denn damit zwingst Du den Armen, immer wieder zwischen 16
>und 32 Bit zu konvertieren ;-)

Ja, ich wollte aber das Programm nicht umschreiben. Die Frage ist: wie 
viel Zeit braucht ein ARM für die Konvertierung? Wie sieht das im 
ARM-Assembler aus .. um zurück zum Thema zu finden ...

von W.S. (Gast)


Lesenswert?

Axel S. schrieb:
> Im Prinzip hat er ein sehr ähnliches Mindset wie W.S. (dem ja schon
> Makefiles zu "fancy" sind).

O ha. Es geht nicht um "fancy" oder nicht, sondern um ganz Rationales.

Nun, ich meine, wer mit Windows arbeitet, der sollte in der Lage sein, 
eine simple Batchdatei zu schreiben und wer ein Linuxer ist, dem sollte 
ein gleiches mit einem simplen Shellscript möglich sein.

Deshalb setze ich den Lernaufwand für eine Batchdatei oder ein 
Shellscript (jeweils simpelste Form) gleich NULL an.

Ein Makefile hingegen ist was ganz anderes, es läuft auf eine quasi 
zusätzliche Scriptsprache hinaus. Das ist deutlich komplizierter, weil 
man eben eine zusätzliche "Sprache" erlernen muß - und wozu? Bloß, um 
kein Shellscript zu schreiben? Das ist m.E. deutlich zu wenig an 
Grund.

Auch das gelegentliche Einsparen von Übersetzungsläufen für unveränderte 
Quellen zieht hier nicht, denn die Projekte, die mit den hier üblichen 
µC gemacht werden, sind bei den heutigen PC's binnen weniger Sekunden 
komplett durchgelaufen.

Nach meiner Erfahrung werden von den Liebhabern von Makefiles selbige in 
der Mehrzahl von bisherigen Projekten kopiert und allenfalls irgendwie 
angepaßt, bis es läuft - vom tatsächlichen Verstehen weit entfernt.

Ein Gleiches gilt für Linkerfiles beim Benutzen des GCC, da wird 
ebenfalls kräftig kopiert ohne wirklich zu verstehen. Da hatte sogar 
jemand auf ein Linkerfile für die Betty-Fernbedienung ein Urheberrecht 
erheben wollen. Ich hatte dann mich mal mit den Namen der diversen 
Sektionen im erzeugten .elf befaßt und siehe da, wenn man gerade in 
Assemblerteilen des Projektes die richtigen Sektionsnamen benützt, dann 
braucht man GAR KEIN Linkerfile, weil für echte Standardfälle der Linker 
sowas bereits eingebaut hat.

Fazit: Gerade beim GCC wird von vielen Pseudo-Gurus eine Menge Schaum 
geschlagen und vieles davon ist eigentlich überflüssig - der GCC kommt 
prächtig auch ohne zu Potte. Makefiles gehören zu diesem Überflüssigen. 
Wir wollen ja keinen Linux- oder WinCe-Kernel für unseren kleinen µC 
kompilieren und uns dafür die Finger an einer Batchdatei wund schreiben.

Kommen wir zum Thema IDE: Ich habe prinzipiell nix dagegen, einen 
ordentlichen Editor zu haben, aber der Umfang heutiger IDE's ist 
erheblich und er lenkt vom Thema und von den eigentlichen Tools sowie 
der eigentlichen Hardware ab. Wer in irgendeine Chipklasse einsteigen 
will, ist besser beraten, sich mit den Basics zu befassen, bis er 
gelernt hat, auf was er sich da einläßt.

Wer firm ist und sich bereits bestens auskennt, den kann dann eine IDE 
mit all ihrem Gewusel auch nicht mehr so vom Thema ablenken, daß er sich 
darin verirrt. Aber wer bereits firm ist, wird die IDE nicht mehr 
brauchen. Das einzige verbleibende Argument für die IDE ist nämlich nur 
das Debuggen auf Quellcode-Ebene, also wo man Schritt für Schritt in 
seinem eigenen C-Quellcode angezeigt bekommt, was die Hardware denn so 
bislang gemacht hat.

Sowas ist gut füe Leute, die ihre Programmiersprache erst noch lernen 
müssen, denn sie stolpern zumeist über den Unterschied zwischen dem, was 
sie meinen und dem, was sie tatsächlich hingeschrieben haben.

Für echte Probleme ist der Debugger hingegen wenig sinnvoll. Da ist 
Oszilloskop und Nachdenken angesagt.

W.S.

von W.S. (Gast)


Lesenswert?

A. K. schrieb:
> Beim STM32F7 ist ein echter Cache dazwischen.

Bleib doch mal auf dem Teppich.
Die meisten Anwendungen in den hier üblichen Gefilden werden mit 
Controllern gemacht, die keinen Cache haben, sondern lediglich mit einem 
intern 64..256 bit breitem Flash. Das hilft schon, jaja. Trotzdem sind 
hie und da Waitstates angesagt.

Der große Vorteil der 32 Bit Controller gegenüber den alten kleinen 8 
Bit Architekturen liegt woanders, nämlich darin, daß man andere 
Algorithmen fahren kann und dadurch schnelleren besseren Code hinkriegt.

Wer hingegen seinen auf 8 Bit optimierten Quellcode einfach so portiert, 
wird den 32 Bit Controller bei jedem Schritt vor das Schienbein treten 
und nur geringe Vorteile bemerken.

W.S.

von Axel S. (a-za-z0-9)


Lesenswert?

W.S. schrieb:
> Axel S. schrieb:
>> Im Prinzip hat er ein sehr ähnliches Mindset wie W.S. (dem ja schon
>> Makefiles zu "fancy" sind).
>
> O ha. Es geht nicht um "fancy" oder nicht, sondern um ganz Rationales.
>
> Nun, ich meine, wer mit Windows arbeitet, der sollte in der Lage sein,
> eine simple Batchdatei zu schreiben und wer ein Linuxer ist, dem sollte
> ein gleiches mit einem simplen Shellscript möglich sein.

Und ein Programmierer sollte ein Makefile schreiben können. So schwer 
ist das nicht. Man muß sich einfach darauf einlassen.

> Ein Makefile hingegen ist was ganz anderes, es läuft auf eine quasi
> zusätzliche Scriptsprache hinaus. Das ist deutlich komplizierter

Sprich nur für dich!

> Nach meiner Erfahrung werden von den Liebhabern von Makefiles selbige in
> der Mehrzahl von bisherigen Projekten kopiert und allenfalls irgendwie
> angepaßt, bis es läuft - vom tatsächlichen Verstehen weit entfernt.

Und wieder sprichst du hoffentlich nur für dich.

Ich denke mal der einzige Grund für deine Ablehnung von Makefiles ist, 
daß du make nicht verstehst. Aus welchem Grund auch immer. Nur 
solltest du deswegen nicht versuchen allen anderen make auszureden.

> ... wer bereits firm ist, wird die IDE nicht mehr
> brauchen. Das einzige verbleibende Argument für die IDE ist nämlich nur
> das Debuggen auf Quellcode-Ebene, also wo man Schritt für Schritt in
> seinem eigenen C-Quellcode angezeigt bekommt

Schon komisch was manche Leute der IDE zuschreiben. Denn das was du 
gerade beschreibst, macht der Debugger. Die Leistung der IDE besteht 
dabei bestenfalls darin, das Fenster des Debuggers aufzunehmen. Und 
vielleicht die eigene Editorkomponente dazu zu verwenden die gerade 
aktuelle Codezeile anzuzeigen (obwohl das der Debugger selber natürlich 
auch kann).

von S. R. (svenska)


Lesenswert?

W.S. schrieb:
> Deshalb setze ich den Lernaufwand für eine Batchdatei oder ein
> Shellscript (jeweils simpelste Form) gleich NULL an.

Das finde ich eher sehr gewagt für ein Anfängerprojekt.
Andererseits ist es fuer Anfänger einfacher, einfach die Befehle 
hintereinander zu klatschen und das erstmal zu verstehen, insofern 
stimme ich dir zu, dass in den ersten Lektionen ein Shellscript 
vollständig ausreicht.

> Ein Makefile hingegen ist was ganz anderes, es läuft auf eine quasi
> zusätzliche Scriptsprache hinaus. Das ist deutlich komplizierter, weil
> man eben eine zusätzliche "Sprache" erlernen muß - und wozu?

Aber: Ist man aus dem "so rufe ich den Compiler auf", "so rufe ich den 
Assembler auf", "so rufe ich den Linker auf"-Stadium raus, sollte man 
sich mit einem Buildsystem befassen muessen, und da ist "make" die 
Grundlage schlechthin.

Viele größeren Systeme (autotools, cmake) setzen irgendwo auf make auf, 
also sollte man wenigstens das Prinzip verstanden haben und einfache 
Makefiles - knapp ueber Shellscript-Niveau - lesen und schreiben können.

> Bloß, um kein Shellscript zu schreiben? Das ist m.E. deutlich zu wenig
> an Grund.

Man schreibt fuer solche Anwendungsfälle eher Makefiles, um keine 
Shellscripte schreiben zu muessen. Make ist strikt besser als 
Shellscripts und Makefiles sind ab einer gewissen Allgemeingueltigkeit 
auch kuerzer.

Ich nutze make oft und gerne, um Dateien in mehreren Schritten 
umzuformen, z.B. auch fuer LaTeX-Dokumente. Den Hirnschmalz investiert 
man einmal, dann hat man eine wiederverwendbare Lösung.

> Ein Gleiches gilt für Linkerfiles beim Benutzen des GCC, da wird
> ebenfalls kräftig kopiert ohne wirklich zu verstehen.

Ja. Ein universelles Linkerscript (+ Startup-Code) fuer eine bestimmte 
Plattform mit allen Funktionen (d.h. auch C++ funktioniert) ist aber 
auch hässlich. Und es gibt nahezu keine gute Dokumentation, was man 
genau braucht und wofuer eigentlich.

Und das stinkt.
Das Default-Linkerscript ist uebrigens auch nicht weniger hässlich. Ich 
nehme meist die von Beispielprogrammen, aber auch da sind gerne mal 
Fehler oder Hässlichkeiten drin... eine richtige Lösung habe ich dafuer 
aber nicht bisher.

> Wer firm ist und sich bereits bestens auskennt, den kann dann eine IDE
> mit all ihrem Gewusel auch nicht mehr so vom Thema ablenken, daß er sich
> darin verirrt. Aber wer bereits firm ist, wird die IDE nicht mehr
> brauchen. Das einzige verbleibende Argument für die IDE ist nämlich nur
> das Debuggen auf Quellcode-Ebene, also wo man Schritt für Schritt in
> seinem eigenen C-Quellcode angezeigt bekommt, was die Hardware denn so
> bislang gemacht hat.

Wenn man Java programmiert, macht das ohne Autocompletion keinen Spaß 
mehr. Da sind IDEs aus meiner Sicht eher besser geeignet, um die 
Hässlichkeit (Ausfuehrlichkeit) der Sprache etwas abzumildern. Fuer C 
reicht ein Editor.

Gruss,
Svenska

von chris_ (Gast)


Lesenswert?

>Fuer C reicht ein Editor.

Nicht zwingend. Das moderne Dokumentationsparadigma sagt:
Der Code soll die Dokumentation sein. Das bedeutet lange Funktons- und 
Variablennamen.

von Klaus W. (mfgkw)


Lesenswert?

chris_ schrieb:
>>Fuer C reicht ein Editor.
>
> Nicht zwingend. Das moderne Dokumentationsparadigma sagt:
> Der Code soll die Dokumentation sein. Das bedeutet lange Funktons- und
> Variablennamen.

Die langen Namen muß ich im EMACS aber auch nur einmal schreiben.

(Wobei ich jetzt nicht die Diskussion eröffnen will, ob der EMACS ein 
Editor ist oder eine IDE oder sonstwas.)

von Mark B. (markbrandis)


Lesenswert?

chris_ schrieb:
>>Fuer C reicht ein Editor.
>
> Nicht zwingend. Das moderne Dokumentationsparadigma sagt:
> Der Code soll die Dokumentation sein. Das bedeutet lange Funktons- und
> Variablennamen.

Was ist an 31 Zeichen bitte lang? ;-)

von W.S. (Gast)


Lesenswert?

Axel S. schrieb:
> Und ein Programmierer sollte ein Makefile schreiben können.

Ach herrje. Besteht deine Welt wirklich nur aus C und Makefiles 
schreiben?

Also meine Welt ist deutlich größer. Da ist die C-Ecke mitsamt Make eben 
nur eine kleinere Ecke - nicht mehr.


S. R. schrieb:
> Das finde ich eher sehr gewagt für ein Anfängerprojekt.

Huch? also bitte!!
Ich sag's mal so: wer zu doof ist, ne Kommandozeile hinzuschreiben, der 
sollte sich überlegen, ob er anstatt Entwicklungsingenieur vielleicht 
lieber Friseur werden sollte. Das heißt nicht, daß ich die Kommandozeile 
in den Himmel heben will - im Gegenteil. Aber man sollte sowas können 
können, auch wenn man aus Bequemlichkeit was Anderes vorzieht.

S. R. schrieb:
> Ich nutze make oft und gerne, um Dateien in mehreren Schritten
> umzuformen, z.B. auch fuer LaTeX-Dokumente.

Ieks pfui bah.. vade retro!! Nee, ich benutze weder Make noch Latex. Mir 
reicht es aus, CAD-Programme aus diversen Ecken und ne stinknormale 
Textverarbeitung zu benutzen. Da hab ich keinerei Verwendung - weder für 
LeTex noch für Make. Sowas mag sich im universitären Umfeld wohl anders 
darstellen, aber ich bin in der Industrie. Im Ö.D. sieht das noch ganz 
anders aus: Wenn du dich dort befändest, würdest du ganz kategorisch mit 
Word+Excel+Powerpoint+einem von oben verordneten Management-System 
auskommen müssen - was anderes ist dort nicht zulässig, basta. Kriegst 
du jetzt ne Gänsehaut...?

Aber kommen wir mal zum Anfang zurück: Dem TO (falls der überhaupt noch 
mitliest) sollte man vom GCC schlichtweg abraten, denn all diese kruden 
Dinge wie makefile, linkerscript und Konsorten sind dort ein Thema, von 
sinnvollen Dingen wie SVC's hingegen fehlt jede Info, obwohl das ne 
Hausmarke von ARM seit ewig ist. Also lieber nen "Bastler"-Keil oder nen 
"Bastler"-IAR und man lebt zufrieden als jemand, der sich nicht vor 
Assembler scheut.

Schönen Abend noch..
heute mit nem 2013er Malbec von Cristobal (Argentinien)
und denkt dran, daß nicht nur die nächste Embedded (23. bis 25. Feb. 
2016) kommt, sondern auch die nächste Weinmesse (26. bis 28. Februar 
2016).

Ist beides wichtig.

W.S.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

W.S. schrieb:
> Ein Makefile hingegen ist was ganz anderes, es läuft auf
> eine quasi zusätzliche Scriptsprache hinaus.

Eines der am weitesten verbreiteten und unausrottbaren Missverständnisse 
über make ist, es sei eine Skriptsprache.

von Axel S. (a-za-z0-9)


Lesenswert?

W.S. schrieb:
> Axel S. schrieb:
>> Und ein Programmierer sollte ein Makefile schreiben können.
>
> Ach herrje. Besteht deine Welt wirklich nur aus C und Makefiles
> schreiben?

Schönen Strohmann hast du da. Hast du den selber gebastelt?

Falls es dir nicht aufgefallen ist: ich habe ca. das Gegenteil von dem 
gesagt, was du mir unterstellst. Nur weil deine Welt kurz vor make 
aufhört (ein dunkler Wald voller Spinnen?) muß meine Welt ja nicht 
hinter dem make-Gebüsch enden. Tatsächlich wird die Welt dahinter erst 
so richtig interessant. Da haben wir z.B. das autotools-Gebirge. Und den 
einsamen cmake Berg. Weite Ebenen, ein großes Meer, neue Kontinente.

> ich benutze weder Make noch Latex

Na dann können wir ja zumindest vermuten, was dein Problem ist. Du hast 
eine Allergie gegen gutes Werkzeug. Gute Besserung!

von S. R. (svenska)


Lesenswert?

>> Und ein Programmierer sollte ein Makefile schreiben können.
> Ach herrje. Besteht deine Welt wirklich nur aus C und Makefiles
> schreiben?

Nein, ich löse Probleme auch in Shell, Perl oder Python, habe 
Android-Apps in Java entwickelt und arbeite sonst so mit spezielleren 
Sprachen, die es nur als Eclipse-Plugin gibt.

Es zählt das richtige Tool für das richtige Problem.

> Also meine Welt ist deutlich größer. Da ist die C-Ecke mitsamt Make eben
> nur eine kleinere Ecke - nicht mehr.

Wenn es um Mikrocontrollerprogrammierung geht, die meistens in C/C++ 
(oder Assembler) ist, dann bestehen die Buildsysteme fast ausschließlich 
aus Makefiles oder IDEs. Die hier vorherrschende Meinung zu letzteren 
teile ich. Daher sollte man, wenn man mit Asm oder C auf kleinen 
Controllern rumhackt, auch mit Make umgehen können.

>> Das finde ich eher sehr gewagt für ein Anfängerprojekt.
> Ich sag's mal so: wer zu doof ist, ne Kommandozeile hinzuschreiben, der
> sollte sich überlegen, ob er anstatt Entwicklungsingenieur vielleicht
> lieber Friseur werden sollte.

Darum geht es nicht. Shell ist mehr als "drei Befehle hintereinander 
klatschen" und da gibt es durchaus eine relativ steile Lernkurve.

Für absolute Anfänger (und C/C++ und sowas) ist ein Shellscript für die 
ersten Gehversuche angemessen. Danach sollte man sich möglichst zügig 
aber ein Buildsystem anschauen. Sei es die IDE oder Make. Kenne deine 
Tools.

> Mir reicht es aus, CAD-Programme aus diversen Ecken und ne stinknormale
> Textverarbeitung zu benutzen. Da hab ich keinerei Verwendung - weder für
> LeTex noch für Make.

Falsches Problem, siehe oben.
Vermutlich programmierst du dort keine Mikrocontroller in C.

> Im Ö.D. sieht das noch ganz anders aus:
> Wenn du dich dort befändest, würdest du ganz kategorisch mit
> Word+Excel+Powerpoint+einem von oben verordneten Management-System
> auskommen müssen - was anderes ist dort nicht zulässig, basta.

Falsches Problem, siehe oben.
Im Ö.D. programmiert man in der Regel überhaupt nicht.

> Aber kommen wir mal zum Anfang zurück: Dem TO (falls der überhaupt noch
> mitliest) sollte man vom GCC schlichtweg abraten, denn all diese kruden
> Dinge wie makefile, linkerscript und Konsorten sind dort ein Thema, von
> sinnvollen Dingen wie SVC's hingegen fehlt jede Info, obwohl das ne
> Hausmarke von ARM seit ewig ist.

Vielleicht sollte man allen Menschen von Computern abraten, denn die 
Dinger sind schlicht zu kompliziert für normale Menschen. Sieht man 
regelmäßig, wenn wieder ein Virus irgendwo ausgebrochen ist und die 
Nutzer erpresst, oder eine Toolbar das Internet kapert.

> Also lieber nen "Bastler"-Keil oder nen "Bastler"-IAR und man lebt
> zufrieden als jemand, der sich nicht vor Assembler scheut.

Ja. Vielleicht wäre dann aber auch Lego eine gute Wahl.
(Und mit einem "Bastler"-Keil habe ich auch schon viel Spaß gehabt. 
Nämlich exakt dann, wenn die 32 KB ungefähr 10 Byte zu klein sind, trotz 
Optimierung.)

von Mark B. (markbrandis)


Lesenswert?

Axel S. schrieb:
> Weite Ebenen, ein großes Meer, neue Kontinente.

Unendliche Weiten, die nie ein Mensch zuvor gesehen hat :)

von Rolf M. (rmagnus)


Lesenswert?

Klaus W. schrieb:
> (Wobei ich jetzt nicht die Diskussion eröffnen will, ob der EMACS ein
> Editor ist oder eine IDE oder sonstwas.)

Nach verbreiteter Auffassung ist er ein gutes Betriebssystem, dem 
lediglich noch ein vernünftiger Editor fehlt.

von J. V. (janvi)


Lesenswert?

nach soviel Assembler / Hochsprachen Krieg noch immer keine Info zum 
Assembler?

Zum Werkzeug natürlich "using as" von Dean Elsner
und zur Architektur finde ich "Assembly Language Programming" von
Vincent Mahout ganz pässlich.

Sowas ist heutzutage natürlich kein Bestseller mehr wie einst Rodnay 
Zaks einen ganzen Sybex Verlag damit unterhalten konnte. Nicht umsonst 
sind auch Markt&Technik, OReilly u.a. verschwunden. Wenn es noch 
Assembler Programmierer gibt finde ich das hingegen überhaupt nicht so 
verkehrt.

Hier noch ein netter Link zum Einstieg:
http://pygmy.utoh.org/riscy/cortex/led-stm32.html
http://pramode.net/fosstronics/arm-assembly-programming.txt

Es soll ja nicht nur Leute geben die sich ihre eigene CPU bauen sondern 
auch solche die sich ihren eigenen Assembler schreiben wollen. Dafür 
noch diesen Link mit Details die offensichtlich nicht mal mehr ARM so 
veröffentlichen will.

http://imrannazar.com/ARM-Opcode-Map

von I <3 makefiles (Gast)


Lesenswert?

Johann L. schrieb:
> W.S. schrieb:
>> Ein Makefile hingegen ist was ganz anderes, es läuft auf
>> eine quasi zusätzliche Scriptsprache hinaus.
>
> Eines der am weitesten verbreiteten und unausrottbaren Missverständnisse
> über make ist, es sei eine Skriptsprache.

  Wenn wir schon dabei sind, ergänze ich: derjenige der make 
verstanden hat, merkt dass im Schnitt jede andere Zeile in einem 
makefile eine... shell-Zeile ist.

  Wahrscheinlich weil ich das ganze mag UND beherrsche (= allem 
anderen vorziehe) weise ich auch darauf hin dass im Wort "shell" das 
Wort "hell" vorkommt      }:-)

von Peter H. (peterhofbauer)


Lesenswert?

Hallo Freunde!

Interessante Diskussionen hier, klar lese ich (= TO) noch mit.

Mein NUCLEO-Board ist angekommen. Weils auf den Zettel stand, habe ich 
zusätzlich noch Atollic TrueStudio runtergeladen (1 Gigabyte!) und 
installiert. Board über USB an den PC und seltsamerweise funktioniert 
alles ziemlich sofort. Code vom Board ist da, und der Emulator 
funktioniert. Einzelschritt usw geht.
Und das für nur 13 Euro!
Im vorigen Jahrhundert hatte ich für einen Emulator (für ST62) noch 
10.000 D-Mark bezahlen müssen und für ein Update noch mal 6.000 D-Mark.

Jetzt habe ich erstmal genug von den ganzen 32-bit Kram, das Board wird 
eingelagert und der PC aufgeräumt.

Werde mich erholen mit etwas menschlicher Elekronik: mit 
Röhrenschaltungen. Oh je, Röhren kennt hier wohl keiner? Das sind Dinger 
im Glasgehäuse wo innen etwas glüht. Und das ohne LEDs und ganz ohne 
blinky!

Schönes Wochenende wünsch ich,

Gruß Peter

von eProfi (Gast)


Lesenswert?

Heißt das, Du willst Deine Erodiermaschine und den HF-Spekki mit Röhren 
aufbauen?

von Augenauf (Gast)


Lesenswert?

Peter H. schrieb:
> Oh je, Röhren kennt hier wohl keiner? Das sind Dinger
> im Glasgehäuse wo innen etwas glüht.

Ich hätte noch eine für Dich: AZ4, um Dich nicht zu überfordern.

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.