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

📄 os_cpu_c.lst

📁 lpc2478开发板基于IAR编译器移植ucos实验例程
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   00000040   0080BDE8           POP      {PC}             ;; return
    424          #endif
    425          
    426          
    427          /*
    428          *********************************************************************************************************
    429          *                             INTERRUPT DISABLE TIME MEASUREMENT, START
    430          *********************************************************************************************************
    431          */
    432          
    433          #if OS_CPU_INT_DIS_MEAS_EN > 0
    434          void  OS_CPU_IntDisMeasInit (void)
    435          {
    436              OS_CPU_IntDisMeasNestingCtr = 0;
    437              OS_CPU_IntDisMeasCntsEnter  = 0;
    438              OS_CPU_IntDisMeasCntsExit   = 0;
    439              OS_CPU_IntDisMeasCntsMax    = 0;
    440              OS_CPU_IntDisMeasCntsDelta  = 0;
    441              OS_CPU_IntDisMeasCntsOvrhd  = 0;
    442              OS_CPU_IntDisMeasStart();                                           /* Measure the overhead of the functions                    */
    443              OS_CPU_IntDisMeasStop();
    444              OS_CPU_IntDisMeasCntsOvrhd  = OS_CPU_IntDisMeasCntsDelta;
    445          }
    446          
    447          
    448          void  OS_CPU_IntDisMeasStart (void)
    449          {
    450              OS_CPU_IntDisMeasNestingCtr++;
    451              if (OS_CPU_IntDisMeasNestingCtr == 1) {                             /* Only measure at the first nested level                   */
    452                  OS_CPU_IntDisMeasCntsEnter = OS_CPU_IntDisMeasTmrRd();
    453              }
    454          }
    455          
    456          
    457          void  OS_CPU_IntDisMeasStop (void)
    458          {
    459              OS_CPU_IntDisMeasNestingCtr--;                                      /* Decrement nesting ctr                                    */
    460              if (OS_CPU_IntDisMeasNestingCtr == 0) {
    461                  OS_CPU_IntDisMeasCntsExit  = OS_CPU_IntDisMeasTmrRd();
    462                  OS_CPU_IntDisMeasCntsDelta = OS_CPU_IntDisMeasCntsExit - OS_CPU_IntDisMeasCntsEnter;
    463                  if (OS_CPU_IntDisMeasCntsDelta > OS_CPU_IntDisMeasCntsOvrhd) {  /* Ensure overhead < delta                                  */
    464                      OS_CPU_IntDisMeasCntsDelta -= OS_CPU_IntDisMeasCntsOvrhd;
    465                  } else {
    466                      OS_CPU_IntDisMeasCntsDelta  = OS_CPU_IntDisMeasCntsOvrhd;
    467                  }
    468                  if (OS_CPU_IntDisMeasCntsDelta > OS_CPU_IntDisMeasCntsMax) {    /* Track MAXIMUM                                            */
    469                      OS_CPU_IntDisMeasCntsMax = OS_CPU_IntDisMeasCntsDelta;
    470                  }
    471              }
    472          }
    473          #endif
    474          
    475          
    476          /*
    477          *********************************************************************************************************
    478          *                                     INITIALIZE EXCEPTION VECTORS
    479          *
    480          * Description : This function initialize exception vectors to the default handlers.
    481          *
    482          * Arguments   : None.
    483          *********************************************************************************************************
    484          */
    485          

   \                                 In segment CODE, align 4, keep-with-next
    486          void  OS_CPU_InitExceptVect (void)
    487          {
    488          /*
    489              (*(INT32U *)OS_CPU_ARM_EXCEPT_RESET_VECT_ADDR)             =         OS_CPU_ARM_INSTR_JUMP_TO_HANDLER;
    490              (*(INT32U *)OS_CPU_ARM_EXCEPT_RESET_HANDLER_ADDR)          = (INT32U)OS_CPU_ARM_ExceptResetHndlr;
    491          */
    492          
    493              (*(INT32U *)OS_CPU_ARM_EXCEPT_UNDEF_INSTR_VECT_ADDR)       =         OS_CPU_ARM_INSTR_JUMP_TO_HANDLER;
   \                     OS_CPU_InitExceptVect:
   \   00000000   0400A0E3           MOV      R0,#+4
   \   00000004   A0109FE5           LDR      R1,??OS_CPU_InitExceptVect_0  ;; 0xffffffffe59ff018
   \   00000008   001080E5           STR      R1,[R0, #+0]
    494              (*(INT32U *)OS_CPU_ARM_EXCEPT_UNDEF_INSTR_HANDLER_ADDR)    = (INT32U)OS_CPU_ARM_ExceptUndefInstrHndlr;
   \   0000000C   2400A0E3           MOV      R0,#+36
   \   00000010   98109FE5           LDR      R1,??OS_CPU_InitExceptVect_0+0x4  ;; OS_CPU_ARM_ExceptUndefInstrHndlr
   \   00000014   001080E5           STR      R1,[R0, #+0]
    495          
    496              (*(INT32U *)OS_CPU_ARM_EXCEPT_SWI_VECT_ADDR)               =         OS_CPU_ARM_INSTR_JUMP_TO_HANDLER;
   \   00000018   0800A0E3           MOV      R0,#+8
   \   0000001C   88109FE5           LDR      R1,??OS_CPU_InitExceptVect_0  ;; 0xffffffffe59ff018
   \   00000020   001080E5           STR      R1,[R0, #+0]
    497              (*(INT32U *)OS_CPU_ARM_EXCEPT_SWI_HANDLER_ADDR)            = (INT32U)OS_CPU_ARM_ExceptSwiHndlr;
   \   00000024   2800A0E3           MOV      R0,#+40
   \   00000028   84109FE5           LDR      R1,??OS_CPU_InitExceptVect_0+0x8  ;; OS_CPU_ARM_ExceptSwiHndlr
   \   0000002C   001080E5           STR      R1,[R0, #+0]
    498          
    499              (*(INT32U *)OS_CPU_ARM_EXCEPT_PREFETCH_ABORT_VECT_ADDR)    =         OS_CPU_ARM_INSTR_JUMP_TO_HANDLER;
   \   00000030   0C00A0E3           MOV      R0,#+12
   \   00000034   70109FE5           LDR      R1,??OS_CPU_InitExceptVect_0  ;; 0xffffffffe59ff018
   \   00000038   001080E5           STR      R1,[R0, #+0]
    500              (*(INT32U *)OS_CPU_ARM_EXCEPT_PREFETCH_ABORT_HANDLER_ADDR) = (INT32U)OS_CPU_ARM_ExceptPrefetchAbortHndlr;
   \   0000003C   2C00A0E3           MOV      R0,#+44
   \   00000040   70109FE5           LDR      R1,??OS_CPU_InitExceptVect_0+0xC  ;; OS_CPU_ARM_ExceptPrefetchAbortHndlr
   \   00000044   001080E5           STR      R1,[R0, #+0]
    501          
    502              (*(INT32U *)OS_CPU_ARM_EXCEPT_DATA_ABORT_VECT_ADDR)        =         OS_CPU_ARM_INSTR_JUMP_TO_HANDLER;
   \   00000048   1000A0E3           MOV      R0,#+16
   \   0000004C   58109FE5           LDR      R1,??OS_CPU_InitExceptVect_0  ;; 0xffffffffe59ff018
   \   00000050   001080E5           STR      R1,[R0, #+0]
    503              (*(INT32U *)OS_CPU_ARM_EXCEPT_DATA_ABORT_HANDLER_ADDR)     = (INT32U)OS_CPU_ARM_ExceptDataAbortHndlr;
   \   00000054   3000A0E3           MOV      R0,#+48
   \   00000058   5C109FE5           LDR      R1,??OS_CPU_InitExceptVect_0+0x10  ;; OS_CPU_ARM_ExceptDataAbortHndlr
   \   0000005C   001080E5           STR      R1,[R0, #+0]
    504          
    505              (*(INT32U *)OS_CPU_ARM_EXCEPT_ADDR_ABORT_VECT_ADDR)        =         OS_CPU_ARM_INSTR_JUMP_TO_HANDLER;
   \   00000060   1400A0E3           MOV      R0,#+20
   \   00000064   40109FE5           LDR      R1,??OS_CPU_InitExceptVect_0  ;; 0xffffffffe59ff018
   \   00000068   001080E5           STR      R1,[R0, #+0]
    506              (*(INT32U *)OS_CPU_ARM_EXCEPT_ADDR_ABORT_HANDLER_ADDR)     = (INT32U)OS_CPU_ARM_ExceptAddrAbortHndlr;
   \   0000006C   3400A0E3           MOV      R0,#+52
   \   00000070   48109FE5           LDR      R1,??OS_CPU_InitExceptVect_0+0x14  ;; OS_CPU_ARM_ExceptAddrAbortHndlr
   \   00000074   001080E5           STR      R1,[R0, #+0]
    507          
    508              (*(INT32U *)OS_CPU_ARM_EXCEPT_IRQ_VECT_ADDR)               =         OS_CPU_ARM_INSTR_JUMP_TO_HANDLER;
   \   00000078   1800A0E3           MOV      R0,#+24
   \   0000007C   28109FE5           LDR      R1,??OS_CPU_InitExceptVect_0  ;; 0xffffffffe59ff018
   \   00000080   001080E5           STR      R1,[R0, #+0]
    509              (*(INT32U *)OS_CPU_ARM_EXCEPT_IRQ_HANDLER_ADDR)            = (INT32U)OS_CPU_ARM_ExceptIrqHndlr;
   \   00000084   3800A0E3           MOV      R0,#+56
   \   00000088   34109FE5           LDR      R1,??OS_CPU_InitExceptVect_0+0x18  ;; OS_CPU_ARM_ExceptIrqHndlr
   \   0000008C   001080E5           STR      R1,[R0, #+0]
    510          
    511              (*(INT32U *)OS_CPU_ARM_EXCEPT_FIQ_VECT_ADDR)               =         OS_CPU_ARM_INSTR_JUMP_TO_HANDLER;
   \   00000090   1C00A0E3           MOV      R0,#+28
   \   00000094   10109FE5           LDR      R1,??OS_CPU_InitExceptVect_0  ;; 0xffffffffe59ff018
   \   00000098   001080E5           STR      R1,[R0, #+0]
    512              (*(INT32U *)OS_CPU_ARM_EXCEPT_FIQ_HANDLER_ADDR)            = (INT32U)OS_CPU_ARM_ExceptFiqHndlr;
   \   0000009C   3C00A0E3           MOV      R0,#+60
   \   000000A0   20109FE5           LDR      R1,??OS_CPU_InitExceptVect_0+0x1C  ;; OS_CPU_ARM_ExceptFiqHndlr
   \   000000A4   001080E5           STR      R1,[R0, #+0]
    513          }
   \   000000A8   0EF0A0E1           MOV      PC,LR            ;; return
   \                     ??OS_CPU_InitExceptVect_0:
   \   000000AC   18F09FE5           DC32     0xffffffffe59ff018
   \   000000B0   ........           DC32     OS_CPU_ARM_ExceptUndefInstrHndlr
   \   000000B4   ........           DC32     OS_CPU_ARM_ExceptSwiHndlr
   \   000000B8   ........           DC32     OS_CPU_ARM_ExceptPrefetchAbortHndlr
   \   000000BC   ........           DC32     OS_CPU_ARM_ExceptDataAbortHndlr
   \   000000C0   ........           DC32     OS_CPU_ARM_ExceptAddrAbortHndlr
   \   000000C4   ........           DC32     OS_CPU_ARM_ExceptIrqHndlr
   \   000000C8   ........           DC32     OS_CPU_ARM_ExceptFiqHndlr

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable4:
   \   00000000   ........           DC32     OSTmrCtr

   Maximum stack usage in bytes:

     Function              CSTACK
     --------              ------
     OSInitHookBegin           0
     OSInitHookEnd             0
     OSTCBInitHook             0
     OSTaskCreateHook          8
     OSTaskDelHook             0
     OSTaskIdleHook            4
     OSTaskStatHook            0
     OSTaskStkInit             8
     OSTaskSwHook              4
     OSTimeTickHook            4
     OS_CPU_InitExceptVect     0


   Segment part sizes:

     Function/Label        Bytes
     --------------        -----
     OSTmrCtr                 2
     OSInitHookBegin         16
     OSInitHookEnd            4
     OSTaskCreateHook        20
     OSTaskDelHook            4
     OSTaskIdleHook          12
     OSTaskStatHook           4
     OSTaskStkInit          284
     OSTaskSwHook            12
     OSTCBInitHook            4
     OSTimeTickHook          68
     OS_CPU_InitExceptVect  204
     ??DataTable4             4
      Others                 72

 
 696 bytes in segment CODE
   2 bytes in segment DATA_Z
  12 bytes in segment INITTAB
 
 636 bytes of CODE memory (+ 72 bytes shared)
   2 bytes of DATA memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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