📄 test.lst
字号:
\ 0000006C C003 RJMP ?0112
\ ?0111:
\ 0000006E 2F0C MOV R16,R28
\ 00000070 2F1D MOV R17,R29
\ 00000072 9508 RET
\ ?0112:
\ 00000074 931A ST -Y,R17
\ 00000076 930A ST -Y,R16
\ 00000078 E040 LDI R20,LOW(0)
\ 0000007A E050 LDI R21,LOW(0)
\ 0000007C 9508 RET
\ ?0113:
\ 0000007E 9100.... LDS R16,LWRD(DispStrSem)
\ 00000082 9110.... LDS R17,LWRD((DispStrSem+1))
\ 00000086 9508 RET
93 }
\ TaskStart:
94
95 /*
96 **************************************************************************************************************
97 * STARTUP TASK
98 **************************************************************************************************************
99 */
100 C_task TaskStart (void *data)
101 {
\ 00000088 972B SBIW R28,LOW(11)
102 INT8U i;
103 INT8U err;
104 char s[10];
105
106
107 data = data; /* Prevent compiler warning */
108
109 VT102DispClrScr(); /* Clear the screen */
\ 0000008A D1F3 RCALL VT102DispClrScr
110 VT102DispStr(26, 1, "uC/OS-II, The Real-Time Kernel", COLOR_WHITE, COLOR_RED);
\ 0000008C E001 LDI R16,1
\ 0000008E 930A ST -Y,R16
\ 00000090 E007 LDI R16,7
\ 00000092 930A ST -Y,R16
\ 00000094 .... LDI R16,LOW(?0048)
\ 00000096 .... LDI R17,(?0048 >> 8)
\ 00000098 D0A1 RCALL ?0099
\ 0000009A E041 LDI R20,1
\ 0000009C E10A LDI R16,26
111 VT102DispStr(33, 2, "Jean J. Labrosse", COLOR_WHITE, COLOR_BLACK);
\ 0000009E DFD7 RCALL ?0091
\ 000000A0 .... LDI R16,LOW(?0049)
\ 000000A2 .... LDI R17,(?0049 >> 8)
\ 000000A4 D09B RCALL ?0099
\ 000000A6 E042 LDI R20,2
\ 000000A8 E201 LDI R16,33
112 VT102DispStr(29, 3, "AVR port by Ole Saether", COLOR_WHITE, COLOR_BLACK);
\ 000000AA DFD1 RCALL ?0091
\ 000000AC .... LDI R16,LOW(?0050)
\ 000000AE .... LDI R17,(?0050 >> 8)
\ 000000B0 D095 RCALL ?0099
\ 000000B2 E043 LDI R20,3
\ 000000B4 E10D LDI R16,29
113 VT102DispStr(1, 23, "Determining CPU's capacity ...", COLOR_WHITE, COLOR_BLACK);
\ 000000B6 DFCB RCALL ?0091
\ 000000B8 .... LDI R16,LOW(?0051)
\ 000000BA .... LDI R17,(?0051 >> 8)
\ 000000BC D08F RCALL ?0099
\ 000000BE E147 LDI R20,23
\ 000000C0 E001 LDI R16,1
\ 000000C2 D1E8 RCALL VT102DispStr
114
115 OSStatInit(); /* Initialize uC/OS-II's statistics */
\ 000000C4 .... RCALL OSStatInit
116
117 for (i = 0; i < N_TASKS; i++) { /* Create N_TASKS identical tasks */
\ 000000C6 E0A0 LDI R26,LOW(0)
\ ?0053:
\ 000000C8 30AA CPI R26,LOW(10)
\ 000000CA F4C8 BRCC ?0052
118 TaskData[i] = '0' + i; /* Each task will display its own letter */
\ 000000CC 2F0A MOV R16,R26
\ 000000CE 5D00 SUBI R16,LOW(208)
\ 000000D0 2FEA MOV R30,R26
\ 000000D2 E0F0 LDI R31,LOW(0)
\ 000000D4 .... SUBI R30,LOW(-(TaskData))
\ 000000D6 .... SBCI R31,HIGH(-(TaskData))
\ 000000D8 8300 ST Z,R16
119 OSTaskCreate(Task, (void *)&TaskData[i], (void *)&TaskStk[i][TASK_STK_SIZE - 1], i + 1);
\ 000000DA 2F0A MOV R16,R26
\ 000000DC 9503 INC R16
\ 000000DE 930A ST -Y,R16
\ 000000E0 2F1A MOV R17,R26
\ 000000E2 E000 LDI R16,LOW(0)
\ 000000E4 0F11 LSL R17
\ 000000E6 .... SUBI R16,LOW(-((TaskStk+511)))
\ 000000E8 .... SBCI R17,HIGH(-((TaskStk+511)))
\ 000000EA D078 RCALL ?0099
\ 000000EC 2F4A MOV R20,R26
\ 000000EE E050 LDI R21,LOW(0)
\ 000000F0 .... SUBI R20,LOW(-(TaskData))
\ 000000F2 .... SBCI R21,HIGH(-(TaskData))
\ 000000F4 .... LDI R16,LOW(Task/2)
\ 000000F6 .... LDI R17,(Task/2 >> 8)
\ 000000F8 .... RCALL OSTaskCreate
\ 000000FA 95A3 INC R26
\ 000000FC CFE5 RJMP ?0053
\ ?0052:
120 }
121 VT102DispStr(1, 23, "#Tasks : xxxxx CPU Usage: xxx %", COLOR_WHITE, COLOR_BLACK);
\ 000000FE DFA8 RCALL ?0092
\ 00000100 .... LDI R16,LOW(?0056)
\ 00000102 .... LDI R17,(?0056 >> 8)
\ 00000104 D06B RCALL ?0099
\ 00000106 E147 LDI R20,23
\ 00000108 E001 LDI R16,1
122 VT102DispStr(1, 24, "#Task switch/sec: xxxxx", COLOR_WHITE, COLOR_BLACK);
\ 0000010A DFA1 RCALL ?0091
\ 0000010C .... LDI R16,LOW(?0057)
\ 0000010E .... LDI R17,(?0057 >> 8)
\ 00000110 D065 RCALL ?0099
\ 00000112 E148 LDI R20,24
\ 00000114 E001 LDI R16,1
\ 00000116 D1BE RCALL VT102DispStr
123
124 s[0] = 'V';
\ 00000118 E506 LDI R16,86
\ 0000011A 8309 STD Y+1,R16
125 SPrintDec(&s[1], OSVersion() / 100, 1, '0');
\ 0000011C E300 LDI R16,48
\ 0000011E 930A ST -Y,R16
\ 00000120 E001 LDI R16,1
\ 00000122 D057 RCALL ?0096
\ 00000124 2F40 MOV R20,R16
\ 00000126 2F51 MOV R21,R17
\ 00000128 D065 RCALL ?0102
\ 0000012A 5F0C SUBI R16,LOW(252)
\ 0000012C 4F1F SBCI R17,LOW(255)
\ 0000012E D107 RCALL SPrintDec
126 s[2] = '.';
\ 00000130 E20E LDI R16,46
\ 00000132 830B STD Y+3,R16
127 SPrintDec(&s[3], OSVersion() % 100, 2, '0');
\ 00000134 E300 LDI R16,48
\ 00000136 930A ST -Y,R16
\ 00000138 E002 LDI R16,2
\ 0000013A D04B RCALL ?0096
\ 0000013C D05B RCALL ?0102
\ 0000013E 5F0A SUBI R16,LOW(250)
\ 00000140 4F1F SBCI R17,LOW(255)
\ 00000142 D0FD RCALL SPrintDec
128 VT102DispStr(76, 24, s, COLOR_WHITE, COLOR_BLUE);
\ 00000144 E004 LDI R16,4
\ 00000146 930A ST -Y,R16
\ 00000148 E007 LDI R16,7
\ 0000014A D03D RCALL ?0094
\ 0000014C 930A ST -Y,R16
\ 0000014E E148 LDI R20,24
\ 00000150 E40C LDI R16,76
\ 00000152 D1A0 RCALL VT102DispStr
\ ?0059:
129 for (;;) {
130 SPrintDec(s, (INT32U)OSTaskCtr, 5, ' '); /* Display #tasks running */
\ 00000154 D059 RCALL ?0105
\ 00000156 9140.... LDS R20,LWRD(OSTaskCtr)
\ 0000015A E050 LDI R21,LOW(0)
\ 0000015C D04B RCALL ?0102
\ 0000015E D04E RCALL ?0103
131 VT102DispStr(19, 23, s, COLOR_BLUE, COLOR_CYAN);
\ 00000160 D031 RCALL ?0095
\ 00000162 930A ST -Y,R16
\ 00000164 E147 LDI R20,23
\ 00000166 E103 LDI R16,19
\ 00000168 D195 RCALL VT102DispStr
132 SPrintDec(s, (INT32U)OSCPUUsage, 3, ' '); /* Display CPU usage in % */
\ 0000016A E200 LDI R16,32
\ 0000016C 930A ST -Y,R16
\ 0000016E E003 LDI R16,3
\ 00000170 930A ST -Y,R16
\ 00000172 9140.... LDS R20,LWRD(OSCPUUsage)
\ 00000176 2F54 MOV R21,R20
\ 00000178 0F54 ADD R21,R20
\ 0000017A 0B55 SBC R21,R21
\ 0000017C 2F65 MOV R22,R21
\ 0000017E 2F75 MOV R23,R21
\ 00000180 D03C RCALL ?0104
133 VT102DispStr(37, 23, s, COLOR_BLUE, COLOR_CYAN);
\ 00000182 D020 RCALL ?0095
\ 00000184 930A ST -Y,R16
\ 00000186 E147 LDI R20,23
\ 00000188 E205 LDI R16,37
\ 0000018A D184 RCALL VT102DispStr
134 SPrintDec(s, (INT32U)OSCtxSwCtr, 5, ' '); /* Display #context switches per second */
\ 0000018C D03D RCALL ?0105
\ 0000018E .... LDI R30,LOW(OSCtxSwCtr)
\ 00000190 .... LDI R31,(OSCtxSwCtr >> 8)
\ 00000192 8140 LDD R20,Z+0
\ 00000194 8151 LDD R21,Z+1
\ 00000196 8162 LDD R22,Z+2
\ 00000198 8173 LDD R23,Z+3
\ 0000019A D02F RCALL ?0104
135 VT102DispStr(19, 24, s, COLOR_BLUE, COLOR_CYAN);
\ 0000019C D013 RCALL ?0095
\ 0000019E 930A ST -Y,R16
\ 000001A0 E148 LDI R20,24
\ 000001A2 E103 LDI R16,19
\ 000001A4 D177 RCALL VT102DispStr
136 OSCtxSwCtr = 0;
\ 000001A6 E000 LDI R16,LOW(0)
\ 000001A8 E010 LDI R17,LOW(0)
\ 000001AA .... LDI R30,LOW(OSCtxSwCtr)
\ 000001AC .... LDI R31,(OSCtxSwCtr >> 8)
\ 000001AE 8300 STD Z+0,R16
\ 000001B0 8301 STD Z+1,R16
\ 000001B2 8302 STD Z+2,R16
\ 000001B4 8303 STD Z+3,R16
137 OSTimeDlyHMSM(0, 0, 1, 0); /* Wait one second */
\ 000001B6 D012 RCALL ?0099
\ 000001B8 E001 LDI R16,1
\ 000001BA 930A ST -Y,R16
\ 000001BC E040 LDI R20,LOW(0)
\ 000001BE E000 LDI R16,LOW(0)
\ 000001C0 .... RCALL OSTimeDlyHMSM
138 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -