📄 test.lst
字号:
\ ?0065:
\ 0000006A 939A ST -Y,R25
\ 0000006C 938A ST -Y,R24
\ 0000006E 9721 SBIW R28,LOW(1)
\ 00000070 2F80 MOV R24,R16
\ 00000072 2F94 MOV R25,R20
\ 00000074 D006 RCALL ?0072
\ 00000076 9100.... LDS R16,LWRD(DispStrSem)
\ 0000007A 9110.... LDS R17,LWRD((DispStrSem+1))
\ 0000007E ........ JMP OSSemPend
\ ?0072:
\ 00000082 2F0C MOV R16,R28
\ 00000084 2F1D MOV R17,R29
\ ?0071:
\ 00000086 931A ST -Y,R17
\ 00000088 930A ST -Y,R16
\ 0000008A E040 LDI R20,LOW(0)
\ 0000008C E050 LDI R21,LOW(0)
\ 0000008E 9508 RET
104 }
\ TaskStart:
105
106 /*
107 **************************************************************************************************************
108 * STARTUP TASK
109 **************************************************************************************************************
110 */
111 void TaskStart (void *data)
112 {
\ 00000090 ........ CALL ?PROLOGUE3_L09
\ 00000094 972B SBIW R28,LOW(11)
113 INT8U i;
114 INT8U err;
115 char s[10];
116
117
118 data = data; /* Prevent compiler warning */
119
120 VT102DispClrScr(); /* Clear the screen */
\ 00000096 D1FF RCALL VT102DispClrScr
121 VT102DispStr(26, 1, "uC/OS-II, The Real-Time Kernel", COLOR_WHITE, COLOR_RED);
\ 00000098 E001 LDI R16,1
\ 0000009A 930A ST -Y,R16
\ 0000009C E007 LDI R16,7
\ 0000009E 930A ST -Y,R16
\ 000000A0 .... LDI R16,LOW(?0020)
\ 000000A2 .... LDI R17,(?0020 >> 8)
\ 000000A4 931A ST -Y,R17
\ 000000A6 930A ST -Y,R16
\ 000000A8 E041 LDI R20,1
\ 000000AA E10A LDI R16,26
122 VT102DispStr(33, 2, "Jean J. Labrosse", COLOR_WHITE, COLOR_BLACK);
\ 000000AC DFD8 RCALL ?0063
\ 000000AE .... LDI R16,LOW(?0021)
\ 000000B0 .... LDI R17,(?0021 >> 8)
\ 000000B2 931A ST -Y,R17
\ 000000B4 930A ST -Y,R16
\ 000000B6 E042 LDI R20,2
\ 000000B8 E201 LDI R16,33
123 VT102DispStr(29, 3, "AVR port by Ole Saether", COLOR_WHITE, COLOR_BLACK);
\ 000000BA DFD1 RCALL ?0063
\ 000000BC .... LDI R16,LOW(?0022)
\ 000000BE .... LDI R17,(?0022 >> 8)
\ 000000C0 931A ST -Y,R17
\ 000000C2 930A ST -Y,R16
\ 000000C4 E043 LDI R20,3
\ 000000C6 E10D LDI R16,29
124 VT102DispStr(1, 23, "Determining CPU's capacity ...", COLOR_WHITE, COLOR_BLACK);
\ 000000C8 DFCA RCALL ?0063
\ 000000CA .... LDI R16,LOW(?0023)
\ 000000CC .... LDI R17,(?0023 >> 8)
\ 000000CE 931A ST -Y,R17
\ 000000D0 930A ST -Y,R16
\ 000000D2 E147 LDI R20,23
\ 000000D4 E001 LDI R16,1
\ 000000D6 D1F7 RCALL VT102DispStr
125
126 OSStatInit(); /* Initialize uC/OS-II's statistics */
\ 000000D8 ........ CALL OSStatInit
127
128 for (i = 0; i < N_TASKS; i++) { /* Create N_TASKS identical tasks */
\ 000000DC E0A0 LDI R26,LOW(0)
\ ?0025:
\ 000000DE 30AA CPI R26,LOW(10)
\ 000000E0 F4D8 BRCC ?0024
129 TaskData[i] = '0' + i; /* Each task will display its own letter */
\ 000000E2 2F0A MOV R16,R26
\ 000000E4 5D00 SUBI R16,LOW(208)
\ 000000E6 2FEA MOV R30,R26
\ 000000E8 E0F0 LDI R31,LOW(0)
\ 000000EA .... SUBI R30,LOW(-(TaskData))
\ 000000EC .... SBCI R31,HIGH(-(TaskData))
\ 000000EE 8300 ST Z,R16
130 OSTaskCreate(Task, (void *)&TaskData[i], (void *)&TaskStk[i][TASK_STK_SIZE - 1], i + 1);
\ 000000F0 2F0A MOV R16,R26
\ 000000F2 9503 INC R16
\ 000000F4 930A ST -Y,R16
\ 000000F6 2F1A MOV R17,R26
\ 000000F8 E000 LDI R16,LOW(0)
\ 000000FA 0F11 LSL R17
\ 000000FC .... SUBI R16,LOW(-((TaskStk+511)))
\ 000000FE .... SBCI R17,HIGH(-((TaskStk+511)))
\ 00000100 931A ST -Y,R17
\ 00000102 930A ST -Y,R16
\ 00000104 2F4A MOV R20,R26
\ 00000106 E050 LDI R21,LOW(0)
\ 00000108 .... SUBI R20,LOW(-(TaskData))
\ 0000010A .... SBCI R21,HIGH(-(TaskData))
\ 0000010C .... LDI R16,LOW(Task/2)
\ 0000010E .... LDI R17,(Task/2 >> 8)
\ 00000110 ........ CALL OSTaskCreate
\ 00000114 95A3 INC R26
\ 00000116 CFE3 RJMP ?0025
\ ?0024:
131 }
132 VT102DispStr(1, 23, "#Tasks : xxxxx CPU Usage: xxx %", COLOR_WHITE, COLOR_BLACK);
\ 00000118 DFA3 RCALL ?0064
\ 0000011A .... LDI R16,LOW(?0028)
\ 0000011C .... LDI R17,(?0028 >> 8)
\ 0000011E 931A ST -Y,R17
\ 00000120 930A ST -Y,R16
\ 00000122 E147 LDI R20,23
\ 00000124 E001 LDI R16,1
133 VT102DispStr(1, 24, "#Task switch/sec: xxxxx", COLOR_WHITE, COLOR_BLACK);
\ 00000126 DF9B RCALL ?0063
\ 00000128 .... LDI R16,LOW(?0029)
\ 0000012A .... LDI R17,(?0029 >> 8)
\ 0000012C 931A ST -Y,R17
\ 0000012E 930A ST -Y,R16
\ 00000130 E148 LDI R20,24
\ 00000132 E001 LDI R16,1
\ 00000134 D1C8 RCALL VT102DispStr
\ ?0031:
134 for (;;) {
135 SPrintDec(s, (INT16U)OSTaskCtr, 5); /* Display #tasks running */
\ 00000136 E005 LDI R16,5
\ 00000138 930A ST -Y,R16
\ 0000013A 9140.... LDS R20,LWRD(OSTaskCtr)
\ 0000013E E050 LDI R21,LOW(0)
\ 00000140 D037 RCALL ?0067
136 VT102DispStr(19, 23, s, COLOR_BLUE, COLOR_CYAN);
\ 00000142 D02E RCALL ?0066
\ 00000144 930A ST -Y,R16
\ 00000146 E147 LDI R20,23
\ 00000148 E103 LDI R16,19
\ 0000014A D1BD RCALL VT102DispStr
137 SPrintDec(s, (INT16U)OSCPUUsage, 3); /* Display CPU usage in % */
\ 0000014C E003 LDI R16,3
\ 0000014E 930A ST -Y,R16
\ 00000150 9140.... LDS R20,LWRD(OSCPUUsage)
\ 00000154 2F54 MOV R21,R20
\ 00000156 0F54 ADD R21,R20
\ 00000158 0B55 SBC R21,R21
\ 0000015A D02A RCALL ?0067
138 VT102DispStr(37, 23, s, COLOR_BLUE, COLOR_CYAN);
\ 0000015C D021 RCALL ?0066
\ 0000015E 930A ST -Y,R16
\ 00000160 E147 LDI R20,23
\ 00000162 E205 LDI R16,37
\ 00000164 D1B0 RCALL VT102DispStr
139 SPrintDec(s, (INT16U)OSCtxSwCtr, 5); /* Display #context switches per second */
\ 00000166 E005 LDI R16,5
\ 00000168 930A ST -Y,R16
\ 0000016A .... LDI R30,LOW(OSCtxSwCtr)
\ 0000016C .... LDI R31,(OSCtxSwCtr >> 8)
\ 0000016E 8140 LDD R20,Z+0
\ 00000170 8151 LDD R21,Z+1
\ 00000172 D01E RCALL ?0067
140 VT102DispStr(19, 24, s, COLOR_BLUE, COLOR_CYAN);
\ 00000174 D015 RCALL ?0066
\ 00000176 930A ST -Y,R16
\ 00000178 E148 LDI R20,24
\ 0000017A E103 LDI R16,19
\ 0000017C D1A4 RCALL VT102DispStr
141 OSCtxSwCtr = 0;
\ 0000017E E000 LDI R16,LOW(0)
\ 00000180 E010 LDI R17,LOW(0)
\ 00000182 .... LDI R30,LOW(OSCtxSwCtr)
\ 00000184 .... LDI R31,(OSCtxSwCtr >> 8)
\ 00000186 8300 STD Z+0,R16
\ 00000188 8301 STD Z+1,R16
\ 0000018A 8302 STD Z+2,R16
\ 0000018C 8303 STD Z+3,R16
142 OSTimeDlyHMSM(0, 0, 1, 0); /* Wait one second */
\ 0000018E 931A ST -Y,R17
\ 00000190 930A ST -Y,R16
\ 00000192 E001 LDI R16,1
\ 00000194 930A ST -Y,R16
\ 00000196 E040 LDI R20,LOW(0)
\ 00000198 E000 LDI R16,LOW(0)
\ 0000019A ........ CALL OSTimeDlyHMSM
143 }
144 }
\ 0000019E CFCB RJMP ?0031
\ ?0066:
\ 000001A0 E004 LDI R16,4
\ 000001A2 930A ST -Y,R16
\ 000001A4 2F0C MOV R16,R28
\ 000001A6 2F1D MOV R17,R29
\ 000001A8 5F0D SUBI R16,LOW(253)
\ 000001AA 4F1F SBCI R17,LOW(255)
\ 000001AC 931A ST -Y,R17
\ 000001AE 9508 RET
\ ?0067:
\ 000001B0 2F0C MOV R16,R28
\ 000001B2 2F1D MOV R17,R29
\ 000001B4 5F0E SUBI R16,LOW(254)
\ 000001B6 4F1F SBCI R17,LOW(255)
\ 000001B8 D0C2 RCALL SPrintDec
\ 000001BA E006 LDI R16,6
\ 000001BC 930A ST -Y,R16
\ 000001BE 9508 RET
\ ; i R26
\ ; data R24-R25
\ Task:
145
146 /*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -