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

📄 bsp.lst

📁 针对STM32F103的UCOS移植
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \                     ??LED_Toggle_14:
   \   000000AA   E805               LSLS     R0,R5,#+23
   \   000000AC   04D4               BMI.N    ??LED_Toggle_15
    554                           GPIO_SetBits(  GPIOC, GPIOC_LED3);
   \   000000AE   A10D               LSRS     R1,R4,#+22
   \   000000B0   2000               MOVS     R0,R4
   \   000000B2   ........           _BLF     GPIO_SetBits,??GPIO_SetBits??rT
   \   000000B6   70BD               POP      {R4-R6,PC}
    555                       } else {
    556                           GPIO_ResetBits(GPIOC, GPIOC_LED3);
   \                     ??LED_Toggle_15:
   \   000000B8   A10D               LSRS     R1,R4,#+22
   \   000000BA   2000               MOVS     R0,R4
   \   000000BC   ........           _BLF     GPIO_ResetBits,??GPIO_ResetBits??rT
   \   000000C0   70BD               POP      {R4-R6,PC}
    557                       }
    558                      break;
    559          
    560                  case 4:
    561                       if ((pins & GPIOC_LED4) == 0) {
   \                     ??LED_Toggle_16:
   \   000000C2   A805               LSLS     R0,R5,#+22
   \   000000C4   04D4               BMI.N    ??LED_Toggle_17
    562                           GPIO_SetBits(  GPIOC, GPIOC_LED4);
   \   000000C6   610D               LSRS     R1,R4,#+21
   \   000000C8   2000               MOVS     R0,R4
   \   000000CA   ........           _BLF     GPIO_SetBits,??GPIO_SetBits??rT
   \   000000CE   70BD               POP      {R4-R6,PC}
    563                       } else {
    564                           GPIO_ResetBits(GPIOC, GPIOC_LED4);
   \                     ??LED_Toggle_17:
   \   000000D0   610D               LSRS     R1,R4,#+21
   \   000000D2   2000               MOVS     R0,R4
   \   000000D4   ........           _BLF     GPIO_ResetBits,??GPIO_ResetBits??rT
    565                       }
    566                      break;
    567          
    568                  default:
    569                       break;
    570              }
    571          }
   \                     ??LED_Toggle_1:
   \   000000D8   70BD               POP      {R4-R6,PC}       ;; return
    572          
    573          
    574          /*
    575          ******************************************************************************************************************************
    576          ******************************************************************************************************************************
    577          *                                  uC/Probe Plug-In for uC/OS-II Functions
    578          ******************************************************************************************************************************
    579          ******************************************************************************************************************************
    580          */
    581          
    582          /*
    583          *********************************************************************************************************
    584          *                              INITIALIZE TIMER FOR uC/Probe Plug-In for uC/OS-II
    585          *
    586          * Description : This function is called to by uC/Probe Plug-In for uC/OS-II to initialize the
    587          *               free running timer that is used to make time measurements.
    588          *
    589          * Arguments   : none
    590          *
    591          * Returns     : none
    592          *
    593          * Note(s)     : This function is EMPTY because the timer is initialized elsewhere.
    594          *********************************************************************************************************
    595          */
    596          
    597          #if (uC_PROBE_OS_PLUGIN > 0) && (OS_PROBE_HOOKS_EN == 1)

   \                                 In segment CODE, align 4, keep-with-next
    598          void  OSProbe_TmrInit (void)
    599          {
   \                     OSProbe_TmrInit:
   \   00000000   03B5               PUSH     {R0,R1,LR}
    600              TIM_TimeBaseInitTypeDef  tim_init;
    601          
    602          
    603          #if (OS_PROBE_TIMER_SEL == 2)
    604          
    605              RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
   \   00000002   0121               MOVS     R1,#+1
   \   00000004   0846               MOV      R0,R1
   \   00000006   ........           _BLF     RCC_APB1PeriphClockCmd,??RCC_APB1PeriphClockCmd??rT
    606          
    607              tim_init.TIM_Period        = 0xFFFF;
   \   0000000A   0F48               LDR.N    R0,??OSProbe_TmrInit_0  ;; 0xffff
   \   0000000C   ADF80000           STRH     R0,[SP, #+0]
    608              tim_init.TIM_Prescaler     = 0x00;
   \   00000010   0020               MOVS     R0,#+0
   \   00000012   ADF80200           STRH     R0,[SP, #+2]
    609              tim_init.TIM_ClockDivision = 0x0;
   \   00000016   ADF80400           STRH     R0,[SP, #+4]
    610              tim_init.TIM_CounterMode   = TIM_CounterMode_Up;
   \   0000001A   ADF80600           STRH     R0,[SP, #+6]
    611          
    612              TIM_TimeBaseInit(TIM2, &tim_init);
   \   0000001E   6946               MOV      R1,SP
   \   00000020   5FF08040           MOVS     R0,#+1073741824
   \   00000024   ........           _BLF     TIM_TimeBaseInit,??TIM_TimeBaseInit??rT
    613              TIM_SetCounter(TIM2, 0);
   \   00000028   0021               MOVS     R1,#+0
   \   0000002A   5FF08040           MOVS     R0,#+1073741824
   \   0000002E   ........           _BLF     TIM_SetCounter,??TIM_SetCounter??rT
    614              TIM_PrescalerConfig(TIM2, 256, TIM_PSCReloadMode_Immediate);
   \   00000032   0122               MOVS     R2,#+1
   \   00000034   1102               LSLS     R1,R2,#+8
   \   00000036   8805               LSLS     R0,R1,#+22
   \   00000038   ........           _BLF     TIM_PrescalerConfig,??TIM_PrescalerConfig??rT
    615              TIM_Cmd(TIM2, ENABLE);
   \   0000003C   0121               MOVS     R1,#+1
   \   0000003E   8807               LSLS     R0,R1,#+30
   \   00000040   ........           _BLF     TIM_Cmd,??TIM_Cmd??rT
    616          
    617          #elif (OS_PROBE_TIMER_SEL == 3)
    618          
    619              RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
    620          
    621              tim_init.TIM_Period        = 0xFFFF;
    622              tim_init.TIM_Prescaler     = 0x00;
    623              tim_init.TIM_ClockDivision = 0x0;
    624              tim_init.TIM_CounterMode   = TIM_CounterMode_Up;
    625          
    626              TIM_TimeBaseInit(TIM3, &tim_init);
    627              TIM_SetCounter(TIM3, 0);
    628              TIM_PrescalerConfig(TIM3, 256, TIM_PSCReloadMode_Immediate);
    629              TIM_Cmd(TIM3, ENABLE);
    630          
    631          #elif (OS_PROBE_TIMER_SEL == 4)
    632          
    633              RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
    634          
    635              tim_init.TIM_Period        = 0xFFFF;
    636              tim_init.TIM_Prescaler     = 0x00;
    637              tim_init.TIM_ClockDivision = 0x0;
    638              tim_init.TIM_CounterMode   = TIM_CounterMode_Up;
    639          
    640              TIM_TimeBaseInit(TIM4, &tim_init);
    641              TIM_SetCounter(TIM4, 0);
    642              TIM_PrescalerConfig(TIM4, 256, TIM_PSCReloadMode_Immediate);
    643              TIM_Cmd(TIM4, ENABLE);
    644          
    645          #endif
    646          }
   \   00000044   03BD               POP      {R0,R1,PC}       ;; return
   \   00000046   00BF               Nop      
   \                     ??OSProbe_TmrInit_0:
   \   00000048   FFFF0000           DC32     0xffff
    647          #endif
    648          
    649          
    650          /*
    651          *********************************************************************************************************
    652          *                              READ TIMER FOR uC/Probe Plug-In for uC/OS-II
    653          *
    654          * Description : This function is called to read the current counts of a 16 bit free running timer.
    655          *
    656          * Arguments   : none
    657          *
    658          * Returns     : The 16 or 32 bit count of the timer assuming the timer is an UP counter.
    659          *********************************************************************************************************
    660          */
    661          
    662          #if (uC_PROBE_OS_PLUGIN > 0) && (OS_PROBE_HOOKS_EN == 1)

   \                                 In segment CODE, align 4, keep-with-next
    663          CPU_INT32U  OSProbe_TmrRd (void)
    664          {
   \                     OSProbe_TmrRd:
   \   00000000   00B5               PUSH     {LR}
    665          #if (OS_PROBE_TIMER_SEL == 2)
    666          
    667              return ((CPU_INT32U)TIM_GetCounter(TIM2));
   \   00000002   5FF08040           MOVS     R0,#+1073741824
   \   00000006   ........           _BLF     TIM_GetCounter,??TIM_GetCounter??rT
   \   0000000A   00BD               POP      {PC}             ;; return
    668          
    669          #elif (OS_PROBE_TIMER_SEL == 3)
    670          
    671              return ((CPU_INT32U)TIM_GetCounter(TIM3));
    672          
    673          #elif (OS_PROBE_TIMER_SEL == 4)
    674          
    675              return ((CPU_INT32U)TIM_GetCounter(TIM4));
    676          
    677          #endif
    678          }
    679          #endif
    680          
    681          
    682          
    683          /*
    684          ******************************************************************************************************************************
    685          ******************************************************************************************************************************
    686          **                                         uC/OS-II Timer Functions
    687          ******************************************************************************************************************************
    688          ******************************************************************************************************************************
    689          */
    690          
    691          /*
    692          *********************************************************************************************************
    693          *                                       TICKER INITIALIZATION
    694          *
    695          * Description : This function is called to initialize uC/OS-II's tick source (typically a timer generating
    696          *               interrupts every 1 to 100 mS).
    697          *
    698          * Arguments   : none
    699          *
    700          * Note(s)     : 1) The timer is setup for output compare mode BUT 'MUST' also 'freerun' so that the timer
    701          *                  count goes from 0x00000000 to 0xFFFFFFFF to ALSO be able to read the free running count.
    702          *                  The reason this is needed is because we use the free-running count in uC/OS-View.
    703          *********************************************************************************************************
    704          */
    705          

   \                                 In segment CODE, align 4, keep-with-next
    706          static  void  Tmr_TickInit (void)
    707          {
   \                     Tmr_TickInit:
   \   00000000   00B5               PUSH     {LR}
   \   00000002   85B0               SUB      SP,SP,#+20
    708              RCC_ClocksTypeDef  rcc_clocks;
    709              CPU_INT32U         cnts;
    710          
    711          
    712              RCC_GetClocksFreq(&rcc_clocks);
   \   00000004   6846               MOV      R0,SP
   \   00000006   ........           _BLF     RCC_GetClocksFreq,??RCC_GetClocksFreq??rT
    713          
    714              cnts = (CPU_INT32U)rcc_clocks.HCLK_Frequency / OS_TICKS_PER_SEC;
    715          
    716              SysTick_SetReload(cnts);
   \  

⌨️ 快捷键说明

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