AT91 SAM9 - Global Interrupt Enable?

Gast #628784
Lesenswert?

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
Gast #628850
Lesenswert?

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
#628869
Lesenswert?

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
Gast #629270
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren