⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ucos_ii.lst

📁 这是一个UCOS的AVR移植程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 1147 0458 8D93      		st X+,r24
 1148               	.LM134:
 1149 045a 4150      		subi r20,lo8(-(-1))
 1150 045c 5040      		sbci r21,hi8(-(-1))
 1151 045e F8CF      		rjmp .L78
 1152               	.L77:
 1153 0460 0895      		ret
 1154               	/* epilogue: frame size=0 */
 1155               	/* epilogue: noreturn */
 1156               	/* epilogue end (size=0) */
 1157               	/* function OS_MemCopy size 11 (11) */
 1158               	.LFE24:
 1160               	.global	OS_Sched
 1162               	OS_Sched:
 1163               	.LFB25:
 1164               	.LM135:
 1165               	/* prologue: frame size=0 */
 1166               	/* prologue end (size=0) */
 1167               	.LM136:
 1168               	/* #APP */
 1169 0462 F894      		cli
 1170               	.LM137:
 1171               	/* #NOAPP */
 1172 0464 8091 0000 		lds r24,OSIntNesting
 1173 0468 8823      		tst r24
 1174 046a 09F0      		breq .+2
 1175 046c 41C0      		rjmp .L80
 1176               	.LM138:
 1177 046e 8091 0000 		lds r24,OSLockNesting
 1178 0472 8823      		tst r24
 1179 0474 E9F5      		brne .L80
 1180               	.LM139:
 1181 0476 8091 0000 		lds r24,OSRdyGrp
 1182 047a E82F      		mov r30,r24
 1183 047c FF27      		clr r31
 1184 047e E050      		subi r30,lo8(-(OSUnMapTbl))
 1185 0480 F040      		sbci r31,hi8(-(OSUnMapTbl))
 1186 0482 8081      		ld r24,Z
 1187               	.LM140:
 1188 0484 9927      		clr r25
 1189 0486 FC01      		movw r30,r24
 1190 0488 E050      		subi r30,lo8(-(OSRdyTbl))
 1191 048a F040      		sbci r31,hi8(-(OSRdyTbl))
 1192 048c 2081      		ld r18,Z
 1193 048e E22F      		mov r30,r18
 1194 0490 FF27      		clr r31
 1195 0492 E050      		subi r30,lo8(-(OSUnMapTbl))
 1196 0494 F040      		sbci r31,hi8(-(OSUnMapTbl))
 1197 0496 E081      		ld r30,Z
 1198 0498 F3E0      		ldi r31,3
 1199 049a 880F      	1:	lsl r24
 1200 049c 991F      		rol r25
 1201 049e FA95      		dec r31
 1202 04a0 E1F7      		brne 1b
 1203 04a2 E80F      		add r30,r24
 1204 04a4 E093 0000 		sts OSPrioHighRdy,r30
 1205               	.LM141:
 1206 04a8 8091 0000 		lds r24,OSPrioCur
 1207 04ac E817      		cp r30,r24
 1208 04ae 01F1      		breq .L80
 1209               	.LM142:
 1210 04b0 FF27      		clr r31
 1211 04b2 EE0F      		add r30,r30
 1212 04b4 FF1F      		adc r31,r31
 1213 04b6 E050      		subi r30,lo8(-(OSTCBPrioTbl))
 1214 04b8 F040      		sbci r31,hi8(-(OSTCBPrioTbl))
 1215 04ba 8081      		ld r24,Z
 1216 04bc 9181      		ldd r25,Z+1
 1217 04be 9093 0000 		sts (OSTCBHighRdy)+1,r25
 1218 04c2 8093 0000 		sts OSTCBHighRdy,r24
 1219               	.LM143:
 1220 04c6 8091 0000 		lds r24,OSCtxSwCtr
 1221 04ca 9091 0000 		lds r25,(OSCtxSwCtr)+1
 1222 04ce A091 0000 		lds r26,(OSCtxSwCtr)+2
 1223 04d2 B091 0000 		lds r27,(OSCtxSwCtr)+3
 1224 04d6 0196      		adiw r24,1
 1225 04d8 A11D      		adc r26,__zero_reg__
 1226 04da B11D      		adc r27,__zero_reg__
 1227 04dc 8093 0000 		sts OSCtxSwCtr,r24
 1228 04e0 9093 0000 		sts (OSCtxSwCtr)+1,r25
 1229 04e4 A093 0000 		sts (OSCtxSwCtr)+2,r26
 1230 04e8 B093 0000 		sts (OSCtxSwCtr)+3,r27
 1231               	.LM144:
 1232 04ec 0E94 0000 		call OSCtxSw
 1233               	.L80:
 1234               	.LM145:
 1235               	/* #APP */
 1236 04f0 7894      		sei
 1237               	/* #NOAPP */
 1238               	/* epilogue: frame size=0 */
 1239 04f2 0895      		ret
 1240               	/* epilogue end (size=1) */
 1241               	/* function OS_Sched size 75 (74) */
 1242               	.LFE25:
 1244               	.global	OSTimeDly
 1246               	OSTimeDly:
 1247               	.LFB39:
 1248               	.LM146:
 1249               	/* prologue: frame size=0 */
 1250 04f4 CF93      		push r28
 1251 04f6 DF93      		push r29
 1252               	/* prologue end (size=2) */
 1253 04f8 9C01      		movw r18,r24
 1254               	.LM147:
 1255 04fa 892B      		or r24,r25
 1256 04fc F9F0      		breq .L83
 1257               	.LM148:
 1258               	/* #APP */
 1259 04fe F894      		cli
 1260               	.LM149:
 1261               	/* #NOAPP */
 1262 0500 A091 0000 		lds r26,OSTCBCur
 1263 0504 B091 0000 		lds r27,(OSTCBCur)+1
 1264 0508 ED01      		movw r28,r26
 1265 050a 8E85      		ldd r24,Y+14
 1266               	.LM150:
 1267 050c E82F      		mov r30,r24
 1268 050e FF27      		clr r31
 1269 0510 E050      		subi r30,lo8(-(OSRdyTbl))
 1270 0512 F040      		sbci r31,hi8(-(OSRdyTbl))
 1271 0514 9F85      		ldd r25,Y+15
 1272 0516 9095      		com r25
 1273 0518 8081      		ld r24,Z
 1274 051a 8923      		and r24,r25
 1275 051c 8083      		st Z,r24
 1276               	.LM151:
 1277 051e 8823      		tst r24
 1278 0520 39F4      		brne .L85
 1279               	.LM152:
 1280 0522 9889      		ldd r25,Y+16
 1281 0524 9095      		com r25
 1282 0526 8091 0000 		lds r24,OSRdyGrp
 1283 052a 8923      		and r24,r25
 1284 052c 8093 0000 		sts OSRdyGrp,r24
 1285               	.L85:
 1286               	.LM153:
 1287 0530 FD01      		movw r30,r26
 1288 0532 2087      		std Z+8,r18
 1289 0534 3187      		std Z+9,r19
 1290               	.LM154:
 1291               	/* #APP */
 1292 0536 7894      		sei
 1293               	.LM155:
 1294               	/* #NOAPP */
 1295 0538 0E94 0000 		call OS_Sched
 1296               	.L83:
 1297               	/* epilogue: frame size=0 */
 1298 053c DF91      		pop r29
 1299 053e CF91      		pop r28
 1300 0540 0895      		ret
 1301               	/* epilogue end (size=3) */
 1302               	/* function OSTimeDly size 41 (36) */
 1303               	.LFE39:
 1305               	.global	OSStatInit
 1307               	OSStatInit:
 1308               	.LFB10:
 1309               	.LM156:
 1310               	/* prologue: frame size=0 */
 1311               	/* prologue end (size=0) */
 1312               	.LM157:
 1313 0542 82E0      		ldi r24,lo8(2)
 1314 0544 90E0      		ldi r25,hi8(2)
 1315 0546 0E94 0000 		call OSTimeDly
 1316               	.LM158:
 1317               	/* #APP */
 1318 054a F894      		cli
 1319               	.LM159:
 1320               	/* #NOAPP */
 1321 054c 1092 0000 		sts OSIdleCtr,__zero_reg__
 1322 0550 1092 0000 		sts (OSIdleCtr)+1,__zero_reg__
 1323 0554 1092 0000 		sts (OSIdleCtr)+2,__zero_reg__
 1324 0558 1092 0000 		sts (OSIdleCtr)+3,__zero_reg__
 1325               	.LM160:
 1326               	/* #APP */
 1327 055c 7894      		sei
 1328               	.LM161:
 1329               	/* #NOAPP */
 1330 055e 8AE0      		ldi r24,lo8(10)
 1331 0560 90E0      		ldi r25,hi8(10)
 1332 0562 0E94 0000 		call OSTimeDly
 1333               	.LM162:
 1334               	/* #APP */
 1335 0566 F894      		cli
 1336               	.LM163:
 1337               	/* #NOAPP */
 1338 0568 8091 0000 		lds r24,OSIdleCtr
 1339 056c 9091 0000 		lds r25,(OSIdleCtr)+1
 1340 0570 A091 0000 		lds r26,(OSIdleCtr)+2
 1341 0574 B091 0000 		lds r27,(OSIdleCtr)+3
 1342 0578 8093 0000 		sts OSIdleCtrMax,r24
 1343 057c 9093 0000 		sts (OSIdleCtrMax)+1,r25
 1344 0580 A093 0000 		sts (OSIdleCtrMax)+2,r26
 1345 0584 B093 0000 		sts (OSIdleCtrMax)+3,r27
 1346               	.LM164:
 1347 0588 81E0      		ldi r24,lo8(1)
 1348 058a 8093 0000 		sts OSStatRdy,r24
 1349               	.LM165:
 1350               	/* #APP */
 1351 058e 7894      		sei
 1352               	/* #NOAPP */
 1353               	/* epilogue: frame size=0 */
 1354 0590 0895      		ret
 1355               	/* epilogue end (size=1) */
 1356               	/* function OSStatInit size 44 (43) */
 1357               	.LFE10:
 1359               	.global	OSSchedUnlock
 1361               	OSSchedUnlock:
 1362               	.LFB8:
 1363               	.LM166:
 1364               	/* prologue: frame size=0 */
 1365               	/* prologue end (size=0) */
 1366               	.LM167:
 1367 0592 8091 0000 		lds r24,OSRunning
 1368 0596 8130      		cpi r24,lo8(1)
 1369 0598 A9F4      		brne .L87
 1370               	.LM168:
 1371               	/* #APP */
 1372 059a F894      		cli
 1373               	.LM169:
 1374               	/* #NOAPP */
 1375 059c 8091 0000 		lds r24,OSLockNesting
 1376 05a0 8823      		tst r24
 1377 05a2 79F0      		breq .L89
 1378               	.LM170:
 1379 05a4 8150      		subi r24,lo8(-(-1))
 1380 05a6 8093 0000 		sts OSLockNesting,r24
 1381               	.LM171:
 1382 05aa 8823      		tst r24
 1383 05ac 41F4      		brne .L90
 1384               	.LM172:
 1385 05ae 8091 0000 		lds r24,OSIntNesting
 1386 05b2 8823      		tst r24
 1387 05b4 21F4      		brne .L90
 1388               	.LM173:
 1389               	/* #APP */
 1390 05b6 7894      		sei
 1391               	.LM174:
 1392               	/* #NOAPP */
 1393 05b8 0E94 0000 		call OS_Sched
 1394 05bc 0895      		ret
 1395               	.L90:
 1396               	.LM175:
 1397               	/* #APP */
 1398 05be 7894      		sei
 1399               	/* #NOAPP */
 1400 05c0 0895      		ret
 1401               	.L89:
 1402               	.LM176:
 1403               	/* #APP */
 1404 05c2 7894      		sei
 1405               	/* #NOAPP */
 1406               	.L87:
 1407 05c4 0895      		ret
 1408               	/* epilogue: frame size=0 */
 1409 05c6 0895      		ret
 1410               	/* epilogue end (size=1) */
 1411               	/* function OSSchedUnlock size 31 (30) */
 1412               	.LFE8:
 1414               	.global	OS_TaskIdle
 1416               	OS_TaskIdle:
 1417               	.LFB28:
 1418               	.LM177:
 1419               	/* prologue: frame size=0 */
 1420               	/* prologue end (size=0) */
 1421               	.L96:
 1422               	.LM178:
 1423               	/* #APP */
 1424 05c8 F894      		cli
 1425               	.LM179:
 1426               	/* #NOAPP */
 1427 05ca 8091 0000 		lds r24,OSIdleCtr
 1428 05ce 9091 0000 		lds r25,(OSIdleCtr)+1
 1429 05d2 A091 0000 		lds r26,(OSIdleCtr)+2
 1430 05d6 B091 0000 		lds r27,(OSIdleCtr)+3
 1431 05da 0196      		adiw r24,1
 1432 05dc A11D      		adc r26,__zero_reg__
 1433 05de B11D      		adc r27,__zero_reg__
 1434 05e0 8093 0000 		sts OSIdleCtr,r24
 1435 05e4 9093 0000 		sts (OSIdleCtr)+1,r25
 1436 05e8 A093 0000 		sts (OSIdleCtr)+2,r26
 1437 05ec B093 0000 		sts (OSIdleCtr)+3,r27
 1438               	.LM180:
 1439               	/* #APP */
 1440 05f0 7894      		sei
 1441               	.LM181:
 1442               	/* #NOAPP */
 1443 05f2 0E94 0000 		call OSTaskIdleHook
 1444               	.LM182:
 1445 05f6 E8CF      		rjmp .L96
 1446               	/* epilogue: frame size=0 */
 1447               	/* epilogue: noreturn */
 1448               	/* epilogue end (size=0) */
 1449               	/* function OS_TaskIdle size 26 (26) */
 1450               	.LFE28:
 1452               	.global	OS_TaskStat
 1454               	OS_TaskStat:
 1455               	.LFB29:
 1456               	.LM183:
 1457               	/* prologue: frame size=0 */
 1458 05f8 EF92      		push r14
 1459 05fa FF92      		push r15
 1460 05fc 0F93      		push r16
 1461 05fe 1F93      		push r17
 1462               	/* prologue end (size=4) */
 1463               	.L110:
 1464               	.LM184:
 1465 0600 8091 0000 		lds r24,OSStatRdy
 1466 0604 8823      		tst r24
 1467 0606 29F4      		brne .L109
 1468               	.LM185:
 1469 0608 84E1      		ldi r24,lo8(20)
 1470 060a 90E0      		ldi r25,hi8(20)
 1471 060c 0E94 0000 		call OSTimeDly
 1472 0610 F7CF      		rjmp .L110
 1473               	.L109:
 1474               	.LM186:
 1475 0612 8091 0000 		lds r24,OSIdleCtrMax
 1476 0616 9091 0000 		lds r25,(OSIdleCtrMax)+1
 1477 061a A091 0000 		lds r26,(OSIdleCtrMax)+2
 1478 061e B091 0000 		lds r27,(OSIdleCtrMax)+3
 1479 0622 BC01      		movw r22,r24
 1480 0624 CD01      		movw r24,r26
 1481 0626 24E6      		ldi r18,lo8(100)
 1482 0628 30E0      		ldi r19,hi8(100)
 1483 062a 40E0      		ldi r20,hlo8(100)
 1484 062c 50E0      		ldi r21,hhi8(100)
 1485 062e 0E94 0000 		call __udivmodsi4
 1486 0632 7901      		movw r14,r18
 1487 0634 8A01      		movw r16,r20
 1488               	.L102:
 1489               	.LM187:
 1490               	/* #APP */
 1491 0636 F894      		cli
 1492               	.LM188:
 1493               	/* #NOAPP */
 1494 0638 8091 0000 		lds r24,OSIdleCtr
 1495 063c 9091 0000 		lds r25,(OSIdleCtr)+1
 1496 0640 A091 0000 		lds r26,(OSIdleCtr)+2
 1497 0644 B091 0000 		lds r27,(OSIdleCtr)+3
 1498 0648 8093 0000 		sts OSIdleCtrRun,r24
 1499 064c 9093 0000 		sts (OSIdleCtrRun)+1,r25
 1500 0650 A093 0000 		sts (OSIdleCtrRun)+2,r26
 1501 0654 B093 0000 		sts (OSIdleCtrRun)+3,r27
 1502               	.LM189:
 1503 0658 6091 0000 		lds r22,OSIdleCtr
 1504 065c 7091 0000 		lds r23,(OSIdleCtr)+1
 1505 0660 8091 0000 		lds r24,(OSIdleCtr)+2
 1506 0664 9091 0000 		lds r25,(OSIdleCtr)+3
 1507               	.LM190:
 1508 0668 1092 0000 		sts OSIdleCtr,__zero_reg__
 1509 066c 1092 0000 		sts (OSIdleCtr)+1,__zero_reg__
 1510 0670 1092 0000 		sts (OSIdleCtr)+2,__zero_reg__
 1511 0674 1092 0000 		sts (OSIdleCtr)+3,__zero_reg__
 1512               	.LM191:
 1513               	/* #APP */
 1514 0678 7894      		sei
 1515               	.LM192:
 1516               	/* #NOAPP */
 1517 067a E114      		cp r14,__zero_reg__
 1518 067c F104      		cpc r15,__zero_reg__
 1519 067e 0105      		cpc r16,__zero_reg__
 1520 0680 1105      		cpc r17,__zero_reg__
 1521 0682 81F0      		breq .L104
 1522               	.LM193:
 1523 0684 A801      		movw r20,r16
 1524 0686 9701      		movw r18,r14
 1525 0688 0E94 0000 		call __udivmodsi4
 1526 068c DA01      		movw r26,r20

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -