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

📄 os_cpu_c.lst

📁 stm32+ucos-ii
💻 LST
📖 第 1 页 / 共 3 页
字号:
###############################################################################
#                                                                             #
# IAR ANSI C/C++ Compiler V6.10.2.52244/W32 for ARM     07/Aug/2011  12:10:28 #
# Copyright 1999-2010 IAR Systems AB.                                         #
#                                                                             #
#    Cpu mode     =  thumb                                                    #
#    Endian       =  little                                                   #
#    Source file  =  F:\stm32\我的程序\Micrium\Software\uCOS-II\Ports\ARM-Cor #
#                    tex-M3\Generic\IAR\os_cpu_c.c                            #
#    Command line =  F:\stm32\我的程序\Micrium\Software\uCOS-II\Ports\ARM-Cor #
#                    tex-M3\Generic\IAR\os_cpu_c.c -D USE_STDPERIPH_DRIVER    #
#                    -D STM32F10X_CL -lCN F:\stm32\我的程序\Micrium\Software\ #
#                    EWARM\OS-II\Flash\List\ -o F:\stm32\我的程序\Micrium\Sof #
#                    tware\EWARM\OS-II\Flash\Obj\ --no_cse --no_unroll        #
#                    --no_inline --no_code_motion --no_tbaa --no_clustering   #
#                    --no_scheduling --debug --endian=little --cpu=Cortex-M3  #
#                    -e --fpu=None --dlib_config                              #
#                    D:\arm\INC\c\DLib_Config_Normal.h -I                     #
#                    F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\APP\ -I   #
#                    F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\   #
#                    -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP #
#                    \ST\CMSIS\CM3\CoreSupport\ -I                            #
#                    F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\ST #
#                    \CMSIS\CM3\DeviceSupport\ST\STM32F10x\ -I                #
#                    F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\ST #
#                    \STM32F10x_StdPeriph_Driver\inc\ -I                      #
#                    F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\uC #
#                    OS-II\ -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II #
#                    \..\..\uCOS-II\Ports\ARM-Cortex-M3\Generic\IAR\ -I       #
#                    F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\..\uCO #
#                    S-II\Source\ -I F:\stm32\我的程序\Micrium\Software\EWARM #
#                    \OS-II\..\..\uC-LIB\ -I F:\stm32\我的程序\Micrium\Softwa #
#                    re\EWARM\OS-II\..\..\uC-LIB\Ports\ARM-Cortex-M3\IAR\ -I  #
#                    F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\..\uC- #
#                    CPU\ -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\. #
#                    .\..\uC-CPU\ARM-Cortex-M3\IAR\ -On --use_c++_inline      #
#    List file    =  F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Flash\Lis #
#                    t\os_cpu_c.lst                                           #
#    Object file  =  F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Flash\Obj #
#                    \os_cpu_c.o                                              #
#                                                                             #
#                                                                             #
###############################################################################

F:\stm32\我的程序\Micrium\Software\uCOS-II\Ports\ARM-Cortex-M3\Generic\IAR\os_cpu_c.c
      1          /*
      2          *********************************************************************************************************
      3          *                                               uC/OS-II
      4          *                                         The Real-Time Kernel
      5          *
      6          *
      7          *                                (c) Copyright 2006, Micrium, Weston, FL
      8          *                                          All Rights Reserved
      9          *
     10          *                                           ARM Cortex-M3 Port
     11          *
     12          * File      : OS_CPU_C.C
     13          * Version   : V2.89
     14          * By        : Jean J. Labrosse
     15          *             Brian Nagel
     16          *
     17          * For       : ARMv7M Cortex-M3
     18          * Mode      : Thumb2
     19          * Toolchain : IAR EWARM
     20          *********************************************************************************************************
     21          */
     22          
     23          #define  OS_CPU_GLOBALS
     24          #include <ucos_ii.h>

   \                                 In section .bss, align 4
   \   __absolute OS_STK OS_CPU_ExceptStk[128U]
   \                     OS_CPU_ExceptStk:
   \   00000000                      DS8 512

   \                                 In section .bss, align 4
   \   __absolute unsigned int *OS_CPU_ExceptStkBase
   \                     OS_CPU_ExceptStkBase:
   \   00000000                      DS8 4
     25          
     26          /*
     27          *********************************************************************************************************
     28          *                                          LOCAL VARIABLES
     29          *********************************************************************************************************
     30          */
     31          
     32          #if OS_TMR_EN > 0u

   \                                 In section .bss, align 2
     33          static  INT16U  OSTmrCtr;
   \                     OSTmrCtr:
   \   00000000                      DS8 2
     34          #endif
     35          
     36          /*
     37          *********************************************************************************************************
     38          *                                          SYS TICK DEFINES
     39          *********************************************************************************************************
     40          */
     41          
     42          #define  OS_CPU_CM3_NVIC_ST_CTRL    (*((volatile INT32U *)0xE000E010uL)) /* SysTick Ctrl & Status Reg. */
     43          #define  OS_CPU_CM3_NVIC_ST_RELOAD  (*((volatile INT32U *)0xE000E014uL)) /* SysTick Reload  Value Reg. */
     44          #define  OS_CPU_CM3_NVIC_ST_CURRENT (*((volatile INT32U *)0xE000E018uL)) /* SysTick Current Value Reg. */
     45          #define  OS_CPU_CM3_NVIC_ST_CAL     (*((volatile INT32U *)0xE000E01CuL)) /* SysTick Cal     Value Reg. */
     46          #define  OS_CPU_CM3_NVIC_PRIO_ST    (*((volatile INT8U  *)0xE000ED23uL)) /* SysTick Handler Prio  Reg. */
     47          
     48          #define  OS_CPU_CM3_NVIC_ST_CTRL_COUNT                    0x00010000uL   /* Count flag.                */
     49          #define  OS_CPU_CM3_NVIC_ST_CTRL_CLK_SRC                  0x00000004uL   /* Clock Source.              */
     50          #define  OS_CPU_CM3_NVIC_ST_CTRL_INTEN                    0x00000002uL   /* Interrupt enable.          */
     51          #define  OS_CPU_CM3_NVIC_ST_CTRL_ENABLE                   0x00000001uL   /* Counter mode.              */
     52          #define  OS_CPU_CM3_NVIC_PRIO_MIN                               0xFFu    /* Min handler prio.          */
     53          
     54          /*
     55          *********************************************************************************************************
     56          *                                       OS INITIALIZATION HOOK
     57          *                                            (BEGINNING)
     58          *
     59          * Description: This function is called by OSInit() at the beginning of OSInit().
     60          *
     61          * Arguments  : none
     62          *
     63          * Note(s)    : 1) Interrupts should be disabled during this call.
     64          *********************************************************************************************************
     65          */
     66          #if OS_CPU_HOOKS_EN > 0u

   \                                 In section .text, align 2, keep-with-next
     67          void  OSInitHookBegin (void)
     68          {
     69              INT32U   size;
     70              OS_STK  *pstk;
     71          
     72                                                                     /* Clear exception stack for stack checking.*/
     73              pstk = &OS_CPU_ExceptStk[0];
   \                     OSInitHookBegin:
   \   00000000   ....               LDR.N    R2,??DataTable4
   \   00000002   1100               MOVS     R1,R2
     74              size = OS_CPU_EXCEPT_STK_SIZE;
   \   00000004   8022               MOVS     R2,#+128
   \   00000006   1000               MOVS     R0,R2
     75              while (size > 0u) {
   \                     ??OSInitHookBegin_0:
   \   00000008   0028               CMP      R0,#+0
   \   0000000A   04D0               BEQ.N    ??OSInitHookBegin_1
     76                  size--;
   \   0000000C   401E               SUBS     R0,R0,#+1
     77                 *pstk++ = (OS_STK)0;
   \   0000000E   0022               MOVS     R2,#+0
   \   00000010   0A60               STR      R2,[R1, #+0]
   \   00000012   091D               ADDS     R1,R1,#+4
   \   00000014   F8E7               B.N      ??OSInitHookBegin_0
     78              }
     79          
     80              OS_CPU_ExceptStkBase = &OS_CPU_ExceptStk[OS_CPU_EXCEPT_STK_SIZE - 1u];
   \                     ??OSInitHookBegin_1:
   \   00000016   ....               LDR.N    R2,??DataTable4_1
   \   00000018   ....               LDR.N    R3,??DataTable4_2
   \   0000001A   1360               STR      R3,[R2, #+0]
     81          
     82          #if OS_TMR_EN > 0u
     83              OSTmrCtr = 0u;
   \   0000001C   ....               LDR.N    R2,??DataTable4_3
   \   0000001E   0023               MOVS     R3,#+0
   \   00000020   1380               STRH     R3,[R2, #+0]
     84          #endif
     85          }
   \   00000022   7047               BX       LR               ;; return
     86          #endif
     87          
     88          /*
     89          *********************************************************************************************************
     90          *                                       OS INITIALIZATION HOOK
     91          *                                               (END)
     92          *
     93          * Description: This function is called by OSInit() at the end of OSInit().
     94          *
     95          * Arguments  : none
     96          *
     97          * Note(s)    : 1) Interrupts should be disabled during this call.
     98          *********************************************************************************************************
     99          */
    100          #if OS_CPU_HOOKS_EN > 0u

   \                                 In section .text, align 2, keep-with-next
    101          void  OSInitHookEnd (void)
    102          {
    103          }
   \                     OSInitHookEnd:
   \   00000000   7047               BX       LR               ;; return
    104          #endif
    105          
    106          /*
    107          *********************************************************************************************************
    108          *                                          TASK CREATION HOOK
    109          *
    110          * Description: This function is called when a task is created.
    111          *
    112          * Arguments  : ptcb   is a pointer to the task control block of the task being created.
    113          *
    114          * Note(s)    : 1) Interrupts are disabled during this call.
    115          *********************************************************************************************************
    116          */
    117          #if OS_CPU_HOOKS_EN > 0u

   \                                 In section .text, align 2, keep-with-next
    118          void  OSTaskCreateHook (OS_TCB *ptcb)
    119          {
   \                     OSTaskCreateHook:
   \   00000000   10B5               PUSH     {R4,LR}
   \   00000002   0400               MOVS     R4,R0
    120          #if OS_APP_HOOKS_EN > 0u
    121              App_TaskCreateHook(ptcb);
   \   00000004   2000               MOVS     R0,R4
   \   00000006   ........           BL       App_TaskCreateHook
    122          #else
    123              (void)ptcb;                                  /* Prevent compiler warning                           */
    124          #endif
    125          }
   \   0000000A   10BD               POP      {R4,PC}          ;; return
    126          #endif
    127          
    128          
    129          /*
    130          *********************************************************************************************************
    131          *                                           TASK DELETION HOOK
    132          *
    133          * Description: This function is called when a task is deleted.
    134          *
    135          * Arguments  : ptcb   is a pointer to the task control block of the task being deleted.
    136          *
    137          * Note(s)    : 1) Interrupts are disabled during this call.
    138          *********************************************************************************************************
    139          */
    140          #if OS_CPU_HOOKS_EN > 0u

   \                                 In section .text, align 2, keep-with-next
    141          void  OSTaskDelHook (OS_TCB *ptcb)
    142          {
   \                     OSTaskDelHook:
   \   00000000   10B5               PUSH     {R4,LR}
   \   00000002   0400               MOVS     R4,R0
    143          #if OS_APP_HOOKS_EN > 0u
    144              App_TaskDelHook(ptcb);
   \   00000004   2000               MOVS     R0,R4
   \   00000006   ........           BL       App_TaskDelHook
    145          #else
    146              (void)ptcb;                                  /* Prevent compiler warning                           */

⌨️ 快捷键说明

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