📄 misc.lst
字号:
C51 COMPILER V6.12 MISC 12/07/2004 17:58:48 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE MISC
OBJECT MODULE PLACED IN .\misc.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\..\arch\mcs51\src\misc.c INCDIR(d:\rs1.12b\) DEBUG OBJECTEXTEND PRINT
-(.\misc.lst) OBJECT(.\misc.obj)
stmt level source
1 /*
2 ===============================================================================
3 | Copyright (C) 2004 RuanHaiShen, All rights reserved.
4 | SUMMARY:
5 | Miscellaneous functions.
6 |
7 | DESCRIPTION:
8 | See http://www.01s.org for documentation, latest information, license
9 | and contact details.
10 | email:ruanhaishen@01s.org
11 =============================================================================*/
12 /*===========================================================================*/
13 #include "arch/arch.h"
14 #include "inc/queue.h"
15 #include "inc/kernel.h"
16 #include "inc/memory.h"
17 #include "inc/ipc.h"
18 #include "inc/kapi.h"
19
20
21 struct regs_context
22 {
23 u8 entry_l;
24 u8 entry_h;
25 u8 eninit_l;
26 u8 eninit_h;
27 u8 arg;
28 };
29 typedef struct regs_context regs_t;
30
31
32 sp_t __stack_init(entry_t entry, arg_t arg, sp_t stack_base)
33 {
34 1 regs_t __p_* regs;
35 1
36 1 regs = (regs_t __p_*)stack_base;
37 1 regs->entry_l = (u8)entry;
38 1 regs->entry_h = (u16)entry >> 8;
39 1 regs->eninit_l = (u8)__entry_init;
40 1 regs->eninit_h = (u16)__entry_init >> 8;
41 1 if (entry != __idle_task) {
42 2 regs->arg = (u8)arg;
43 2 }
44 1
45 1 return (sp_t)regs + 3;
46 1 }
47
48 void __mcs51_do_tick(void)
49 {
50 1 register u8 cprio;
51 1
52 1 for (cprio = 0; cprio < TASK_IDLE_PRIO; cprio++) {
53 2 if (_tasks[cprio].delay != 0 &&
54 2 !(_tasks[cprio].state & STATE_SUSPEND)) {
C51 COMPILER V6.12 MISC 12/07/2004 17:58:48 PAGE 2
55 3 if (--_tasks[cprio].delay == 0) {
56 4 __ready_que_add(cprio);
57 4 }
58 3 }
59 2 }
60 1 }
61
62 void __switch_start(sp_t next_sp)
63 {
64 1 SP = next_sp;
65 1 }
66
67 void __switch_to(sp_t __p_* current_spadr, sp_t next_spadr)
68 {
69 1 *current_spadr = (sp_t)SP;
70 1 SP = next_spadr;
71 1 }
72
73 /*===========================================================================*/
74
75
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 163 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 5
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -