📄 os_cpu_c.lst
字号:
\ 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 + -