@.CharSet=CP1251
@GNU AS

.syntax unified     @   
.thumb              @    Thumb
.cpu cortex-m4      @ 
.fpu fpv4-sp-d16    @ 

.include "/src/inc/base.inc"
.include "/src/inc/gpio.inc"
.include "/src/inc/rcc.inc"



.section .asmcode

@  
.global Start
Start:              @     
                    BL         SYSCLK84_START

@    
                    ldr        r2, = PERIPH_BASE + RCC_BASE + RCC_APB1ENR
                    ldr        r3, [ r2 ]
                    orr        r3, RCC_AHB1ENR_GPIOCEN
                    str        r3, [ r2 ]
                    ldr        r3, [ r2 ]


.include   "/src/inc/gpio_c_conf.inc"

                    bl         toggle_LED
                    nop
                    bl         toggle_LED
                    nop
                    bl         toggle_LED
                    nop
                    bl         toggle_LED


MAIN_LOOP:
                    bl         toggle_LED
                    B          MAIN_LOOP


.EQU  pc13_out_bb   , PERIPH_BB_BASE + ( GPIOC_BASE + GPIO_ODR ) * 32 + 13 * 4
.global toggle_LED  @   PC13  
toggle_LED:         push       { r1 - r3 }
                    mov        r1, 1
                    ldr        r2, = pc13_out_bb
                    ldr        r3, [ r2 ]
                    sub        r3, r1, r3    @ R3 = 1 - R3
                    str        r3, [ r2 ]
                    pop        { r1 - r3 }
                    bx         lr


