@.CHARSET CP1251
@GNU AS
@.desc name=SYSCLK84_START type=proc
@ ***************************************************************************
@ *               STM32F401 sysclk=84         *
@ ***************************************************************************
@ *            *
@ *  ,   PLL    -  *
@ *     ,            *
@ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
@ *    ,                    *
@ *  :                                                         *
@ *           BL SYSCLK84_START                             *
@ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
@ *  : R0, R1, R2, R3, R4, R6, R7 ( )      *
@ *       :                                                        *
@ *      : R0 -                *
@ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
@ *  :                                                      *
@ *                    0:                                 *
@ *                    1:    HSE                          *
@ *                    2:    PLL                          *
@ *                    3:     PLL                   *
@ ***************************************************************************
@ *                                                          *
@ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
@ *                                             *
@ *                                                                         *
@ *    PLL                                             *
@ *                                                                         *
@ *          PLL_VCO = ([HSE_VALUE or HSI_VALUE] / PLL_M) * PLL_N           *
@ *                                                                         *
@ * :  PLL_M          *
@ *     2 .   8 : PLL_M = 4,   *
@ * 16 : PLL_M=8,   . (.227 RM0090 Reference manual)         *
@
.equ PLL_M , 25
.equ PLL_N , 336
@ *      (: 168 ):    *
@ *                                                                         *
@ *                     SYSCLK = PLL_VCO / PLL_P                            *
@
.equ PLL_P , 4
@ *      USB (: 48 ):            *
@ *                                                                         *
@ *           USB OTG FS, SDIO and RNG Clock =  PLL_VCO / PLLQ              *
@
.equ PLL_Q , 7
@ * -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  *
@ *       ( )    *
@ *     ,         *
@ *   -       R0     *
@ *    : 12                                         *
.equ timeout, 12
@ ***************************************************************************
@.enddesc

@ -----------------------      !!  -------------------------

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

.include "/src/inc/flash.inc"
.include "/src/inc/pwr.inc"
.include "/src/inc/rcc.inc"

@   
.equ RCC_CFGR_SW           ,0x00000003

@     RCC_PLLCFGR
.equ RCC_PLLCFGR_val, PLL_M|(PLL_N<<6)+(((PLL_P>>1)-1)<<16)+RCC_PLLCFGR_PLLSRC_HSE+(PLL_Q<<24)

@ ----------------------    ------------------------
.section .asmcode
