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.
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... ;-)
Offizielle Quelle ist das "ARM Architecture Reference Manual", auch als "ARM ARM" bekannt. Eher selten als Download aufzutreiben, wird vorzugsweise in Papierform vertrieben.
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
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.
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.
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?
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.
"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.
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
@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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.