Forum: Mikrocontroller und Digitale Elektronik Instruction Set ARM7-LPC2000


von Frank (Gast)


Lesenswert?

Auch nach 2 Stunden Suche konnte ich im Internet bisher keine
vernünftige Doku finden.

Ich siche eine Auflistung des Befehlssatzes incl. der relevanten
Angaben wie Art und Länge der Operanden, Taktzyklen usw.

Auf der ARM Webnsite gibt es nur die unvollständige QuickReference.

von Thomas (Gast)


Lesenswert?

Ich habe vor kurzem auch mal schnell gesucht und auch nur die
Kurzübersicht gefunden. Da es aber nicht ganz dringend war, habe ich
nicht viel Zeit in die Suche investiert und kann dir dementsprechend
leider nicht helfen.

Falls du aber was findest... ;-)

von A.K. (Gast)


Lesenswert?

Offizielle Quelle ist das "ARM Architecture Reference Manual", auch
als "ARM ARM" bekannt. Eher selten als Download aufzutreiben, wird
vorzugsweise in Papierform vertrieben.

von Roland Schmidt (Gast)


Lesenswert?


von Dominic R. (dominic)


Lesenswert?

Das ARM ARM gibt es:
- Ganz leicht via Google
- Per Suche hier im Forum finden sich direkte Links
- Auf www.arm.com (dort aber relativ schwer zu finden -> site:arm.com
als Google Suchbegriff)

Gruss,

Dominic

von Mehmet K. (mkmk)


Lesenswert?


von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Große ARM-Befehls-Übersicht als drei farbige PDFs:
http://re-eject.gbadev.org/

von Frank (Gast)


Lesenswert?

Vielen Dank!

Gibt es einen empfehlenswerten, kostenlosen Assembler für die LPC
Familie?

Als Compilker scheint ja der Keil recht gut zu sein.

Suche ebenfalls noch Boards für den 2132, möglichst mit Sockel. Gibt es
sowas? Meist ist der Chip ja fest aufgelötet.

von A.K. (Gast)


Lesenswert?

Sockel für sowas kostet 50-100 Euro. Einzig der LPC2103 soll als PLCC
erhältlich sein.

Assembler: GNU-Assembler beispielsweise. C-Compiler wird dabei gratis
mitgeliefert.

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Ich will auch in die LPC2103-Assemblerprogrammierung einsteigen, und
habe mir dazu das WinARM-Paket heruntergeladen. Eines der drei oben
genannten PDFs ist eine Tabelle der Gnu-Assemblerbefehle.
Was zum Einstieg noch fehlt, ist eine Initialisierungsroutine, wo die
üblichen Stack-, Datenrichtungsregister, Interruptvektoren usw. auf
einen unschädlichen Defaultwert gestellt werden. Dann steht dem ersten
"Hello World" Programm nicht mehr viel im Weg. Ich habe bisher nur
irgendwelche C-Startroutinen entdeckt, gibts da irgendwas
allgemeingültiges in Assembler?

von Frank (Gast)


Lesenswert?

KSDK-LPC2148-R2T-PLUS ist bestellt. Mal sehen, wie es sich praktisch
handhaben läßt und wie weit die Compilerdemo mitspielt. Downgrade zum
LPC2103 kommt dann später.

von Martin Thomas (Gast)


Lesenswert?

"Ich habe bisher nur irgendwelche C-Startroutinen entdeckt"

Notwendigen Initialisierungen werden auch bei C-Projekten mit einem
Assemblercode gemacht. Ein Grossteil dieses Codes ist fuer die
Vorbereitung des "C-Compilates" (.data copy, .bss clear). Kann man
einiges bei "nur Assmbler" weglassen. ("Nur Assembler" auf ARM ist
allerdings immer noch keine gute Idee.) Gute "Vorlagen":
Startup-Codes von Keil, inkl. Setup fuer Execptions-Vector, Stacks,
MAM, PLL etc. Demo-Projekt downloaden, .s-Datei suchen auf
gnu-Assembler portieren - oder gleich etwas mit der Evaluierungsversion
von Keil herumspielen (ja, da ist auch ein Assembler dabei), der
uVision-Simulator ist recht brauchbar.

von Dietmar (Gast)


Lesenswert?

Länge der Operanden, Taktzyklen, usw., kann man auf Grund der Memory
Acceleration Unit und Pipelining Effekten meistens vergessen:

Da ich ebenfalls Teile der Startup-Dateien in Assembler modifizieren
mußte, hilft vielleicht das:

Das ARM Architecture Reference Manual:

http://www.altera.com/literature/third-party/ddi0100e_arm_arm.pdf

Gruß

Dietmar

von Dietmar (Gast)


Lesenswert?

@Christoph Kessler:

Der RISC Befehlssatz des ARM7 ist nicht so einfach, wie man es vom PIC
gewohnt ist und für RISC annehmen möchte: Er hat bei ARM durchaus die
Komplexität eines CISC-Befehlssatzes. Das erfordert sehr, sehr, sehr
viel Übung.

Aktuell, habe ich z.B. einen String Compare in Assembler erstellt, da
dieser für eine spezielle Anwendung (gültige Signatur-Erkennung für
Flash Download) direkt nach Programmstart in der Startup-Datei stehen
muß.

Die Programmierzeiten für Assemblercode und eine Arbeitskraft, bisher
mit 10 Zeilen pro Stunde angenommen, funktioniert beim 8051 sicher
noch, kann man bei ARM aber ganz locker vergessen.

Gruß

Dietmar

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Und ich hab so einfach den Link angeklickt, und mein ISDN-Internetzugang
lädt und lädt und lädt waren es 13 MByte oder 17 ?
Trotzdem Danke für den Link.

Ich hatte beim Überfliegen des Befehlssatzes vor allem die vielen
mathematischen Varianten entdeckt. Anscheinend sind diese seltsamen
2*16 Bit-Operationen für komplexe Berechnungen gedacht, wo in einem
Langwort Real- und Imaginärteil untergebracht werden. Auch typische
DSP-Befehle wie Multiply-Accumulate gibts in den 8-Bittern selten.
Schön, wenn sowas für Spezialaufgaben existiert, aber man muß sie ja
nicht alle beherrschen.

von A.K. (Gast)


Lesenswert?

Aufpassen: Im ARM ARM steht so ungefähr alles drin, was ARM jemals
erfunden hat. In den üblichen ARM7TDMI Controllern ist jedoch nur ein
Bruchteil dessen enthalten.

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Ja ich habe auch die beiden PDFs von Philips/NXP speziell zu den
LPC2103, die kurze Hardwarebeschreibung und das ausführlichere User
Manual.

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.