📄 os_core.lst
字号:
309 00cd 00 .byte 0
310 00ce 01 .byte 1
311 00cf 00 .byte 0
312 00d0 04 .byte 4
313 00d1 00 .byte 0
314 00d2 01 .byte 1
315 00d3 00 .byte 0
316 00d4 02 .byte 2
317 00d5 00 .byte 0
318 00d6 01 .byte 1
319 00d7 00 .byte 0
320 00d8 03 .byte 3
321 00d9 00 .byte 0
322 00da 01 .byte 1
323 00db 00 .byte 0
324 00dc 02 .byte 2
325 00dd 00 .byte 0
326 00de 01 .byte 1
327 00df 00 .byte 0
328 00e0 05 .byte 5
329 00e1 00 .byte 0
330 00e2 01 .byte 1
331 00e3 00 .byte 0
332 00e4 02 .byte 2
333 00e5 00 .byte 0
334 00e6 01 .byte 1
335 00e7 00 .byte 0
336 00e8 03 .byte 3
337 00e9 00 .byte 0
338 00ea 01 .byte 1
339 00eb 00 .byte 0
340 00ec 02 .byte 2
341 00ed 00 .byte 0
342 00ee 01 .byte 1
343 00ef 00 .byte 0
344 00f0 04 .byte 4
345 00f1 00 .byte 0
346 00f2 01 .byte 1
347 00f3 00 .byte 0
348 00f4 02 .byte 2
349 00f5 00 .byte 0
350 00f6 01 .byte 1
351 00f7 00 .byte 0
352 00f8 03 .byte 3
353 00f9 00 .byte 0
354 00fa 01 .byte 1
355 00fb 00 .byte 0
356 00fc 02 .byte 2
357 00fd 00 .byte 0
358 00fe 01 .byte 1
359 00ff 00 .byte 0
360 .global OSMapTbl
363 OSMapTbl:
364 0100 01 .byte 1
365 0101 02 .byte 2
366 0102 04 .byte 4
367 0103 08 .byte 8
368 0104 10 .byte 16
369 0105 20 .byte 32
370 0106 40 .byte 64
371 0107 80 .byte -128
372 .text
376 .global OS_StrCopy
378 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-2003, 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.76
13:OSsrc/os_core.c **** ***************************************************************************************************
14:OSsrc/os_core.c **** */
15:OSsrc/os_core.c ****
16:OSsrc/os_core.c **** #ifndef OS_MASTER_FILE
17:OSsrc/os_core.c **** #define OS_GLOBALS
18:OSsrc/os_core.c **** #include "ucos_ii.h"
19:OSsrc/os_core.c **** #endif
20:OSsrc/os_core.c ****
21:OSsrc/os_core.c **** /*
22:OSsrc/os_core.c **** ***************************************************************************************************
23:OSsrc/os_core.c **** * MAPPING TABLE TO MAP BIT POSITION TO BIT MASK
24:OSsrc/os_core.c **** *
25:OSsrc/os_core.c **** * Note: Index into table is desired bit position, 0..7
26:OSsrc/os_core.c **** * Indexed value corresponds to bit mask
27:OSsrc/os_core.c **** ***************************************************************************************************
28:OSsrc/os_core.c **** */
29:OSsrc/os_core.c ****
30:OSsrc/os_core.c **** #define ALL_IN_ROM
31:OSsrc/os_core.c ****
32:OSsrc/os_core.c **** #ifndef ALL_IN_ROM
33:OSsrc/os_core.c **** INT8U const OSMapTbl[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
34:OSsrc/os_core.c **** #else
35:OSsrc/os_core.c **** #include <avr/pgmspace.h>
36:OSsrc/os_core.c **** INT8U const OSMapTbl[8] PROGMEM = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
37:OSsrc/os_core.c **** #endif
38:OSsrc/os_core.c **** /*
39:OSsrc/os_core.c **** ***************************************************************************************************
40:OSsrc/os_core.c **** * PRIORITY RESOLUTION TABLE
41:OSsrc/os_core.c **** *
42:OSsrc/os_core.c **** * Note: Index into table is bit pattern to resolve highest priority
43:OSsrc/os_core.c **** * Indexed value corresponds to highest priority bit position (i.e. 0..7)
44:OSsrc/os_core.c **** ***************************************************************************************************
45:OSsrc/os_core.c **** */
46:OSsrc/os_core.c ****
47:OSsrc/os_core.c **** #ifndef ALL_IN_ROM
48:OSsrc/os_core.c **** INT8U const OSUnMapTbl[256] = {
49:OSsrc/os_core.c **** 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x00 to 0x0F
50:OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x10 to 0x1F
51:OSsrc/os_core.c **** 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x20 to 0x2F
52:OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x30 to 0x3F
53:OSsrc/os_core.c **** 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x40 to 0x4F
54:OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x50 to 0x5F
55:OSsrc/os_core.c **** 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x60 to 0x6F
56:OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x70 to 0x7F
57:OSsrc/os_core.c **** 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x80 to 0x8F
58:OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x90 to 0x9F
59:OSsrc/os_core.c **** 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xA0 to 0xAF
60:OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xB0 to 0xBF
61:OSsrc/os_core.c **** 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xC0 to 0xCF
62:OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xD0 to 0xDF
63:OSsrc/os_core.c **** 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xE0 to 0xEF
64:OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0 /* 0xF0 to 0xFF
65:OSsrc/os_core.c **** };
66:OSsrc/os_core.c **** #else
67:OSsrc/os_core.c **** #include <avr/pgmspace.h>
68:OSsrc/os_core.c **** INT8U const OSUnMapTbl[256] PROGMEM= {
69:OSsrc/os_core.c **** 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x00 to 0x0F
70:OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x10 to 0x1F
71:OSsrc/os_core.c **** 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x20 to 0x2F
72:OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x30 to 0x3F
73:OSsrc/os_core.c **** 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x40 to 0x4F
74:OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x50 to 0x5F
75:OSsrc/os_core.c **** 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x60 to 0x6F
76:OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x70 to 0x7F
77:OSsrc/os_core.c **** 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x80 to 0x8F
78:OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x90 to 0x9F
79:OSsrc/os_core.c **** 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xA0 to 0xAF
80:OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xB0 to 0xBF
81:OSsrc/os_core.c **** 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xC0 to 0xCF
82:OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xD0 to 0xDF
83:OSsrc/os_core.c **** 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xE0 to 0xEF
84:OSsrc/os_core.c **** 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0 /* 0xF0 to 0xFF
85:OSsrc/os_core.c **** };
86:OSsrc/os_core.c **** #endif
87:OSsrc/os_core.c **** /*$PAGE*/
88:OSsrc/os_core.c **** /*
89:OSsrc/os_core.c **** ***************************************************************************************************
90:OSsrc/os_core.c **** * FUNCTION PROTOTYPES
91:OSsrc/os_core.c **** ***************************************************************************************************
92:OSsrc/os_core.c **** */
93:OSsrc/os_core.c **** static void OS_InitEventList(void);
94:OSsrc/os_core.c **** static void OS_InitMisc(void);
95:OSsrc/os_core.c **** static void OS_InitRdyList(void);
96:OSsrc/os_core.c **** static void OS_InitTaskIdle(void);
97:OSsrc/os_core.c **** #if OS_TASK_STAT_EN > 0
98:OSsrc/os_core.c **** static void OS_InitTaskStat(void);
99:OSsrc/os_core.c **** #endif
100:OSsrc/os_core.c **** static void OS_InitTCBList(void);
101:OSsrc/os_core.c ****
102:OSsrc/os_core.c **** /*$PAGE*/
103:OSsrc/os_core.c **** /*
104:OSsrc/os_core.c **** ***************************************************************************************************
105:OSsrc/os_core.c **** * GET THE NAME OF A SEMAPHORE, MUTEX, MAILBOX or QUEUE
106:OSsrc/os_core.c **** *
107:OSsrc/os_core.c **** * Description: This function is used to obtain the name assigned to a semaphore, mutex, mailbox or
108:OSsrc/os_core.c **** *
109:OSsrc/os_core.c **** * Arguments : pevent is a pointer to the event group. 'pevent' can point either to a semaphore
110:OSsrc/os_core.c **** * a mutex, a mailbox or a queue. Where this function is concerned, the actu
111:OSsrc/os_core.c **** * type is irrelevant.
112:OSsrc/os_core.c **** *
113:OSsrc/os_core.c **** * pname is a pointer to an ASCII string that will receive the name of the semaphor
114:OSsrc/os_core.c **** * mutex, mailbox or queue. The string must be able to hold at least
115:OSsrc/os_core.c **** * OS_EVENT_NAME_SIZE characters.
116:OSsrc/os_core.c **** *
117:OSsrc/os_core.c **** * err is a pointer to an error code that can contain one of the following values
118:OSsrc/os_core.c **** *
119:OSsrc/os_core.c **** * OS_NO_ERR if the name was copied to 'pname'
120:OSsrc/os_core.c **** * OS_ERR_EVENT_TYPE if 'pevent' is not pointing to the proper event
121:OSsrc/os_core.c **** * control block type.
122:OSsrc/os_core.c **** * OS_ERR_PNAME_NULL You passed a NULL pointer for 'pname'
123:OSsrc/os_core.c **** * OS_ERR_PEVENT_NULL if you passed a NULL pointer for 'pevent'
124:OSsrc/os_core.c **** *
125:OSsrc/os_core.c **** * Returns : The length of the string or 0 if the 'pevent' is a NULL pointer.
126:OSsrc/os_core.c **** ***************************************************************************************************
127:OSsrc/os_core.c **** */
128:OSsrc/os_core.c ****
129:OSsrc/os_core.c **** #if OS_EVENT_EN && (OS_EVENT_NAME_SIZE > 1)
130:OSsrc/os_core.c **** INT8U OSEventNameGet (OS_EVENT *pevent, char *pname, INT8U *err)
131:OSsrc/os_core.c **** {
132:OSsrc/os_core.c **** INT8U len;
133:OSsrc/os_core.c **** #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register
134:OSsrc/os_core.c **** OS_CPU_SR cpu_sr;
135:OSsrc/os_core.c ****
136:OSsrc/os_core.c ****
137:OSsrc/os_core.c ****
138:OSsrc/os_core.c **** cpu_sr = 0; /* Prevent compiler warning
139:OSsrc/os_core.c **** #endif
140:OSsrc/os_core.c **** OS_ENTER_CRITICAL();
141:OSsrc/os_core.c **** #if OS_ARG_CHK_EN > 0
142:OSsrc/os_core.c **** if (pevent == (OS_EVENT *)0) { /* Is 'pevent' a NULL pointer?
143:OSsrc/os_core.c **** OS_EXIT_CRITICAL(); /* Yes
144:OSsrc/os_core.c **** *err = OS_ERR_PEVENT_NULL;
145:OSsrc/os_core.c **** return (0);
146:OSsrc/os_core.c **** }
147:OSsrc/os_core.c **** if (pname == (char *)0) { /* Is 'pname' a NULL pointer?
148:OSsrc/os_core.c **** OS_EXIT_CRITICAL(); /* Yes
149:OSsrc/os_core.c **** *err = OS_ERR_PNAME_NULL;
150:OSsrc/os_core.c **** return (0);
151:OSsrc/os_core.c **** }
152:OSsrc/os_core.c **** #endif
153:OSsrc/os_core.c **** switch (pevent->OSEventType) {
154:OSsrc/os_core.c **** case OS_EVENT_TYPE_SEM:
155:OSsrc/os_core.c **** case OS_EVENT_TYPE_MUTEX:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -