📄 os_core.lis
字号:
.module OS_CORE.C
.area lit(rom, con, rel)
0000 _OSMapTbl::
0000 0102 .byte 1,2
0002 0408 .byte 4,8
0004 1020 .byte 16,32
0006 4080 .byte 64,128
0008 .dbfile G:\IccPro\ucos_m8_icc\source\OS_CORE.C
0008 .dbsym e OSMapTbl _OSMapTbl A[8:8]kc
0008 _OSUnMapTbl::
0008 0000 .byte 0,0
000A 0100 .byte 1,0
000C 0200 .byte 2,0
000E 0100 .byte 1,0
0010 0300 .byte 3,0
0012 0100 .byte 1,0
0014 0200 .byte 2,0
0016 0100 .byte 1,0
0018 0400 .byte 4,0
001A 0100 .byte 1,0
001C 0200 .byte 2,0
001E 0100 .byte 1,0
0020 0300 .byte 3,0
0022 0100 .byte 1,0
0024 0200 .byte 2,0
0026 0100 .byte 1,0
0028 0500 .byte 5,0
002A 0100 .byte 1,0
002C 0200 .byte 2,0
002E 0100 .byte 1,0
0030 0300 .byte 3,0
0032 0100 .byte 1,0
0034 0200 .byte 2,0
0036 0100 .byte 1,0
0038 0400 .byte 4,0
003A 0100 .byte 1,0
003C 0200 .byte 2,0
003E 0100 .byte 1,0
0040 0300 .byte 3,0
0042 0100 .byte 1,0
0044 0200 .byte 2,0
0046 0100 .byte 1,0
0048 0600 .byte 6,0
004A 0100 .byte 1,0
004C 0200 .byte 2,0
004E 0100 .byte 1,0
0050 0300 .byte 3,0
0052 0100 .byte 1,0
0054 0200 .byte 2,0
0056 0100 .byte 1,0
0058 0400 .byte 4,0
005A 0100 .byte 1,0
005C 0200 .byte 2,0
005E 0100 .byte 1,0
0060 0300 .byte 3,0
0062 0100 .byte 1,0
0064 0200 .byte 2,0
0066 0100 .byte 1,0
0068 0500 .byte 5,0
006A 0100 .byte 1,0
006C 0200 .byte 2,0
006E 0100 .byte 1,0
0070 0300 .byte 3,0
0072 0100 .byte 1,0
0074 0200 .byte 2,0
0076 0100 .byte 1,0
0078 0400 .byte 4,0
007A 0100 .byte 1,0
007C 0200 .byte 2,0
007E 0100 .byte 1,0
0080 0300 .byte 3,0
0082 0100 .byte 1,0
0084 0200 .byte 2,0
0086 0100 .byte 1,0
0088 0700 .byte 7,0
008A 0100 .byte 1,0
008C 0200 .byte 2,0
008E 0100 .byte 1,0
0090 0300 .byte 3,0
0092 0100 .byte 1,0
0094 0200 .byte 2,0
0096 0100 .byte 1,0
0098 0400 .byte 4,0
009A 0100 .byte 1,0
009C 0200 .byte 2,0
009E 0100 .byte 1,0
00A0 0300 .byte 3,0
00A2 0100 .byte 1,0
00A4 0200 .byte 2,0
00A6 0100 .byte 1,0
00A8 0500 .byte 5,0
00AA 0100 .byte 1,0
00AC 0200 .byte 2,0
00AE 0100 .byte 1,0
00B0 0300 .byte 3,0
00B2 0100 .byte 1,0
00B4 0200 .byte 2,0
00B6 0100 .byte 1,0
00B8 0400 .byte 4,0
00BA 0100 .byte 1,0
00BC 0200 .byte 2,0
00BE 0100 .byte 1,0
00C0 0300 .byte 3,0
00C2 0100 .byte 1,0
00C4 0200 .byte 2,0
00C6 0100 .byte 1,0
00C8 0600 .byte 6,0
00CA 0100 .byte 1,0
00CC 0200 .byte 2,0
00CE 0100 .byte 1,0
00D0 0300 .byte 3,0
00D2 0100 .byte 1,0
00D4 0200 .byte 2,0
00D6 0100 .byte 1,0
00D8 0400 .byte 4,0
00DA 0100 .byte 1,0
00DC 0200 .byte 2,0
00DE 0100 .byte 1,0
00E0 0300 .byte 3,0
00E2 0100 .byte 1,0
00E4 0200 .byte 2,0
00E6 0100 .byte 1,0
00E8 0500 .byte 5,0
00EA 0100 .byte 1,0
00EC 0200 .byte 2,0
00EE 0100 .byte 1,0
00F0 0300 .byte 3,0
00F2 0100 .byte 1,0
00F4 0200 .byte 2,0
00F6 0100 .byte 1,0
00F8 0400 .byte 4,0
00FA 0100 .byte 1,0
00FC 0200 .byte 2,0
00FE 0100 .byte 1,0
0100 0300 .byte 3,0
0102 0100 .byte 1,0
0104 0200 .byte 2,0
0106 0100 .byte 1,0
0108 .dbsym e OSUnMapTbl _OSUnMapTbl A[256:256]kc
.area text(rom, con, rel)
0000 .dbfile G:\IccPro\ucos_m8_icc\source\OS_CORE.C
0000 .dbfunc e OSInit _OSInit fV
0000 ; i -> R10,R11
.even
0000 _OSInit::
0000 00D0 rcall push_gset3x
0002 2397 sbiw R28,3
0004 .dbline -1
0004 .dbline 77
0004 ;
0004 ; #ifndef OS_MASTER_FILE
0004 ; #define OS_GLOBALS
0004 ; #include "includes.h"
0004 ; #endif
0004 ;
0004 ; /*
0004 ; *********************************************************************************************************
0004 ; * LOCAL GLOBAL VARIABLES
0004 ; *********************************************************************************************************
0004 ; */
0004 ;
0004 ; static INT8U OSIntExitY; /* Variable used by 'OSIntExit' to prevent using locals */
0004 ; static OS_STK OSTaskIdleStk[OS_TASK_IDLE_STK_SIZE]; /* Idle task stack */
0004 ;
0004 ; #if OS_TASK_STAT_EN
0004 ; static OS_STK OSTaskStatStk[OS_TASK_STAT_STK_SIZE]; /* Statistics task stack */
0004 ; #endif
0004 ;
0004 ; static OS_TCB OSTCBTbl[OS_MAX_TASKS + OS_N_SYS_TASKS]; /* Table of TCBs */
0004 ;
0004 ; /*$PAGE*/
0004 ; /*
0004 ; *********************************************************************************************************
0004 ; * MAPPING TABLE TO MAP BIT POSITION TO BIT MASK
0004 ; *
0004 ; * Note: Index into table is desired bit position, 0..7
0004 ; * Indexed value corresponds to bit mask
0004 ; *********************************************************************************************************
0004 ; */
0004 ;
0004 ; INT8U const OSMapTbl[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
0004 ;
0004 ; /*
0004 ; *********************************************************************************************************
0004 ; * PRIORITY RESOLUTION TABLE
0004 ; *
0004 ; * Note: Index into table is bit pattern to resolve highest priority
0004 ; * Indexed value corresponds to highest priority bit position (i.e. 0..7)
0004 ; *********************************************************************************************************
0004 ; */
0004 ;
0004 ; INT8U const OSUnMapTbl[] = {
0004 ; 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0004 ; 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0004 ; 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0004 ; 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0004 ; 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0004 ; 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0004 ; 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0004 ; 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0004 ; 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0004 ; 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0004 ; 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0004 ; 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0004 ; 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0004 ; 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0004 ; 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0004 ; 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0
0004 ; };
0004 ;
0004 ; /*$PAGE*/
0004 ; /*
0004 ; *********************************************************************************************************
0004 ; * INITIALIZATION
0004 ; *
0004 ; * Description: This function is used to initialize the internals of uC/OS-II and MUST be called prior to
0004 ; * creating any uC/OS-II object and, prior to calling OSStart().
0004 ; *
0004 ; * Arguments : none
0004 ; *
0004 ; * Returns : none
0004 ; *********************************************************************************************************
0004 ; */
0004 ;
0004 ; void OSInit (void)
0004 ; {
0004 .dbline 81
0004 ; INT16U i;
0004 ;
0004 ;
0004 ; OSTime = 0L; /* Clear the 32-bit system clock */
0004 80E0 ldi R24,0
0006 90E0 ldi R25,0
0008 A0E0 ldi R26,0
000A B0E0 ldi R27,0
000C 9093BA00 sts _OSTime+1,R25
0010 8093B900 sts _OSTime,R24
0014 B093BC00 sts _OSTime+2+1,R27
0018 A093BB00 sts _OSTime+2,R26
001C .dbline 82
001C ; OSIntNesting = 0; /* Clear the interrupt nesting counter */
001C 2224 clr R2
001E 2092ED00 sts _OSIntNesting,R2
0022 .dbline 83
0022 ; OSLockNesting = 0; /* Clear the scheduling lock counter */
0022 2092EC00 sts _OSLockNesting,R2
0026 .dbline 85
0026 ; #if OS_TASK_CREATE_EN || OS_TASK_CREATE_EXT_EN || OS_TASK_DEL_EN
0026 ; OSTaskCtr = 0; /* Clear the number of tasks */
0026 2092E500 sts _OSTaskCtr,R2
002A .dbline 87
002A ; #endif
002A ; OSRunning = FALSE; /* Indicate that multitasking not started */
002A 2092E600 sts _OSRunning,R2
002E .dbline 88
002E ; OSIdleCtr = 0L; /* Clear the 32-bit idle counter */
002E 80E0 ldi R24,0
0030 90E0 ldi R25,0
0032 A0E0 ldi R26,0
0034 B0E0 ldi R27,0
0036 9093EF00 sts _OSIdleCtr+1,R25
003A 8093EE00 sts _OSIdleCtr,R24
003E B093F100 sts _OSIdleCtr+2+1,R27
0042 A093F000 sts _OSIdleCtr+2,R26
0046 .dbline 90
0046 ;
0046 ; OSCtxSwCtr = 0; /* Clear the context switch counter */
0046 80E0 ldi R24,0
0048 90E0 ldi R25,0
004A A0E0 ldi R26,0
004C B0E0 ldi R27,0
004E 90930501 sts _OSCtxSwCtr+1,R25
0052 80930401 sts _OSCtxSwCtr,R24
0056 B0930701 sts _OSCtxSwCtr+2+1,R27
005A A0930601 sts _OSCtxSwCtr+2,R26
005E .dbline 91
005E ; OSRdyGrp = 0; /* Clear the ready list */
005E 2092E900 sts _OSRdyGrp,R2
0062 .dbline 92
0062 AA24 clr R10
0064 BB24 clr R11
0066 0AC0 rjmp L6
0068 L3:
0068 .dbline 92
0068 .dbline 93
0068 80E0 ldi R24,<_OSRdyTbl
006A 90E0 ldi R25,>_OSRdyTbl
006C F501 movw R30,R10
006E E80F add R30,R24
0070 F91F adc R31,R25
0072 2224 clr R2
0074 2082 std z+0,R2
0076 .dbline 94
0076 L4:
0076 .dbline 92
0076 C501 movw R24,R10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -