Moin ich habe mir neulich ein PIC32 Starter Kit (mit nem PIC32MX360F512L drauf) zugelegt und muss damit für die Uni ein bischen mit Assembler programmieren. Mein Problem ist, das es für dieses Board im Grunde nur Tutorials für die C-Programmierung gibt, nicht aber für Assembler. Ich komme damit momentan überhaupt nicht klar. Wenn jemand ein Tutorial dafür empfehlen könnte würde ich mcih sehr freuen. Ansonsten wärs schon cool zu wissen wie man mit Asembler die LED´s auf dem Board ganz simpel ein und Ausschaltet. Danke
Guck mal hier, das hilft vermutlich beim Einstieg. http://sprut.de/electronic/pic/assemble/assembler.html
Danke, aber diese Seiten mit solchen Einführungen kenne ich alle schon. Mein Problem besteht eher darin, dass die Befehle die dort verwendet werden bei meinem PIC anders sind und ich nciht in der Lage bin die zu sozusagen zu übertragen...
Hallo, such mal nach: mips assembler tutorial ist das so schwer ? LG Chris PS. pic32 = eingekaufte Mips Architektur
Der PIC32 ist kein traditioneller PIC, sondern hat einen von MIPS lizensierten 32-Bit-Kern (MIPS M4k-Core - http://www.mips.com/products/cores/32-64-bit-cores/mips32-m4k/). Zu MIPS-Assembler gibt's jede Menge Doku. Ein gutes Buch zur Einführung in die MIPS-Architektur ist "See MIPS Run" von Dominic Sweetman, Kapitel 9 geht da auf Assembler-Programmierung ein. Ansonsten behandeln auch viele einführende Kurse in Rechnerstrukturen die MIPS-Architektur und -Assemblerprogrammierung, Material findet sich jede Menge. Allerdings ist MIPS als klassischer RISC jetzt nicht unbedingt die am Besten zur Programmierung in Assembler geeignete Architektur, insofern ist die Verwendung von C schon ganz sinnvoll...
Noch ein Hinweis zur Vorgehensweise - du musst zur Ansteuerung der LEDs für dein Board erstmal herausfinden, an welchen Pins des PIC32-Controllers die LEDs angeschlossen sind. Ich vermute mal, das Handbuch hier - http://ww1.microchip.com/downloads/en/DeviceDoc/61159B.pdf - ist das passende. Danach ist die Information über die LEDs in Fig. A6 zu finden. Das sind in diesem Fall die Pins OC1/RD0 (rote LED), OC2/RD1 (gelbe LED) und OC3/RD2 (grüne LED). Danach musst du für die Pins OC1/RD0 (das ist ein Pin mit verschiedenen Funktionen), OC2/RD1 und OC3/RD2 die passenden I/O-Adressen zur Ansteuerung herausfinden (I/O bei MIPS ist memory mapped, also über "normale" Lese-/Schreibbefehle wie Hauptspeicher ansprechbar). Dazu dürfte dann http://ww1.microchip.com/downloads/en/DeviceDoc/61143G.pdf das passende Dokument sein. Auf den ersten Blick ist da Tabelle 4-25 (Seite 71) passend. Eventuell gibt's für C bereits passende Header-Dateien, in denen man die Information auch findet. Dann musst du nur noch herausfinden, wie man mit MIPS-Assembler einen Wert in ein Register lädt und das dann an die richtige Adresse für die LEDs schreibt. Evtl. muss vorher der Port aber noch auf die richtige Funktion konfiguriert werden - dazu einfach mal ein wenig im Datenblatt zur CPU suchen. Viel Spaß!
Noch ein Tip (konnte den vorigen Eintrag nicht mehr editieren, deshalb noch ein neuer). MIPS ist für Anfänger etwas gemein, weil es verschieden funktionierende Adressbereiche gibt - insbesondere welche, für die der TLB und/oder Cache aktiv ist (mapped/cached). Du musst zum Schreiben auf I/O-Adressen auf den unmapped und uncached Adressbereich zugreifen (wobei der MIPS im PIC32 - glaube ich - keinen TLB hat und daher etwas weniger Probleme macht). Dazu am Besten in "See MIPS Run" nachlesen.
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.