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

📄 cpu_c.lst

📁 stm32+ucos-ii
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   0000005C   ........           BL       CPU_SR_Restore
    367                       break;
   \   00000060   56E0               B.N      ??CPU_IntSrcEn_7
    368          
    369                  case CPU_INT_BUSFAULT:                                  /* Bus fault.                                           */
    370                       CPU_CRITICAL_ENTER();
   \                     ??CPU_IntSrcEn_4:
   \   00000062   ........           BL       CPU_SR_Save
   \   00000066   8046               MOV      R8,R0
    371                       CPU_REG_NVIC_SHCSR |= CPU_REG_NVIC_SHCSR_BUSFAULTENA;
   \   00000068   ........           LDR.W    R0,??DataTable6_2  ;; 0xe000ed24
   \   0000006C   0068               LDR      R0,[R0, #+0]
   \   0000006E   50F40030           ORRS     R0,R0,#0x20000
   \   00000072   ........           LDR.W    R1,??DataTable6_2  ;; 0xe000ed24
   \   00000076   0860               STR      R0,[R1, #+0]
    372                       CPU_CRITICAL_EXIT();
   \   00000078   4046               MOV      R0,R8
   \   0000007A   ........           BL       CPU_SR_Restore
    373                       break;
   \   0000007E   47E0               B.N      ??CPU_IntSrcEn_7
    374          
    375                  case CPU_INT_USAGEFAULT:                                /* Usage fault.                                         */
    376                       CPU_CRITICAL_ENTER();
   \                     ??CPU_IntSrcEn_3:
   \   00000080   ........           BL       CPU_SR_Save
   \   00000084   8046               MOV      R8,R0
    377                       CPU_REG_NVIC_SHCSR |= CPU_REG_NVIC_SHCSR_USGFAULTENA;
   \   00000086   ........           LDR.W    R0,??DataTable6_2  ;; 0xe000ed24
   \   0000008A   0068               LDR      R0,[R0, #+0]
   \   0000008C   50F48020           ORRS     R0,R0,#0x40000
   \   00000090   ........           LDR.W    R1,??DataTable6_2  ;; 0xe000ed24
   \   00000094   0860               STR      R0,[R1, #+0]
    378                       CPU_CRITICAL_EXIT();
   \   00000096   4046               MOV      R0,R8
   \   00000098   ........           BL       CPU_SR_Restore
    379                       break;
   \   0000009C   38E0               B.N      ??CPU_IntSrcEn_7
    380          
    381                  case CPU_INT_SYSTICK:                                   /* SysTick.                                             */
    382                       CPU_CRITICAL_ENTER();
   \                     ??CPU_IntSrcEn_5:
   \   0000009E   ........           BL       CPU_SR_Save
   \   000000A2   8046               MOV      R8,R0
    383                       CPU_REG_NVIC_ST_CTRL |= CPU_REG_NVIC_ST_CTRL_ENABLE;
   \   000000A4   ........           LDR.W    R0,??DataTable6_3  ;; 0xe000e010
   \   000000A8   0068               LDR      R0,[R0, #+0]
   \   000000AA   50F00100           ORRS     R0,R0,#0x1
   \   000000AE   ........           LDR.W    R1,??DataTable6_3  ;; 0xe000e010
   \   000000B2   0860               STR      R0,[R1, #+0]
    384                       CPU_CRITICAL_EXIT();
   \   000000B4   4046               MOV      R0,R8
   \   000000B6   ........           BL       CPU_SR_Restore
    385                       break;
   \   000000BA   29E0               B.N      ??CPU_IntSrcEn_7
    386          
    387          
    388                                                                          /* ---------------- EXTERNAL INTERRUPT ---------------- */
    389                  default:
    390                      pos_max = CPU_INT_SRC_POS_MAX;
   \                     ??CPU_IntSrcEn_6:
   \   000000BC   ........           LDR.W    R0,??DataTable6_4  ;; 0xe000e004
   \   000000C0   0068               LDR      R0,[R0, #+0]
   \   000000C2   401C               ADDS     R0,R0,#+1
   \   000000C4   10F01F00           ANDS     R0,R0,#0x1F
   \   000000C8   4001               LSLS     R0,R0,#+5
   \   000000CA   1030               ADDS     R0,R0,#+16
   \   000000CC   0700               MOVS     R7,R0
    391                      if (pos < pos_max) {                                /* See Note #3.                                         */
   \   000000CE   E4B2               UXTB     R4,R4            ;; ZeroExt  R4,R4,#+24,#+24
   \   000000D0   FFB2               UXTB     R7,R7            ;; ZeroExt  R7,R7,#+24,#+24
   \   000000D2   BC42               CMP      R4,R7
   \   000000D4   1CD2               BCS.N    ??CPU_IntSrcEn_8
    392                           group = (pos - 16) / 32;
   \   000000D6   E4B2               UXTB     R4,R4            ;; ZeroExt  R4,R4,#+24,#+24
   \   000000D8   B4F11000           SUBS     R0,R4,#+16
   \   000000DC   2021               MOVS     R1,#+32
   \   000000DE   90FBF1F0           SDIV     R0,R0,R1
   \   000000E2   0500               MOVS     R5,R0
    393                           nbr   = (pos - 16) % 32;
   \   000000E4   E4B2               UXTB     R4,R4            ;; ZeroExt  R4,R4,#+24,#+24
   \   000000E6   B4F11000           SUBS     R0,R4,#+16
   \   000000EA   2021               MOVS     R1,#+32
   \   000000EC   90FBF1F2           SDIV     R2,R0,R1
   \   000000F0   02FB1102           MLS      R2,R2,R1,R0
   \   000000F4   1600               MOVS     R6,R2
    394          
    395                           CPU_CRITICAL_ENTER();
   \   000000F6   ........           BL       CPU_SR_Save
   \   000000FA   8046               MOV      R8,R0
    396                           CPU_REG_NVIC_SETEN(group) = DEF_BIT(nbr);
   \   000000FC   EDB2               UXTB     R5,R5            ;; ZeroExt  R5,R5,#+24,#+24
   \   000000FE   ........           LDR.W    R0,??DataTable6_6  ;; 0xe000e100
   \   00000102   0121               MOVS     R1,#+1
   \   00000104   B140               LSLS     R1,R1,R6
   \   00000106   40F82510           STR      R1,[R0, R5, LSL #+2]
    397                           CPU_CRITICAL_EXIT();
   \   0000010A   4046               MOV      R0,R8
   \   0000010C   ........           BL       CPU_SR_Restore
    398                       }
    399                       break;
    400              }
    401          }
   \                     ??CPU_IntSrcEn_8:
   \                     ??CPU_IntSrcEn_7:
   \   00000110   BDE8F081           POP      {R4-R8,PC}       ;; return
    402          
    403          /*$PAGE*/
    404          /*
    405          *********************************************************************************************************
    406          *                                         CPU_IntSrcPendClr()
    407          *
    408          * Description : Clear a pending interrupt.
    409          *
    410          * Argument(s) : pos     Position of interrupt vector in interrupt table (see 'CPU_IntSrcDis()').
    411          *
    412          * Return(s)   : none.
    413          *
    414          * Caller(s)   : Application.
    415          *
    416          * Note(s)     : (1) See 'CPU_IntSrcDis()  Note #1'.
    417          *
    418          *               (2) The pending status of several interrupts cannot be clear/set :
    419          *
    420          *                   (a) Reset.
    421          *                   (b) NMI.
    422          *                   (c) Hard fault.
    423          *                   (d) Memory Managment.
    424          *                   (e) Bus Fault.
    425          *                   (f) Usage Fault.
    426          *                   (g) SVCall.
    427          *                   (h) Debug monitor.
    428          *                   (i) PendSV.
    429          *                   (j) Systick 
    430          *
    431          *               (3) See 'CPU_IntSrcDis()  Note #3'.
    432          *********************************************************************************************************
    433          */
    434          

   \                                 In section .text, align 2, keep-with-next
    435          void  CPU_IntSrcPendClr (CPU_INT08U  pos)
    436          
    437          {
   \                     CPU_IntSrcPendClr:
   \   00000000   2DE9F041           PUSH     {R4-R8,LR}
   \   00000004   0400               MOVS     R4,R0
    438              CPU_INT08U  group;
    439              CPU_INT08U  nbr;
    440              CPU_INT08U  pos_max;
    441              CPU_SR_ALLOC();
   \   00000006   5FF00008           MOVS     R8,#+0
    442          
    443          
    444              switch (pos) {
   \   0000000A   E4B2               UXTB     R4,R4            ;; ZeroExt  R4,R4,#+24,#+24
   \   0000000C   2000               MOVS     R0,R4
   \   0000000E   0028               CMP      R0,#+0
   \   00000010   0ED0               BEQ.N    ??CPU_IntSrcPendClr_0
   \   00000012   401E               SUBS     R0,R0,#+1
   \   00000014   0528               CMP      R0,#+5
   \   00000016   0CD9               BLS.N    ??CPU_IntSrcPendClr_1
   \   00000018   801F               SUBS     R0,R0,#+6
   \   0000001A   0328               CMP      R0,#+3
   \   0000001C   08D9               BLS.N    ??CPU_IntSrcPendClr_0
   \   0000001E   001F               SUBS     R0,R0,#+4
   \   00000020   0128               CMP      R0,#+1
   \   00000022   06D9               BLS.N    ??CPU_IntSrcPendClr_1
   \   00000024   801E               SUBS     R0,R0,#+2
   \   00000026   03D0               BEQ.N    ??CPU_IntSrcPendClr_0
   \   00000028   401E               SUBS     R0,R0,#+1
   \   0000002A   0128               CMP      R0,#+1
   \   0000002C   01D9               BLS.N    ??CPU_IntSrcPendClr_1
   \   0000002E   01E0               B.N      ??CPU_IntSrcPendClr_2
    445                  case CPU_INT_STK_PTR:                                   /* ---------------- INVALID OR RESERVED --------------- */
    446                  case CPU_INT_RSVD_07:
    447                  case CPU_INT_RSVD_08:
    448                  case CPU_INT_RSVD_09:
    449                  case CPU_INT_RSVD_10:
    450                  case CPU_INT_RSVD_13:
    451                       break;
   \                     ??CPU_IntSrcPendClr_0:
   \   00000030   2AE0               B.N      ??CPU_IntSrcPendClr_3
    452                                                                          /* ----------------- SYSTEM EXCEPTIONS ---------------- */
    453                  case CPU_INT_RESET:                                     /* Reset (see Note #2).                                 */
    454                  case CPU_INT_NMI:                                       /* Non-maskable interrupt (see Note #2).                */
    455                  case CPU_INT_HFAULT:                                    /* Hard fault (see Note #2).                            */
    456                  case CPU_INT_MEM:                                       /* Memory management (see Note #2).                     */
    457                  case CPU_INT_SVCALL:                                    /* SVCall (see Note #2).                                */
    458                  case CPU_INT_DBGMON:                                    /* Debug monitor (see Note #2).                         */
    459                  case CPU_INT_PENDSV:                                    /* PendSV (see Note #2).                                */
    460                  case CPU_INT_BUSFAULT:                                  /* Bus fault.                                           */
    461                  case CPU_INT_USAGEFAULT:                                /* Usage fault.                                         */
    462                  case CPU_INT_SYSTICK:                                   /* SysTick.                                             */
    463                       break;
   \                     ??CPU_IntSrcPendClr_1:
   \   00000032   29E0               B.N      ??CPU_IntSrcPendClr_3
    464                                                                          /* ---------------- EXTERNAL INTERRUPT ---------------- */
    465                  default:
    466                      pos_max = CPU_INT_SRC_POS_MAX;
   \                     ??CPU_IntSrcPendClr_2:
   \   00000034   ........           LDR.W    R0,??DataTable6_4  ;; 0xe000e004
   \   00000038   0068               LDR      R0,[R0, #+0]
   \   0000003A   401C               ADDS     R0,R0,#+1
   \   0000003C   10F01F00           ANDS     R0,R0,#0x1F
   \   00000040   4001               LSLS     R0,R0,#+5
   \   00000042   1030               ADDS     R0,R0,#+16
   \   00000044   0700               MOVS     R7,R0
    467                      if (pos < pos_max) {                                /* See Note #3.                                         */
   \   00000046   E4B2               UXTB     R4,R4            ;; ZeroExt  R4,R4,#+24,#+24
   \   00000048   FFB2               UXTB     R7,R7            ;; ZeroExt  R7,R7,#+24,#+24
   \   0000004A   BC42               CMP      R4,R7
   \   0000004C   1CD2               BCS.N    ??CPU_IntSrcPendClr_4
    468                           group = (pos - 16) / 32;
   \   0000004E   E4B2               UXTB     R4,R4            ;; ZeroExt  R4,R4,#+24,#+24
   \   00000050   B4F11000           SUBS     R0,R4,#+16
   \   00000054   2021               MOVS     R1,#+32

⌨️ 快捷键说明

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