@.CharSet=CP1251
@GNU AS

@
@    STM32Discovery
@         STM32F100RB6
@        (  )
@
@              
@
@  : GPIOC
@  :  9
@

.syntax unified     @   
.thumb              @    Thumb
.cpu cortex-m3      @ 

.INCLUDE  "/src/inc/rcc.inc"
.INCLUDE  "/src/inc/gpio.inc"
.section .asmcode

@  
.global Start
Start:              @     

                    @   GPIO C   (  BitBanding)
                         LDR          R0, = PERIPH_BASE + PERIPH_BB_BASE + ( RCC_BASE + RCC_APB2ENR ) * 32 + RCC_APB2ENR_IOPCEN_N * 4
                         MOV          R1, 1


                    @   9 GPIO C     50 
                         LDR          R0, = PERIPH_BASE + GPIOC_BASE
                         LDR          R1, [ R0, GPIO_CRH ]
                         MOV          R2, GPIO_MODE_OUT50
                         BFI          R1, R2, GPIO_CRH_MODE9_N, 4
                         STR          R1, [ R0, GPIO_CRH ]

MAIN_LOOP:               @   ,  

                    @  
                         MOV          R1, 1 << 9
                         STR          R1, [ R0, GPIO_ODR ]

                    @ 
                         LDR          R1, = 0xfffff
pause1:                  SUBS         R1, R1, 1
                         BNE          pause1

                    @  
                         MOV          R1, 0
                         STR          R1, [ R0, GPIO_ODR ]

                    @ 
                         LDR          R1, = 0xfffff
pause2:                  SUBS         R1, R1, 1
                         BNE          pause2

                         B            MAIN_LOOP    @    



