📄 os_core.lst
字号:
312 00c9 00 .byte 0
313 00ca 01 .byte 1
314 00cb 00 .byte 0
315 00cc 02 .byte 2
316 00cd 00 .byte 0
317 00ce 01 .byte 1
318 00cf 00 .byte 0
319 00d0 04 .byte 4
320 00d1 00 .byte 0
321 00d2 01 .byte 1
322 00d3 00 .byte 0
323 00d4 02 .byte 2
324 00d5 00 .byte 0
325 00d6 01 .byte 1
326 00d7 00 .byte 0
327 00d8 03 .byte 3
328 00d9 00 .byte 0
329 00da 01 .byte 1
330 00db 00 .byte 0
331 00dc 02 .byte 2
332 00dd 00 .byte 0
333 00de 01 .byte 1
334 00df 00 .byte 0
335 00e0 05 .byte 5
336 00e1 00 .byte 0
337 00e2 01 .byte 1
338 00e3 00 .byte 0
339 00e4 02 .byte 2
340 00e5 00 .byte 0
341 00e6 01 .byte 1
342 00e7 00 .byte 0
343 00e8 03 .byte 3
344 00e9 00 .byte 0
345 00ea 01 .byte 1
346 00eb 00 .byte 0
347 00ec 02 .byte 2
348 00ed 00 .byte 0
349 00ee 01 .byte 1
350 00ef 00 .byte 0
351 00f0 04 .byte 4
352 00f1 00 .byte 0
353 00f2 01 .byte 1
354 00f3 00 .byte 0
355 00f4 02 .byte 2
356 00f5 00 .byte 0
357 00f6 01 .byte 1
358 00f7 00 .byte 0
359 00f8 03 .byte 3
360 00f9 00 .byte 0
361 00fa 01 .byte 1
362 00fb 00 .byte 0
363 00fc 02 .byte 2
364 00fd 00 .byte 0
365 00fe 01 .byte 1
366 00ff 00 .byte 0
367 .text
371 .global OS_StrCopy
373 OS_StrCopy:
1:../OSsrc/os_core.c **** /*
2:../OSsrc/os_core.c **** ***************************************************************************************************
3:../OSsrc/os_core.c **** * uC/OS-II
4:../OSsrc/os_core.c **** * The Real-Time Kernel
5:../OSsrc/os_core.c **** * CORE FUNCTIONS
6:../OSsrc/os_core.c **** *
7:../OSsrc/os_core.c **** * (c) Copyright 1992-2007, Jean J. Labrosse, Weston, FL
8:../OSsrc/os_core.c **** * All Rights Reserved
9:../OSsrc/os_core.c **** *
10:../OSsrc/os_core.c **** * File : OS_CORE.C
11:../OSsrc/os_core.c **** * By : Jean J. Labrosse
12:../OSsrc/os_core.c **** * Version : V2.85
13:../OSsrc/os_core.c **** *
14:../OSsrc/os_core.c **** * LICENSING TERMS:
15:../OSsrc/os_core.c **** * ---------------
16:../OSsrc/os_core.c **** * uC/OS-II is provided in source form for FREE evaluation, for educational use or for peaceful re
17:../OSsrc/os_core.c **** * If you plan on using uC/OS-II in a commercial product you need to contact Micri祄 to properly l
18:../OSsrc/os_core.c **** * its use in your product. We provide ALL the source code for your convenience and to help you expe
19:../OSsrc/os_core.c **** * uC/OS-II. The fact that the source is provided does NOT mean that you can use it without pa
20:../OSsrc/os_core.c **** * licensing fee.
21:../OSsrc/os_core.c **** ***************************************************************************************************
22:../OSsrc/os_core.c **** */
23:../OSsrc/os_core.c ****
24:../OSsrc/os_core.c **** #ifndef OS_MASTER_FILE
25:../OSsrc/os_core.c **** #define OS_GLOBALS
26:../OSsrc/os_core.c **** #include <ucos_ii.h>
27:../OSsrc/os_core.c **** #endif
28:../OSsrc/os_core.c ****
29:../OSsrc/os_core.c **** /*
30:../OSsrc/os_core.c **** ***************************************************************************************************
31:../OSsrc/os_core.c **** * PRIORITY RESOLUTION TABLE
32:../OSsrc/os_core.c **** *
33:../OSsrc/os_core.c **** * Note: Index into table is bit pattern to resolve highest priority
34:../OSsrc/os_core.c **** * Indexed value corresponds to highest priority bit position (i.e. 0..7)
35:../OSsrc/os_core.c **** ***************************************************************************************************
36:../OSsrc/os_core.c **** */
37:../OSsrc/os_core.c ****
38:../OSsrc/os_core.c **** INT8U const OSUnMapTbl[256] = {
39:../OSsrc/os_core.c **** 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x00 to 0x0F
40:../OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x10 to 0x1F
41:../OSsrc/os_core.c **** 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x20 to 0x2F
42:../OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x30 to 0x3F
43:../OSsrc/os_core.c **** 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x40 to 0x4F
44:../OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x50 to 0x5F
45:../OSsrc/os_core.c **** 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x60 to 0x6F
46:../OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x70 to 0x7F
47:../OSsrc/os_core.c **** 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x80 to 0x8F
48:../OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x90 to 0x9F
49:../OSsrc/os_core.c **** 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xA0 to 0xAF
50:../OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xB0 to 0xBF
51:../OSsrc/os_core.c **** 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xC0 to 0xCF
52:../OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xD0 to 0xDF
53:../OSsrc/os_core.c **** 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xE0 to 0xEF
54:../OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0 /* 0xF0 to 0xFF
55:../OSsrc/os_core.c **** };
56:../OSsrc/os_core.c ****
57:../OSsrc/os_core.c **** /*$PAGE*/
58:../OSsrc/os_core.c **** /*
59:../OSsrc/os_core.c **** ***************************************************************************************************
60:../OSsrc/os_core.c **** * FUNCTION PROTOTYPES
61:../OSsrc/os_core.c **** ***************************************************************************************************
62:../OSsrc/os_core.c **** */
63:../OSsrc/os_core.c ****
64:../OSsrc/os_core.c **** static void OS_InitEventList(void);
65:../OSsrc/os_core.c ****
66:../OSsrc/os_core.c **** static void OS_InitMisc(void);
67:../OSsrc/os_core.c ****
68:../OSsrc/os_core.c **** static void OS_InitRdyList(void);
69:../OSsrc/os_core.c ****
70:../OSsrc/os_core.c **** static void OS_InitTaskIdle(void);
71:../OSsrc/os_core.c ****
72:../OSsrc/os_core.c **** #if OS_TASK_STAT_EN > 0
73:../OSsrc/os_core.c **** static void OS_InitTaskStat(void);
74:../OSsrc/os_core.c **** #endif
75:../OSsrc/os_core.c ****
76:../OSsrc/os_core.c **** static void OS_InitTCBList(void);
77:../OSsrc/os_core.c ****
78:../OSsrc/os_core.c **** static void OS_SchedNew(void);
79:../OSsrc/os_core.c ****
80:../OSsrc/os_core.c **** /*$PAGE*/
81:../OSsrc/os_core.c **** /*
82:../OSsrc/os_core.c **** ***************************************************************************************************
83:../OSsrc/os_core.c **** * GET THE NAME OF A SEMAPHORE, MUTEX, MAILBOX or QUEUE
84:../OSsrc/os_core.c **** *
85:../OSsrc/os_core.c **** * Description: This function is used to obtain the name assigned to a semaphore, mutex, mailbox or
86:../OSsrc/os_core.c **** *
87:../OSsrc/os_core.c **** * Arguments : pevent is a pointer to the event group. 'pevent' can point either to a semaphore
88:../OSsrc/os_core.c **** * a mutex, a mailbox or a queue. Where this function is concerned, the actu
89:../OSsrc/os_core.c **** * type is irrelevant.
90:../OSsrc/os_core.c **** *
91:../OSsrc/os_core.c **** * pname is a pointer to an ASCII string that will receive the name of the semaphor
92:../OSsrc/os_core.c **** * mutex, mailbox or queue. The string must be able to hold at least
93:../OSsrc/os_core.c **** * OS_EVENT_NAME_SIZE characters.
94:../OSsrc/os_core.c **** *
95:../OSsrc/os_core.c **** * perr is a pointer to an error code that can contain one of the following values
96:../OSsrc/os_core.c **** *
97:../OSsrc/os_core.c **** * OS_ERR_NONE if the name was copied to 'pname'
98:../OSsrc/os_core.c **** * OS_ERR_EVENT_TYPE if 'pevent' is not pointing to the proper event
99:../OSsrc/os_core.c **** * control block type.
100:../OSsrc/os_core.c **** * OS_ERR_PNAME_NULL You passed a NULL pointer for 'pname'
101:../OSsrc/os_core.c **** * OS_ERR_PEVENT_NULL if you passed a NULL pointer for 'pevent'
102:../OSsrc/os_core.c **** *
103:../OSsrc/os_core.c **** * Returns : The length of the string or 0 if the 'pevent' is a NULL pointer.
104:../OSsrc/os_core.c **** ***************************************************************************************************
105:../OSsrc/os_core.c **** */
106:../OSsrc/os_core.c ****
107:../OSsrc/os_core.c **** #if OS_EVENT_EN && (OS_EVENT_NAME_SIZE > 1)
108:../OSsrc/os_core.c **** INT8U OSEventNameGet (OS_EVENT *pevent, INT8U *pname, INT8U *perr)
109:../OSsrc/os_core.c **** {
110:../OSsrc/os_core.c **** INT8U len;
111:../OSsrc/os_core.c **** #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register
112:../OSsrc/os_core.c **** OS_CPU_SR cpu_sr = 0;
113:../OSsrc/os_core.c **** #endif
114:../OSsrc/os_core.c ****
115:../OSsrc/os_core.c ****
116:../OSsrc/os_core.c ****
117:../OSsrc/os_core.c **** #if OS_ARG_CHK_EN > 0
118:../OSsrc/os_core.c **** if (perr == (INT8U *)0) { /* Validate 'perr'
119:../OSsrc/os_core.c **** return (0);
120:../OSsrc/os_core.c **** }
121:../OSsrc/os_core.c **** if (pevent == (OS_EVENT *)0) { /* Is 'pevent' a NULL pointer?
122:../OSsrc/os_core.c **** *perr = OS_ERR_PEVENT_NULL;
123:../OSsrc/os_core.c **** return (0);
124:../OSsrc/os_core.c **** }
125:../OSsrc/os_core.c **** if (pname == (INT8U *)0) { /* Is 'pname' a NULL pointer?
126:../OSsrc/os_core.c **** *perr = OS_ERR_PNAME_NULL;
127:../OSsrc/os_core.c **** return (0);
128:../OSsrc/os_core.c **** }
129:../OSsrc/os_core.c **** #endif
130:../OSsrc/os_core.c **** if (OSIntNesting > 0) { /* See if trying to call from an ISR
131:../OSsrc/os_core.c **** *perr = OS_ERR_NAME_GET_ISR;
132:../OSsrc/os_core.c **** return (0);
133:../OSsrc/os_core.c **** }
134:../OSsrc/os_core.c **** switch (pevent->OSEventType) {
135:../OSsrc/os_core.c **** case OS_EVENT_TYPE_SEM:
136:../OSsrc/os_core.c **** case OS_EVENT_TYPE_MUTEX:
137:../OSsrc/os_core.c **** case OS_EVENT_TYPE_MBOX:
138:../OSsrc/os_core.c **** case OS_EVENT_TYPE_Q:
139:../OSsrc/os_core.c **** break;
140:../OSsrc/os_core.c ****
141:../OSsrc/os_core.c **** default:
142:../OSsrc/os_core.c **** *perr = OS_ERR_EVENT_TYPE;
143:../OSsrc/os_core.c **** return (0);
144:../OSsrc/os_core.c **** }
145:../OSsrc/os_core.c **** OS_ENTER_CRITICAL();
146:../OSsrc/os_core.c **** len = OS_StrCopy(pname, pevent->OSEventName); /* Copy name from OS_EVENT
147:../OSsrc/os_core.c **** OS_EXIT_CRITICAL();
148:../OSsrc/os_core.c **** *perr = OS_ERR_NONE;
149:../OSsrc/os_core.c **** return (len);
150:../OSsrc/os_core.c **** }
151:../OSsrc/os_core.c **** #endif
152:../OSsrc/os_core.c ****
153:../OSsrc/os_core.c **** /*$PAGE*/
154:../OSsrc/os_core.c **** /*
155:../OSsrc/os_core.c **** ***************************************************************************************************
156:../OSsrc/os_core.c **** * ASSIGN A NAME TO A SEMAPHORE, MUTEX, MAILBOX or QUEUE
157:../OSsrc/os_core.c **** *
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -