stm32f4xx_wwdg.txt 9.05 KB
; generated by Component: ARM Compiler 5.06 update 6 (build 750) Tool: ArmCC [4d3637]
; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave -o.\flash\obj\stm32f4xx_wwdg.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\stm32f4xx_wwdg.d --cpu=Cortex-M4.fp --apcs=interwork -O1 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Include -I..\..\Libraries\CMSIS\Device\ST\STM32F4xx\Include -I..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc -I..\..\uCOS-III\uC-CPU -I..\..\uCOS-III\uC-LIB -I..\..\uCOS-III\uCOS-III\Ports -I..\..\uCOS-III\uCOS-III\Source -I..\..\uCOS-III\uC-CPU\ARM-Cortex-M4\RealView -I..\..\uCOS-III\uC-LIB\Ports\ARM-Cortex-M4\RealView -I..\..\uCOS-III\uCOS-III\Ports\ARM-Cortex-M4\Generic\RealView -I..\..\User -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\libapp -I..\..\RL-ARM\Config -I..\..\RL-ARM\Driver -I..\..\RL-ARM\RL-RTX\inc -I..\..\User\bsp\BSP -I..\..\RL-ARM\RL-CAN -I..\..\Libraries\DSP_LIB\Include -I..\..\MODBUS\modbus\rtu -I..\..\MODBUS\BARE\port -I..\..\MODBUS\modbus\include -I..\..\User\bsp\BSP -I..\..\PLC -I..\..\Avoid -I..\..\User\parameter -I..\..\User\LaserMotionCtr -I..\..\User\W5100S -I..\..\User\bsp -I..\..\User\CHASSIS -I..\..\User\CONTROLFUNCTION -I..\..\User\DATAUPDATE -I..\..\User\HARAWARE -I..\..\User\MOTORDRIVER -I..\..\User\NAVAGATION -I..\..\User\PLATFORM -I..\..\User\SENSOR -I.\RTE\_Flash -IC:\Users\YDJ\AppData\Local\Arm\Packs\ARM\CMSIS\5.5.1\CMSIS\Core\Include -IC:\Users\YDJ\AppData\Local\Arm\Packs\Keil\STM32F4xx_DFP\2.13.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include -D__UVISION_VERSION=527 -D_RTE_ -DSTM32F407xx -DUSE_STDPERIPH_DRIVER -DSTM32F40_41xxx -D__RTX -D__FPU_USED=1 --omf_browse=.\flash\obj\stm32f4xx_wwdg.crf ..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c]
                          THUMB

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

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

                  |L1.8|
                          DCD      0x40002c08

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

                  WWDG_DeInit PROC
;;;137      */
;;;138    void WWDG_DeInit(void)
000000  b510              PUSH     {r4,lr}
;;;139    {
;;;140      RCC_APB1PeriphResetCmd(RCC_APB1Periph_WWDG, ENABLE);
000002  2101              MOVS     r1,#1
000004  02cc              LSLS     r4,r1,#11
000006  4620              MOV      r0,r4
000008  f7fffffe          BL       RCC_APB1PeriphResetCmd
;;;141      RCC_APB1PeriphResetCmd(RCC_APB1Periph_WWDG, DISABLE);
00000c  4620              MOV      r0,r4
00000e  e8bd4010          POP      {r4,lr}
000012  2100              MOVS     r1,#0
000014  f7ffbffe          B.W      RCC_APB1PeriphResetCmd
;;;142    }
;;;143    
                          ENDP


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

                  WWDG_Enable PROC
;;;238      */
;;;239    void WWDG_Enable(uint8_t Counter)
000000  4902              LDR      r1,|L3.12|
;;;240    {
;;;241      /* Check the parameters */
;;;242      assert_param(IS_WWDG_COUNTER(Counter));
;;;243      WWDG->CR = WWDG_CR_WDGA | Counter;
000002  f0400080          ORR      r0,r0,#0x80
000006  6008              STR      r0,[r1,#0]
;;;244    }
000008  4770              BX       lr
;;;245    /**
                          ENDP

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

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

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

                  |L4.8|
                          DCD      0x420580a4

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

                  WWDG_GetFlagStatus PROC
;;;265      */
;;;266    FlagStatus WWDG_GetFlagStatus(void)
000000  2000              MOVS     r0,#0
;;;267    {
;;;268      FlagStatus bitstatus = RESET;
;;;269        
;;;270      if ((WWDG->SR) != (uint32_t)RESET)
000002  4903              LDR      r1,|L5.16|
000004  6809              LDR      r1,[r1,#0]
000006  2900              CMP      r1,#0
000008  d000              BEQ      |L5.12|
;;;271      {
;;;272        bitstatus = SET;
00000a  2001              MOVS     r0,#1
                  |L5.12|
;;;273      }
;;;274      else
;;;275      {
;;;276        bitstatus = RESET;
;;;277      }
;;;278      return bitstatus;
;;;279    }
00000c  4770              BX       lr
;;;280    
                          ENDP

00000e  0000              DCW      0x0000
                  |L5.16|
                          DCD      0x40002c08

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

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

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

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

                  WWDG_SetPrescaler PROC
;;;153      */
;;;154    void WWDG_SetPrescaler(uint32_t WWDG_Prescaler)
000000  4a03              LDR      r2,|L7.16|
;;;155    {
;;;156      uint32_t tmpreg = 0;
;;;157      /* Check the parameters */
;;;158      assert_param(IS_WWDG_PRESCALER(WWDG_Prescaler));
;;;159      /* Clear WDGTB[1:0] bits */
;;;160      tmpreg = WWDG->CFR & CFR_WDGTB_MASK;
000002  6811              LDR      r1,[r2,#0]
000004  f42171c0          BIC      r1,r1,#0x180
;;;161      /* Set WDGTB[1:0] bits according to WWDG_Prescaler value */
;;;162      tmpreg |= WWDG_Prescaler;
000008  4301              ORRS     r1,r1,r0
;;;163      /* Store the new value */
;;;164      WWDG->CFR = tmpreg;
00000a  6011              STR      r1,[r2,#0]
;;;165    }
00000c  4770              BX       lr
;;;166    
                          ENDP

00000e  0000              DCW      0x0000
                  |L7.16|
                          DCD      0x40002c04

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

                  WWDG_SetWindowValue PROC
;;;172      */
;;;173    void WWDG_SetWindowValue(uint8_t WindowValue)
000000  b508              PUSH     {r3,lr}
;;;174    {
;;;175      __IO uint32_t tmpreg = 0;
;;;176    
;;;177      /* Check the parameters */
;;;178      assert_param(IS_WWDG_WINDOW_VALUE(WindowValue));
;;;179      /* Clear W[6:0] bits */
;;;180    
;;;181      tmpreg = WWDG->CFR & CFR_W_MASK;
000002  4906              LDR      r1,|L8.28|
000004  680a              LDR      r2,[r1,#0]
000006  f022027f          BIC      r2,r2,#0x7f
00000a  9200              STR      r2,[sp,#0]
;;;182    
;;;183      /* Set W[6:0] bits according to WindowValue value */
;;;184      tmpreg |= WindowValue & (uint32_t) BIT_MASK;
00000c  9a00              LDR      r2,[sp,#0]
00000e  f000007f          AND      r0,r0,#0x7f
000012  4310              ORRS     r0,r0,r2
000014  9000              STR      r0,[sp,#0]
;;;185    
;;;186      /* Store the new value */
;;;187      WWDG->CFR = tmpreg;
000016  9800              LDR      r0,[sp,#0]
000018  6008              STR      r0,[r1,#0]
;;;188    }
00001a  bd08              POP      {r3,pc}
;;;189    
                          ENDP

                  |L8.28|
                          DCD      0x40002c04

;*** Start embedded assembler ***

#line 1 "..\\..\\Libraries\\STM32F4xx_StdPeriph_Driver\\src\\stm32f4xx_wwdg.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___16_stm32f4xx_wwdg_c_9668c0ca____REV16|
#line 129 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|__asm___16_stm32f4xx_wwdg_c_9668c0ca____REV16| PROC
#line 130

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE
	THUMB
	EXPORT |__asm___16_stm32f4xx_wwdg_c_9668c0ca____REVSH|
#line 144
|__asm___16_stm32f4xx_wwdg_c_9668c0ca____REVSH| PROC
#line 145

 revsh r0, r0
 bx lr
	ENDP
	AREA ||.rrx_text||, CODE
	THUMB
	EXPORT |__asm___16_stm32f4xx_wwdg_c_9668c0ca____RRX|
#line 300
|__asm___16_stm32f4xx_wwdg_c_9668c0ca____RRX| PROC
#line 301

 rrx r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***