Skip to content

Instantly share code, notes, and snippets.

@mathiasose
Created November 15, 2013 11:37
Show Gist options
  • Save mathiasose/7483030 to your computer and use it in GitHub Desktop.
Save mathiasose/7483030 to your computer and use it in GitHub Desktop.
.thumb
.syntax unified
.include "gpio_constants.s" // Register-adresser og konstanter for GPIO
.text
.global Start
.global GPIO_ODD_IRQHandler
Start:
MOV R0, #5
BAL Start
.thumb_func
GPIO_ODD_IRQHandler:
// Do the actual toggling
LDR R0, =GPIO_BASE
LDR R1, =PORT_SIZE
LDR R2, =PORT_E
LDR R3, =GPIO_PORT_DOUTTGL
MUL R1, R1, R2
ADD R1, R1, R3
ADD R0, R0, R1 // R1 is hex amount of bytes to offset GPIO_BASE with, PORT_SIZE*PORT + REG
MOV R1, #0b00000100 // pins 0-7 from right to left
STR R1, [R0]
// Clear interrupt flag
LDR R0, =GPIO_BASE
LDR R1, =GPIO_IF
ADD R0, R0, R1
LDR R1, [R0]
LDR R0, =GPIO_BASE
LDR R2, =GPIO_IFC
ADD R0, R0, R2
STR R1, [R0]
BX LR
NOP
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment