; p2_6.s ; Assembly program to toggle the green LED (LD2) ; on STM32F030RE Nucleo64 board at 1 Hz ; EXPORT __Vectors EXPORT Reset_Handler AREA vectors, CODE, READONLY __Vectors DCD 0x00000400 ; Top of Stack DCD Reset_Handler ; Reset Handler RCC_AHBENR equ 0x40021014 GPIOA_MODER equ 0x48000000 GPIOA_BSRR equ 0x48000018 AREA PROG, CODE, READONLY Reset_Handler ldr r4, =RCC_AHBENR ; enable GPIOA clock ldr r5, [r4] ldr r6, =(1<<17) orrs r5, r6 str r5, [r4] ldr r4, =GPIOA_MODER ; set pin to output mode ldr r5, [r4] ldr r6, =0x00000C00 bics r5, r6 ldr r6, =0x00000400 orrs r5, r6 str r5, [r4] L1 ldr r4, =GPIOA_BSRR ldr r5, =0x00000020 ; turn on LED str r5, [r4] ldr r0, =500 bl delay ldr r4, =GPIOA_BSRR ldr r5, =0x00200000 ; turn off LED str r5, [r4] ldr r0, =500 bl delay b L1 ; loop forever ; delay milliseconds in R0 delay ldr r1, =2003 DL1 subs r1, r1, #1 bne DL1 subs r0, r0, #1 bne delay bx lr end