⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stm32f10x_wwdg.txt

📁 针对STM32F103的UCOS移植
💻 TXT
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 942] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\rvmdk\stm32f10x_wwdg.o --depend=.\rvmdk\stm32f10x_wwdg.d --device=DARMSTM --apcs=interwork -O1 -Otime -I. -I..\BSP -I..\..\..\..\..\uCOS-II\Ports\arm-cortex-m3\Generic\RealView -I..\..\..\..\..\uCOS-II\Source -I..\..\..\..\..\CPU\ST\STM32\inc -I..\..\..\..\..\uC-CPU -I..\..\..\..\..\uC-CPU\Arm-Cortex-M3\RealView -I..\..\..\..\..\uC-LIB -I..\..\..\..\..\uC-Probe\Target\Plugins\uCOS-II -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\Source -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Ports\ST\STM32 -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Source -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\..\..\..\CPU\ST\STM32\src\stm32f10x_wwdg.c]
                          THUMB

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  WWDG_DeInit PROC
;;;63     void WWDG_DeInit(void)
;;;64     {
000000  b510              PUSH     {r4,lr}
;;;65       RCC_APB1PeriphResetCmd(RCC_APB1Periph_WWDG, ENABLE);
000002  2101              MOVS     r1,#1
000004  02c8              LSLS     r0,r1,#11
000006  f7fffffe          BL       RCC_APB1PeriphResetCmd
;;;66       RCC_APB1PeriphResetCmd(RCC_APB1Periph_WWDG, DISABLE);
00000a  e8bd4010          POP      {r4,lr}
00000e  2100              MOVS     r1,#0
000010  f44f6000          MOV      r0,#0x800
000014  f7ffbffe          B.W      RCC_APB1PeriphResetCmd
;;;67     }
;;;68     
                          ENDP

                  WWDG_SetPrescaler PROC
;;;88       /* Clear WDGTB[8:7] bits */
;;;89       tmpreg = WWDG->CFR & CFR_WDGTB_Mask;
000018  4a12              LDR      r2,|L1.100|
00001a  6811              LDR      r1,[r2,#0]
00001c  f42171c0          BIC      r1,r1,#0x180
;;;90     
;;;91       /* Set WDGTB[8:7] bits according to WWDG_Prescaler value */
;;;92       tmpreg |= WWDG_Prescaler;
000020  4308              ORRS     r0,r0,r1
;;;93     
;;;94       /* Store the new value */
;;;95       WWDG->CFR = tmpreg;
000022  6010              STR      r0,[r2,#0]
;;;96     }
000024  4770              BX       lr
;;;97     
                          ENDP

                  WWDG_SetWindowValue PROC
;;;114      /* Clear W[6:0] bits */
;;;115      tmpreg = WWDG->CFR & CFR_W_Mask;
000026  4a0f              LDR      r2,|L1.100|
000028  6811              LDR      r1,[r2,#0]
00002a  f021017f          BIC      r1,r1,#0x7f
;;;116    
;;;117      /* Set W[6:0] bits according to WindowValue value */
;;;118      tmpreg |= WindowValue & BIT_Mask;
00002e  f000007f          AND      r0,r0,#0x7f
000032  4308              ORRS     r0,r0,r1
;;;119    
;;;120      /* Store the new value */
;;;121      WWDG->CFR = tmpreg;
000034  6010              STR      r0,[r2,#0]
;;;122    }
000036  4770              BX       lr
;;;123    
                          ENDP

                  WWDG_EnableIT PROC
;;;132    {
;;;133      *(vu32 *) CFR_EWI_BB = (u32)ENABLE;
000038  490b              LDR      r1,|L1.104|
00003a  2001              MOVS     r0,#1
00003c  6008              STR      r0,[r1,#0]
;;;134    }
00003e  4770              BX       lr
;;;135    
                          ENDP

                  WWDG_SetCounter PROC
;;;150         a read-modify-write; writing a 0 to WDGA bit does nothing */
;;;151      WWDG->CR = Counter & BIT_Mask;
000040  490a              LDR      r1,|L1.108|
000042  f000007f          AND      r0,r0,#0x7f
000046  6008              STR      r0,[r1,#0]
;;;152    }
000048  4770              BX       lr
;;;153    
                          ENDP

                  WWDG_Enable PROC
;;;167    
;;;168      WWDG->CR = CR_WDGA_Set | Counter;
00004a  4908              LDR      r1,|L1.108|
00004c  f0400080          ORR      r0,r0,#0x80
000050  6008              STR      r0,[r1,#0]
;;;169    }
000052  4770              BX       lr
;;;170    
                          ENDP

                  WWDG_GetFlagStatus PROC
;;;179    {
;;;180      return (FlagStatus)(*(vu32 *) SR_EWIF_BB);
000054  4806              LDR      r0,|L1.112|
000056  6800              LDR      r0,[r0,#0]
000058  b2c0              UXTB     r0,r0
;;;181    }
00005a  4770              BX       lr
;;;182    
                          ENDP

                  WWDG_ClearFlag PROC
;;;191    {
;;;192      WWDG->SR = (u32)RESET;
00005c  4905              LDR      r1,|L1.116|
00005e  2000              MOVS     r0,#0
000060  6008              STR      r0,[r1,#0]
;;;193    }
000062  4770              BX       lr
;;;194    
                          ENDP

                  |L1.100|
000064  40002c04          DCD      0x40002c04
                  |L1.104|
000068  420580a4          DCD      0x420580a4
                  |L1.108|
00006c  40002c00          DCD      0x40002c00
                  |L1.112|
000070  42058100          DCD      0x42058100
                  |L1.116|
000074  40002c08          DCD      0x40002c08

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -