; generated by ARM C/C++ Compiler, 4.1 [Build 894]
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\STM324xG_EVAL\stm32f4xx_wwdg.o --asm_dir=.\STM324xG_EVAL\ --list_dir=.\STM324xG_EVAL\ --depend=.\STM324xG_EVAL\stm32f4xx_wwdg.d --cpu=Cortex-M4.fp --apcs=interwork -O0 -Otime -I..\ -I..\..\..\Libraries\CMSIS\Device\ST\STM32F4xx\Include -I..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc -I..\..\..\Utilities\STM32_EVAL\Common -I..\..\..\Utilities\STM32_EVAL\STM3240_41_G_EVAL -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -IC:\Keil\ARM\Inc\ST\STM32F4xx -D__MICROLIB -DUSE_STM324xG_EVAL -DSTM32F4XX -DUSE_STDPERIPH_DRIVER --omf_browse=.\STM324xG_EVAL\stm32f4xx_wwdg.crf ..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c]
                          THUMB

                          AREA ||i.WWDG_ClearFlag||, CODE, READONLY, ALIGN=2

                  WWDG_ClearFlag PROC
;;;281      */
;;;282    void WWDG_ClearFlag(void)
000000  2000              MOVS     r0,#0
;;;283    {
;;;284      WWDG->SR = (uint32_t)RESET;
000002  4901              LDR      r1,|L1.8|
000004  6008              STR      r0,[r1,#0]
;;;285    }
000006  4770              BX       lr
;;;286    
                          ENDP

                  |L1.8|
                          DCD      0x40002c08

                          AREA ||i.WWDG_DeInit||, CODE, READONLY, ALIGN=1

                  WWDG_DeInit PROC
;;;133      */
;;;134    void WWDG_DeInit(void)
000000  b510              PUSH     {r4,lr}
;;;135    {
;;;136      RCC_APB1PeriphResetCmd(RCC_APB1Periph_WWDG, ENABLE);
000002  2101              MOVS     r1,#1
000004  02c8              LSLS     r0,r1,#11
000006  f7fffffe          BL       RCC_APB1PeriphResetCmd
;;;137      RCC_APB1PeriphResetCmd(RCC_APB1Periph_WWDG, DISABLE);
00000a  2100              MOVS     r1,#0
00000c  f44f6000          MOV      r0,#0x800
000010  f7fffffe          BL       RCC_APB1PeriphResetCmd
;;;138    }
000014  bd10              POP      {r4,pc}
;;;139    
                          ENDP


                          AREA ||i.WWDG_Enable||, CODE, READONLY, ALIGN=2

                  WWDG_Enable PROC
;;;234      */
;;;235    void WWDG_Enable(uint8_t Counter)
000000  f0400180          ORR      r1,r0,#0x80
;;;236    {
;;;237      /* Check the parameters */
;;;238      assert_param(IS_WWDG_COUNTER(Counter));
;;;239      WWDG->CR = WWDG_CR_WDGA | Counter;
000004  4a01              LDR      r2,|L3.12|
000006  6011              STR      r1,[r2,#0]
;;;240    }
000008  4770              BX       lr
;;;241    /**
                          ENDP

00000a  0000              DCW      0x0000
                  |L3.12|
                          DCD      0x40002c00

                          AREA ||i.WWDG_EnableIT||, CODE, READONLY, ALIGN=2

                  WWDG_EnableIT PROC
;;;191      */
;;;192    void WWDG_EnableIT(void)
000000  2001              MOVS     r0,#1
;;;193    {
;;;194      *(__IO uint32_t *) CFR_EWI_BB = (uint32_t)ENABLE;
000002  4901              LDR      r1,|L4.8|
000004  6008              STR      r0,[r1,#0]
;;;195    }
000006  4770              BX       lr
;;;196    
                          ENDP

                  |L4.8|
                          DCD      0x420580a4

                          AREA ||i.WWDG_GetFlagStatus||, CODE, READONLY, ALIGN=2

                  WWDG_GetFlagStatus PROC
;;;261      */
;;;262    FlagStatus WWDG_GetFlagStatus(void)
000000  2000              MOVS     r0,#0
;;;263    {
;;;264      FlagStatus bitstatus = RESET;
;;;265        
;;;266      if ((WWDG->SR) != (uint32_t)RESET)
000002  4903              LDR      r1,|L5.16|
000004  6809              LDR      r1,[r1,#0]
000006  b109              CBZ      r1,|L5.12|
;;;267      {
;;;268        bitstatus = SET;
000008  2001              MOVS     r0,#1
00000a  e000              B        |L5.14|
                  |L5.12|
;;;269      }
;;;270      else
;;;271      {
;;;272        bitstatus = RESET;
00000c  2000              MOVS     r0,#0
                  |L5.14|
;;;273      }
;;;274      return bitstatus;
;;;275    }
00000e  4770              BX       lr
;;;276    
                          ENDP

                  |L5.16|
                          DCD      0x40002c08

                          AREA ||i.WWDG_SetCounter||, CODE, READONLY, ALIGN=2

                  WWDG_SetCounter PROC
;;;203      */
;;;204    void WWDG_SetCounter(uint8_t Counter)
000000  f000017f          AND      r1,r0,#0x7f
;;;205    {
;;;206      /* Check the parameters */
;;;207      assert_param(IS_WWDG_COUNTER(Counter));
;;;208      /* Write to T[6:0] bits to configure the counter value, no need to do
;;;209         a read-modify-write; writing a 0 to WDGA bit does nothing */
;;;210      WWDG->CR = Counter & BIT_MASK;
000004  4a01              LDR      r2,|L6.12|
000006  6011              STR      r1,[r2,#0]
;;;211    }
000008  4770              BX       lr
;;;212    /**
                          ENDP

00000a  0000              DCW      0x0000
                  |L6.12|
                          DCD      0x40002c00

                          AREA ||i.WWDG_SetPrescaler||, CODE, READONLY, ALIGN=2

                  WWDG_SetPrescaler PROC
;;;149      */
;;;150    void WWDG_SetPrescaler(uint32_t WWDG_Prescaler)
000000  2100              MOVS     r1,#0
;;;151    {
;;;152      uint32_t tmpreg = 0;
;;;153      /* Check the parameters */
;;;154      assert_param(IS_WWDG_PRESCALER(WWDG_Prescaler));
;;;155      /* Clear WDGTB[1:0] bits */
;;;156      tmpreg = WWDG->CFR & CFR_WDGTB_MASK;
000002  4a04              LDR      r2,|L7.20|
000004  6812              LDR      r2,[r2,#0]
000006  f42271c0          BIC      r1,r2,#0x180
;;;157      /* Set WDGTB[1:0] bits according to WWDG_Prescaler value */
;;;158      tmpreg |= WWDG_Prescaler;
00000a  4301              ORRS     r1,r1,r0
;;;159      /* Store the new value */
;;;160      WWDG->CFR = tmpreg;
00000c  4a01              LDR      r2,|L7.20|
00000e  6011              STR      r1,[r2,#0]
;;;161    }
000010  4770              BX       lr
;;;162    
                          ENDP

000012  0000              DCW      0x0000
                  |L7.20|
                          DCD      0x40002c04

                          AREA ||i.WWDG_SetWindowValue||, CODE, READONLY, ALIGN=2

                  WWDG_SetWindowValue PROC
;;;168      */
;;;169    void WWDG_SetWindowValue(uint8_t WindowValue)
000000  2100              MOVS     r1,#0
;;;170    {
;;;171      __IO uint32_t tmpreg = 0;
;;;172    
;;;173      /* Check the parameters */
;;;174      assert_param(IS_WWDG_WINDOW_VALUE(WindowValue));
;;;175      /* Clear W[6:0] bits */
;;;176    
;;;177      tmpreg = WWDG->CFR & CFR_W_MASK;
000002  4a05              LDR      r2,|L8.24|
000004  6812              LDR      r2,[r2,#0]
000006  f022017f          BIC      r1,r2,#0x7f
;;;178    
;;;179      /* Set W[6:0] bits according to WindowValue value */
;;;180      tmpreg |= WindowValue & (uint32_t) BIT_MASK;
00000a  f000027f          AND      r2,r0,#0x7f
00000e  4311              ORRS     r1,r1,r2
;;;181    
;;;182      /* Store the new value */
;;;183      WWDG->CFR = tmpreg;
000010  4a01              LDR      r2,|L8.24|
000012  6011              STR      r1,[r2,#0]
;;;184    }
000014  4770              BX       lr
;;;185    
                          ENDP

000016  0000              DCW      0x0000
                  |L8.24|
                          DCD      0x40002c04

;*** Start embedded assembler ***

#line 1 "..\\..\\..\\Libraries\\STM32F4xx_StdPeriph_Driver\\src\\stm32f4xx_wwdg.c"
	AREA ||.rev16_text||, CODE, READONLY
	THUMB
	EXPORT |__asm___16_stm32f4xx_wwdg_c_9668c0ca____REV16|
#line 114 "C:\\Keil\\ARM\\CMSIS\\Include\\core_cmInstr.h"
|__asm___16_stm32f4xx_wwdg_c_9668c0ca____REV16| PROC
#line 115

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE, READONLY
	THUMB
	EXPORT |__asm___16_stm32f4xx_wwdg_c_9668c0ca____REVSH|
#line 128
|__asm___16_stm32f4xx_wwdg_c_9668c0ca____REVSH| PROC
#line 129

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
