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

📄 stm32f10x_systick.txt

📁 ucos2.86版本结合STM板极支持包
💻 TXT
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 914] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\rvmdk\stm32f10x_systick.o --depend=.\rvmdk\stm32f10x_systick.d --device=DARMSTM -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 -ID:\Keil\ARM\INC\ST\STM32F10x ..\..\..\..\..\CPU\ST\STM32\src\stm32f10x_systick.c]
                          THUMB

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

                  SysTick_CLKSourceConfig PROC
;;;55     
;;;56       if (SysTick_CLKSource == SysTick_CLKSource_HCLK)
000000  f04ff04f          MOV      r1,#0xe000e000
000004  2804              CMP      r0,#4
000006  d104              BNE      |L1.18|
;;;57       {
;;;58         SysTick->CTRL |= SysTick_CLKSource_HCLK;
000008  6908              LDR      r0,[r1,#0x10]
00000a  f040f040          ORR      r0,r0,#4
00000e  6108              STR      r0,[r1,#0x10]
;;;59       }
;;;60       else
;;;61       {
;;;62         SysTick->CTRL &= SysTick_CLKSource_HCLK_Div8;
;;;63       }
;;;64     }
000010  4770              BX       lr
                  |L1.18|
000012  6908              LDR      r0,[r1,#0x10]
000014  f020f020          BIC      r0,r0,#4
000018  6108              STR      r0,[r1,#0x10]
00001a  4770              BX       lr
;;;65     
                          ENDP

                  SysTick_SetReload PROC
;;;78     
;;;79       SysTick->LOAD = Reload;
00001c  f04ff04f          MOV      r1,#0xe000e000
000020  6148              STR      r0,[r1,#0x14]
;;;80     }
000022  4770              BX       lr
;;;81     
                          ENDP

                  SysTick_CounterCmd PROC
;;;97     
;;;98       if (SysTick_Counter == SysTick_Counter_Clear)
000024  f04ff04f          MOV      r1,#0xe000e000
000028  b910              CBNZ     r0,|L1.48|
;;;99       {
;;;100        SysTick->VAL = SysTick_Counter_Clear;
00002a  2000              MOVS     r0,#0
00002c  6188              STR      r0,[r1,#0x18]
;;;101      }
;;;102      else
;;;103      {
;;;104        if (SysTick_Counter == SysTick_Counter_Enable)
;;;105        {
;;;106          SysTick->CTRL |= SysTick_Counter_Enable;
;;;107        }
;;;108        else
;;;109        {
;;;110          SysTick->CTRL &= SysTick_Counter_Disable;
;;;111        }
;;;112      }
;;;113    }
00002e  4770              BX       lr
                  |L1.48|
000030  2801              CMP      r0,#1
000032  d104              BNE      |L1.62|
000034  6908              LDR      r0,[r1,#0x10]
000036  f040f040          ORR      r0,r0,#1
00003a  6108              STR      r0,[r1,#0x10]
00003c  4770              BX       lr
                  |L1.62|
00003e  6908              LDR      r0,[r1,#0x10]
000040  f020f020          BIC      r0,r0,#1
000044  6108              STR      r0,[r1,#0x10]
000046  4770              BX       lr
;;;114    
                          ENDP

                  SysTick_ITConfig PROC
;;;127    
;;;128      if (NewState != DISABLE)
000048  f04ff04f          MOV      r1,#0xe000e000
00004c  b120              CBZ      r0,|L1.88|
;;;129      {
;;;130        SysTick->CTRL |= CTRL_TICKINT_Set;
00004e  6908              LDR      r0,[r1,#0x10]
000050  f040f040          ORR      r0,r0,#2
000054  6108              STR      r0,[r1,#0x10]
;;;131      }
;;;132      else
;;;133      {
;;;134        SysTick->CTRL &= CTRL_TICKINT_Reset;
;;;135      }
;;;136    }
000056  4770              BX       lr
                  |L1.88|
000058  6908              LDR      r0,[r1,#0x10]
00005a  f020f020          BIC      r0,r0,#2
00005e  6108              STR      r0,[r1,#0x10]
000060  4770              BX       lr
;;;137    
                          ENDP

                  SysTick_GetCounter PROC
;;;146    {
;;;147      return(SysTick->VAL);
000062  f04ff04f          MOV      r0,#0xe000e000
000066  6980              LDR      r0,[r0,#0x18]
;;;148    }
000068  4770              BX       lr
;;;149    
                          ENDP

                  SysTick_GetFlagStatus PROC
;;;164      u32 statusreg = 0;
;;;165      FlagStatus bitstatus = RESET;
00006a  2200              MOVS     r2,#0
;;;166    
;;;167      /* Check the parameters */
;;;168      assert(IS_SYSTICK_FLAG(SysTick_FLAG));
;;;169    
;;;170      /* Get the SysTick register index */
;;;171      tmp = SysTick_FLAG >> 5;
00006c  0941              LSRS     r1,r0,#5
;;;172    
;;;173      if (tmp == 1) /* The flag to check is in CTRL register */
00006e  f04ff04f          MOV      r3,#0xe000e000
000072  2901              CMP      r1,#1
000074  d101              BNE      |L1.122|
;;;174      {
;;;175        statusreg = SysTick->CTRL;
000076  6919              LDR      r1,[r3,#0x10]
000078  e000              B        |L1.124|
                  |L1.122|
;;;176      }
;;;177      else          /* The flag to check is in CALIB register */
;;;178      {
;;;179        statusreg = SysTick->CALIB;
00007a  69d9              LDR      r1,[r3,#0x1c]
                  |L1.124|
;;;180      }
;;;181    
;;;182      /* Get the flag position */
;;;183      tmp = SysTick_FLAG & FLAG_Mask;
00007c  f000f000          AND      r0,r0,#0x1f
;;;184    
;;;185      if ((statusreg & ((u32)1 << tmp)) != (u32)RESET)
000080  2301              MOVS     r3,#1
000082  fa03fa03          LSL      r0,r3,r0
000086  4208              TST      r0,r1
000088  d000              BEQ      |L1.140|
;;;186      {
;;;187        bitstatus = SET;
00008a  2201              MOVS     r2,#1
                  |L1.140|
;;;188      }
;;;189      else
;;;190      {
;;;191        bitstatus = RESET;
;;;192      }
;;;193      return bitstatus;
00008c  4610              MOV      r0,r2
;;;194    }
00008e  4770              BX       lr
;;;195    
                          ENDP

⌨️ 快捷键说明

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