📄 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 C:\icc\examples.avr\AVR_PQ1A_DEMO\21_uCOSII\OS_CORE.C
0008 .dbsym e OSMapTbl _OSMapTbl A[8:8]c
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]c
.area text(rom, con, rel)
0000 .dbfile C:\icc\examples.avr\AVR_PQ1A_DEMO\21_uCOSII\OS_CORE.C
0000 .dbfunc e OSInit _OSInit fV
0000 ; i -> R20,R21
.even
0000 _OSInit::
0000 0E940000 xcall push_gset1
0004 2397 sbiw R28,3
0006 .dbline -1
0006 .dbline 77
0006 ;
0006 ; #ifndef OS_MASTER_FILE
0006 ; #define OS_GLOBALS
0006 ; #include "includes.h"
0006 ; #endif
0006 ;
0006 ; /*
0006 ; *********************************************************************************************************
0006 ; * LOCAL GLOBAL VARIABLES
0006 ; *********************************************************************************************************
0006 ; */
0006 ;
0006 ; static INT8U OSIntExitY; /* Variable used by 'OSIntExit' to prevent using locals */
0006 ; static OS_STK OSTaskIdleStk[OS_TASK_IDLE_STK_SIZE]; /* Idle task stack */
0006 ;
0006 ; #if OS_TASK_STAT_EN
0006 ; static OS_STK OSTaskStatStk[OS_TASK_STAT_STK_SIZE]; /* Statistics task stack */
0006 ; #endif
0006 ;
0006 ; static OS_TCB OSTCBTbl[OS_MAX_TASKS + OS_N_SYS_TASKS]; /* Table of TCBs */
0006 ;
0006 ; /*$PAGE*/
0006 ; /*
0006 ; *********************************************************************************************************
0006 ; * MAPPING TABLE TO MAP BIT POSITION TO BIT MASK
0006 ; *
0006 ; * Note: Index into table is desired bit position, 0..7
0006 ; * Indexed value corresponds to bit mask
0006 ; *********************************************************************************************************
0006 ; */
0006 ;
0006 ; INT8U const OSMapTbl[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
0006 ;
0006 ; /*
0006 ; *********************************************************************************************************
0006 ; * PRIORITY RESOLUTION TABLE
0006 ; *
0006 ; * Note: Index into table is bit pattern to resolve highest priority
0006 ; * Indexed value corresponds to highest priority bit position (i.e. 0..7)
0006 ; *********************************************************************************************************
0006 ; */
0006 ;
0006 ; INT8U const OSUnMapTbl[] = {
0006 ; 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0006 ; 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0006 ; 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0006 ; 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0006 ; 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0006 ; 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0006 ; 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0006 ; 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0006 ; 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0006 ; 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0006 ; 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0006 ; 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0006 ; 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0006 ; 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0006 ; 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
0006 ; 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0
0006 ; };
0006 ;
0006 ; /*$PAGE*/
0006 ; /*
0006 ; *********************************************************************************************************
0006 ; * INITIALIZATION
0006 ; *
0006 ; * Description: This function is used to initialize the internals of uC/OS-II and MUST be called prior to
0006 ; * creating any uC/OS-II object and, prior to calling OSStart().
0006 ; *
0006 ; * Arguments : none
0006 ; *
0006 ; * Returns : none
0006 ; *********************************************************************************************************
0006 ; */
0006 ;
0006 ; void OSInit (void)
0006 ; {
0006 .dbline 81
0006 ; INT16U i;
0006 ;
0006 ;
0006 ; OSTime = 0L; /* Clear the 32-bit system clock */
0006 80E0 ldi R24,0
0008 90E0 ldi R25,0
000A A0E0 ldi R26,0
000C B0E0 ldi R27,0
000E 9093BA00 sts _OSTime+1,R25
0012 8093B900 sts _OSTime,R24
0016 B093BC00 sts _OSTime+2+1,R27
001A A093BB00 sts _OSTime+2,R26
001E .dbline 82
001E ; OSIntNesting = 0; /* Clear the interrupt nesting counter */
001E 2224 clr R2
0020 2092ED00 sts _OSIntNesting,R2
0024 .dbline 83
0024 ; OSLockNesting = 0; /* Clear the scheduling lock counter */
0024 2092EC00 sts _OSLockNesting,R2
0028 .dbline 85
0028 ; #if OS_TASK_CREATE_EN || OS_TASK_CREATE_EXT_EN || OS_TASK_DEL_EN
0028 ; OSTaskCtr = 0; /* Clear the number of tasks */
0028 2092E500 sts _OSTaskCtr,R2
002C .dbline 87
002C ; #endif
002C ; OSRunning = FALSE; /* Indicate that multitasking not started */
002C 2092E600 sts _OSRunning,R2
0030 .dbline 88
0030 ; OSIdleCtr = 0L; /* Clear the 32-bit idle counter */
0030 80E0 ldi R24,0
0032 90E0 ldi R25,0
0034 A0E0 ldi R26,0
0036 B0E0 ldi R27,0
0038 9093EF00 sts _OSIdleCtr+1,R25
003C 8093EE00 sts _OSIdleCtr,R24
0040 B093F100 sts _OSIdleCtr+2+1,R27
0044 A093F000 sts _OSIdleCtr+2,R26
0048 .dbline 90
0048 ;
0048 ; OSCtxSwCtr = 0; /* Clear the context switch counter */
0048 80E0 ldi R24,0
004A 90E0 ldi R25,0
004C A0E0 ldi R26,0
004E B0E0 ldi R27,0
0050 90930501 sts _OSCtxSwCtr+1,R25
0054 80930401 sts _OSCtxSwCtr,R24
0058 B0930701 sts _OSCtxSwCtr+2+1,R27
005C A0930601 sts _OSCtxSwCtr+2,R26
0060 .dbline 91
0060 ; OSRdyGrp = 0; /* Clear the ready list */
0060 2092E900 sts _OSRdyGrp,R2
0064 .dbline 92
0064 4427 clr R20
0066 5527 clr R21
0068 09C0 xjmp L6
006A L3:
006A .dbline 92
006A .dbline 93
006A 80E0 ldi R24,<_OSRdyTbl
006C 90E0 ldi R25,>_OSRdyTbl
006E FA01 movw R30,R20
0070 E80F add R30,R24
0072 F91F adc R31,R25
0074 2224 clr R2
0076 2082 std z+0,R2
0078 .dbline 94
0078 L4:
0078 .dbline 92
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -