📄 mega16pro.lst
字号:
004F5 92EA ST -Y,R14
004F6 92FA ST -Y,R15
004F7 930A ST -Y,R16
004F8 931A ST -Y,R17
004F9 932A ST -Y,R18
004FA 933A ST -Y,R19
004FB 934A ST -Y,R20
004FC 935A ST -Y,R21
004FD 936A ST -Y,R22
004FE 937A ST -Y,R23
004FF 938A ST -Y,R24
00500 939A ST -Y,R25
00501 93AA ST -Y,R26
00502 93BA ST -Y,R27
00503 93EA ST -Y,R30
00504 93FA ST -Y,R31
00505 B70F IN R16,0x3F
00506 930A ST -Y,R16
00507 B70E IN R16,0x3E
00508 930A ST -Y,R16
00509 B70D IN R16,0x3D
0050A 930A ST -Y,R16
0050B 91E0 078D LDS R30,OSTCBCur
0050D 91F0 078E LDS R31,OSTCBCur+1
0050F 93C1 ST Z+,R28
00510 93D1 ST Z+,R29
00511 940E 04A9 CALL _OSTaskSwHook
00513 9100 07FB LDS R16,OSPrioHighRdy
00515 9300 07FC STS OSPrioCur,R16
00517 91E0 0789 LDS R30,OSTCBHighRdy
00519 91F0 078A LDS R31,OSTCBHighRdy+1
0051B 93E0 078D STS OSTCBCur,R30
0051D 93F0 078E STS OSTCBCur+1,R31
0051F 91C1 LD R28,Z+
00520 91D1 LD R29,Z+
00521 9109 LD R16,Y+
00522 BF0D OUT 0x3D,R16
00523 9109 LD R16,Y+
00524 BF0E OUT 0x3E,R16
00525 9109 LD R16,Y+
00526 FD07 SBRC R16,7
00527 C020 RJMP 0x0548
00528 BF0F OUT 0x3F,R16
00529 91F9 LD R31,Y+
0052A 91E9 LD R30,Y+
0052B 91B9 LD R27,Y+
0052C 91A9 LD R26,Y+
0052D 9199 LD R25,Y+
0052E 9189 LD R24,Y+
0052F 9179 LD R23,Y+
00530 9169 LD R22,Y+
00531 9159 LD R21,Y+
00532 9149 LD R20,Y+
00533 9139 LD R19,Y+
00534 9129 LD R18,Y+
00535 9119 LD R17,Y+
00536 9109 LD R16,Y+
00537 90F9 LD R15,Y+
00538 90E9 LD R14,Y+
00539 90D9 LD R13,Y+
0053A 90C9 LD R12,Y+
0053B 90B9 LD R11,Y+
0053C 90A9 LD R10,Y+
0053D 9099 LD R9,Y+
0053E 9089 LD R8,Y+
0053F 9079 LD R7,Y+
00540 9069 LD R6,Y+
00541 9059 LD R5,Y+
00542 9049 LD R4,Y+
00543 9039 LD R3,Y+
00544 9029 LD R2,Y+
00545 9019 LD R1,Y+
00546 9009 LD R0,Y+
00547 9508 RET
00548 770F ANDI R16,0x7F
00549 BF0F OUT 0x3F,R16
0054A 91F9 LD R31,Y+
0054B 91E9 LD R30,Y+
0054C 91B9 LD R27,Y+
0054D 91A9 LD R26,Y+
0054E 9199 LD R25,Y+
0054F 9189 LD R24,Y+
00550 9179 LD R23,Y+
00551 9169 LD R22,Y+
00552 9159 LD R21,Y+
00553 9149 LD R20,Y+
00554 9139 LD R19,Y+
00555 9129 LD R18,Y+
00556 9119 LD R17,Y+
00557 9109 LD R16,Y+
00558 90F9 LD R15,Y+
00559 90E9 LD R14,Y+
0055A 90D9 LD R13,Y+
0055B 90C9 LD R12,Y+
0055C 90B9 LD R11,Y+
0055D 90A9 LD R10,Y+
0055E 9099 LD R9,Y+
0055F 9089 LD R8,Y+
00560 9079 LD R7,Y+
00561 9069 LD R6,Y+
00562 9059 LD R5,Y+
00563 9049 LD R4,Y+
00564 9039 LD R3,Y+
00565 9029 LD R2,Y+
00566 9019 LD R1,Y+
00567 9009 LD R0,Y+
00568 9518 RETI
_OSIntCtxSw:
00569 940E 04A9 CALL _OSTaskSwHook
0056B 9100 07FB LDS R16,OSPrioHighRdy
0056D 9300 07FC STS OSPrioCur,R16
0056F 91E0 0789 LDS R30,OSTCBHighRdy
00571 91F0 078A LDS R31,OSTCBHighRdy+1
00573 93E0 078D STS OSTCBCur,R30
00575 93F0 078E STS OSTCBCur+1,R31
00577 91C1 LD R28,Z+
00578 91D1 LD R29,Z+
00579 9109 LD R16,Y+
0057A BF0D OUT 0x3D,R16
0057B 9109 LD R16,Y+
0057C BF0E OUT 0x3E,R16
0057D 9109 LD R16,Y+
0057E FD07 SBRC R16,7
0057F C020 RJMP 0x05A0
00580 BF0F OUT 0x3F,R16
00581 91F9 LD R31,Y+
00582 91E9 LD R30,Y+
00583 91B9 LD R27,Y+
00584 91A9 LD R26,Y+
00585 9199 LD R25,Y+
00586 9189 LD R24,Y+
00587 9179 LD R23,Y+
00588 9169 LD R22,Y+
00589 9159 LD R21,Y+
0058A 9149 LD R20,Y+
0058B 9139 LD R19,Y+
0058C 9129 LD R18,Y+
0058D 9119 LD R17,Y+
0058E 9109 LD R16,Y+
0058F 90F9 LD R15,Y+
00590 90E9 LD R14,Y+
00591 90D9 LD R13,Y+
00592 90C9 LD R12,Y+
00593 90B9 LD R11,Y+
00594 90A9 LD R10,Y+
00595 9099 LD R9,Y+
00596 9089 LD R8,Y+
00597 9079 LD R7,Y+
00598 9069 LD R6,Y+
00599 9059 LD R5,Y+
0059A 9049 LD R4,Y+
0059B 9039 LD R3,Y+
0059C 9029 LD R2,Y+
0059D 9019 LD R1,Y+
0059E 9009 LD R0,Y+
0059F 9508 RET
005A0 770F ANDI R16,0x7F
005A1 BF0F OUT 0x3F,R16
005A2 91F9 LD R31,Y+
005A3 91E9 LD R30,Y+
005A4 91B9 LD R27,Y+
005A5 91A9 LD R26,Y+
005A6 9199 LD R25,Y+
005A7 9189 LD R24,Y+
005A8 9179 LD R23,Y+
005A9 9169 LD R22,Y+
005AA 9159 LD R21,Y+
005AB 9149 LD R20,Y+
005AC 9139 LD R19,Y+
005AD 9129 LD R18,Y+
005AE 9119 LD R17,Y+
005AF 9109 LD R16,Y+
005B0 90F9 LD R15,Y+
005B1 90E9 LD R14,Y+
005B2 90D9 LD R13,Y+
005B3 90C9 LD R12,Y+
005B4 90B9 LD R11,Y+
005B5 90A9 LD R10,Y+
005B6 9099 LD R9,Y+
005B7 9089 LD R8,Y+
005B8 9079 LD R7,Y+
005B9 9069 LD R6,Y+
005BA 9059 LD R5,Y+
005BB 9049 LD R4,Y+
005BC 9039 LD R3,Y+
005BD 9029 LD R2,Y+
005BE 9019 LD R1,Y+
005BF 9009 LD R0,Y+
005C0 9518 RETI
FILE: C:\DOCUME~1\Administrator\桌面\MEGA16\source\ucos_source\os_core.c
(0001) /*
(0002) *********************************************************************************************************
(0003) * uC/OS-II
(0004) * The Real-Time Kernel
(0005) * CORE FUNCTIONS
(0006) *
(0007) * (c) Copyright 1992-2007, Micrium, Weston, FL
(0008) * All Rights Reserved
(0009) *
(0010) * File : OS_CORE.C
(0011) * By : Jean J. Labrosse
(0012) * Version : V2.86
(0013) *
(0014) * LICENSING TERMS:
(0015) * ---------------
(0016) * uC/OS-II is provided in source form for FREE evaluation, for educational use or for peaceful research.
(0017) * If you plan on using uC/OS-II in a commercial product you need to contact Micri祄 to properly license
(0018) * its use in your product. We provide ALL the source code for your convenience and to help you experience
(0019) * uC/OS-II. The fact that the source is provided does NOT mean that you can use it without paying a
(0020) * licensing fee.
(0021) *********************************************************************************************************
(0022) */
(0023)
(0024) #ifndef _OS_CORE_SOURCE
(0025) #define _OS_CORE_SOURCE
(0026) #define OS_GLOBALS
(0027) #include "..\CPU_source\includes.h"
(0028) #endif
(0029)
(0030) /*
(0031) *********************************************************************************************************
(0032) * PRIORITY RESOLUTION TABLE
(0033) *
(0034) * Note: Index into table is bit pattern to resolve highest priority
(0035) * Indexed value corresponds to highest priority bit position (i.e. 0..7)
(0036) *********************************************************************************************************
(0037) */
(0038)
(0039) INT8U const OSUnMapTbl[256] = {
(0040) 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x00 to 0x0F */
(0041) 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x10 to 0x1F */
(0042) 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x20 to 0x2F */
(0043) 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x30 to 0x3F */
(0044) 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x40 to 0x4F */
(0045) 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x50 to 0x5F */
(0046) 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x60 to 0x6F */
(0047) 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x70 to 0x7F */
(0048) 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x80 to 0x8F */
(0049) 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x90 to 0x9F */
(0050) 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xA0 to 0xAF */
(0051) 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xB0 to 0xBF */
(0052) 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xC0 to 0xCF */
(0053) 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xD0 to 0xDF */
(0054) 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xE0 to 0xEF */
(0055) 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0 /* 0xF0 to 0xFF */
(0056) };
(0057)
(0058)
(0059) /*
(0060) *********************************************************************************************************
(0061) * FUNCTION PROTOTYPES
(0062) *********************************************************************************************************
(0063) */
(0064)
(0065) static void OS_InitEventList(void);
(0066)
(0067) static void OS_InitMisc(void);
(0068)
(0069) static void OS_InitRdyList(void);
(0070)
(0071) static void OS_InitTaskIdle(void);
(0072)
(0073) #if OS_TASK_STAT_EN > 0
(0074) static void OS_InitTaskStat(void);
(0075) #endif
(0076)
(0077) static void OS_InitTCBList(void);
(0078)
(0079) static void OS_SchedNew(void);
(0080)
(0081)
(0082) /*
(0083) *********************************************************************************************************
(0084) * GET THE NAME OF A SEMAPHORE, MUTEX, MAILBOX or QUEUE
(0085) *
(0086) * Description: This function is used to obtain the name assigned to a semaphore, mutex, mailbox or queue.
(0087) *
(0088) * Arguments : pevent is a pointer to the event group. 'pevent' can point either to a semaphore,
(0089) * a mutex, a mailbox or a queue. Where this function is concerned, the actual
(0090) * type is irrelevant.
(0091) *
(0092) * pname is a pointer to an ASCII string that will receive the name of the semaphore,
(0093) * mutex, mailbox or queue. The string must be able to hold at least
(0094) * OS_EVENT_NAME_SIZE characters.
(0095) *
(0096) * perr is a pointer to an error code that can contain one of the following values:
(0097) *
(0098) * OS_ERR_NONE if the name was copied to 'pname'
(0099) * OS_ERR_EVENT_TYPE if 'pevent' is not pointing to the proper event
(0100) * control block type.
(0101) * OS_ERR_PNAME_NULL You passed a NULL pointer for 'pname'
(0102) * OS_ERR_PEVENT_NULL if you passed a NULL pointer for 'pevent'
(0103) * OS_ERR_NAME_GET_ISR if you are trying to call this function from an ISR
(0104) *
(0105) * Returns : The length of the string or 0 if the 'pevent' is a NULL pointer.
(0106) *********************************************************************************************************
(0107) */
(0108)
(0109) #if (OS_EVENT_EN) && (OS_EVENT_NAME_SIZE > 1)
(0110) INT8U OSEventNameGet (OS_EVENT *pevent, INT8U *pname, INT8U *perr)
(0111) {
(0112) INT8U len;
(0113) #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
(0114) OS_CPU_SR cpu_sr = 0;
(0115) #endif
(0116)
(0117)
(0118)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -