參考資訊:
https://github.com/BakaOsaka/LPC810-ASM
https://studio.segger.com/packages/LPC800/CMSIS/Documents/UM10601.pdf
Register

main.S
.cpu cortex-m0
.thumb
.equ GPIO_DIR0, 0xa0002000
.equ GPIO_PIN0, 0xa0002100
.equ GPIO_SET0, 0xa0002200
.equ GPIO_CLR0, 0xa0002280
.equ BIT1, 1
.equ BIT7, 7
.equ BIT16, 16
.equ BIT17, 17
.thumb_func
.global _start
_start:
.word 0x10000400 @ stacktop
.word reset @ reset
.word hang @ nmi
.word hang @ hardfault
.word hang @ reserved
.word hang @ reserved
.word hang @ reserved
.word hang @ reserved
.word hang @ reserved
.word hang @ reserved
.word hang @ reserved
.word hang @ svcall
.word hang @ reserved
.word hang @ reserved
.word hang @ pendsv
.word hang @ systick
.thumb_func
reset:
ldr r1, =((1 << BIT7) | (1 << BIT16) | (1 << BIT17))
ldr r0, =GPIO_DIR0
str r1, [r0]
ldr r0, =GPIO_SET0
str r1, [r0]
loop:
ldr r0, =GPIO_PIN0
ldr r0, [r0]
ldr r1, =(1 << BIT1)
and r0, r1
cmp r0, #0
beq 1f
ldr r0, =GPIO_SET0
ldr r1, =(1 << BIT7)
str r1, [r0]
b loop
1:
ldr r0, =GPIO_CLR0
ldr r1, =(1 << BIT7)
str r1, [r0]
b loop
hang:
b .
.end
完成
