Hey, Sagt mal, ich hab hier einen Sam9, der keine Interrupts aufruft. Ich habe schon ein Beispiel von Atmel runtergeladen aber das versagt auch. Die Interrupt Service Routinen werden einfach nicht angesprungen. Die einzelnen Interrupts (AIC, Timer,...) wurden initialisiert. Gibt es nicht sowas wie einen Globalen Interrupt An/Aus? Beim AtMegaX ist das ja immer cli() und sei(). Danke! Olibats
Der ARM Core selbst hat im CPSR zwei Bits, um IRQ und FIQ zu disablen. Diese Bits sind nach einem Reset gesetzt - wenn du sie nicht löschst, bleiben Interrupts also disabled. Im Atmel Beispiel sollte das allerdings korrekt sein. Gruss, Dominic
Hm, dieses Register kommt nirgends im Source vor. Und ich finde auch nix in der Doku darüber. O.o Kann das am Board liegen? Ich verwende das AT91SAM9263-EK Evaluation Board und versuche heute schon den ganzen Tag das "Getting Started" Beispiel gestartet zu getten ;) Oder vielleicht kann es daran liegen, dass dieser PIO auf B statt auf A steht? Wenn ich die LEDs direkt anspreche kann ich Licht machen, also eher nicht? ratlos Olibats
Das ist kein "Register" im Sinn von Peripheral Register, sondern ein Core-Register, genauso wie r0-r15. CPSR steht für current program status register (es gibt auch SPSR, saved program status register), und wird via MRS/MSR angesprochen. Näheres dazu findest du im ARM ARM (DDI0100E, u.a. auf arm.com zu finden). Gruß, Dominic
Oke, ich habs nun hinbekommen. Danke, waren die entscheidenden hinweise. ich hab einfach das hier eingefügt und es ging: mrs r0, cpsr and r0, r0, #~0x00000080 msr cpsr, r0 löscht das I-bit und aktiviert damit IRQs. Der FIQ liegt bei 0x00000040 (glaub ich) Nochmal danke Olibats
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.