1 |
|
---|
2 | ï¼ JSPã«ã¼ãã« ã¿ã¼ã²ããä¾åé¨ ãã¼ãã£ã³ã°ã¬ã¤ã ï¼
|
---|
3 |
|
---|
4 | ï¼Release 1.4.3対å¿ï¼æçµæ´æ°: 22-Apr-2007ï¼
|
---|
5 |
|
---|
6 | ------------------------------------------------------------------------
|
---|
7 | TOPPERS/JSP Kernel
|
---|
8 | Toyohashi Open Platform for Embedded Real-Time Systems/
|
---|
9 | Just Standard Profile Kernel
|
---|
10 |
|
---|
11 | Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
|
---|
12 | Toyohashi Univ. of Technology, JAPAN
|
---|
13 | Copyright (C) 2004-2005 by Embedded and Real-Time Systems Laboratory
|
---|
14 | Graduate School of Information Science, Nagoya Univ., JAPAN
|
---|
15 |
|
---|
16 | ä¸è¨è使¨©è
|
---|
17 | ã¯ï¼ä»¥ä¸ã® (1)ã(4) ã®æ¡ä»¶ãï¼Free Software Foundation
|
---|
18 | ã«ãã£ã¦å
|
---|
19 | ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
|
---|
20 | è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
|
---|
21 | ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé
|
---|
22 | å¸ï¼ä»¥ä¸ï¼
|
---|
23 | å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
|
---|
24 | (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
|
---|
25 | 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
|
---|
26 | ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼
|
---|
27 | (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
|
---|
28 | ç¨ã§ããå½¢ã§åé
|
---|
29 | å¸ããå ´åã«ã¯ï¼åé
|
---|
30 | å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨
|
---|
31 | è
|
---|
32 | ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è使¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
|
---|
33 | ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
|
---|
34 | (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
|
---|
35 | ç¨ã§ããªãå½¢ã§åé
|
---|
36 | å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
|
---|
37 | ã¨ï¼
|
---|
38 | (a) åé
|
---|
39 | å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è
|
---|
40 | ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
|
---|
41 | 使¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
|
---|
42 | (b) åé
|
---|
43 | å¸ã®å½¢æ
|
---|
44 | ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã«
|
---|
45 | å ±åãããã¨ï¼
|
---|
46 | (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
|
---|
47 | 害ãããï¼ä¸è¨è使¨©è
|
---|
48 | ããã³TOPPERSããã¸ã§ã¯ããå
|
---|
49 | 責ãããã¨ï¼
|
---|
50 |
|
---|
51 | æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨è使¨©è
|
---|
52 | ã
|
---|
53 | ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
|
---|
54 | å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
|
---|
55 | æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
|
---|
56 |
|
---|
57 | @(#) $Id: config.txt,v 1.40 2007/05/28 02:06:45 honda Exp $
|
---|
58 | ------------------------------------------------------------------------
|
---|
59 |
|
---|
60 |
|
---|
61 | ãã®ããã¥ã¡ã³ãã§ã¯ï¼JSPã«ã¼ãã«ã®ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ããã¼ã¿
|
---|
62 | åã颿°ãªã©ã«ã¤ãã¦è§£èª¬ããï¼
|
---|
63 |
|
---|
64 | JSPã«ã¼ãã«ã®ã¿ã¼ã²ããä¾åé¨ã¯ï¼ä¾åé¨ã®åå©ç¨æ§ãèæ
|
---|
65 | ®ãï¼ããã»ããµ
|
---|
66 | ä¾åé¨ï¼ã·ã¹ãã ä¾åé¨ï¼éçºç°å¢ä¾åé¨ã«åé¢ãã¦ããï¼éçºç°å¢ä¾åé¨ã«
|
---|
67 | é¢ãã¦ã¯ï¼ããããã®å½¹å²åæ
|
---|
68 | ãæ±ºã¾ã£ã¦ãããï¼ããã»ããµä¾åé¨ã¨ã·ã¹ã
|
---|
69 | ã ä¾åé¨ã«ã¤ãã¦ã¯ï¼å½¹å²åæ
|
---|
70 | ãæç¢ºãªããã§ã¯ãªãï¼ä»¥ä¸ã®ãã¼ã¿åã颿°
|
---|
71 | ã®å¤ãã¯ï¼ã©ã®ä¾åé¨ã§å®ç¾©ãã¦ããã¾ããªãï¼ã·ãã¥ã¬ã¼ã·ã§ã³ç°å¢ãªã©ã®
|
---|
72 | 極端ãªã±ã¼ã¹ã§ã¯ï¼ã·ã¹ãã ä¾åé¨ãå
|
---|
73 | ¨ã使ããªããã¨ãèããããï¼
|
---|
74 |
|
---|
75 | JSPã«ã¼ãã«ã®ããã¤ã¹ãã©ã¤ãçã¯ï¼ããã³åä¼ã«ããã¦æ¤è¨ããã¦ããã
|
---|
76 | ãã¤ã¹ãã©ã¤ãè¨è¨ã¬ã¤ãã©ã¤ã³ã«æ²¿ãå½¢ã§å®è£
|
---|
77 | ãã¦ããï¼ããã¤ã¹ãã©ã¤ã
|
---|
78 | è¨è¨ã¬ã¤ãã©ã¤ã³WGã®ä¸éå ±åã¯ï¼ä»¥ä¸ã®URLãããã¦ã³ãã¼ããããã¨ãã§
|
---|
79 | ããï¼
|
---|
80 | http://www.ertl.jp/ITRON/GUIDE/device-j.html
|
---|
81 |
|
---|
82 |
|
---|
83 | ï¼ï¼ã·ã¹ãã æ§ç¯ç°å¢
|
---|
84 |
|
---|
85 | JSPã«ã¼ãã«ã¯ï¼GNUéçºç°å¢ãæ¨æºã¨ãã¦ããï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãéçºæ¯
|
---|
86 | æ´ã¦ã¼ãã£ãªãã£ã¯ï¼ä¸»ã«GNUéçºç°å¢ã¨çµã¿åããã¦åä½ããããã«å®è£
|
---|
87 | ã
|
---|
88 | ãã¦ããï¼ããã§ä»¥ä¸ã§ã¯ï¼GNUéçºç°å¢ãç¨ããå ´åãä¸å¿ã«èª¬æããï¼ã
|
---|
89 | ã以å¤ã®éçºç°å¢ãç¨ããå ´åã«ã¯ï¼éçºæ¯æ´ã¦ã¼ãã£ãªãã£ã®æ¹é ãå¿
|
---|
90 | è¦ã«
|
---|
91 | ãªã£ããï¼ä¸é¨ã®ã¦ã¼ãã£ãªãã£ã使ç¨ã§ããªãã±ã¼ã¹ãããï¼
|
---|
92 |
|
---|
93 | (1) ã¿ã¼ã²ããç¥ç§°ã®æ±ºå®
|
---|
94 |
|
---|
95 | æ°ããã¿ã¼ã²ããä¾åé¨ã使ããæã¯ï¼ããã»ããµç¥ç§°ã¨ã·ã¹ãã ç¥ç§°ãå®
|
---|
96 | ããï¼ã¾ãï¼GNU以å¤ã®éçºç°å¢ãç¨ããå ´åã«ã¯ï¼éçºç°å¢ç¥ç§°ãå®ããï¼
|
---|
97 | ãããã®ç¥ç§°ã«ç¨ããæåã¯ï¼è±æåï¼æ°åããã³ "_" ã«éå®ããï¼
|
---|
98 |
|
---|
99 | (2) ã¿ã¼ã²ããä¾åé¨ã®ãã¡ã¤ã«ãç½®ãããã®ãã£ã¬ã¯ããª
|
---|
100 |
|
---|
101 | ã¿ã¼ã²ããä¾åé¨ã®ãã¡ã¤ã«ãç½®ãããã®ãã£ã¬ã¯ããªãï¼config ã®ä¸ã«ä½
|
---|
102 | æããï¼ãã£ã¬ã¯ããªåã¯ï¼ã¿ã¼ã²ããç¥ç§°ãã以ä¸ã®ããã«æ±ºå®ããï¼ãã
|
---|
103 | ãï¼ãã£ã¬ã¯ããªåã«å«ã¾ããè±æåã¯ãã¹ã¦å°æåã¨ããï¼ããªãã¡ï¼ãã£
|
---|
104 | ã¬ã¯ããªåã«ã¯ï¼è±å°æåï¼æ°åããã³ "_" ã®ã¿ã使ããã¨ãã§ããï¼
|
---|
105 |
|
---|
106 | GNUéçºç°å¢ãç¨ããå ´åã«ã¯ï¼config ã®ä¸ã«ããã»ããµç¥ç§°ãç¨ãã¦ããã»ã
|
---|
107 | ãµä¾åé¨ã®ãã¡ã¤ã«ãç½®ãããã®ãã£ã¬ã¯ããªï¼ããã»ããµä¾åé¨ãã£ã¬ã¯ã
|
---|
108 | ãªï¼ãï¼ããã«ãã®ä¸ã«ã·ã¹ãã ç¥ç§°ãç¨ãã¦ã·ã¹ãã ä¾åé¨ã®ãã¡ã¤ã«ãç½®
|
---|
109 | ãããã®ãã£ã¬ã¯ããªï¼ã·ã¹ãã ä¾åé¨ãã£ã¬ã¯ããªï¼ã使ããï¼
|
---|
110 |
|
---|
111 | GNU以å¤ã®éçºç°å¢ãç¨ããå ´åã«ã¯ï¼config ã®ä¸ã«ããã»ããµç¥ç§°ã¨éçºç°
|
---|
112 | å¢ç¥ç§°ã "-" ã§é£çµããåç§°ï¼ä¾ãã°ï¼"sh3-hitachi"ï¼ã§ï¼ããã»ããµä¾å
|
---|
113 | é¨ãã£ã¬ã¯ããªã使ããï¼ããã«ãã®ä¸ã«ï¼ã·ã¹ãã ç¥ç§°ãç¨ãã¦ã·ã¹ãã
|
---|
114 | ä¾åé¨ãã£ã¬ã¯ããªã使ããï¼ãããã®ãã£ã¬ã¯ããªã«ã¯ï¼GNUéçºç°å¢ç¨
|
---|
115 | ã®ãã£ã¬ã¯ããªã«ç½®ããã¦ãããã¡ã¤ã«ã¨ç°ãªããã¡ã¤ã«ã®ã¿ãç½®ãï¼ãã¡ã¤
|
---|
116 | ã«ãç½®ããã¦ããªãå ´åã«ã¯ï¼GNUéçºç°å¢ç¨ã®ãã£ã¬ã¯ããªãåç
|
---|
117 | §ããï¼ã
|
---|
118 | ã ãï¼Makefile.config ã«é¢ãã¦ã¯ï¼GNUéçºç°å¢ç¨ã®ãã£ã¬ã¯ããªãåç
|
---|
119 | §ã
|
---|
120 | ãªãããï¼åãå
|
---|
121 | 容ã§ãã£ã¦ãç¨æããªããã°ãªããªãï¼
|
---|
122 |
|
---|
123 | (3) ã·ã¹ãã æ§ç¯æ¹æ³ã®è¨å®
|
---|
124 |
|
---|
125 | ããã»ããµä¾åé¨ãã£ã¬ã¯ããªããã³ã·ã¹ãã ä¾åé¨ãã£ã¬ã¯ããªã®ä¸ã«ï¼ã
|
---|
126 | ãããï¼ã·ã¹ãã æ§ç¯æ¹æ³ãè¨å®ããããã® Makefile.config ãã¡ã¤ã«ãç¨
|
---|
127 | æããï¼ãããã®ãã¡ã¤ã«ã¯ï¼Makefile ããã¤ã³ã¯ã«ã¼ããããï¼
|
---|
128 |
|
---|
129 | ããã»ããµä¾åé¨ããã³ã·ã¹ãã ä¾åé¨ã® Makefile.config ã§å®ç¾©ãã¹ãå¤
|
---|
130 | æ°ã«ã¯ï¼éçºç°å¢ã®ã³ãã³ãåãè¨å®ãããã®ï¼ã³ã³ãã¤ã«ãªãã·ã§ã³ãè¨å®
|
---|
131 | ãããã®ï¼ãã®ä»ã®ãã®ãããï¼ããã§ã¯ï¼ãã®ä»ã®å¤æ°ã¨ãã®å®ç¾©ã®æ¹æ³ã«
|
---|
132 | ã¤ãã¦èª¬æããï¼
|
---|
133 |
|
---|
134 | (3-1) TEXT_START_ADDRESS ããã¹ãã»ã¯ã·ã§ã³ã®å
|
---|
135 | é çªå°
|
---|
136 | (3-2) DATA_START_ADDRESS ãã¼ã¿ã»ã¯ã·ã§ã³ã®å
|
---|
137 | é çªå°
|
---|
138 |
|
---|
139 | åã»ã¯ã·ã§ã³ã®å
|
---|
140 | é çªå°ã®æå®ãå¿
|
---|
141 | è¦ãªå ´åã«ã¯ï¼ãããã®å¤æ°ã«å
|
---|
142 | é çªå°ã
|
---|
143 | å®ç¾©ããï¼
|
---|
144 |
|
---|
145 | (3-3) LDSCRIPT ãªã³ã«ã¹ã¯ãªããã®ãã¡ã¤ã«å
|
---|
146 |
|
---|
147 | å°ç¨ã®ãªã³ã«ã¹ã¯ãªãããç¨ããå ´åã«ã¯ï¼ãã®å¤æ°ã«ãªã³ã«ã¹ã¯ãªããã®ãã¡
|
---|
148 | ã¤ã«åãå®ç¾©ããï¼ãã¡ã¤ã«åã¯ï¼config ãã£ã¬ã¯ããªããã®ç¸å¯¾ãã¹ã§æ
|
---|
149 | å®ããï¼
|
---|
150 |
|
---|
151 | (4) éçºç°å¢ã®ã³ãã³ãåã®è¨å®
|
---|
152 |
|
---|
153 | (4-1) TARGET ã¿ã¼ã²ããå
|
---|
154 |
|
---|
155 | GNUéçºç°å¢ã configure ããå ´åã«æå®ããã¿ã¼ã²ããåã§ï¼ã³ã³ãã¤ã©ç
|
---|
156 | ã®ã³ãã³ãåã®å
|
---|
157 | é ã«ä»ä¸ãããæååï¼æå¾ã® "-" ã¯ä¸è¦ï¼ã«å®ç¾©ããï¼
|
---|
158 | ä¾ãã°ï¼TARGET ã m68k-unknown-elf ã«å®ç¾©ãããå ´åã«ã¯ï¼ã³ã³ãã¤ã©ã¨
|
---|
159 | ã㦠m68k-unknown-elf-gcc ã使ãããï¼ãã®å¤æ°ãå®ç¾©ãããªãå ´åã«ã¯ï¼
|
---|
160 | åãªã gcc ã使ãããï¼GNU以å¤ã®éçºç°å¢ãç¨ããå ´åã«ã¯ï¼å®ç¾©ããå¿
|
---|
161 | è¦
|
---|
162 | ããªãï¼
|
---|
163 |
|
---|
164 | (4-2) CC Cã³ã³ãã¤ã©ãã©ã¤ãã®åç§°
|
---|
165 | (4-3) CXX C++ã³ã³ãã¤ã©ãã©ã¤ãã®åç§°
|
---|
166 | (4-4) AS ã¢ã»ã³ãã©ã®åç§°
|
---|
167 | (4-5) LD ãªã³ã«ã®åç§°
|
---|
168 | (4-6) AR ã¢ã¼ã«ã¤ãã®åç§°
|
---|
169 | (4-7) NM nmããã°ã©ã ã®åç§°
|
---|
170 | (4-8) RANLIB ranlibããã°ã©ã ã®åç§°
|
---|
171 | (4-9) OBJCOPY objcopyããã°ã©ã ã®åç§°
|
---|
172 | (4-10) OBJDUMP objdumpããã°ã©ã ã®åç§°
|
---|
173 |
|
---|
174 | GNU以å¤ã®éçºç°å¢ãç¨ããå ´åã«ï¼ããããã®ã³ãã³ãã®åç§°ã«å®ç¾©ããï¼
|
---|
175 | 対å¿ããã³ãã³ãããªãå ´åãï¼ã³ãã³ããã©ã¡ã¼ã¿ãç°ãªãå ´åã«ã¯ï¼
|
---|
176 | Makefile ä¸ã®ãã®ã³ãã³ããå¼ã³åºãã¦ããé¨åã夿´ããå¿
|
---|
177 | è¦ãããï¼GNU
|
---|
178 | éçºç°å¢ã§ã¯ï¼ããã㯠TARGET ãç¨ãã¦å®ç¾©ãããã®ã§ï¼å®ç¾©ããå¿
|
---|
179 | è¦ã¯ãª
|
---|
180 | ãï¼
|
---|
181 |
|
---|
182 | (5) ã³ã³ãã¤ã«ãªãã·ã§ã³ã®è¨å®
|
---|
183 |
|
---|
184 | (5-1) CDEFS ãã¯ãå®ç¾©ãªãã·ã§ã³ï¼-Dï¼
|
---|
185 | (5-2) INCLUDES ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã®ãã£ã¬ã¯ããªæå®ãªãã·ã§ã³ï¼-Iï¼
|
---|
186 | (5-3) COPTS ã³ã³ãã¤ã©ã«å¯¾ãããã®ä»ã®ãªãã·ã§ã³
|
---|
187 | (5-4) LDFLAGS ãªã³ã«ã«å¯¾ãããªãã·ã§ã³
|
---|
188 | (5-5) LIBS ã©ã¤ãã©ãªãªã³ã¯æå®ã®ããã®ãªãã·ã§ã³
|
---|
189 |
|
---|
190 | ã¿ã¼ã²ããã«ä¾åãã¦ï¼ãã¹ã¦ã®ã½ã¼ã¹ãã¡ã¤ã«ã«å
|
---|
191 | ±éããã³ã³ãã¤ã«ãªãã·ã§
|
---|
192 | ã³ã®è¿½å ãå¿
|
---|
193 | è¦ãªå ´åã«ã¯ï¼ãªãã·ã§ã³ã®ç¨®é¡æ¯ã«ä¸ã«ç¤ºãã夿°ã«å®ç¾©ããï¼
|
---|
194 |
|
---|
195 | ã·ã¹ãã ä¾åé¨ã® Makefile.config ã§ãããã®å¤æ°ãå®ç¾©ããæã¯ï¼":=" ã
|
---|
196 | ç¨ãã¦ï¼ããã¾ã§ã®å®ç¾©ã«è¿½å ããå½¢ã§è¡ãï¼ä¾ãã°ï¼ããã»ããµä¾åé¨ã§
|
---|
197 | ã-Wall -g -O2 -m68020-40ãã¨ãããªãã·ã§ã³ã追å ãããå ´åã«ã¯ï¼ä»¥ä¸
|
---|
198 | ã®è¨è¿°ãããã»ããµä¾åé¨ã® Makefile.config ã«å«ããï¼
|
---|
199 |
|
---|
200 | COPTS := $(COPTS) -Wall -g -O2 -m68020-40
|
---|
201 |
|
---|
202 | ããã«å¯¾ãã¦ï¼ã·ã¹ãã ä¾åé¨ã® Makefile.config 㯠Makefile ã®æåã§ã¤
|
---|
203 | ã³ã¯ã«ã¼ããããããï¼ãã®ãããªé
|
---|
204 | æ
|
---|
205 | ®ã¯å¿
|
---|
206 | è¦ãªããï¼å¤æ´ã«å¼·ãããããã«
|
---|
207 | åæ§ã«æ±ããã¨ã«ããï¼
|
---|
208 |
|
---|
209 | ã»ã¨ãã©ã®å ´åã«ï¼ããã»ããµä¾åé¨ã® Makefile.config ã«ã¯ä»¥ä¸ã®è¨è¿°ã
|
---|
210 | å«ããå¿
|
---|
211 | è¦ãããï¼
|
---|
212 |
|
---|
213 | GNUéçºç°å¢ãç¨ããå ´å
|
---|
214 | INCLUDES := -I$(CONFIGDIR)/$(CPU)
|
---|
215 |
|
---|
216 | ãã®ä»ã®éçºç°å¢ãç¨ããå ´å
|
---|
217 | INCLUDES := -I$(CONFIGDIR)/$(CPU)-$(TOOL) -I$(CONFIGDIR)/$(CPU)
|
---|
218 |
|
---|
219 | ã¾ãï¼ã·ã¹ãã ä¾åé¨ã® Makefile.config ã«ã¯ä»¥ä¸ã®è¨è¿°ãå«ããå¿
|
---|
220 | è¦ãã
|
---|
221 | ãï¼
|
---|
222 |
|
---|
223 | GNUéçºç°å¢ãç¨ããå ´å
|
---|
224 | INCLUDES := $(INCLUDES) -I$(CONFIGDIR)/$(CPU)/$(SYS)
|
---|
225 |
|
---|
226 | ãã®ä»ã®éçºç°å¢ãç¨ããå ´å
|
---|
227 | INCLUDES := $(INCLUDES) -I$(CONFIGDIR)/$(CPU)-$(TOOL)/$(SYS) \
|
---|
228 | -I$(CONFIGDIR)/$(CPU)/$(SYS)
|
---|
229 |
|
---|
230 | ã¾ãï¼ã¢ã»ã³ããªè¨èªã¬ãã«ã®èå¥åãï¼Cè¨èªã¬ãã«ã®èå¥åã®å
|
---|
231 | é ã« "_"
|
---|
232 | ãä»ãããã®ã«ãªãå ´åã«ã¯ï¼ããããã® Makefile.config ã§ CDEFS ã«
|
---|
233 | -DLABEL_ASM ã追å ããï¼
|
---|
234 |
|
---|
235 | (5-6) STASK_DIR ã·ã¹ãã ãµã¼ãã¹ã®ã½ã¼ã¹ãç½®ããããã£ã¬ã¯ããª
|
---|
236 | (5-7) STASK_ASMOBJS ã¢ã»ã³ãã©ã§è¨è¿°ãããã·ã¹ãã ãµã¼ãã¹ã®ãªãã¸ã§ã¯ã
|
---|
237 | (5-8) STASK_COBJS Cè¨èªã§è¨è¿°ãããã·ã¹ãã ãµã¼ãã¹ã®ãªãã¸ã§ã¯ã
|
---|
238 | (5-9) STASK_CFLAGS ã·ã¹ãã ãµã¼ãã¹ã«å¯¾ããã³ã³ãã¤ã«ãªãã·ã§ã³
|
---|
239 | (5-10) STASK_LIBS ã·ã¹ãã ãµã¼ãã¹ã«å¯¾ããã©ã¤ãã©ãªãªã³ã¯æå®
|
---|
240 |
|
---|
241 | ã·ã¹ãã ãµã¼ãã¹ï¼ã·ã¹ãã ãã°ã¿ã¹ã¯ãããã¤ã¹ãã©ã¤ããªã©ï¼ã®ã½ã¼ã¹ã
|
---|
242 | ç½®ããããã£ã¬ã¯ããªï¼ãããæ§æãããªãã¸ã§ã¯ããã¡ã¤ã«ã®ãªã¹ãï¼ãã
|
---|
243 | ããã³ã³ãã¤ã«ããéã«é©ç¨ããã³ã³ãã¤ã«ãªãã·ã§ã³ï¼ãã®æ§æã«å¿
|
---|
244 | è¦ãªã©
|
---|
245 | ã¤ãã©ãªãªã³ã¯æå®ãè¡ãå ´åã«ã¯ï¼ä¸ã«ç¤ºãã夿°ã«å®ç¾©ããï¼
|
---|
246 |
|
---|
247 | ã·ã¹ãã ä¾åé¨ã® Makefile.config ã§ãããã®å¤æ°ãå®ç¾©ããæã¯ï¼CDEFS
|
---|
248 | ãªã©ã¨åæ§ã®æ±ããå¿
|
---|
249 | è¦ã§ããï¼
|
---|
250 |
|
---|
251 | (5-11) KERNEL_DIR ã«ã¼ãã«ã®ã½ã¼ã¹ãç½®ããããã£ã¬ã¯ããª
|
---|
252 | (5-12) KERNEL_ASMOBJS ã¢ã»ã³ãã©ã§è¨è¿°ãããã«ã¼ãã«ã®ãªãã¸ã§ã¯ã
|
---|
253 | (5-13) KERNEL_COBJS Cè¨èªã§è¨è¿°ãããã«ã¼ãã«ã®ãªãã¸ã§ã¯ã
|
---|
254 | (5-14) KERNEL_CFLAGS ã«ã¼ãã«ã«å¯¾ããã³ã³ãã¤ã«ãªãã·ã§ã³
|
---|
255 |
|
---|
256 | ã«ã¼ãã«ã®ã½ã¼ã¹ãç½®ããããã£ã¬ã¯ããªï¼ãããæ§æãããªãã¸ã§ã¯ããã¡
|
---|
257 | ã¤ã«ã®ãªã¹ãï¼ããããã³ã³ãã¤ã«ããéã«é©ç¨ããã³ã³ãã¤ã«ãªãã·ã§ã³ã
|
---|
258 | æå®ããå ´åã«ã¯ï¼ä¸ã«ç¤ºãã夿°ã«å®ç¾©ããï¼
|
---|
259 |
|
---|
260 | ã·ã¹ãã ä¾åé¨ã® Makefile.config ã§ãããã®å¤æ°ãå®ç¾©ããæã¯ï¼CDEFS
|
---|
261 | ãªã©ã¨åæ§ã®æ±ããå¿
|
---|
262 | è¦ã§ããï¼
|
---|
263 |
|
---|
264 | ã»ã¨ãã©ã®å ´åã«ï¼ããã»ããµä¾åé¨ã® Makefile.config ã«ã¯ä»¥ä¸ã®è¨è¿°ã
|
---|
265 | å«ããå¿
|
---|
266 | è¦ãããï¼
|
---|
267 |
|
---|
268 | GNUéçºç°å¢ãç¨ããå ´å
|
---|
269 | KERNEL_DIR := $(KERNEL_DIR):$(CONFIGDIR)/$(CPU)
|
---|
270 | KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) cpu_support.o
|
---|
271 | KERNEL_COBJS := $(KERNEL_COBJS) cpu_config.o
|
---|
272 |
|
---|
273 | ãã®ä»ã®éçºç°å¢ãç¨ããå ´å
|
---|
274 | KERNEL_DIR := $(KERNEL_DIR):$(CONFIGDIR)/$(CPU)-$(TOOL)
|
---|
275 | KERNEL_DIR := $(KERNEL_DIR):$(CONFIGDIR)/$(CPU)
|
---|
276 | KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) cpu_support.o
|
---|
277 | KERNEL_COBJS := $(KERNEL_COBJS) cpu_config.o
|
---|
278 |
|
---|
279 | ã¾ãï¼ã·ã¹ãã ä¾åé¨ãã£ã¬ã¯ããªã® Makefile.config ã«ã¯ä»¥ä¸ã®è¨è¿°ãå«
|
---|
280 | ããå¿
|
---|
281 | è¦ãããï¼
|
---|
282 |
|
---|
283 | GNUéçºç°å¢ãç¨ããå ´å
|
---|
284 | KERNEL_DIR := $(KERNEL_DIR):$(CONFIGDIR)/$(CPU)/$(SYS)
|
---|
285 | KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) sys_support.o
|
---|
286 | KERNEL_COBJS := $(KERNEL_COBJS) sys_config.o
|
---|
287 |
|
---|
288 | ãã®ä»ã®éçºç°å¢ãç¨ããå ´å
|
---|
289 | KERNEL_DIR := $(KERNEL_DIR):$(CONFIGDIR)/$(CPU)-$(TOOL)/$(SYS)
|
---|
290 | KERNEL_DIR := $(KERNEL_DIR):$(CONFIGDIR)/$(CPU)/$(SYS)
|
---|
291 | KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) sys_support.o
|
---|
292 | KERNEL_COBJS := $(KERNEL_COBJS) sys_config.o
|
---|
293 |
|
---|
294 | (6) ãªãã»ãããã¡ã¤ã«ã®çæ
|
---|
295 |
|
---|
296 | ã¢ã»ã³ããªè¨èªã§è¨è¿°ãããããã°ã©ã ããï¼Cè¨èªã®æ§é ä½ã«ã¢ã¯ã»ã¹ãã
|
---|
297 | å ´åã«ã¯ï¼æ§é ä½ã®åãã£ã¼ã«ãã®ãªãã»ãããåç
|
---|
298 | §ãããã¨ãå¿
|
---|
299 | è¦ã§ããï¼
|
---|
300 | JSPã«ã¼ãã«ã§ã¯ï¼å¿
|
---|
301 | è¦ãªãªãã»ããå¤ããã¡ã¤ã«ï¼æ¨æºã§ã¯ offset.hï¼ã«åº
|
---|
302 | åããããã®ä»çµã¿ã¨ãã¦ï¼makeoffset.c 㨠genoffset ãç¨æãã¦ããï¼
|
---|
303 | makeoffset.c ã¯ï¼ã©ã®ãªãã»ããå¤ããã¡ã¤ã«ã«åºåããããæå®ãããã®
|
---|
304 | ã§ï¼ã¿ã¼ã²ããä¾åé¨ã§ç¨æããå¿
|
---|
305 | è¦ãããï¼genoffset ã¯ï¼ç¾æç¹ã§ã¯GNU
|
---|
306 | éçºç°å¢ã«ã®ã¿å¯¾å¿ãã¦ããï¼
|
---|
307 |
|
---|
308 | makeoffset.c 㨠genoffset ã使ããã¨ã§ï¼ä¾ãã°ï¼TCB ä¸ã® texptn ãã£ã¼
|
---|
309 | ã«ãã®ãªãã»ããå¤ã TCB_texptn ã«ãã¯ãå®ç¾©ãããã¨ãï¼TCB ä¸ã®ã¿ã¹ã¯
|
---|
310 | ã³ã³ããã¹ããããã¯ï¼tskctxbï¼ã«å«ã¾ãã pc ãã£ã¼ã«ãã®ãªãã»ããå¤
|
---|
311 | ã TCB_pc ã«ãã¯ãå®ç¾©ãããã¨ãã§ããï¼ã¾ãï¼TCB ä¸ã® enatex ãã£ã¼ã«
|
---|
312 | ãã®ãªãã»ããå¤ï¼ãããä½ç½®ï¼ããããã¹ã¯ãï¼ãããã TCB_enatexï¼
|
---|
313 | TCB_enatex_bitï¼TCB_enatex_mask ã«ãã¯ãå®ç¾©ãããã¨ãã§ããï¼ãã¯ãå®
|
---|
314 | 義ãããããä½ç½®ãããããã¹ã¯ã¯ï¼ã¢ã¯ã»ã¹ãããµã¤ãºãã¨ã³ãã£ã¢ã³ãæ
|
---|
315 | å®ãããã¨ãã§ããï¼
|
---|
316 |
|
---|
317 | GNUéçºç°å¢ä»¥å¤ãç¨ããå ´åãªã©ï¼ãã®ä»çµã¿ã§ãªãã»ãããã¡ã¤ã«ãçæ
|
---|
318 | ã§ããªãæã«ã¯ï¼offset.h ãã¿ã¼ã²ããä¾åé¨ã§ç¨æãï¼Makefile.config
|
---|
319 | ã§ OMIT_MAKEOFFSET ããã«ã¹ããªã³ã°ä»¥å¤ã«å®ç¾©ããï¼
|
---|
320 |
|
---|
321 | makeoffset.c 㨠genoffset ã«é¢ããããã¥ã¢ã«ã¯ï¼ç¾æç¹ã§ã¯ç¨æã§ãã¦ã
|
---|
322 | ãªãï¼ä½¿ãæ¹ãããããªãå ´åãï¼æ©è½ãè¶³ããªãå ´åã«ã¯ï¼ç¸è«ããããï¼
|
---|
323 |
|
---|
324 | (7) ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ãªã©
|
---|
325 |
|
---|
326 | ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼ãã¼ãã¢ã¸ã¥ã¼ã«ã®å
|
---|
327 | é ã¨æå¾ã«ãªã³ã¯ãã¹ãããã°
|
---|
328 | ã©ã ãï¼ã¿ã¼ã²ããä¾åé¨ã§ç¨æããå¿
|
---|
329 | è¦ãããï¼å¤ãã®å ´åï¼ã¹ã¿ã¼ãã¢ã
|
---|
330 | ãã¢ã¸ã¥ã¼ã«ããã¼ãã¢ã¸ã¥ã¼ã«ã®å
|
---|
331 | é ã«ãªã³ã¯ããå¿
|
---|
332 | è¦ãããï¼
|
---|
333 |
|
---|
334 | ãã¼ãã¢ã¸ã¥ã¼ã«ã®å
|
---|
335 | é ã«ãªã³ã¯ãã¹ãããã°ã©ã ãããå ´åã«ã¯ï¼
|
---|
336 | Makefile.config ã«ããã¦ï¼ãã®ãªãã¸ã§ã¯ããã¡ã¤ã«åã START_OBJS ã«å®
|
---|
337 | 義ãï¼ããã«å¯¾ããã³ã³ãã¤ã«ã«ã¼ã«ã¨ä¾åé¢ä¿ä½æã«ã¼ã«ãå®ç¾©ããªããã°
|
---|
338 | ãªããªãï¼ãã¼ãã¢ã¸ã¥ã¼ã«ã®æå¾ã«ãªã³ã¯ãã¹ãããã°ã©ã ãããå ´åã«ã¯ï¼
|
---|
339 | ãã®ãªãã¸ã§ã¯ããã¡ã¤ã«åã END_OBJS ã«å®ç¾©ãï¼ããã«å¯¾ããã³ã³ãã¤ã«
|
---|
340 | ã«ã¼ã«ã¨ä¾åé¢ä¿ä½æã«ã¼ã«ãå®ç¾©ããªããã°ãªããªãï¼
|
---|
341 |
|
---|
342 | ä¾ãã°ï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ã½ã¼ã¹ãã¡ã¤ã«ã start.S ã®å ´åã«ã¯ï¼
|
---|
343 | Makefile.config ã«æ¬¡ã®ãããªè¨è¿°ãå
|
---|
344 | ¥ããã¨ããï¼
|
---|
345 |
|
---|
346 | # ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ãªãã¸ã§ã¯ããã¡ã¤ã«å
|
---|
347 | START_OBJS = start.o
|
---|
348 |
|
---|
349 | # ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ã³ã³ãã¤ã«ã«ã¼ã«
|
---|
350 | $(START_OBJS): %.o: %.S
|
---|
351 | $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
|
---|
352 |
|
---|
353 | # ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ä¾åé¢ä¿ä½æã«ã¼ã«
|
---|
354 | $(START_OBJS:.o=.d): %.d: %.S
|
---|
355 | @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) \
|
---|
356 | -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
|
---|
357 |
|
---|
358 | ã¾ãï¼ã³ã³ãã¤ã©ã«æ¨æºã® crtbegin.o 㨠crtend.o ãç¨ããå ´åã«ã¯ï¼
|
---|
359 | Makefile.config ã«æ¬¡ã®ãããªè¨è¿°ãå
|
---|
360 | ¥ããã¨ããï¼
|
---|
361 |
|
---|
362 | # ãªãã¸ã§ã¯ããã¡ã¤ã«å
|
---|
363 | START_OBJS = $(shell $(CC) -print-file-name=crtbegin.o)
|
---|
364 | END_OBJS = $(shell $(CC) -print-file-name=crtend.o)
|
---|
365 |
|
---|
366 | # ä¾åé¢ä¿ä½æã«ã¼ã«
|
---|
367 | $(START_OBJS:.o=.d): %.d:
|
---|
368 | $(END_OBJS:.o=.d): %.d:
|
---|
369 |
|
---|
370 | ãã®å ´åï¼ãããã®ãã¡ã¤ã«ãã³ã³ãã¤ã«ãããã¨ã¯ãªãããï¼ã³ã³ãã¤ã«ã«ã¼
|
---|
371 | ã«ã¯ä¸è¦ã§ããï¼ã¾ãï¼ä¾åé¢ä¿ä½æã«ã¼ã«ã¯ããã¼ã§ããï¼ä¾åé¢ä¿ä½æã«ã¼
|
---|
372 | ã«ããªãã¨ã¨ã©ã¼ã«ãªãï¼ï¼
|
---|
373 |
|
---|
374 | ãªãï¼ã«ã¼ãã«ç¨ã®ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ããã¯ï¼main 颿°ã§ã¯ãªãï¼
|
---|
375 | kernel_start 颿°ãèµ·åããå¿
|
---|
376 | è¦ãããï¼
|
---|
377 |
|
---|
378 | (8) ãªã³ã«ã¹ã¯ãªãã
|
---|
379 |
|
---|
380 | éçºç°å¢ã«æ¨æºã®ãªã³ã«ã¹ã¯ãªããã使ç¨ã§ããªãå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾å
|
---|
381 | é¨ã§ç¨æããï¼
|
---|
382 |
|
---|
383 |
|
---|
384 | ï¼ï¼ã¢ããªã±ã¼ã·ã§ã³ç¨ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«
|
---|
385 |
|
---|
386 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ãã¢ããªã±ã¼ã·ã§ã³ç¨ã®å®ç¾©ã¯æ¬¡ã®éãã§ããï¼
|
---|
387 | ãããã®å®ç¾©ã®ä¸ã§ï¼(1) ããã³ (2) 㯠tool_defs.h ã«å«ããªããã°ãªããª
|
---|
388 | ãï¼ãã®ä»ã®å®ç¾©ã¯ï¼cpu_defs.h ã¾ã㯠sys_defs.hï¼ã¾ãã¯ãããããã¤ã³
|
---|
389 | ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«å«ããï¼
|
---|
390 |
|
---|
391 | (1) ã³ã³ãã¤ã©ä¾åã®ãã¼ã¿åã®å®ç¾©
|
---|
392 |
|
---|
393 | ã³ã³ãã¤ã©ä¾åã®ãã¼ã¿åã以ä¸ã®ã·ã³ãã«ã«å®ç¾©ããï¼ãããã®å®ç¾©ã¯ï¼
|
---|
394 | typedef ã§ã¯ãªãï¼#define ã«ãããã¯ãå®ç¾©ããªããã°ãªããªãï¼
|
---|
395 |
|
---|
396 | (1-1) _int8_ 8ãããã®æ´æ°å
|
---|
397 | (1-2) _int16_ 16ãããã®æ´æ°å
|
---|
398 | (1-3) _int32_ 32ãããã®æ´æ°å
|
---|
399 | (1-4) _int64_ 64ãããã®æ´æ°å
|
---|
400 |
|
---|
401 | åãµã¤ãºã®æ´æ°åãï¼ãããã®ã·ã³ãã«ã«ãã¯ãå®ç¾©ããï¼_int32_ 以å¤ã¯ï¼
|
---|
402 | ã³ã³ãã¤ã©ããµãã¼ããã¦ããªãå ´åã«ã¯å®ç¾©ããå¿
|
---|
403 | è¦ããªãï¼_int32_ ã®å®
|
---|
404 | 義ã¯å¿
|
---|
405 | é ã§ããï¼
|
---|
406 |
|
---|
407 | (1-5) _bool_ BOOLã®å
|
---|
408 |
|
---|
409 | BOOL ã¯ï¼æ¨æºã§ã¯ int ã«åå®ç¾©ããããï¼ããã§ä¸é½åãªå ´åã«ã¯ï¼é©åãª
|
---|
410 | åã _bool_ ã«ãã¯ãå®ç¾©ããï¼
|
---|
411 |
|
---|
412 | (1-6) _vp_int_ VP_INTã®å
|
---|
413 |
|
---|
414 | VP_INT ã¯ï¼æ¨æºã§ã¯ VP ã«åå®ç¾©ããããï¼ããã§ä¸é½åãªå ´åï¼ä¾ãã°ï¼
|
---|
415 | ãã¤ã³ã¿ã16ãããã§ï¼int ã32ãããã®å ´åï¼ã«ã¯ï¼é©åãªåã _vp_int_
|
---|
416 | ã«ãã¯ãå®ç¾©ããï¼
|
---|
417 |
|
---|
418 | (1-7) _intptr_ ãã¤ã³ã¿ãæ ¼ç´ã§ããæ´æ°å
|
---|
419 |
|
---|
420 | _intptr_ ã¯ï¼ãã©ã¼ãããåºåã«ããã¦ï¼intåããã¤ã³ã¿åãæ ¼ç´ã§ããæ´
|
---|
421 | æ°åã¨ãã¦ä½¿ç¨ããï¼ãããå®ç¾©ããªãå ´åï¼long ã使ãããï¼
|
---|
422 |
|
---|
423 | (2) ã³ã³ãã¤ã©ã®æ¡å¼µæ©è½ã®ããã®ãã¯ãå®ç¾©
|
---|
424 |
|
---|
425 | (2-1) inline ã¤ã³ã©ã¤ã³æå®
|
---|
426 | (2-2) Inline ãã¡ã¤ã«å
|
---|
427 | ã®ã¿ã«æå¹ãªã¤ã³ã©ã¤ã³æå®
|
---|
428 | (2-3) asm ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã©ï¼æé©åã許ãï¼
|
---|
429 | (2-4) Asm ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã©ï¼æé©åãææ¢ï¼
|
---|
430 |
|
---|
431 | ãããã®ä¸ã§ï¼asm 㨠Asm ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§ç¨ãã¦ããªããã°å®ç¾©ã
|
---|
432 | ãå¿
|
---|
433 | è¦ããªãï¼
|
---|
434 |
|
---|
435 | (3) ã¿ã¤ã ãã£ãã¯ã®å®ç¾©
|
---|
436 |
|
---|
437 | (3-1) TIC_NUME ã¿ã¤ã ãã£ãã¯ã®å¨æã®ååï¼åä½: 1ããªç§ï¼
|
---|
438 | (3-2) TIC_DENO ã¿ã¤ã ãã£ãã¯ã®å¨æã®åæ¯ï¼åä½: 1ããªç§ï¼
|
---|
439 |
|
---|
440 | (4) å²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©é¢é£ã®å®ç¾©
|
---|
441 |
|
---|
442 | (4-1) INHNO å²è¾¼ã¿ãã³ãã©çªå·ã®ãã¼ã¿å
|
---|
443 | (4-2) EXCNO CPUä¾å¤ãã³ãã©çªå·ã®ãã¼ã¿å
|
---|
444 |
|
---|
445 | (5) å²è¾¼ã¿ãã¹ã¯ã¨å²è¾¼ã¿ãã¹ã¯ã®å¤æ´ï¼åç
|
---|
446 | §é¢é£ã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
447 |
|
---|
448 | chg_ixxï¼get_ixx ãã¿ã¼ã²ããä¾åã«ãµãã¼ãããå ´åã«ã¯ï¼ä»¥ä¸ã®å®ç¾©ã
|
---|
449 | ãã³å®£è¨ãã¿ã¼ã²ããä¾åé¨ã§æä¾ããï¼xxï¼xxxxï¼XXXX ã¯ï¼ã¿ã¼ã²ããæ¯
|
---|
450 | ã«é©åãªæååã«å®ããï¼xxxx ããã³ XXXX ã¯ï¼4æåã§ãªãã¦ãããï¼
|
---|
451 |
|
---|
452 | (5-1) IXXXX å²è¾¼ã¿ãã¹ã¯ã®ãã¼ã¿å
|
---|
453 | (5-2) ER chg_ixx(IXXXX ixxxx) chg_ixx ã®ãããã¿ã¤ã宣è¨
|
---|
454 | (5-3) ER get_ixx(IXXXX *p_ixxxx) get_ixx ã®ãããã¿ã¤ã宣è¨
|
---|
455 |
|
---|
456 | (6) å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ã®ç¦æ¢ï¼è¨±å¯é¢é£ã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
457 |
|
---|
458 | dis_intï¼ena_int ãã¿ã¼ã²ããä¾åã«ãµãã¼ãããå ´åã«ã¯ï¼ä»¥ä¸ã®å®ç¾©ã
|
---|
459 | ãã³å®£è¨ãã¿ã¼ã²ããä¾åé¨ã§æä¾ããï¼
|
---|
460 |
|
---|
461 | (6-1) INTNO å²è¾¼ã¿çªå·ã®ãã¼ã¿å
|
---|
462 | (6-2) ER dis_int(INTNO intno) dis_int ã®ãããã¿ã¤ã宣è¨
|
---|
463 | (6-3) ER ena_int(INTNO intno) ena_int ã®ãããã¿ã¤ã宣è¨
|
---|
464 |
|
---|
465 | (7) æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»é¢é£ã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
466 |
|
---|
467 | JSPã«ã¼ãã«ã¯ï¼ç ç©¶ã¸ã®å©ç¨ã主ç®çã®ä¸ã¤ã¨ãã¦ãããã¨ããï¼ã¿ã¼ã²ã
|
---|
468 | ãä¾åã«ï¼æ§è½è©ä¾¡ç¨ã®ãµã¼ãã¹ã³ã¼ã« vxget_tim ããµãã¼ãå¯è½ã¨ãã¦ã
|
---|
469 | ãï¼vxget_tim ããµãã¼ãããå ´åã«ã¯ï¼ä»¥ä¸ã®å®ç¾©ããã³å®£è¨ãã¿ã¼ã²ãã
|
---|
470 | ä¾åé¨ã§æä¾ããï¼
|
---|
471 |
|
---|
472 | (7-1) SYSUTIM æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®ãã¼ã¿å
|
---|
473 | (7-2) ER vxget_tim(SYSUTIM *p_sysutim) vxget_tim ã®ãããã¿ã¤ã宣è¨
|
---|
474 |
|
---|
475 | (8) ã¿ã¼ã²ããèå¥ãã¯ãã®å®ç¾©
|
---|
476 |
|
---|
477 | cpu_defs.h ã§ã¯ããã»ããµç¥ç§°ï¼cpu_defs.h ã®ç½®ããã¦ãããã£ã¬ã¯ããªå
|
---|
478 | ã大æåã«ãããã®ï¼ï¼sys_defs.h ã§ã¯ã·ã¹ãã ç¥ç§°ï¼sys_defs.h ã®ç½®ãã
|
---|
479 | ã¦ãããã£ã¬ã¯ããªåã大æåã«ãããã®ï¼ããã¯ãå®ç¾©ããï¼
|
---|
480 |
|
---|
481 | (9) ããã»ããµã®ã¨ã³ãã£ã¢ã³ã®å®ç¾©
|
---|
482 |
|
---|
483 | (9-1) SIL_ENDIAN
|
---|
484 |
|
---|
485 | ããã»ããµãããã°ã¨ã³ãã£ã¢ã³ã®å ´åã«ã¯ SIL_ENDIAN_BIGï¼ï¼1ï¼ï¼ãªãã«
|
---|
486 | ã¨ã³ãã£ã¢ã³ã®å ´åã«ã¯ SIL_ENDIAN_LITTLEï¼ï¼0ï¼ã«ãã¯ãå®ç¾©ããï¼
|
---|
487 |
|
---|
488 | (10) ã·ã¹ãã ã®åæ¢å¦çã®å®ç¾©
|
---|
489 |
|
---|
490 | (10-1) kernel_abort(void)
|
---|
491 |
|
---|
492 | assertãã¯ãã«ãããã¢ãµã¼ã·ã§ã³ã®å¤±æãï¼ãµã¼ãã¹ã³ã¼ã«ãè´å½çãªã¨ã©ã¼
|
---|
493 | ãè¿ããå ´åã«ï¼ã·ã¹ãã ã忢ããã颿°ã¾ãã¯ãã¯ãï¼kernel_exit ãå¼
|
---|
494 | ã³åºãæ¹æ³ãèãããããï¼ãããã°ã容æã«ããããã«ã¯ï¼ã¤ã³ã©ã¤ã³é¢æ°
|
---|
495 | ããã¯ãã§å®ç¾©ãï¼ãã®å ´ã§ã·ã¹ãã ã忢ãããå¦çã«å®ç¾©ããã®ãæã¾ã
|
---|
496 | ãï¼kernel_exit ãå¼ã³åºãã¨ï¼ã¨ã©ã¼ãçºçããæç¹ã®ç¶æ
|
---|
497 | ããå¤åãã¦ã
|
---|
498 | ã¾ãï¼ï¼
|
---|
499 |
|
---|
500 |
|
---|
501 | ï¼ï¼ã«ã¼ãã«ç¨ã®ãã¼ã¿åã颿°ãªã©
|
---|
502 |
|
---|
503 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ãã«ã¼ãã«ç¨ã®ãã¼ã¿åã颿°ãªã©ã¯æ¬¡ã®éãã§
|
---|
504 | ããï¼ãããã®ãã¼ã¿åããã¯ãã®å®ç¾©ã¨é¢æ°ã®ãããã¿ã¤ã宣è¨ã¯ï¼å¥ã«è¨
|
---|
505 | è¿°ããªãéãï¼cpu_config.h ã¾ã㯠sys_config.hï¼ã¾ãã¯ãããããã¤ã³ã¯
|
---|
506 | ã«ã¼ãããããã¡ã¤ã«ï¼ã«å«ããï¼ã¾ãï¼é¢æ°ã®å®ä½ã¯ï¼Cè¨èªã®å ´åã¯
|
---|
507 | cpu_config.c ã¾ã㯠sys_config.c ã«ï¼ã¢ã»ã³ããªè¨èªã®å ´åã¯
|
---|
508 | cpu_support.S ã¾ã㯠sys_support.S ã«è¨è¿°ããï¼
|
---|
509 |
|
---|
510 | (0) ã¤ã³ã¯ã«ã¼ãæ¹æ³ã«é¢ããã«ã¼ã«
|
---|
511 |
|
---|
512 | ããããã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããè¨è¿°ã¯ï¼ä»¥ä¸ã®ã«ã¼ã«ã«å¾ãã®ãååã¨ã
|
---|
513 | ãï¼
|
---|
514 |
|
---|
515 | ANSI Cã®æ¨æºã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼#include <â¦> ã§ã¤ã³ã¯ã«ã¼ãããï¼
|
---|
516 | ã¾ãï¼Makefile ã¾ã㯠Makefile.config ã§ INCLUDES ã« -Iãªãã·ã§ã³ã§æ
|
---|
517 | å®ãããã£ã¬ã¯ããªã«ãããã¡ã¤ã«ã¯ï¼#include <â¦> ã§ã¤ã³ã¯ã«ã¼ãããï¼
|
---|
518 | ã«ã¼ãã«ãæ§æãããã¡ã¤ã«ããã®ã¤ã³ã¯ã«ã¼ãã«å¯¾ãã¦ã¯ï¼ä»¥ä¸ã®ãã£ã¬ã¯
|
---|
519 | ããªã«ãããã¡ã¤ã«ãããã«è©²å½ããï¼ã¿ã¼ã²ããã«ãä¾åï¼ï¼
|
---|
520 | jsp/include/
|
---|
521 | jsp/config/$(CPU)
|
---|
522 | jsp/config/$(CPU)/$(SYS)
|
---|
523 | jsp/config/$(CPU)-$(TOOL)
|
---|
524 | jsp/config/$(CPU)-$(TOOL)/$(SYS)
|
---|
525 | pdic/simple_sio
|
---|
526 |
|
---|
527 | ãã®ä»ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ #include "â¦" ã§ã¤ã³ã¯ã«ã¼ãããï¼ã«ã¼
|
---|
528 | ãã«ãæ§æãããã¡ã¤ã«ããã®ã¤ã³ã¯ã«ã¼ãã«å¯¾ãã¦ã¯ï¼ä»¥ä¸ã®ãã£ã¬ã¯ããª
|
---|
529 | ã«ãããã¡ã¤ã«ãããã«è©²å½ããï¼ã¿ã¼ã²ããã«ãä¾åï¼ï¼
|
---|
530 | jsp/kernel
|
---|
531 | jsp/systask
|
---|
532 |
|
---|
533 | (1) ã¿ã¹ã¯ã³ã³ããã¹ããããã¯ã®ãã¼ã¿å
|
---|
534 |
|
---|
535 | (1-1) CTXB
|
---|
536 |
|
---|
537 | ã¿ã¼ã²ããä¾åã®ã¿ã¹ã¯ã³ã³ããã¹ããä¿åããããã«ï¼TCB ä¸ã«æã¤ãã¨ã
|
---|
538 | å¿
|
---|
539 | è¦ãªãã¼ã¿æ§é ã®åï¼
|
---|
540 |
|
---|
541 | (2) ã·ã¹ãã ç¶æ
|
---|
542 | åç
|
---|
543 | §
|
---|
544 |
|
---|
545 | (2-1) BOOL sense_context(void)
|
---|
546 |
|
---|
547 | ç¾å¨ã®å®è¡ã³ã³ããã¹ããï¼ã¿ã¹ã¯ã³ã³ããã¹ãã®å ´å㯠FALSEï¼éã¿ã¹ã¯ã³
|
---|
548 | ã³ããã¹ãã®å ´å㯠TRUE ãè¿ã颿°ï¼
|
---|
549 |
|
---|
550 | (2-2) BOOL sense_lock(void)
|
---|
551 |
|
---|
552 | ç¾å¨ã®ã·ã¹ãã ç¶æ
|
---|
553 | ãï¼CPUããã¯ç¶æ
|
---|
554 | ã®å ´å㯠TRUEï¼CPUããã¯è§£é¤ç¶æ
|
---|
555 | ã®
|
---|
556 | æã¯ FALSE ãè¿ã颿°ï¼
|
---|
557 |
|
---|
558 | (2-3) BOOL t_sense_lock(void)
|
---|
559 |
|
---|
560 | ã¿ã¹ã¯ã³ã³ããã¹ãã«ããã¦ï¼ç¾å¨ã®ã·ã¹ãã ç¶æ
|
---|
561 | ãï¼CPUããã¯ç¶æ
|
---|
562 | ã®å ´å
|
---|
563 | 㯠TRUEï¼CPUããã¯è§£é¤ç¶æ
|
---|
564 | ã®æã¯ FALSE ãè¿ã颿°ï¼ãã®é¢æ°ãï¼éã¿ã¹
|
---|
565 | ã¯ã³ã³ããã¹ãããå¼ã°ãããã¨ã¯ãªãï¼
|
---|
566 |
|
---|
567 | (2-4) BOOL i_sense_lock(void)
|
---|
568 |
|
---|
569 | éã¿ã¹ã¯ã³ã³ããã¹ãã«ããã¦ï¼ç¾å¨ã®ã·ã¹ãã ç¶æ
|
---|
570 | ãï¼CPUããã¯ç¶æ
|
---|
571 | ã®å ´
|
---|
572 | å㯠TRUEï¼CPUããã¯è§£é¤ç¶æ
|
---|
573 | ã®æã¯ FALSE ãè¿ã颿°ï¼ãã®é¢æ°ãï¼ã¿ã¹
|
---|
574 | ã¯ã³ã³ããã¹ãããå¼ã°ãããã¨ã¯ãªãï¼
|
---|
575 |
|
---|
576 | â» åççã«ã¯ï¼sense_lock ãæä¾ããã¦ããã° t_sense_lock ã¨
|
---|
577 | i_sense_lock ã¯å¿
|
---|
578 | è¦ãªãï¼éã« t_sense_lock 㨠i_sense_lock ãæä¾ãã
|
---|
579 | ã¦ããã° sense_lock ãå®ç¾ãããã¨ã¯ã§ãããï¼ã¿ã¼ã²ããã«ä¾åããã«é«
|
---|
580 | ãå®è¡å¹çãå®ç¾ããããã«ï¼ã¿ã¼ã²ããä¾åé¨ã3ã¤ã®é¢æ°ãæä¾ãããã¨
|
---|
581 | ã¨ãã¦ããï¼
|
---|
582 |
|
---|
583 | (3) CPUããã¯ã¨ãã®è§£é¤
|
---|
584 |
|
---|
585 | (3-1) void t_lock_cpu(void)
|
---|
586 |
|
---|
587 | ã¿ã¹ã¯ã³ã³ããã¹ãã«ããã¦ï¼CPUããã¯è§£é¤ç¶æ
|
---|
588 | ããï¼CPUããã¯ç¶æ
|
---|
589 | ã«é·ç§»
|
---|
590 | ããã颿°ï¼ãã®é¢æ°ãï¼CPUããã¯ç¶æ
|
---|
591 | ã§å¼ã°ãããã¨ã¯ãªãï¼ã¾ãï¼éã¿
|
---|
592 | ã¹ã¯ã³ã³ããã¹ãããå¼ã°ãããã¨ããªãï¼
|
---|
593 |
|
---|
594 | (3-2) void t_unlock_cpu(void)
|
---|
595 |
|
---|
596 | ã¿ã¹ã¯ã³ã³ããã¹ãã«ããã¦ï¼CPUããã¯ç¶æ
|
---|
597 | ããï¼CPUããã¯è§£é¤ç¶æ
|
---|
598 | ã«é·ç§»
|
---|
599 | ããã颿°ï¼ãã®é¢æ°ãï¼CPUããã¯è§£é¤ç¶æ
|
---|
600 | ã§å¼ã°ãããã¨ã¯ãªãï¼ã¾ãï¼
|
---|
601 | éã¿ã¹ã¯ã³ã³ããã¹ãããå¼ã°ãããã¨ããªãï¼
|
---|
602 |
|
---|
603 | (3-3) void i_lock_cpu(void)
|
---|
604 |
|
---|
605 | éã¿ã¹ã¯ã³ã³ããã¹ãã«ããã¦ï¼CPUããã¯è§£é¤ç¶æ
|
---|
606 | ããï¼CPUããã¯ç¶æ
|
---|
607 | ã«é·
|
---|
608 | ç§»ããã颿°ï¼ãã®é¢æ°ãï¼CPUããã¯ç¶æ
|
---|
609 | ã§å¼ã°ãããã¨ã¯ãªãï¼ã¾ãï¼ã¿
|
---|
610 | ã¹ã¯ã³ã³ããã¹ãããå¼ã°ãããã¨ããªãï¼
|
---|
611 |
|
---|
612 | (3-4) void i_unlock_cpu(void)
|
---|
613 |
|
---|
614 | éã¿ã¹ã¯ã³ã³ããã¹ãã«ããã¦ï¼CPUããã¯ç¶æ
|
---|
615 | ããï¼CPUããã¯è§£é¤ç¶æ
|
---|
616 | ã«é·
|
---|
617 | ç§»ããã颿°ï¼ãã®é¢æ°ãï¼CPUããã¯è§£é¤ç¶æ
|
---|
618 | ã§å¼ã°ãããã¨ã¯ãªãï¼ã¾ãï¼
|
---|
619 | ã¿ã¹ã¯ã³ã³ããã¹ãããå¼ã°ãããã¨ããªãï¼
|
---|
620 |
|
---|
621 | (4) ã¿ã¹ã¯ãã£ã¹ãããã£
|
---|
622 |
|
---|
623 | (4-1) void dispatch(void)
|
---|
624 |
|
---|
625 | ã¿ã¹ã¯ãã£ã¹ãããã£ï¼ä»¥ä¸ï¼åã«ãã£ã¹ãããã£ã¨è¨ãï¼ãæç¤ºçã«å¼ã¶ã
|
---|
626 | ãã®é¢æ°ï¼ã¿ã¹ã¯ã³ã³ããã¹ãããå¼ã°ãããµã¼ãã¹ã³ã¼ã«å¦çããï¼CPUãã
|
---|
627 | ã¯ç¶æ
|
---|
628 | ã§å¼ã°ããï¼
|
---|
629 |
|
---|
630 | ãã®é¢æ°ãå¼ã°ããã¨ï¼é¢æ°ãå¼ãã ã¿ã¹ã¯ã®ã³ã³ããã¹ããä¿åãï¼ å®è¡
|
---|
631 | ã§ããã¿ã¹ã¯ã®ä¸ã§æé«åªå
|
---|
632 | é ä½ã®ã¿ã¹ã¯ï¼schedtskï¼ã®ã³ã³ããã¹ãã復帰
|
---|
633 | ãã¦å®è¡ç¶æ
|
---|
634 | ã¨ããï¼å®è¡ã§ããã¿ã¹ã¯ããªãå ´åï¼schedtsk ã NULL ã®å ´
|
---|
635 | åï¼ã«ã¯ï¼å²è¾¼ã¿ã許å¯ãã¦ï¼å®è¡ã§ããã¿ã¹ã¯ãã§ããã¾ã§å¾
|
---|
636 | ã¤ï¼ããã§ï¼
|
---|
637 | å®è¡ã§ããã¿ã¹ã¯ãã§ããã®ãå¾
|
---|
638 | ã¤éã«èµ·åãããå²è¾¼ã¿ãã³ãã©ã®åºå£ã§ï¼
|
---|
639 | ãã£ã¹ãããã£ãå¼ã°ããªãããã«å¯¾çãããã¨ãå¿
|
---|
640 | è¦ã§ããï¼å
|
---|
641 | ·ä½çã«ã¯ï¼
|
---|
642 | å®è¡ã§ããã¿ã¹ã¯ãã§ããã®ãå¾
|
---|
643 | ã¤éï¼ä¸æçã«éã¿ã¹ã¯ã³ã³ããã¹ãã«åã
|
---|
644 | æãããï¼ãã£ã¹ããããä¿çããããã«ããï¼
|
---|
645 |
|
---|
646 | æ°ãã«å®è¡ç¶æ
|
---|
647 | ã«ãªã£ãã¿ã¹ã¯ãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åæ¡ä»¶ãæºã
|
---|
648 | ãã¦ããã°ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãèµ·åããï¼ã¾ãï¼ãã®é¢æ°ãå¼ã³åºã
|
---|
649 | ãã¿ã¹ã¯ã次ã«å®è¡ç¶æ
|
---|
650 | ã«ãªã£ãæï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åæ¡ä»¶ãæº
|
---|
651 | ããã¦ããã°ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãè¡ãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ã
|
---|
652 | ã³ã®èµ·åã«ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ãæä¾ãã calltex ã¾ã㯠call_texrtn
|
---|
653 | ãç¨ãããã¨ãã§ããï¼
|
---|
654 |
|
---|
655 | (4-2) void exit_and_dispatch(void)
|
---|
656 |
|
---|
657 | ç¾å¨å®è¡ä¸ã®ã³ã³ããã¹ããæ¨ã¦ï¼ãã£ã¹ãããã£ãå¼ã³åºãããã®é¢æ°ï¼ã¿
|
---|
658 | ã¹ã¯ã³ã³ããã¹ãããå¼ã°ãããµã¼ãã¹ã³ã¼ã«ï¼å
|
---|
659 | ·ä½çã«ã¯ï¼ext_tskï¼å¦ç
|
---|
660 | ã¾ãã¯ã«ã¼ãã«ã®åæåå¦çããï¼CPUããã¯ç¶æ
|
---|
661 | ã§å¼ã°ããï¼
|
---|
662 |
|
---|
663 | ãã®é¢æ°ãå¼ã°ããã¨ï¼é¢æ°ãå¼ãã ã¿ã¹ã¯ã®ã³ã³ããã¹ããä¿åããï¼å®è¡
|
---|
664 | ã§ããã¿ã¹ã¯ã®ä¸ã§æé«åªå
|
---|
665 | é ä½ã®ã¿ã¹ã¯ï¼schedtskï¼ã®ã³ã³ããã¹ãã復帰
|
---|
666 | ãã¦å®è¡ç¶æ
|
---|
667 | ã¨ããï¼å®è¡ã§ããã¿ã¹ã¯ããªãå ´åï¼schedtsk ã NULL ã®å ´
|
---|
668 | åï¼ã®å¦çã¯ï¼dispatch ã¨åæ§ã§ããï¼
|
---|
669 |
|
---|
670 | æ°ãã«å®è¡ç¶æ
|
---|
671 | ã«ãªã£ãã¿ã¹ã¯ãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åæ¡ä»¶ãæºã
|
---|
672 | ãã¦ããã°ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãèµ·åããï¼
|
---|
673 |
|
---|
674 | ãã®é¢æ°ã¯ï¼ã«ã¼ãã«ã®åæåå¦çãããå¼ã°ããããã«ï¼éã¿ã¹ã¯ã³ã³ãã
|
---|
675 | ã¹ããããå¼ã°ãã¦ãæ£ããå¦çã§ãããã¨ãå¿
|
---|
676 | è¦ã§ããï¼ãªãï¼ãã®é¢æ°ã
|
---|
677 | ãã¯ãªã¿ã¼ã³ããªãï¼
|
---|
678 |
|
---|
679 | (5) å²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©ã®åºå
|
---|
680 | ¥å£å¦ç
|
---|
681 |
|
---|
682 | (5-1) INTHDR_ENTRY(inthdr)
|
---|
683 | (5-2) INT_ENTRY(inthdr)
|
---|
684 |
|
---|
685 | INTHDR_ENTRY(inthdr) ã¯èµ·åçªå°ã inthdr ã®å²è¾¼ã¿ãã³ãã©ãå¼ã³åºãåº
|
---|
686 | å
|
---|
687 | ¥å£å¦çã«ã¼ãã³ãçæãããã¯ãï¼INT_ENTRY(inthdr) ã¯çæããåºå
|
---|
688 | ¥å£å¦
|
---|
689 | çã«ã¼ãã³ã®å
|
---|
690 | é ã®ã©ãã«ãå¾ãããã®ãã¯ãã§ããï¼INT_ENTRY(inthdr) ã§
|
---|
691 | å¾ãããã©ãã«ã¯ï¼å²è¾¼ã¿ãã³ãã©åæåãããã¯ã«åºå
|
---|
692 | ¥å£å¦çã«ã¼ãã³ã®å
|
---|
693 |
|
---|
694 | é çªå°ãç»é²ããããã«ä½¿ãããï¼åºå
|
---|
695 | ¥å£å¦çã«ã¼ãã³ãçæããå¿
|
---|
696 | è¦ããªã
|
---|
697 | å ´åã«ã¯ï¼INTHDR_ENTRY(inthdr) ãåã« extern 宣è¨ã«å±éããã°ããï¼
|
---|
698 |
|
---|
699 | å²è¾¼ã¿ãã³ãã©ã®åºå
|
---|
700 | ¥å£å¦çã¯ï¼å®è¡ã³ã³ããã¹ããéã¿ã¹ã¯ã³ã³ããã¹ãã«
|
---|
701 | åãæãï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿åãã¦ï¼å²è¾¼ã¿ãã³ãã©ãå¼ã³åºãï¼å²è¾¼
|
---|
702 | ã¿ãã³ãã©ããæ»ãã¨ï¼å
|
---|
703 | ã®å®è¡ã³ã³ããã¹ãã«æ»ãã¨ã¨ãã«ï¼å¿
|
---|
704 | è¦ã«å¿ãã¦
|
---|
705 | ãã£ã¹ãããã¨ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çãè¡ãï¼ãã£ã¹ãããã¨ã¿
|
---|
706 | ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çã¯ï¼å
|
---|
707 | ·ä½çã«ã¯æ¬¡ã®ããã«è¡ãï¼
|
---|
708 |
|
---|
709 | (a) 以ä¸ã®å¦çã¯ï¼å²è¾¼ã¿ãã³ãã©ãã¿ã¹ã¯ã³ã³ããã¹ãå®è¡ä¸ã«èµ·åããã
|
---|
710 | å ´åã§ï¼reqflg ã TRUE ã®æã®ã¿è¡ãï¼
|
---|
711 |
|
---|
712 | (b) enadsp ã TRUE ã§ï¼å®è¡ç¶æ
|
---|
713 | ã®ã¿ã¹ã¯ï¼runtskï¼ã¨å®è¡ã§ããã¿ã¹ã¯ã®
|
---|
714 | ä¸ã§æé«åªå
|
---|
715 | é ä½ã®ã¿ã¹ã¯ï¼schedtskï¼ãä¸è´ãã¦ããªãå ´åã«ã¯ï¼åè
|
---|
716 | ã®ã¿
|
---|
717 | ã¹ã¯ã®ã³ã³ããã¹ããä¿åãï¼å¾è
|
---|
718 | ã®ã¿ã¹ã¯ã®ã³ã³ããã¹ãã復帰ãã¦å®è¡ç¶
|
---|
719 | æ
|
---|
720 | ã¨ããï¼å®è¡ã§ããã¿ã¹ã¯ããªãå ´åï¼schedtsk ã NULL ã®å ´åï¼ã«ã¯ï¼
|
---|
721 | å²è¾¼ã¿ã許å¯ãã¦ï¼å®è¡ã§ããã¿ã¹ã¯ãã§ããã¾ã§å¾
|
---|
722 | ã¤ï¼ããã§ãï¼å®è¡ã§ã
|
---|
723 | ãã¿ã¹ã¯ãã§ããã®ãå¾
|
---|
724 | ã¤éã«èµ·åãããå²è¾¼ã¿ãã³ãã©ã®åºå£ã§ï¼ã¿ã¹ã¯ãã£
|
---|
725 | ã¹ãããã£ãå¼ã°ããªãããã«ãããã¨ãå¿
|
---|
726 | è¦ã§ãããï¼åºå
|
---|
727 | ¥å£å¦çãéã¿ã¹
|
---|
728 | ã¯ã³ã³ããã¹ãã§å®è¡ãã¦ããã°ï¼ç¹ã«å¯¾çããå¿
|
---|
729 | è¦ã¯ãªãï¼
|
---|
730 |
|
---|
731 | (c) å®è¡ç¶æ
|
---|
732 | ã®ã¿ã¹ã¯ï¼(b) ã§ã¿ã¹ã¯ãã£ã¹ããããè¡ã£ãå ´åã¯ï¼æ°ãã«å®
|
---|
733 | è¡ç¶æ
|
---|
734 | ã¨ãªã£ãã¿ã¹ã¯ï¼ãã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åæ¡ä»¶ãæºããã¦ãã
|
---|
735 | ã°ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãèµ·åããï¼ã¾ãï¼(b) ã§ã¿ã¹ã¯ãã£ã¹ãããã
|
---|
736 | è¡ã£ãå ´åã¯ï¼ããã¾ã§å®è¡ç¶æ
|
---|
737 | ã§ãã£ãã¿ã¹ã¯ã次ã«å®è¡ç¶æ
|
---|
738 | ã«ãªã£ãæï¼
|
---|
739 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åæ¡ä»¶ãæºããã¦ããã°ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ã
|
---|
740 | ã³ã®èµ·åãè¡ãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åã«ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ã
|
---|
741 | æä¾ãã calltex ã¾ã㯠call_texrtn ãç¨ãããã¨ãã§ããï¼
|
---|
742 |
|
---|
743 | ãã®ãã¯ãã§çæããã«ã¼ãã³ã§ã¯ï¼ä¸è¨ã®å¦çã®ä¸é¨ã®ã¿ãè¡ãï¼æ®ãã®å¦
|
---|
744 | çã¯å¥ã«ç¨æããã«ã¼ãã³ã«ä»»ãã¦ãããï¼å
|
---|
745 | ·ä½çã«ã¯ï¼ã¿ã¹ã¯ãã£ã¹ããã
|
---|
746 | ã¨ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çã¯ï¼å¥ã«ã«ã¼ãã³ã¨ãã¦ç¨æããã®ãé©
|
---|
747 | å½ã§ãããï¼
|
---|
748 |
|
---|
749 | (5-3) EXCHDR_ENTRY(exchdr)
|
---|
750 | (5-4) EXC_ENTRY(exchdr)
|
---|
751 |
|
---|
752 | EXCHDR_ENTRY(exchdr) ã¯èµ·åçªå°ã exchdr ã®CPUä¾å¤ãã³ãã©ãå¼ã³åºãåº
|
---|
753 | å
|
---|
754 | ¥å£å¦çã«ã¼ãã³ãçæãããã¯ãï¼EXC_ENTRY(exchdr) ã¯çæããåºå
|
---|
755 | ¥å£å¦
|
---|
756 | çã«ã¼ãã³ã®å
|
---|
757 | é ã®ã©ãã«ãå¾ãããã®ãã¯ãã§ããï¼EXC_ENTRY(exchdr) ã§
|
---|
758 | å¾ãããã©ãã«ã¯ï¼CPUä¾å¤ãã³ãã©åæåãããã¯ã«åºå
|
---|
759 | ¥å£å¦çã«ã¼ãã³ã®
|
---|
760 | å
|
---|
761 | é çªå°ãç»é²ããããã«ä½¿ãããï¼åºå
|
---|
762 | ¥å£å¦çã«ã¼ãã³ãçæããå¿
|
---|
763 | è¦ããª
|
---|
764 | ãå ´åã«ã¯ï¼EXCHDR_ENTRY(exchdr) ãåã« extern 宣è¨ã«å±éããã°ããï¼
|
---|
765 |
|
---|
766 | CPUä¾å¤ãã³ãã©ã®åºå
|
---|
767 | ¥å£å¦çã¯ï¼å®è¡ã³ã³ããã¹ããéã¿ã¹ã¯ã³ã³ããã¹ã
|
---|
768 | ã«åãæãï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿åãã¦ï¼CPUä¾å¤ãã³ãã©ãå¼ã³åºãï¼
|
---|
769 | CPUä¾å¤ãã³ãã©ã«ã¯ï¼VPåã®ãã©ã¡ã¼ã¿ p_excinf ãæ¸¡ãï¼ãã®ãã©ã¡ã¼ã¿
|
---|
770 | ã¯ï¼CPUä¾å¤ã«é¢ããæ
|
---|
771 | å ±ãä¿åããã¹ã¿ãã¯é åã¸ã®ãã¤ã³ã¿ã§ãããã¨ã
|
---|
772 | æ³å®ãã¦ãããï¼å
|
---|
773 | ·ä½çã«ã¯ã¿ã¼ã²ããæ¯ã«å®ããï¼
|
---|
774 |
|
---|
775 | CPUä¾å¤ãã³ãã©ããæ»ãã¨ï¼å
|
---|
776 | ã®å®è¡ã³ã³ããã¹ãã«æ»ãã¨ã¨ãã«ï¼å¿
|
---|
777 | è¦ã«
|
---|
778 | å¿ãã¦ã¿ã¹ã¯ãã£ã¹ãããã¨ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çãè¡ãï¼ã¿ã¹
|
---|
779 | ã¯ãã£ã¹ãããã¨ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çã¯ï¼å²è¾¼ã¿ãã³ãã©ã®åº
|
---|
780 | å
|
---|
781 | ¥å£å¦çã®å ´åã¨åæ§ã§ããï¼ä¸è¨ã® (a)ã(c)ï¼ï¼
|
---|
782 |
|
---|
783 | (6) ã¿ã¹ã¯ã³ã³ããã¹ãè¨å®å¦çï¼cpu_context.hï¼
|
---|
784 |
|
---|
785 | ã¿ã¼ã²ããä¾åã®ã¿ã¹ã¯ã³ã³ããã¹ããè¨å®ããããã« create_context ã¨
|
---|
786 | activate_context ã®2ã¤ã®é¢æ°ãç¨æããï¼2ã¤ã®é¢æ°ãå¼ã³åºããã¨ã§ï¼ã¿
|
---|
787 | ã¹ã¯ã®ã³ã³ããã¹ãï¼å
|
---|
788 | ·ä½çã«ã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ããããã¯ã®å
|
---|
789 | 容ã¨ã¿ã¹
|
---|
790 | ã¯ã®ã¹ã¿ãã¯é åï¼ãã¿ã¹ã¯ãèµ·åã§ããç¶æ
|
---|
791 | ã«è¨å®ããï¼2ã¤ã®é¢æ°ã¯å¼ã°
|
---|
792 | ããã¿ã¤ãã³ã°ãç°ãªãã ãã§æç¢ºãªå½¹å²åæ
|
---|
793 | ã¯ãªãï¼ã©ã®ãããªå¦çã¯ã©ã¡
|
---|
794 | ãã®é¢æ°ã§è¡ããªããã°ãªããªãã¨ããå¶ç´ã¯ãªãï¼
|
---|
795 |
|
---|
796 | ãããã®é¢æ°ã®å®£è¨ããã³ãã¯ãã®å®ç¾©ã¯ï¼cpu_context.h ã«å«ããï¼ããã¯ï¼
|
---|
797 | cpu_config.h ãå¦çããæç¹ã§ã¯ TCB ãå®ç¾©ããã¦ããªãããã§ããï¼
|
---|
798 |
|
---|
799 | (6-1) void create_context(TCB *tcb)
|
---|
800 |
|
---|
801 | ã¿ã¹ã¯ã伿¢ç¶æ
|
---|
802 | ã«ç§»è¡ããæã«å¼ã°ããï¼å
|
---|
803 | ·ä½çã«ã¯ï¼ã¿ã¹ã¯ã®çææ
|
---|
804 | ï¼JSPã«ã¼ãã«ã§ã¯ï¼CRE_TSK ã§ã¿ã¹ã¯ãçæããããï¼ã¿ã¹ã¯ç®¡çã¢ã¸ã¥ã¼
|
---|
805 | ã«ã®åæåï¼ã¨ã¿ã¹ã¯ã®çµäºæï¼ext_tskï¼ter_tskï¼ã«å¼ã°ããï¼
|
---|
806 |
|
---|
807 | (6-2) void activate_context(TCB *tcb)
|
---|
808 |
|
---|
809 | ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
|
---|
810 | ã«ç§»è¡ããæã«å¼ã°ããï¼å
|
---|
811 | ·ä½çã«ã¯ï¼act_tsk ã§ã¿
|
---|
812 | ã¹ã¯ãèµ·åããæï¼ã¿ã¹ã¯ã®çµäºæï¼ext_tskï¼ter_tskï¼ã«èµ·åè¦æ±ã®ãã¥ã¼
|
---|
813 | ã¤ã³ã°ã«ããåèµ·åããæï¼TA_ACT 屿§ãæå®ãã¦ã¿ã¹ã¯ãçæããæï¼ã¿
|
---|
814 | ã¹ã¯ç®¡çã¢ã¸ã¥ã¼ã«ã®åæåï¼ã«å¼ã°ããï¼
|
---|
815 |
|
---|
816 | (6-3) ACTIVATED_STACK_SIZEï¼ãªãã·ã§ã³ï¼
|
---|
817 |
|
---|
818 | ext_tsk ãã¹ã¿ãã¯ä¸ã«ç¢ºä¿ããããã¼é åã®ãµã¤ãºãå®ç¾©ããããã®ãã¯ãï¼
|
---|
819 | ããã¼é åãå¿
|
---|
820 | è¦ãªãå ´åã¯ï¼ãã®ãã¯ããå®ç¾©ããå¿
|
---|
821 | è¦ã¯ãªãï¼
|
---|
822 |
|
---|
823 | ext_tsk ã¯ï¼èªã¿ã¹ã¯ãçµäºãããå¾ï¼èªã¿ã¹ã¯ã«å¯¾ã㦠create_context ã
|
---|
824 | å¼ã¶ï¼ã¾ãï¼ã¿ã¹ã¯ã®èµ·åè¦æ±ããã¥ã¼ã¤ã³ã°ããã¦ããå ´åã«ã¯ï¼èªã¿ã¹ã¯
|
---|
825 | ã«å¯¾ã㦠activate_context ãå¼ã¶ï¼create_context 㨠activate_context
|
---|
826 | ã¯ï¼å¯¾è±¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åãæ¸ãæããå ´åããããï¼ããã ext_tsk
|
---|
827 | ï¼ããã³ããããå¼ã°ãã颿°ï¼ã使ç¨ãã¦ããã¹ã¿ãã¯é åã¨éãªã£ãå ´åï¼
|
---|
828 | èªåã®ä½¿ç¨ãã¦ããã¹ã¿ãã¯é åãèªåã§ç ´å£ããçµæã«ãªãï¼
|
---|
829 |
|
---|
830 | ACTIVATE_STACK_SIZE ãï¼create_context 㨠activate_context ãæ¸ãæã
|
---|
831 | ãã¹ã¿ãã¯é åã®ãµã¤ãºï¼å³å¯ã«ã¯ï¼ã¹ã¿ãã¯ã®åºããä½ãã¤ããã¾ã§ãæ¸ã
|
---|
832 | æãããï¼ã«ãã¯ãå®ç¾©ãã¦ããã¨ï¼ext_tsk å
|
---|
833 | ã§ã¹ã¿ãã¯ä¸ã«å®ç¾©ãããµã¤
|
---|
834 | ãºã®ããã¼é åã確ä¿ãï¼èªåã®ä½¿ç¨ãã¦ããã¹ã¿ãã¯é åãç ´å£ããã®ãé²
|
---|
835 | ãï¼
|
---|
836 |
|
---|
837 | ãªãï¼ãããå®ç¾ããããã«ï¼å¦çç³»ä¾åã®æ©è½ã§ãã alloca ãç¨ãã¦ããï¼
|
---|
838 | gcc 㯠alloca ããµãã¼ããã¦ãããï¼ä»ã®ã³ã³ãã¤ã©ãç¨ããå ´åã«ã¯ï¼
|
---|
839 | alloca ããµãã¼ããã¦ããã確èªãå¿
|
---|
840 | è¦ã§ããï¼ã¾ãï¼alloca ãç¨ããå ´å
|
---|
841 | ã«ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãå¿
|
---|
842 | è¦ãªå ´åã«ã¯ï¼tool_config.h ããã¤ã³ã¯ã«ã¼ã
|
---|
843 | ããå¿
|
---|
844 | è¦ãããï¼
|
---|
845 |
|
---|
846 | (7) ã¿ã¼ã²ããä¾åã®åæåï¼çµäºå¦ç
|
---|
847 |
|
---|
848 | (7-1) void cpu_initialize(void)
|
---|
849 |
|
---|
850 | ããã»ããµä¾åã®åæåå¦çï¼ã«ã¼ãã«ã®åæåå¦çã§ï¼ã«ã¼ãã«å
|
---|
851 | ã®åã¢ã¸ã¥
|
---|
852 | ã¼ã«ãåæåããåã«å¼ã°ããï¼
|
---|
853 |
|
---|
854 | (7-2) void sys_initialize(void)
|
---|
855 |
|
---|
856 | ã·ã¹ãã ä¾åã®åæåå¦çï¼ã«ã¼ãã«ã®åæåå¦çã§ï¼cpu_initialize ã«ç¶
|
---|
857 | ãã¦å¼ã°ããï¼
|
---|
858 |
|
---|
859 | (7-3) void tool_initialize(void)
|
---|
860 |
|
---|
861 | éçºç°å¢ä¾åã®åæåå¦çï¼ã«ã¼ãã«ã®åæåå¦çã§ï¼sys_initialize ã«ç¶
|
---|
862 | ãã¦å¼ã°ããï¼
|
---|
863 |
|
---|
864 | ä¸ã®3ã¤ã®é¢æ°ã¯ï¼ã«ã¼ãã«èµ·åå¦çï¼kernel_start 颿°ï¼ã®æåã§ãã®é ã«
|
---|
865 | å¼ã³åºãããï¼3ã¤ã®é¢æ°ãå¼ã³åºããå¾ã®æç¹ã§ï¼CPUããã¯ç¶æ
|
---|
866 | ã«ãªã£ã¦ã
|
---|
867 | ãªããã°ãªããªãï¼
|
---|
868 |
|
---|
869 | (7-4) void cpu_terminate(void);
|
---|
870 |
|
---|
871 | ããã»ããµä¾åã®çµäºæå¦çï¼ã«ã¼ãã«ã®çµäºå¦çã§å¼ã°ããï¼
|
---|
872 |
|
---|
873 | (7-5) sys_exit(void)
|
---|
874 |
|
---|
875 | ã·ã¹ãã ã®çµäºå¦çï¼ã«ã¼ãã«ã®çµäºå¦çã§ï¼cpu_terminate ã«ç¶ãã¦å¼ã°ã
|
---|
876 | ãï¼ãã®é¢æ°ããã¯ãªã¿ã¼ã³ããªãï¼ROMã¢ãã¿ãæã¤ã·ã¹ãã ã§ã¯ï¼ROMã¢ã
|
---|
877 | ã¿å¼åºãã§å®ç¾ãããã¨ãæ³å®ãã¦ããï¼
|
---|
878 |
|
---|
879 | (7-6) call_atexit(void)
|
---|
880 |
|
---|
881 | éçºç°å¢ä¾åã®çµäºå¦çï¼å¿
|
---|
882 | è¦ã«å¿ãã¦ï¼atexit ã«ãã£ã¦ç»é²ããã颿°ã®
|
---|
883 | å®è¡ã C++ ã«ããããã¹ãã©ã¯ã¿ã®å®è¡ãè¡ãï¼
|
---|
884 |
|
---|
885 | (8) å²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©ã®å®ç¾©
|
---|
886 |
|
---|
887 | (8-1) void define_inh(INHNO inhno, FP inthdr)
|
---|
888 |
|
---|
889 | å²è¾¼ã¿ãã³ãã©çªå· inhno ã®èµ·åçªå°ã inthdr ã«è¨å®ããï¼å²è¾¼ã¿ç®¡çæ©
|
---|
890 | è½ã®åæåå¦çããå¼ã°ããï¼
|
---|
891 |
|
---|
892 | (8-2) void define_exc(EXCNO excno, FP exchdr)
|
---|
893 |
|
---|
894 | CPUä¾å¤ãã³ãã©çªå· excno ã®èµ·åçªå°ã exchdr ã«è¨å®ããï¼CPUä¾å¤ãã³
|
---|
895 | ãã©ç®¡çæ©è½ã®åæåå¦çããå¼ã°ããï¼
|
---|
896 |
|
---|
897 | (9) CPUä¾å¤çºçæç¹ã®ã·ã¹ãã ç¶æ
|
---|
898 | ã®åç
|
---|
899 | §
|
---|
900 |
|
---|
901 | (9-1) BOOL exc_sense_context(VP p_excinf)
|
---|
902 |
|
---|
903 | CPUä¾å¤ãçºçããã³ã³ããã¹ããï¼ã¿ã¹ã¯ã³ã³ããã¹ãã®å ´å㯠FALSEï¼é
|
---|
904 | ã¿ã¹ã¯ã³ã³ããã¹ãã®å ´å㯠TRUE ãè¿ã颿°ï¼CPUä¾å¤ãã³ãã©ããå¼ã°ã
|
---|
905 | ããµã¼ãã¹ã³ã¼ã«å¦çããå¼ã°ããï¼p_excinf ã«ã¯ï¼CPUä¾å¤ãã³ãã©ã¸ã®å¼
|
---|
906 | æ°ããã®ã¾ã¾æ¸¡ãããï¼
|
---|
907 |
|
---|
908 | (9-2) BOOL exc_sense_lock(VP p_excinf)
|
---|
909 |
|
---|
910 | CPUä¾å¤ãçºçããã³ã³ããã¹ããï¼CPUããã¯ç¶æ
|
---|
911 | ã®å ´å㯠TRUEï¼CPUããã¯
|
---|
912 | è§£é¤ç¶æ
|
---|
913 | ã®æã¯ FALSE ãè¿ã颿°ï¼CPUä¾å¤ãã³ãã©ããå¼ã°ãããµã¼ãã¹ã³
|
---|
914 | ã¼ã«å¦çããå¼ã°ããï¼p_excinf ã«ã¯ï¼CPUä¾å¤ãã³ãã©ã¸ã®å¼æ°ããã®ã¾ã¾
|
---|
915 | 渡ãããï¼
|
---|
916 |
|
---|
917 | (10) TCB ä¸ã®ãã£ã¼ã«ãã®ãããå¹
|
---|
918 | ã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
919 |
|
---|
920 | TCB ä¸ã®ãã£ã¼ã«ãã®é
|
---|
921 | ç½®ã¯æ§è½ã«å¤§ããå½±é¿ããã¨æãããããï¼ã¿ã¼ã²ã
|
---|
922 | ãä¾åã«ãã£ã¼ã«ãã®ãããå¹
|
---|
923 | ã夿´ã§ããããã«ãã¦ããï¼å
|
---|
924 | ·ä½çã«ã¯ï¼ä»¥
|
---|
925 | ä¸ã®2ã¤ã®ãã£ã¼ã«ãã®ãããå¹
|
---|
926 | ã夿´ã§ããï¼ãããã®ãã¯ããå®ç¾©ããªã
|
---|
927 | å ´åï¼æå°ãããå¹
|
---|
928 | ã¨ãªãï¼
|
---|
929 |
|
---|
930 | (10-1) TBIT_TCB_TSTAT tstatï¼ã¿ã¹ã¯ç¶æ
|
---|
931 | ï¼ã®ãããå¹
|
---|
932 |
|
---|
933 | (10-2) TBIT_TCB_PRIORITY priorityï¼åªå
|
---|
934 | 度ï¼ãã£ã¼ã«ãã®ãããå¹
|
---|
935 |
|
---|
936 |
|
---|
937 | 32ãããããã»ããµã®å ´åã«ã¯ï¼ãããã 8 ã«å®ç¾©ããã®ãå¹ççã§ããï¼
|
---|
938 |
|
---|
939 | (11) ãããããããµã¼ãã«ããããµã¼ãå½ä»¤ã使ãããã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
940 |
|
---|
941 | ããã»ããµãããããµã¼ãå½ä»¤ãæã¤å ´åï¼ã¬ãã£ãã¥ã¼ã®ãããããããµã¼
|
---|
942 | ãã«ãã®å½ä»¤ãç¨ããæ¹ãå¹çãããï¼ãã®å ´åï¼ä»¥ä¸ã®é¢æ°ããã³ãã¯ãã
|
---|
943 | ã¿ã¼ã²ããä¾åé¨ã§å®ç¾©ããï¼
|
---|
944 |
|
---|
945 | (11-1) CPU_BITMAP_SEARCH
|
---|
946 |
|
---|
947 | ããã»ããµã®ããããµã¼ãå½ä»¤ãç¨ããå ´åï¼ãã®ãã¯ããå®ç¾©ããï¼ãã®ã
|
---|
948 | ã¯ããå®ç¾©ãããã¨ã«ããï¼ã¿ã¼ã²ããéä¾åé¨ãã bitmap_search ãåã
|
---|
949 | é¤ãããï¼
|
---|
950 |
|
---|
951 | (11-2) UINT bitmap_search(UINT bitmap)
|
---|
952 |
|
---|
953 | ããããµã¼ããè¡ã颿°ï¼bitmap å
|
---|
954 | ã® 1 ã®ãããã®å
|
---|
955 | ï¼æãä¸ä½ã®ãã®ããµ
|
---|
956 | ã¼ããï¼ãã®ãããçªå·ãè¿ãï¼ãããçªå·ã¯ï¼æä¸ä½ãããï¼LSBï¼ã 0 ã¨
|
---|
957 | ããï¼bitmap ã®ä¸ä½16ãããã«ï¼å¿
|
---|
958 | ã 1 ã®ããããããï¼ããªãã¡ï¼bitmap
|
---|
959 | ã« 0 ãæå®ããããã¨ã¯ãªãï¼ãã¨ãä»®å®ãã¦ããï¼
|
---|
960 |
|
---|
961 | æ¨æºã©ã¤ãã©ãªã«ããããµã¼ãå½ä»¤ãç¨ãã ffs ãããå ´åï¼ffs ãç¨ãã¦
|
---|
962 | bitmap_search ãæ¬¡ã®ããã«å®ç¾©ããã°ããï¼
|
---|
963 | #define bitmap_search(bitmap) (ffs(bitmap) - 1)
|
---|
964 |
|
---|
965 | ããã»ããµã®æã¤ããããµã¼ãå½ä»¤ãï¼æãä¸ä½ã® 1 ã®ãããããµã¼ããã
|
---|
966 | ãã®ã§ããå ´åã«ã¯ï¼æ¬¡ã®ãã¯ããå®ç¾©ãã¦ï¼ãããã®å²ä»ãã夿´ãããã¨
|
---|
967 | ãã§ããï¼
|
---|
968 |
|
---|
969 | (11-3) UINT PRIMAP_BIT(pri)
|
---|
970 |
|
---|
971 | ã¿ã¹ã¯åªå
|
---|
972 | 度ã®å
|
---|
973 | é¨è¡¨ç¾ï¼æé«åªå
|
---|
974 | 度ã 0 ã¨ããï¼ãï¼ããã«å¯¾å¿ãããã
|
---|
975 | ããããã«å¤æããï¼ããã©ã«ãã®å®ç¾©ã¯æ¬¡ã®éãï¼
|
---|
976 | #define PRIMAP_BIT(pri) (1 << (pri))
|
---|
977 |
|
---|
978 | (12) ã¿ã¼ã²ããä¾åã®ãµã¼ãã¹ã³ã¼ã«ï¼ãªãã·ã§ã³ï¼
|
---|
979 |
|
---|
980 | 以ä¸ã®ãµã¼ãã¹ã³ã¼ã«ãã¿ã¼ã²ããä¾åã«ãµãã¼ãããå ´åã«ã¯ï¼ãã®å¦çã«
|
---|
981 | ã¼ãã³ãã¿ã¼ã²ããä¾åé¨ã§å®ç¾©ããï¼
|
---|
982 |
|
---|
983 | (12-1) chg_ixx
|
---|
984 | (12-2) get_ixx
|
---|
985 | (12-3) dis_int
|
---|
986 | (12-4) ena_int
|
---|
987 |
|
---|
988 | (13) æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»é¢é£ã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
989 |
|
---|
990 | (13-1) SUPPORT_VXGET_TIM
|
---|
991 |
|
---|
992 | ã¿ã¼ã²ããéä¾åé¨ã® vxget_timãµã¼ãã¹ã³ã¼ã«å¦çãç¨ããå ´åã«ï¼ãã®ã
|
---|
993 | ã¯ããå®ç¾©ããï¼
|
---|
994 |
|
---|
995 | (13-2) hw_timer.h
|
---|
996 |
|
---|
997 | ã¿ã¼ã²ããä¾åã®ã¿ã¤ãã¢ã¸ã¥ã¼ã«ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ï¼ã¿ã¼ã²ããéä¾
|
---|
998 | åé¨ã® vxget_timãµã¼ãã¹ã³ã¼ã«å¦çãç¨ããå ´åï¼ã¿ã¼ã²ããä¾åã®ã¿ã¤ã
|
---|
999 | ã¢ã¸ã¥ã¼ã«ãå¿
|
---|
1000 | è¦ã«ãªãï¼ãã®ããã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã§ãã
|
---|
1001 | hw_timer.h ã¯ï¼ã·ã¹ãã ãµã¼ãã¹ã®ã·ã¹ãã ã¯ããã¯ãã©ã¤ãã§ç¨ãããã®
|
---|
1002 | ã¨å
|
---|
1003 | ±éã«ãã¦ããï¼
|
---|
1004 |
|
---|
1005 | (14) ã«ã¼ãã«ã®å
|
---|
1006 | é¨èå¥åã®ãªãã¼ã ã¨ãã®è§£é¤ï¼cpu_rename.hï¼
|
---|
1007 | cpu_unrename.hï¼sys_rename.hï¼sys_unrename.hï¼
|
---|
1008 |
|
---|
1009 | ã¿ã¼ã²ããä¾åé¨ã§ç¨ãã¦ããèå¥åï¼ã¢ã¸ã¥ã¼ã«å
|
---|
1010 | ã«éããèå¥åãé¤ãï¼
|
---|
1011 | ãï¼Î¼ITRON4.0仿§ã«å¾ã£ã¦ _kernel_ ã§å§ã¾ããã®ã«ãªãã¼ã ããå¿
|
---|
1012 | è¦ãã
|
---|
1013 | ãï¼
|
---|
1014 |
|
---|
1015 | å
|
---|
1016 | ·ä½çã«ã¯ï¼ããã»ããµä¾åé¨ã§ç¨ãã¦ããèå¥åããªã¹ãã¢ãããããã¡ã¤
|
---|
1017 | ã«ã cpu_rename.def ã«ï¼ã·ã¹ãã ä¾åé¨ã§ç¨ãã¦ããèå¥åããªã¹ãã¢ãã
|
---|
1018 | ãããã¡ã¤ã«ã sys_rename.def ã«ä½æããï¼genrename 使ã£ã¦ï¼ãããã®ãã¡
|
---|
1019 | ã¤ã«ããï¼ãããã cpu_rename.h 㨠cpu_unrename.hï¼sys_rename.h ã¨
|
---|
1020 | sys_unrename.h ãçæããï¼xxx_rename.def ãã xxx_rename.h ã¨
|
---|
1021 | xxx_unrename.h ãçæããã«ã¯ï¼ã$(KERNEL_DIR)/utils/genrename xxxãã
|
---|
1022 | å®è¡ããã°ããï¼
|
---|
1023 |
|
---|
1024 | ã¾ãï¼cpu_config.h ã®å
|
---|
1025 | é ãã cpu_rename.h ãï¼sys_config.h ã®å
|
---|
1026 | é ãã
|
---|
1027 | sys_rename.h ãã¤ã³ã¯ã«ã¼ãããï¼
|
---|
1028 |
|
---|
1029 | genrename ãçæãããã¡ã¤ã«ã¯æ¬¡ã®ãããªå
|
---|
1030 | 容ã§ããï¼xxx_rename.def ã«
|
---|
1031 | xxxx ã¨ããèå¥åãå«ã¾ãã¦ããå ´åï¼xxx_rename.h ã«ã¯æ¬¡ã®ãããªãã¯ã
|
---|
1032 | å®ç¾©ãçæãããï¼
|
---|
1033 |
|
---|
1034 | #define xxxx _kernel_xxxx
|
---|
1035 | #ifdef LABEL_ASM
|
---|
1036 | #define _xxxx __kernel_xxxx
|
---|
1037 | #endif /* LABEL_ASM */
|
---|
1038 |
|
---|
1039 | ããã§ï¼LABEL_ASM ã¯ï¼ã¢ã»ã³ããªè¨èªã¬ãã«ã®èå¥åãï¼Cè¨èªã¬ãã«ã®è
|
---|
1040 | å¥åã®å
|
---|
1041 | é ã« "_" ãä»ãããã®ã«ãªãå ´åã«å®ç¾©ãã¹ããã¯ãã§ããï¼å®ç¾©
|
---|
1042 | ã®æ¹æ³ã«ã¤ãã¦ã¯ãã·ã¹ãã æ§ç¯æ¹æ³ã®è¨å®ããåç
|
---|
1043 | §ï¼ï¼
|
---|
1044 |
|
---|
1045 | ã¾ãï¼xxx_unrename.h ã«ã¯æ¬¡ã®ãããªãã¯ãå®ç¾©è§£é¤ãçæãããï¼
|
---|
1046 |
|
---|
1047 | #undef xxxx
|
---|
1048 | #ifdef LABEL_ASM
|
---|
1049 | #undef _xxxx
|
---|
1050 | #endif /* LABEL_ASM */
|
---|
1051 |
|
---|
1052 | (15) ãã¬ã¼ã¹ãã°ã®ããã®ãã¯ãå®ç¾©ï¼tool_config.hï¼
|
---|
1053 |
|
---|
1054 | ã«ã¼ãã«ã®ãã¬ã¼ã¹ãã°ã®åå¾ã¯ï¼éçºç°å¢ä¾åé¨ã§ãã¬ã¼ã¹ãã°ã®ããã®ã
|
---|
1055 | ã¯ããå®ç¾©ãããã¨ã«ãã£ã¦è¡ãï¼ãã¬ã¼ã¹ãã°ã®ããã®ãã¯ãã¯ç´150種é¡
|
---|
1056 | ããï¼åå¾ããããã°æ
|
---|
1057 | å ±ã«å¯¾å¿ãããã¯ããå®ç¾©ããï¼ãã¬ã¼ã¹ãã°ãåå¾
|
---|
1058 | ããªãå ´åã«ã¯ï¼ãããã®ãã¯ãã空ã«å®ç¾©ããã°ããï¼
|
---|
1059 |
|
---|
1060 | (16) ãã®ä»
|
---|
1061 |
|
---|
1062 | (16-1) TARGET_NAME
|
---|
1063 |
|
---|
1064 | èµ·åã¡ãã»ã¼ã¸ã®ã¿ã¼ã²ããåï¼
|
---|
1065 |
|
---|
1066 | (16-2) void sys_putc(char c)
|
---|
1067 |
|
---|
1068 | ã¿ã¼ã²ããã·ã¹ãã ã®ä½ã¬ãã«ã®æååºåã«ã¼ãã³ï¼ROMã¢ãã¿ãæã¤ã·ã¹ã
|
---|
1069 | ã ã§ã¯ï¼ROMã¢ãã¿å¼ã³åºãã§å®ç¾ãããã¨ãæ³å®ãã¦ããï¼
|
---|
1070 |
|
---|
1071 | (16-3) OMIT_CALLTEXï¼ãªãã·ã§ã³ï¼
|
---|
1072 |
|
---|
1073 | ã¿ã¼ã²ããéä¾åé¨ã calltex ãæä¾ããå¿
|
---|
1074 | è¦ããªãå ´åã«ï¼ãã®ãã¯ãã
|
---|
1075 | å®ç¾©ããï¼è©³ããã¯ï¼ãã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·å颿°ã¨ãã®ä¸ã§åç
|
---|
1076 | §ã
|
---|
1077 | ã TCB ã®ãã£ã¼ã«ããã®ç¯ãåç
|
---|
1078 | §ã®ãã¨ï¼
|
---|
1079 |
|
---|
1080 | (16-4) LABEL_ALIAS(new_label, defined_label)ï¼ãªãã·ã§ã³ï¼tool_config.hï¼
|
---|
1081 |
|
---|
1082 | new_label ã defined_label ã¨åãã¢ãã¬ã¹ã«å®ç¾©ããããã®ãã¯ãï¼ãã®
|
---|
1083 | ãããªãã¯ããå®ç¾ã§ããªãå ´åã«ã¯ï¼å®ç¾©ãçç¥ãããã¨ãã§ããï¼ãã®ã
|
---|
1084 | ã¯ãå®ç¾©ã¯ï¼tool_config.h ã®ä¸ã§è¡ãã®ãæ¨æºã¨ããï¼
|
---|
1085 |
|
---|
1086 | (16-5) COPYRIGHT_CPUï¼ãªãã·ã§ã³ï¼
|
---|
1087 | (16-6) COPYRIGHT_SYSï¼ãªãã·ã§ã³ï¼
|
---|
1088 |
|
---|
1089 | ã«ã¼ãã«èµ·åæã®ã¡ãã»ã¼ã¸ã«ï¼ããããããã»ããµä¾åé¨ããã³ã·ã¹ãã ä¾
|
---|
1090 | åé¨ã®è使¨©è¡¨ç¤ºã追å ããããã®ãã¯ãï¼
|
---|
1091 |
|
---|
1092 | (16-7) __STK_UNITï¼ãªãã·ã§ã³ï¼
|
---|
1093 | (16-8) __MPF_UNITï¼ãªãã·ã§ã³ï¼
|
---|
1094 |
|
---|
1095 | æ¨æºã§ã¯ï¼ã¹ã¿ãã¯é åã¨åºå®é·ã¡ã¢ãªãã¼ã«é åã¯ï¼VPåã®ãµã¤ãºã«ã¢ã©ã¤
|
---|
1096 | ã³ããï¼ãããï¼ãã大ããåä½ã§ã¢ã©ã¤ã³ãããå¿
|
---|
1097 | è¦ãããå ´åã«ã¯ï¼
|
---|
1098 | __STK_UNIT 㨠__MPF_UNIT ãï¼ããããã¢ã©ã¤ã³ãããåä½ã®ãã¼ã¿åã«å®
|
---|
1099 | 義ããï¼ãã ãï¼__STK_UNIT ããã³ __MPF_UNIT ã®ãµã¤ãºã¯ï¼2ã®å·¾ä¹ã§ãªã
|
---|
1100 | ãã°ãªããªãï¼
|
---|
1101 |
|
---|
1102 | (16-9) __EMPTY_LABEL(x, y)ï¼ãªãã·ã§ã³ï¼tool_config.hï¼
|
---|
1103 |
|
---|
1104 | å x ã®ãµã¤ãº 0 ã®é
|
---|
1105 | å y ãå®ç¾©ããããã®ãã¯ãï¼ãµã¤ãº 0 ã®é
|
---|
1106 | åãå®ç¾©
|
---|
1107 | ã§ããã³ã³ãã¤ã©ï¼GNUéçºç°å¢ã¯ããã«è©²å½ï¼ã§ã¯å®ç¾©ãçç¥ãããã¨ãã§
|
---|
1108 | ããï¼ãã®ãã¯ãå®ç¾©ã¯ï¼tool_config.h ã®ä¸ã§è¡ãã®ãæ¨æºã¨ããï¼
|
---|
1109 |
|
---|
1110 |
|
---|
1111 | ï¼ï¼ã¿ã¼ã²ããä¾åé¨ãç¨ãããã¨ãã§ããã¿ã¼ã²ããéä¾åé¨ã®å¤æ°ã»é¢æ°
|
---|
1112 |
|
---|
1113 | (1) ã¿ã¹ã¯ç®¡çé¢é£ã®å¤æ°
|
---|
1114 |
|
---|
1115 | (1-1) TCB *runtsk
|
---|
1116 |
|
---|
1117 | å®è¡ç¶æ
|
---|
1118 | ã®ã¿ã¹ã¯ï¼ï¼ããã»ããµãã³ã³ããã¹ããæã£ã¦ããã¿ã¹ã¯ï¼ã® TCB
|
---|
1119 | ãæããã¤ã³ã¿ï¼å®è¡ç¶æ
|
---|
1120 | ã®ã¿ã¹ã¯ããªãå ´å㯠NULL ã«ããï¼ãµã¼ãã¹ã³ã¼
|
---|
1121 | ã«ã®å¦çä¸ã§ï¼èªã¿ã¹ã¯ï¼ãµã¼ãã¹ã³ã¼ã«ãå¼ã³åºããã¿ã¹ã¯ï¼ã«é¢ããæ
|
---|
1122 | å ±
|
---|
1123 | ãåç
|
---|
1124 | §ããå ´å㯠runtsk ã使ãï¼ã«ã¼ãã«ã®åæåå¦ç以å¤ã§ï¼ãã®å¤æ°ã
|
---|
1125 | æ¸ãæããã®ã¯ï¼ã¿ã¹ã¯ãã£ã¹ãããã£ï¼ããªãã¡ï¼ã¿ã¼ã²ããä¾åé¨ï¼ã®ã¿
|
---|
1126 | ã§ããï¼
|
---|
1127 |
|
---|
1128 | (1-2) TCB *schedtsk
|
---|
1129 |
|
---|
1130 | å®è¡ã§ããã¿ã¹ã¯ã®ä¸ã§æé«åªå
|
---|
1131 | é ä½ã®ã¿ã¹ã¯ã® TCB ãæããã¤ã³ã¿ï¼å®è¡
|
---|
1132 | ã§ããã¿ã¹ã¯ããªãå ´å㯠NULL ã¨ãªãï¼ãã£ã¹ãããç¦æ¢ç¶æ
|
---|
1133 | ãªã©ï¼ãã£ã¹
|
---|
1134 | ããããä¿çããã¦ããéã¯ï¼runtsk ã¨ä¸è´ãã¦ããã¨ã¯éããªãï¼ãã®å¤
|
---|
1135 | æ°ãæ¸ãæããã®ã¯ã¹ã±ã¸ã¥ã¼ã©ã®ã¿ã§ï¼ã¿ã¼ã²ããä¾åé¨ã¯ãã®å¤æ°ãæ¸ã
|
---|
1136 | æãã¦ã¯ãªããªãï¼
|
---|
1137 |
|
---|
1138 | (1-3) BOOL reqflg
|
---|
1139 |
|
---|
1140 | å²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©ã®åºå£å¦çã«ï¼ã¿ã¹ã¯ãã£ã¹ãããã¾ãã¯
|
---|
1141 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãè¦æ±ãããã¨ã示ããã©ã°ï¼ãã®å¤æ°ã¯ãµã¼
|
---|
1142 | ãã¹ã³ã¼ã«å¦çï¼ã¿ã¼ã²ããéä¾åé¨ï¼ã§ã»ãããï¼å²è¾¼ã¿ãã³ãã©ï¼CPUä¾
|
---|
1143 | å¤ãã³ãã©ã®åºå£å¦çï¼ã¿ã¼ã²ããä¾åé¨ï¼ã§åç
|
---|
1144 | §ï¼ã¯ãªã¢ããï¼
|
---|
1145 |
|
---|
1146 | (1-4) BOOL enadsp
|
---|
1147 |
|
---|
1148 | ã¿ã¹ã¯ãã£ã¹ããã許å¯ç¶æ
|
---|
1149 | ã§ããï¼ããªãã¡ï¼ã¿ã¹ã¯ãã£ã¹ãããç¦æ¢ç¶æ
|
---|
1150 |
|
---|
1151 | ã§ãªãï¼ãã¨ã示ããã©ã°ï¼ãã®å¤æ°ã¯ãµã¼ãã¹ã³ã¼ã«ï¼dis_dspï¼ena_dspï¼
|
---|
1152 | ã¿ã¼ã²ããä¾åã« chg_ixxï¼å¦çã®ä¸ã§æ¸ãæããï¼
|
---|
1153 |
|
---|
1154 | ã¾ãï¼ã¿ã¹ã¯ãã£ã¹ãããã£ï¼ã¿ã¼ã²ããä¾åé¨ï¼ã®ä¸ã§ï¼å®è¡ã§ããã¿ã¹ã¯
|
---|
1155 | ãã§ããã®ãå¾
|
---|
1156 | ã¤éã«èµ·åãããå²è¾¼ã¿ãã³ãã©ã®åºå£ã§ã¿ã¹ã¯ãã£ã¹ãããã£
|
---|
1157 | ãå¼ã°ããªãããã«ããããã«ï¼ãã®å¤æ°ã䏿çã« FALSE ã«è¨å®ãããã¨
|
---|
1158 | ãã§ããï¼
|
---|
1159 |
|
---|
1160 | (2) ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·å颿°ã¨ãã®ä¸ã§åç
|
---|
1161 | §ãã TCB ã®ãã£ã¼ã«ã
|
---|
1162 |
|
---|
1163 | (2-1) void calltex(void)
|
---|
1164 | (2-2) void call_texrtn(void)
|
---|
1165 |
|
---|
1166 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãè¡ã颿°ï¼calltex ã¯ï¼å®è¡ç¶æ
|
---|
1167 | ã®ã¿ã¹ã¯ã
|
---|
1168 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åæ¡ä»¶ãæºããã¦ããã°ï¼call_texrtn ãå¼ã³åº
|
---|
1169 | ãï¼call_texrtn ã¯ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å¼ã³åºããè¡ãï¼ã¿ã¹ã¯ä¾å¤
|
---|
1170 | å¦çã«ã¼ãã³ãå¼ã³åºãæã¯ï¼ä¸æçã«CPUããã¯ãè§£é¤ããï¼
|
---|
1171 |
|
---|
1172 | ãããã®é¢æ°ã¯ï¼ãã£ã¹ãããã£ãå²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©ã®åºå£
|
---|
1173 | å¦çããï¼CPUããã¯ç¶æ
|
---|
1174 | ã§å¼ã°ãããã¨ãæ³å®ãã¦ããï¼calltex ãå¼ã³åº
|
---|
1175 | ãã®ãæãç°¡åã§ãããï¼å®è¡å¹çãä¸ããããã«ã¯ï¼èµ·åæ¡ä»¶ã®ãã§ãã¯ã
|
---|
1176 | ã¢ã»ã³ããªè¨èªã§è¨è¿°ãï¼call_texrtn ãå¼ã³åºããæ¹ãããï¼ãã§ãã¯ãã¹
|
---|
1177 | ãèµ·åæ¡ä»¶ã«ã¤ãã¦ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ã® calltex ã®ã½ã¼ã¹ã³ã¼ããå
|
---|
1178 | ç
|
---|
1179 | §ãããã¨ï¼ã¾ããã®å ´åã«ã¯ï¼OMIT_CALLTEX ããã¯ãå®ç¾©ãããã¨ã§ï¼ã¿
|
---|
1180 | ã¼ã²ããéä¾åé¨ãã calltex ãåãé¤ãããï¼
|
---|
1181 |
|
---|
1182 | (2-3) BOOL enatex
|
---|
1183 | (2-4) TEXPTN texptn
|
---|
1184 |
|
---|
1185 | call_texrtn ãå¼ã³åºãããã«ï¼èµ·åæ¡ä»¶ã®ãã§ãã¯ãã¢ã»ã³ããªè¨èªã§è¨è¿°
|
---|
1186 | ããå ´åã«ã¯ï¼TCB å
|
---|
1187 | ã®ãããã®ãã£ã¼ã«ããåç
|
---|
1188 | §ããå¿
|
---|
1189 | è¦ãããï¼
|
---|
1190 |
|
---|
1191 | (3) ã·ã¹ãã ãã°æ©è½
|
---|
1192 |
|
---|
1193 | ç°å¸¸äºè±¡ãéç¥ããããã«ï¼ã·ã¹ãã ãã°æ©è½ã¸ã®ãã°åºå颿°ãç¨ãããã¨
|
---|
1194 | ãã§ããï¼ã·ã¹ãã ãã°æ©è½ã«ã¤ãã¦ã¯ï¼ã¦ã¼ã¶ãºããã¥ã¢ã«ãåç
|
---|
1195 | §ãããã¨ï¼
|
---|
1196 |
|
---|
1197 |
|
---|
1198 | ï¼ï¼ã·ã¹ãã ãµã¼ãã¹ç¨ã®ãã¼ã¿åã颿°ãªã©
|
---|
1199 |
|
---|
1200 | 5.1 ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ï¼SILï¼ã®ããã®å®ç¾©
|
---|
1201 |
|
---|
1202 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ãã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ï¼SILï¼ã®ãã
|
---|
1203 | ã®å®ç¾©ã¯æ¬¡ã®éãã§ããï¼ãããã®å®ç¾©ã¯ï¼cpu_defs.hã¾ãã¯sys_defs.hï¼ã¾
|
---|
1204 | ãã¯ãããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«å«ããï¼ã¾ãï¼é¢æ°ã®å®ä½ã
|
---|
1205 | å¿
|
---|
1206 | è¦ãªå ´åï¼Cè¨èªã®å ´åã¯cpu_config.cã¾ãã¯sys_config.cã«ï¼ã¢ã»ã³ããª
|
---|
1207 | è¨èªã®å ´åã¯cpu_support.Sã¾ãã¯sys_support.Sã«è¨è¿°ããï¼
|
---|
1208 |
|
---|
1209 | (1) 微尿éå¾
|
---|
1210 | ã¡é¢é£
|
---|
1211 |
|
---|
1212 | (1-1) void sil_dly_nse(UINT dlytim)
|
---|
1213 |
|
---|
1214 | dlytimã§æå®ãããæéï¼åä½: 1ããç§ï¼å¾
|
---|
1215 | ã¤é¢æ°ãã¿ã¼ã²ããä¾åé¨ã§æ
|
---|
1216 | ä¾ããï¼
|
---|
1217 |
|
---|
1218 | å®ç¾æ¹æ³ã¯ã¿ã¼ã²ããä¾åã§ãããï¼ä»¥ä¸ã®é¢æ°ãã¢ã»ã³ããªè¨èªã§è¨è¿°ãã
|
---|
1219 | ãã®ãï¼ããã»ããµä¾åé¨ã«å«ããã®ãæ¨æºçãªæ¹æ³ã¨ããï¼ã¢ã»ã³ããªè¨èª
|
---|
1220 | ã§è¨è¿°ããã®ã¯ï¼ã³ã³ãã¤ã©ã®æé©åã«ä¾åããªãããã«ããããã§ããï¼ã¾
|
---|
1221 | ããã®é¢æ°ã¯ï¼ã§ããéãã¡ã¢ãªã¢ã¯ã»ã¹ãè¡ããªãããã«å®è£
|
---|
1222 | ãã¹ãã§ããï¼
|
---|
1223 |
|
---|
1224 | void sil_dly_nse(UINT dlytim)
|
---|
1225 | {
|
---|
1226 | if (dlytim > SIL_DLY_TIM1) {
|
---|
1227 | dlytim -= SIL_DLY_TIM1;
|
---|
1228 | while (dlytim > SIL_DLY_TIM2) {
|
---|
1229 | dlytim -= SIL_DLY_TIM2;
|
---|
1230 | }
|
---|
1231 | }
|
---|
1232 | }
|
---|
1233 |
|
---|
1234 | (1-2) SIL_DLY_TIM1ï¼ãªãã·ã§ã³ï¼
|
---|
1235 | (1-3) SIL_DLY_TIM2ï¼ãªãã·ã§ã³ï¼
|
---|
1236 |
|
---|
1237 | sil_dly_nseãä¸è¨ã®æ¨æºçãªæ¹æ³ã§å®ç¾ããå ´åï¼ãã®2ã¤ã®å®æ°ãã·ã¹ãã
|
---|
1238 | ä¾åé¨ã§ãã¯ãå®ç¾©ããï¼ãªãï¼ãã®2ã¤ã®å®æ°ã®æ±ºå®ãå©ããããã°ã©ã ã
|
---|
1239 | ç¨æãã¦ããï¼å¸æãããæ¹ã¯ï¼ç¸è«ããããï¼
|
---|
1240 |
|
---|
1241 | (2) å²è¾¼ã¿ããã¯ç¶æ
|
---|
1242 | ã®å¶å¾¡é¢é£ï¼ãªãã·ã§ã³ï¼
|
---|
1243 |
|
---|
1244 | (2-1) SIL_PRE_LOC
|
---|
1245 | (2-2) SIL_LOC_INT()
|
---|
1246 | (2-3) SIL_UNL_INT()
|
---|
1247 |
|
---|
1248 | ã¿ã¼ã²ããä¾åã§å²è¾¼ã¿ããã¯ç¶æ
|
---|
1249 | ã®å¶å¾¡æ¹æ³ã夿´ãããå ´åã«ã¯ï¼ããã
|
---|
1250 | ã®ãã¯ãã«ãã®æ¹æ³ãå®ç¾©ããï¼ããããã¯ããå®ç¾©ããªãå ´åã«ã¯ï¼ ã¿ã¼
|
---|
1251 | ã²ããéä¾åé¨ã«ããã¦ï¼ã«ã¼ãã«ã®CPUããã¯ã®æ©è½ãç¨ãã¦å²è¾¼ã¿ããã¯
|
---|
1252 | ç¶æ
|
---|
1253 | ãå®ç¾ãããï¼
|
---|
1254 |
|
---|
1255 | (3) ããã»ããµã®ã¨ã³ãã£ã¢ã³ã®å®ç¾©
|
---|
1256 |
|
---|
1257 | (3-1) SIL_ENDIAN
|
---|
1258 |
|
---|
1259 | ãªãã«ã¨ã³ãã£ã¢ã³ããã»ããµã§ã¯SIL_ENDIAN_LITTLEï¼ï¼0ï¼ï¼ããã°ã¨ã³ãã£
|
---|
1260 | ã¢ã³ããã»ããµã§ã¯SIL_ENDIAN_BIGï¼ï¼1ï¼ã«ãã¯ãå®ç¾©ããï¼
|
---|
1261 |
|
---|
1262 | (4) ã¨ã³ãã£ã¢ã³ã®å転ï¼ãªãã·ã§ã³ï¼
|
---|
1263 |
|
---|
1264 | (4-1) VH SIL_REV_ENDIAN_H(VH data)
|
---|
1265 | (4-2) VW SIL_REV_ENDIAN_W(VW data)
|
---|
1266 |
|
---|
1267 | ã¨ã³ãã£ã¢ã³ã®å転ãå¹çããå®ç¾ããæ¹æ³ãããå ´åã«ã¯ï¼ãããã®ãã¯ã
|
---|
1268 | ã«ãã®æ¹æ³ãå®ç¾©ããï¼ãããã®ãã¯ããå®ç¾©ããªãå ´åã«ã¯ï¼æ¨æºçãªæ¹æ³
|
---|
1269 | ã§ã¨ã³ãã£ã¢ã³ã®å転ãè¡ãããï¼
|
---|
1270 |
|
---|
1271 | (5) ã¨ã³ãã£ã¢ã³å転ä»ãã®ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹ï¼ãªãã·ã§ã³ï¼
|
---|
1272 |
|
---|
1273 | ã¨ã³ãã£ã¢ã³ãå転ãã¦ã¡ã¢ãªãèªåºãï¼æ¸è¾¼ã¿ããå¹ççãªæ¹æ³ãããå ´åï¼
|
---|
1274 | 該å½ããã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°ãã¿ã¼ã²ããä¾åé¨ã§ç¨æãï¼ã¿ã¼ã²ããé
|
---|
1275 | ä¾åé¨ã®æ¨æºçãªå®ç¾©ãç¡å¹ã«ããããã®ãã¯ããå®ç¾©ããï¼
|
---|
1276 |
|
---|
1277 | (5-1) VH sil_reh_bem(VP mem) OMIT_SIL_REH_BEM
|
---|
1278 | (5-2) void sil_wrh_bem(VP mem, VH data) OMIT_SIL_WRH_BEM
|
---|
1279 | (5-3) VW sil_rew_bem(VP mem) OMIT_SIL_REW_BEM
|
---|
1280 | (5-4) void sil_wrw_bem(VP mem, VW data) OMIT_SIL_WRW_BEM
|
---|
1281 |
|
---|
1282 | ãªãã«ã¨ã³ãã£ã¢ã³ããã»ããµã§ã¯ï¼ãããã®ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°ãã¿ã¼
|
---|
1283 | ã²ããä¾åé¨ã§ç¨æãï¼å³ã«ç¤ºããã¯ããå®ç¾©ããï¼
|
---|
1284 |
|
---|
1285 | (5-5) VH sil_reh_lem(VP mem) OMIT_SIL_REH_LEM
|
---|
1286 | (5-6) void sil_wrh_lem(VP mem, VH data) OMIT_SIL_WRH_LEM
|
---|
1287 | (5-7) VW sil_rew_lem(VP mem) OMIT_SIL_REW_LEM
|
---|
1288 | (5-8) void sil_wrw_lem(VP mem, VW data) OMIT_SIL_WRW_LEM
|
---|
1289 |
|
---|
1290 | ããã°ã¨ã³ãã£ã¢ã³ããã»ããµã§ã¯ï¼ãããã®ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°ãã¿ã¼
|
---|
1291 | ã²ããä¾åé¨ã§ç¨æãï¼å³ã«ç¤ºããã¯ããå®ç¾©ããï¼
|
---|
1292 |
|
---|
1293 | (6) æ¨æºã®ã¢ã¯ã»ã¹é¢æ°ã®ç¡å¹åï¼ãªãã·ã§ã³ï¼
|
---|
1294 |
|
---|
1295 | (6-1) OMIT_SIL_ACCESS
|
---|
1296 |
|
---|
1297 | ã·ãã¥ã¬ã¼ã·ã§ã³ç°å¢ãªã©ã§ï¼ãã¹ã¦ã®ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°ãã¿ã¼ã²ãã
|
---|
1298 | ä¾åé¨ã§ç¨æããå ´åã«ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ã®æ¨æºçãªå®ç¾©ãç¡å¹ã«ãã
|
---|
1299 | ããã«ï¼ãã®ãã¯ããå®ç¾©ããï¼
|
---|
1300 |
|
---|
1301 | 5.2 ã·ã¹ãã ã¯ããã¯ãã©ã¤ãç¨ã®ãã¼ã¿åã颿°ãªã©
|
---|
1302 |
|
---|
1303 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ãã·ã¹ãã ã¯ããã¯ãã©ã¤ãç¨ã®ãã¼ã¿åã颿°
|
---|
1304 | ãªã©ã¯æ¬¡ã®éãã§ããï¼ãããã®å®ç¾©ã¯ï¼hw_timer.hï¼ã¾ãã¯ãããããã¤ã³
|
---|
1305 | ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«å«ããï¼é¢æ°ã®å®ä½ãå¿
|
---|
1306 | è¦ãªå ´åã«ã¯ï¼é©åãªãã¡
|
---|
1307 | ã¤ã«ãç¨æããï¼
|
---|
1308 |
|
---|
1309 | (1) INHNO_TIMER
|
---|
1310 |
|
---|
1311 | ã¿ã¤ãå²è¾¼ã¿ãã³ãã©ã®ãã¯ã¿çªå·ãå®ç¾©ãããã¯ããï¼ã¿ã¼ã²ããä¾åé¨ã§
|
---|
1312 | æä¾ããï¼
|
---|
1313 |
|
---|
1314 | (2) ã¿ã¤ãã®å¶å¾¡
|
---|
1315 |
|
---|
1316 | (2-1) void hw_timer_initialize(void)
|
---|
1317 |
|
---|
1318 | ã¿ã¤ããåæåãï¼ã¿ã¤ãå²è¾¼ã¿ã卿çã«çºçããã颿°ãï¼ã¿ã¼ã²ããä¾
|
---|
1319 | åé¨ã§æä¾ããï¼ã¿ã¤ãå²è¾¼ã¿ã®å¨æã¯ï¼TIC_NUMEã¨TIC_DENOã§æå®ãããæ
|
---|
1320 | éã¨ä¸è´ãããï¼
|
---|
1321 |
|
---|
1322 | (2-2) void hw_timer_int_clear(void)
|
---|
1323 |
|
---|
1324 | ã¿ã¤ãå²è¾¼ã¿è¦æ±ãã¯ãªã¢ãã颿°ãï¼ã¿ã¼ã²ããä¾åé¨ã§æä¾ããï¼
|
---|
1325 |
|
---|
1326 | (2-3) void hw_timer_terminate(void)
|
---|
1327 |
|
---|
1328 | ã¿ã¤ãã®åä½ã忢ããï¼ã¿ã¤ãå²è¾¼ã¿ãçºçããªãããã«ãã颿°ãï¼ã¿ã¼
|
---|
1329 | ã²ããä¾åé¨ã§æä¾ããï¼
|
---|
1330 |
|
---|
1331 | (3) æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»åç
|
---|
1332 | §æ©è½é¢é£ï¼ãªãã·ã§ã³ï¼
|
---|
1333 |
|
---|
1334 | ã¿ã¼ã²ããéä¾åé¨ã®vxget_timãµã¼ãã¹ã³ã¼ã«å¦çãç¨ããå ´åã«ï¼ä»¥ä¸ã®
|
---|
1335 | ãã¼ã¿åã颿°ãªã©ãã¿ã¼ã²ããä¾åé¨ã§æä¾ããï¼
|
---|
1336 |
|
---|
1337 | (3-1) CLOCK
|
---|
1338 |
|
---|
1339 | ã¿ã¤ãå¤ã®å
|
---|
1340 | é¨è¡¨ç¾ã®ããã®ãã¼ã¿åï¼
|
---|
1341 |
|
---|
1342 | (3-2) CLOCK hw_timer_get_current(void)
|
---|
1343 |
|
---|
1344 | ã¿ã¤ãã®ç¾å¨å¤ãèªã¿åºãï¼å
|
---|
1345 | é¨è¡¨ç¾ã§è¿ã颿°ï¼
|
---|
1346 |
|
---|
1347 | (3-3) BOOL hw_timer_fetch_interrupt(void)
|
---|
1348 |
|
---|
1349 | ã¿ã¤ãå²è¾¼ã¿è¦æ±ããã§ãã¯ãã颿°ï¼ã¿ã¤ãå²è¾¼ã¿ãè¦æ±ããã¦ããå ´åã«
|
---|
1350 | TRUEï¼è¦æ±ããã¦ããªãå ´åã«FALSEãè¿ãï¼
|
---|
1351 |
|
---|
1352 | (3-4) UINT TO_USEC(CLOCK clock)
|
---|
1353 |
|
---|
1354 | ã¿ã¤ãå¤ã®å
|
---|
1355 | é¨è¡¨ç¾ãï¼1μç§åä½ã«å¤æããããã®ãã¯ãï¼ã¾ãã¯é¢æ°ï¼ï¼
|
---|
1356 | hw_timer_get_currentã§èªã¿åºããå¤ãï¼ã¿ã¤ãå²è¾¼ã¿çºçããã®çµéæé
|
---|
1357 | ï¼åä½: 1μç§ï¼ã«å¤æããããã«ç¨ããï¼
|
---|
1358 |
|
---|
1359 | (3-5) BOOL BEFORE_IREQ(CLOCK clock)
|
---|
1360 |
|
---|
1361 | å²è¾¼ã¿ãç¦æ¢ããç¶æ
|
---|
1362 | ã§ï¼ã¾ãhw_timer_get_currentãå¼ã³åºãï¼ç¶ãã¦
|
---|
1363 | hw_timer_fetch_interruptãå¼ã³åºãå ´åãèããï¼hw_timer_get_current
|
---|
1364 | ãå¼ã³åºããç´å¾ã«ã¿ã¤ãã卿ã«éãï¼ã¿ã¤ãå²è¾¼ã¿ãè¦æ±ãããã¨ï¼
|
---|
1365 | hw_timer_get_currentã¯å¨æã«éããç´åã®ã¿ã¤ãå¤ï¼ãããï¼clockã¨ããï¼
|
---|
1366 | ãè¿ãï¼hw_timer_fetch_interruptãTRUEãè¿ããã¨ã«ãªãï¼ãã®ç¶æ³ã§ãæ£
|
---|
1367 | ããç¾å¨æå»ãå¾ãããã«ï¼clockãããä¸å®å¤ä»¥ä¸ã®å ´åã«ã¯ï¼
|
---|
1368 | hw_timer_fetch_interruptãTRUEãè¿ãã¦ãï¼å²è¾¼ã¿çºçåã®å¤ã¨ã¿ãªããã¨
|
---|
1369 | ã«ããï¼BEFORE_IREQã¯ï¼clockãå²è¾¼ã¿çºçåã®å¤ã¨ã¿ãªãã¹ãå ´åã«TRUEãï¼
|
---|
1370 | ããã§ãªãå ´åã«FALSEãè¿ããã¯ãï¼ã¾ãã¯é¢æ°ï¼ã§ããï¼
|
---|
1371 |
|
---|
1372 | 5.3 ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãç¨ã®ãã¼ã¿åã颿°ãªã©
|
---|
1373 |
|
---|
1374 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ãã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãç¨ã®ãã¼ã¿å
|
---|
1375 | ã颿°ãªã©ã¯æ¬¡ã®éãã§ããï¼ãããã®å®ç¾©ã¯ï¼å¥ã«è¨è¿°ããªãéãï¼
|
---|
1376 | hw_serial.hï¼ã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«å«ãï¼å¿
|
---|
1377 | è¦ãª
|
---|
1378 | ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³æ
|
---|
1379 | å ±ãhw_serial.cfgã«è¨è¿°ããï¼é¢æ°ã®å®ä½ãå¿
|
---|
1380 | è¦
|
---|
1381 | ãªå ´åã«ã¯ï¼é©åãªãã¡ã¤ã«ãç¨æããï¼
|
---|
1382 |
|
---|
1383 | ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ä¸ã§ï¼ã¿ã¼ã²ããã®ã·ãªã¢ã«I/Oããã¤ã¹
|
---|
1384 | ã«ä¾åããé¨åãï¼ã·ãªã¢ã«I/Oããã¤ã¹ãã©ã¤ãã¨å¼ã¶ï¼ã·ãªã¢ã«I/Oããã¤
|
---|
1385 | ã¹ãã©ã¤ãã¯ï¼ããããï¼ITRONããã¤ã¹ãã©ã¤ãè¨è¨ã¬ã¤ãã©ã¤ã³ã®PDICã«
|
---|
1386 | ç¸å½ããï¼PDICã«ç¸å½ãããã¡ã¤ã«ã§ï¼ä»ã®ã·ã¹ãã ã«ãå
|
---|
1387 | ±éã«ä½¿ããå¯è½æ§
|
---|
1388 | ãããå ´åã«ã¯ï¼pdic/simple_sioãã£ã¬ã¯ããªã«ç½®ãï¼
|
---|
1389 |
|
---|
1390 | (1) TNUM_PORT
|
---|
1391 |
|
---|
1392 | ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãããµãã¼ãããã·ãªã¢ã«ãã¼ãæ°ãå®ç¾©ãã
|
---|
1393 | ãã¯ãï¼ãã®ãã¯ãã¯ï¼cpu_config.hã¾ãã¯sys_config.hï¼ã¾ãã¯ããããã
|
---|
1394 | ã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã§å®ç¾©ããï¼
|
---|
1395 |
|
---|
1396 | (2) ã·ãªã¢ã«I/Oããã¤ã¹ã®å²è¾¼ã¿ãã³ãã©ã¨ãã®ç»é²
|
---|
1397 |
|
---|
1398 | ã·ãªã¢ã«I/Oããã¤ã¹ã®å²è¾¼ã¿ãã³ãã©ãã¿ã¼ã²ããä¾åé¨ã§æä¾ãï¼ããã
|
---|
1399 | ã«ã¼ãã«ã«ç»é²ããéçAPIãhw_serial.cfgã«å«ããï¼ã·ãªã¢ã«I/Oããã¤ã¹
|
---|
1400 | ã®å²è¾¼ãã³ãã©ã®ãã¯ã¿çªå·ã¯ï¼hw_serial.hï¼ã¾ãã¯ããããã¤ã³ã¯ã«ã¼ã
|
---|
1401 | ããããã¡ã¤ã«ï¼ã§ãã¯ãå®ç¾©ãï¼hw_serial.cfgããhw_serial.hãã¤ã³ã¯ã«
|
---|
1402 | ã¼ãããæ¹æ³ãæ¨æºã¨ããï¼
|
---|
1403 |
|
---|
1404 | (3) void sio_initialize(void)
|
---|
1405 |
|
---|
1406 | ã·ãªã¢ã«I/Oããã¤ã¹ãã©ã¤ããåæåããã«ã¼ãã³ï¼ãã®é¢æ°ã¯ï¼ã·ãªã¢ã«
|
---|
1407 | ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ããéä¾åé¨ã®åæåã«ã¼ãã³ããå¼ã³åºã
|
---|
1408 | ããï¼
|
---|
1409 |
|
---|
1410 | (4) SIOPCB
|
---|
1411 |
|
---|
1412 | ã·ãªã¢ã«I/Oãã¼ã管çãããã¯ã®ãã¼ã¿åï¼hw_serial.hã«ã¯ï¼å宣è¨ã ãå«
|
---|
1413 | ã¾ãã¦ããã°ããï¼ï¼
|
---|
1414 |
|
---|
1415 | (5) SIO_ERDY_SNDã¨SIO_ERDY_RCV
|
---|
1416 |
|
---|
1417 | éä¿¡å¯è½ã³ã¼ã«ããã¯ã®èå¥çªå·ãSIO_ERDY_SNDã«ï¼åä¿¡éç¥ã³ã¼ã«ããã¯ã®
|
---|
1418 | èå¥çªå·ãSIO_ERDY_RCVã«ãã¯ãå®ç¾©ããï¼ã³ã¼ã«ããã¯ã®ç¦æ¢ï¼è¨±å¯ãè¡ãª
|
---|
1419 | ããµã¼ãã¹ã³ã¼ã«ï¼sio_ena_cbrã¨sio_dis_cbrï¼ã§ç¨ããï¼
|
---|
1420 |
|
---|
1421 | (6) ããã¤ã¹ãµã¼ãã¹ã«ã¼ãã³
|
---|
1422 |
|
---|
1423 | 以ä¸ã®ããã¤ã¹ãµã¼ãã«ã«ã¼ãã³ã¯ï¼ï¼å°ãªãã¨ãï¼ã·ãªã¢ã«I/Oãã¼ããã
|
---|
1424 | ã®å²è¾¼ã¿ãç¦æ¢ãããç¶æ
|
---|
1425 | ã§å¼ã³åºãããï¼ã¾ãï¼ã¿ã¹ã¯ã³ã³ããã¹ãï¼éã¿
|
---|
1426 | ã¹ã¯ã³ã³ããã¹ãã®ãããã§å¼ã³åºãããå ´åãããï¼ãããã§å¼ã³åºããã¦
|
---|
1427 | ãåä½ããããã«ããªããã°ãªããªãï¼ï¼
|
---|
1428 |
|
---|
1429 | (6-1) SIOPCB *sio_opn_por(ID siopid, VP_INT exinf)
|
---|
1430 |
|
---|
1431 | siopidã§æå®ãããã·ãªã¢ã«I/Oãã¼ãããªã¼ãã³ãã颿°ï¼exinfã¯ã·ãªã¢ã«
|
---|
1432 | I/Oãã¼ãã«å¯¾ããæ¡å¼µæ
|
---|
1433 | å ±ã§ï¼ã³ã¼ã«ããã¯ãå¼ã¶æã«ãã¼ããåºå¥ããã
|
---|
1434 | ãã«æ¸¡ãï¼
|
---|
1435 |
|
---|
1436 | (6-2) void sio_cls_por(SIOPCB *siopcb)
|
---|
1437 |
|
---|
1438 | siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ããã¯ãã¼ãºãã颿°ï¼
|
---|
1439 |
|
---|
1440 | (6-3) BOOL sio_snd_chr(SIOPCB *siopcb, char c)
|
---|
1441 |
|
---|
1442 | siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãã«ï¼cã§ç¤ºãããæåãéä¿¡ãã颿°ï¼
|
---|
1443 | æåãéä¿¡ã¬ã¸ã¹ã¿ã«å
|
---|
1444 | ¥ããå ´åã«ã¯TRUEãï¼åã«éä¿¡ããæåã®éä¿¡ãçµãã£
|
---|
1445 | ã¦ããªãããã«ï¼æåãéä¿¡ã¬ã¸ã¹ã¿ã«å
|
---|
1446 | ¥ããããªãã£ãå ´åã«ã¯FALSEãè¿
|
---|
1447 | ãï¼
|
---|
1448 |
|
---|
1449 | (6-4) INT sio_rcv_chr(SIOPCB *siopcb)
|
---|
1450 |
|
---|
1451 | siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãããæåãèªã颿°ï¼æåãåä¿¡ãã¦
|
---|
1452 | ããå ´åï¼èªãã æåã®ã³ã¼ãã¯æ£ã®å¤ã¨ãã¦è¿ãï¼æåãåä¿¡ãã¦ããªãå ´
|
---|
1453 | åã«ã¯-1ãè¿ãï¼
|
---|
1454 |
|
---|
1455 | (6-5) sio_ena_cbr(SIOPCB *siopcb, UINT cbrtn)
|
---|
1456 |
|
---|
1457 | siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãããã®ï¼cbrtnã§æå®ãããã³ã¼ã«ãã
|
---|
1458 | ã¯ã許å¯ããï¼cbrtnã«ã¯ï¼SIO_ERDY_SNDãSIO_ERDY_RCVãæå®ã§ããï¼
|
---|
1459 |
|
---|
1460 | (6-6) sio_dis_cbr(SIOPCB *siopcb, UINT cbrtn)
|
---|
1461 |
|
---|
1462 | siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãããã®ï¼cbrtnã§æå®ãããã³ã¼ã«ãã
|
---|
1463 | ã¯ãç¦æ¢ããï¼cbrtnã«ã¯ï¼SIO_ERDY_SNDãSIO_ERDY_RCVãæå®ã§ããï¼
|
---|
1464 |
|
---|
1465 | (7) ã³ã¼ã«ããã¯ã«ã¼ãã³
|
---|
1466 |
|
---|
1467 | ã¿ã¼ã²ããä¾åé¨ã¯ï¼å¿
|
---|
1468 | è¦ãªã¿ã¤ãã³ã°ã§ï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ã
|
---|
1469 | ã®ã¿ã¼ã²ããéä¾åé¨ã«å«ã¾ãã以ä¸ã®ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºã³ã ã
|
---|
1470 | ãªããã°ãªããªãï¼ãã ãï¼ããããã®ã³ã¼ã«ããã¯ãç¦æ¢ããã¦ããæã¯ï¼
|
---|
1471 | ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºãã¦ã¯ãªããªãï¼
|
---|
1472 |
|
---|
1473 | ã³ã¼ã«ããã¯ã«ã¼ãã³ã¯ï¼ï¼å°ãªãã¨ãï¼ã·ãªã¢ã«I/Oãã¼ãããã®å²è¾¼ã¿ã
|
---|
1474 | ç¦æ¢ãããç¶æ
|
---|
1475 | ã§ï¼éã¿ã¹ã¯ã³ã³ããã¹ãã§å¼ã³åºãï¼exinfã«ã¯ï¼ã·ãªã¢ã«
|
---|
1476 | I/Oãã¼ãã®ãªã¼ãã³æã«æå®ãããæ¡å¼µæ
|
---|
1477 | å ±ãæ¸¡ãï¼
|
---|
1478 |
|
---|
1479 | (7-1) void sio_ierdy_snd(VP_INT exinf)
|
---|
1480 |
|
---|
1481 | éä¿¡å¯è½ã³ã¼ã«ããã¯ã«ã¼ãã³ï¼ã·ãªã¢ã«I/Oãã¼ãã«å¯¾ãã¦æåãéä¿¡ã§ã
|
---|
1482 | ãç¶æ
|
---|
1483 | ã«ãªã£ãå ´åã«å¼ã³åºãï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¯ï¼ãã®ã³
|
---|
1484 | ã¼ã«ããã¯ã«ã¼ãã³ã®ä¸ã§ï¼sio_snd_chrãå¼ã³åºãã¦æ¬¡ã®æåãéä¿¡ãããï¼
|
---|
1485 | éä¿¡ãã¹ãæåããªãå ´åã«ã¯éä¿¡å¯è½ã³ã¼ã«ããã¯ãç¦æ¢ããï¼
|
---|
1486 |
|
---|
1487 | (7-2) void sio_ierdy_rcv(VP_INT exinf)
|
---|
1488 |
|
---|
1489 | åä¿¡éç¥ã³ã¼ã«ããã¯ã«ã¼ãã³ï¼ã·ãªã¢ã«I/Oãã¼ãããæåãåä¿¡ããå ´å
|
---|
1490 | ã«å¼ã³åºãï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¯ï¼ãã®ã³ã¼ã«ããã¯ã«ã¼ãã³
|
---|
1491 | ã®ä¸ã§ï¼å¿
|
---|
1492 | ãsio_rcv_chrãå¼ã³åºãã¦åä¿¡ããæåãåãåºãï¼
|
---|
1493 |
|
---|
1494 | 5.4 ã·ã¹ãã ãã°ã¿ã¹ã¯ç¨ã®ããã®å®ç¾©
|
---|
1495 |
|
---|
1496 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ãã·ã¹ãã ãã°ã¿ã¹ã¯ã®ããã®å®ç¾©ã¯æ¬¡ã®éãã§
|
---|
1497 | ããï¼ãããã®å®ç¾©ã¯ï¼cpu_config.hã¾ãã¯sys_config.hï¼ã¾ãã¯ããããã
|
---|
1498 | ã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«å«ããï¼
|
---|
1499 |
|
---|
1500 | (1) LOGTASK_PORTID
|
---|
1501 |
|
---|
1502 | ã·ã¹ãã ãã°ã¿ã¹ã¯ãï¼ã·ã¹ãã ãã°ãåºåããã·ãªã¢ã«ãã¼ãã®IDãå®ç¾©ã
|
---|
1503 | ããã¯ããã¿ã¼ã²ããä¾åé¨ã§æä¾ããï¼
|
---|
1504 |
|
---|
1505 | (2) ã·ã¹ãã ãã°ã¿ã¹ã¯é¢é£ã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
1506 |
|
---|
1507 | ã·ã¹ãã ãã°ã¿ã¹ã¯ã«é¢ãã以ä¸ã®ãã¯ããã¿ã¼ã²ããä¾åé¨ã§æä¾ããï¼ã
|
---|
1508 | ããã®ãã¯ããã¿ã¼ã²ããä¾åé¨ã§å®ç¾©ããªãå ´åã«ã¯ï¼ããã©ã«ãã®å¤ã使
|
---|
1509 | ãããï¼
|
---|
1510 |
|
---|
1511 | (2-1) LOGTASK_PRIORITY ã·ã¹ãã ãã°ã¿ã¹ã¯ã®åæåªå
|
---|
1512 | 度
|
---|
1513 | (2-2) LOGTASK_STACK_SIZE ã·ã¹ãã ãã°ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº
|
---|
1514 | (2-3) LOGTASK_INTERVAL ã·ã¹ãã ãã°ã¿ã¹ã¯ã®åä½ééï¼åä½: ããªç§ï¼
|
---|
1515 |
|
---|
1516 |
|
---|
1517 | ï¼ï¼ã¿ã¼ã²ããä¾åé¨å®è£
|
---|
1518 | ä¸ã®ãã³ã
|
---|
1519 |
|
---|
1520 | (1) ã¿ã¹ã¯ãã£ã¹ãããã£ã®2éãã®å®è£
|
---|
1521 | æ¹é
|
---|
1522 |
|
---|
1523 | ã¿ã¹ã¯ãã£ã¹ãããã£ã®å®è£
|
---|
1524 | æ¹éã¨ãã¦ï¼ã³ã³ããã¹ãã®ä¿åã»å¾©å¸°ã¨ã¿ã¹ã¯
|
---|
1525 | ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãä¸é£ã®ã«ã¼ãã³ã§è¡ãæ¹éï¼ãããæ¹éAã¨å¼ã¶ï¼
|
---|
1526 | ã¨ï¼ã³ã³ããã¹ãã®ä¿åã»å®è¡ããã¿ã¹ã¯ã®é¸æã»ã³ã³ããã¹ãã®å¾©å¸°ã¨ã¿ã¹
|
---|
1527 | ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãã°ãã°ãã®ã«ã¼ãã³ã§è¡ãæ¹éï¼ãããæ¹éBã¨
|
---|
1528 | å¼ã¶ï¼ãããï¼æ¹éBã¯ï¼ä¿åããã³ã³ããã¹ãæ
|
---|
1529 | å ±ãç¶æ³ã«å¿ãã¦å¿
|
---|
1530 | è¦æå°
|
---|
1531 | éã«ãããã¨ã容æã«ãªãã¨ããå©ç¹ãããï¼ãã ãï¼ã·ãã¥ã¬ã¼ã·ã§ã³ç°å¢
|
---|
1532 | ã®å ´åï¼å®ç¾æ¹æ³ã«ãã£ã¦ã¯æ¹éBãæ¡ããªãå¯è½æ§ãèããããï¼
|
---|
1533 |
|
---|
1534 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åç®æã¨ãã観ç¹ããã¿ãå ´åï¼2ã¤ã®æ¹éã«ã¯
|
---|
1535 | çæãã¹ãéããããï¼ä»¥ä¸ï¼ä¾ã«ãã説æããï¼ã¿ã¹ã¯1ã¨ã¿ã¹ã¯2ã®2ã¤ã®
|
---|
1536 | ã¿ã¹ã¯ãããï¼ã¿ã¹ã¯1ã®æ¹ãåªå
|
---|
1537 | 度ãé«ããã®ã¨ããï¼æåï¼ã¿ã¹ã¯2ãå®è¡
|
---|
1538 | ä¸ã«å²è¾¼ã¿ãã³ãã©ãèµ·åããï¼ãã®ä¸ããã¿ã¹ã¯1ãèµ·åãããçµæï¼ã¿ã¹
|
---|
1539 | ã¯2ãã¿ã¹ã¯1ã«ãã£ã¦ããªã¨ã³ããããããã®ã¨ããï¼ããã§ï¼ã¿ã¹ã¯1ãã¿
|
---|
1540 | ã¹ã¯2ã«å¯¾ãã¦ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãè¦æ±ããå¾ï¼å¾
|
---|
1541 | ã¡ç¶æ
|
---|
1542 | ã«å
|
---|
1543 | ¥ã
|
---|
1544 | ãµã¼ãã¹ã³ã¼ã«ãçºè¡ãï¼ãã®çµæã¿ã¹ã¯2ã«ãã£ã¹ããããããç¶æ³ãèã
|
---|
1545 | ãï¼ãã®æï¼ã¿ã¹ã¯ãã£ã¹ãããã£ã¯ï¼ã¿ã¹ã¯2ã«å¯¾ãã¦ã¿ã¹ã¯ä¾å¤å¦çã«ã¼
|
---|
1546 | ãã³ã®èµ·åå¦çãè¡ãå¿
|
---|
1547 | è¦ããããï¼æ¹å¼Aã®å ´åã«ã¯ï¼ã¿ã¹ã¯1ããæç¤ºçã«
|
---|
1548 | å¼ã°ãããã£ã¹ãããã£ã®ä¸ã§ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãè¡ãããã®ã«
|
---|
1549 | 対ãã¦ï¼æ¹éBã®å ´åã«ã¯ï¼ã¿ã¹ã¯2ã®ã³ã³ããã¹ãã復帰ããã«ã¼ãã³ã¸åå²
|
---|
1550 | ããå¾ï¼ã³ã³ããã¹ãã復帰ããå¦çã«ç¶ãå¦çã¨ãã¦ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ã
|
---|
1551 | ã³ã®èµ·åãè¡ãããï¼
|
---|
1552 |
|
---|
1553 | JSPã«ã¼ãã«ã§ã¯ï¼æ¹éAãæ¡ããæ¹éBãæ¡ãããã¿ã¼ã²ããä¾åé¨ã«ä»»ãã
|
---|
1554 | ãã¨ã¨ããï¼ãã®ããã«ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãã¿ã¹ã¯ãã£ã¹ãã
|
---|
1555 | ãã£ã«å«ãã仿§ã¨ãã¦ããï¼
|
---|
1556 |
|
---|
1557 | (2) å²è¾¼ã¿ãã³ãã©ã®åºå
|
---|
1558 | ¥å£å¦ç
|
---|
1559 |
|
---|
1560 | å²è¾¼ã¿ãã³ãã©ã®åºå
|
---|
1561 | ¥å£å¦çã®å
|
---|
1562 | 容ã¯ï¼ããã»ããµã®å²è¾¼ã¿ã¢ã¼ããã¯ãã£ã«
|
---|
1563 | ãã大ããç°ãªããï¼ããããã®å¦çã®æµãã¯æ¬¡ã®éãã§ããï¼CPUä¾å¤ãã³
|
---|
1564 | ãã©ã®åºå
|
---|
1565 | ¥å£å¦çãï¼å¼æ°ã渡ããã¨ãé¤ãã¦ã¯ï¼ããããã®å¦çã®æµãã¯å
|
---|
1566 | æ§ã§ããï¼ãã ãï¼ããã»ããµãå²è¾¼ã¿ã¨CPUä¾å¤ã§ç°ãªãæ±ããããå ´åã¯ï¼
|
---|
1567 | å®éã®åºå
|
---|
1568 | ¥å£å¦çã¯ããªãç°ãªã£ããã®ã¨ãªãï¼
|
---|
1569 |
|
---|
1570 | ------------------------------------------------------------
|
---|
1571 | ã¬ã¸ã¹ã¿ã®ä¿åï¼ä¸»ã«ã¹ã¯ã©ããã¬ã¸ã¹ã¿ï¼
|
---|
1572 | å²è¾¼ã¿ã¹ã¿ãã¯ã¸åæãï¼æãå¤å´ã®ãã³ãã©ã®ã¿ï¼
|
---|
1573 |
|
---|
1574 | ç»é²ãããå²è¾¼ã¿ãã³ãã©ã®å¼åºã
|
---|
1575 |
|
---|
1576 | ã¿ã¹ã¯ã¹ã¿ãã¯ã¸åæãï¼æãå¤å´ã®ãã³ãã©ã®ã¿ï¼
|
---|
1577 | if (æãå¤å´ã®ãã³ãã© && reqflg) {
|
---|
1578 | if (enadsp && runtsk != schedtsk) {
|
---|
1579 | ã¿ã¹ã¯ãã£ã¹ãããå¦ç
|
---|
1580 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çï¼calltexï¼
|
---|
1581 | }
|
---|
1582 | else {
|
---|
1583 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çï¼calltexï¼
|
---|
1584 | }
|
---|
1585 | }
|
---|
1586 | ã¬ã¸ã¹ã¿ã®å¾©å¸°ï¼ä¸»ã«ã¹ã¯ã©ããã¬ã¸ã¹ã¿ï¼
|
---|
1587 | å²è¾¼ã¿å¦çããã®ãªã¿ã¼ã³
|
---|
1588 |
|
---|
1589 | â»ããã³ãã©ãã¯ï¼å²è¾¼ã¿ãã³ãã©ã¨CPUä¾å¤ãã³ãã©ã®ç·ç§°ï¼
|
---|
1590 | â»ãæãå¤å´ã®ãã³ãã©ãã¯ãæ»ãå
|
---|
1591 | ãã¿ã¹ã¯ãã¨è¨ãæãããã¨ã
|
---|
1592 | ã§ããï¼
|
---|
1593 | ------------------------------------------------------------
|
---|
1594 |
|
---|
1595 | ãã®ä¸ã§ï¼å
|
---|
1596 | å´ã®ifæããããã®å ´åã§ãã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦ç
|
---|
1597 | ãè¡ãå¿
|
---|
1598 | è¦ããããã¨ããï¼ãã ãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãè¡ã対
|
---|
1599 | 象ã¿ã¹ã¯ã¯ç°ãªãï¼ï¼å
|
---|
1600 | å´ã®ifæã¯æ¬¡ã®ããã«æé©åã§ããå ´åãããï¼
|
---|
1601 |
|
---|
1602 | ------------------------------------------------------------
|
---|
1603 | if (enadsp && runtsk != schedtsk) {
|
---|
1604 | ã¿ã¹ã¯ãã£ã¹ãããå¦ç
|
---|
1605 | }
|
---|
1606 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çï¼calltexï¼
|
---|
1607 | ------------------------------------------------------------
|
---|
1608 |
|
---|
1609 |
|
---|
1610 | ï¼ï¼M68Kï¼68LC040ï¼ç¨ã®ã¿ã¼ã²ããä¾åé¨
|
---|
1611 |
|
---|
1612 | (1) åæ
|
---|
1613 |
|
---|
1614 | ãã¹ã¦ã®ã¿ã¹ã¯ãã¹ã¼ãã¼ãã¤ã¶ã¢ã¼ãã§å®è¡ãããã¨ã¨ãï¼ã¦ã¼ã¶ã¢ã¼ãã¯
|
---|
1615 | ç¨ããªãï¼
|
---|
1616 |
|
---|
1617 | (2) å®è¡ã³ã³ããã¹ãã¨CPUããã¯ç¶æ
|
---|
1618 |
|
---|
1619 |
|
---|
1620 | ã¿ã¹ã¯ã³ã³ããã¹ãã¯ãã¹ã¿ã¢ã¼ãï¼éã¿ã¹ã¯ã³ã³ããã¹ãã¯å²è¾¼ã¿ã¢ã¼ãã§
|
---|
1621 | å®è¡ããï¼sense_context ã¯ï¼SR ä¸ã®ãã¹ã¿ï¼å²è¾¼ã¿ã¢ã¼ãããããåç
|
---|
1622 | §ã
|
---|
1623 | ãæ¹æ³ã§å®ç¾ããï¼
|
---|
1624 |
|
---|
1625 | IPM ã 7 ã®æï¼NMI ãé¤ããã¹ã¦ã®å²è¾¼ã¿ãç¦æ¢ãããï¼ãã¤ãã®æã«éãï¼
|
---|
1626 | CPUããã¯ç¶æ
|
---|
1627 | ã§ãããã®ã¨ããï¼sense_lock ã¯ï¼SR ä¸ã® IPM ãåç
|
---|
1628 | §ããæ¹
|
---|
1629 | æ³ã§å®ç¾ããï¼NMI ã¯ã«ã¼ãã«ã®ç®¡çå¤ã®å²è¾¼ã¿ãªã®ã§ï¼CPUããã¯ç¶æ
|
---|
1630 | ã§
|
---|
1631 | NMI ãåãä»ããããã®ã¯å·®ãæ¯ããªãï¼
|
---|
1632 |
|
---|
1633 | chg_ipm ããµãã¼ããããã©ãããï¼SUPPORT_CHG_IPM ãå®ç¾©ãããã©ããã§
|
---|
1634 | 夿´ã§ããï¼ã¿ã¹ã¯ã³ã³ããã¹ãã§ IPM ã夿´ããå ´åã«ã¯ï¼chg_ipm ã使
|
---|
1635 | ããªããã°ãªããªãï¼chg_ipm ããµãã¼ãããªãå ´åã«ã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹
|
---|
1636 | ãã§ IPM ã夿´ãããã¨ã¯ã§ããªãï¼ã¤ã¾ãï¼ã¿ã¹ã¯ã³ã³ããã¹ãã§ã¯ï¼IPM
|
---|
1637 | ã¯å¸¸ã« 0 ã«ãªã£ã¦ããï¼
|
---|
1638 |
|
---|
1639 | chg_ipm ããµãã¼ãããå ´åã§ãï¼chg_ipm ã使ã£ã¦ IPM ã 7 ã«å¤æ´ããã
|
---|
1640 | ã¨ã¯è¨±ããªãï¼ããã¯ï¼chg_ipm 㨠loc_cpuï¼unl_cpu ã®é¢ä¿ãè¤éã«ãªãã
|
---|
1641 | ãã§ããï¼ã¾ãï¼IPM ã 1ã6 ã®æã«ãï¼ã¿ã¹ã¯ãã£ã¹ãããã¯ä¿çãããªãï¼
|
---|
1642 | IPM ã¯ï¼ã¿ã¹ã¯ãã£ã¹ãããã«ãã£ã¦ï¼æ°ããå®è¡ç¶æ
|
---|
1643 | ã«ãªã£ãã¿ã¹ã¯ã¸å¼ã
|
---|
1644 | ç¶ãããï¼ãã®ããï¼ã¿ã¹ã¯ãå®è¡ä¸ã«ï¼å¥ã®ã¿ã¹ã¯ã«ãã£ã¦ IPM ã夿´ã
|
---|
1645 | ããå ´åãããï¼ããã¯ï¼ãã£ã¹ãããã£ãæ¹éBã§å®è£
|
---|
1646 | ããå ´åã«ã¯ç´ ç´ã«
|
---|
1647 | å®è£
|
---|
1648 | ã§ãããï¼æ¹éAã§å®è£
|
---|
1649 | ããå ´åã«ã¯ãã¡ãã¡ã« IPM ã®è¨å®å¦çãå
|
---|
1650 | ¥ãï¼
|
---|
1651 | æ¹éAã§å®è£
|
---|
1652 | ããå ´åã«ã¯ï¼IPM ã 1ã6 ã®æã«ãã¿ã¹ã¯ãã£ã¹ãããã¯ä¿ç
|
---|
1653 | ãããã¨ããæ¹ãæ¥½ã§ããï¼
|
---|
1654 |
|
---|
1655 | (3) å²è¾¼ã¿ãã³ãã©åºå
|
---|
1656 | ¥å£å¦ç
|
---|
1657 |
|
---|
1658 | M68Kï¼M68020以ä¸ï¼ã§ã¯ï¼å²è¾¼ã¿ãã³ãã©ã®èµ·åã«ãã£ã¦ï¼ä½¿ç¨ããã¹ã¿ãã¯
|
---|
1659 | ãèªåçã«å²è¾¼ã¿ã¹ã¿ãã¯ã¸åãæããããï¼å²è¾¼ã¿ã¹ã¿ãã¯ã¸ã®åæãå¦ç
|
---|
1660 | ã¯å¿
|
---|
1661 | è¦ãªãï¼æãå¤å´ã®ãã³ãã©ã§ãããã©ããã¯ï¼ã¹ã¿ãã¯ä¸ã«ç©ã¾ãã
|
---|
1662 | SR ä¸ã®ãã¹ã¿ï¼å²è¾¼ã¿ã¢ã¼ãããããåç
|
---|
1663 | §ãã¦å¤å®ãã¦ããï¼ã¿ã¹ã¯ãã£ã¹
|
---|
1664 | ãããã¨ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çã¯ï¼ret_int ã«ã¼ãã³ã«ä»»ãã¦ã
|
---|
1665 | ãï¼
|
---|
1666 |
|
---|
1667 | reqflg ããã§ãã¯ããåã«å²è¾¼ã¿ãç¦æ¢ããã®ã¯ï¼å²è¾¼ã¿ãç¦æ¢ããªãã¨ï¼
|
---|
1668 | reqflg ããã§ãã¯ããå¾ã«èµ·åãããå²è¾¼ã¿ãã³ãã©å
|
---|
1669 | ã§ãã£ã¹ããããè¦
|
---|
1670 | æ±ãããå ´åã«ï¼ãã£ã¹ããããè¡ãããªãããã§ããï¼
|
---|
1671 |
|
---|
1672 | interrupt_entry:
|
---|
1673 | movem.l %d0-%d1/%a0-%a1, -(%sp) /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿å */
|
---|
1674 | jsr <å²è¾¼ã¿ãã³ãã©> /* å²è¾¼ã¿ãã³ãã©ãå¼ã³åºã */
|
---|
1675 | movem.l (%sp)+, %d0-%d1/%a0-%a1 /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ã復帰 */
|
---|
1676 | btst.b #4, (%sp) /* æ»ãå
|
---|
1677 | ãå²è¾¼ã¿ã¢ã¼ããªã */
|
---|
1678 | jbeq 1f /* ããã«ãªã¿ã¼ã³ */
|
---|
1679 | ori.w #0x0700, %sr /* å²è¾¼ã¿ç¦æ¢ */
|
---|
1680 | tst.l reqflg /* reqflg ã TRUE ã§ããã° */
|
---|
1681 | jbne ret_int /* ret_int 㸠*/
|
---|
1682 | 1: rte
|
---|
1683 |
|
---|
1684 | (4) CPUä¾å¤ãã³ãã©åºå
|
---|
1685 | ¥å£å¦ç
|
---|
1686 |
|
---|
1687 | M68Kã§ã¯ï¼CPUä¾å¤ãã³ãã©ã®èµ·åã«ãã£ã¦å²è¾¼ã¿ã¢ã¼ãã¸ã®ç§»è¡ã¯ããããï¼
|
---|
1688 | 使ç¨ããã¹ã¿ãã¯ã¯åãæãããªãï¼ãã®ããï¼CPUä¾å¤ãã³ãã©å
|
---|
1689 | ã§å²è¾¼ã¿
|
---|
1690 | ã¢ã¼ãã«åãæãã¦ããï¼ã¾ãï¼æãå¤å´ã®ãã³ãã©ã§ãããã©ãããå¤å®ã
|
---|
1691 | ãããã«ï¼å²è¾¼ã¿ã¢ã¼ãã«åãæããåã® SR ãã¹ã¿ãã¯ä¸ã«ä¿åããï¼ã¿ã¹
|
---|
1692 | ã¯ãã£ã¹ãããã¨ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çã¯ï¼ret_exc ã«ã¼ãã³ã«
|
---|
1693 | ä»»ãã¦ããï¼
|
---|
1694 |
|
---|
1695 | CPUä¾å¤ãã³ãã©ã¸ã®å¼æ°ã¯ï¼ä¾å¤ã¹ã¿ãã¯ãã¬ã¼ã ã®å
|
---|
1696 | é çªå°ï¼ããªãã¡ï¼
|
---|
1697 | CPUä¾å¤ãã³ãã©ã®åºå
|
---|
1698 | ¥å£å¦çãå¼ã°ããç´å¾ã®ã¹ã¿ãã¯ãã¤ã³ã¿ï¼ã¨ãã¦ã
|
---|
1699 | ãï¼
|
---|
1700 |
|
---|
1701 | reqflg ããã§ãã¯ããåã«å²è¾¼ã¿ãç¦æ¢ããã®ã¯ï¼å²è¾¼ã¿ãç¦æ¢ããªãã¨ï¼
|
---|
1702 | reqflg ããã§ãã¯ããå¾ã«èµ·åãããå²è¾¼ã¿ãã³ãã©å
|
---|
1703 | ã§ãã£ã¹ããããè¦
|
---|
1704 | æ±ãããå ´åã«ï¼ãã£ã¹ããããè¡ãããªãããã§ããï¼
|
---|
1705 |
|
---|
1706 | exception_entry:
|
---|
1707 | movem.l %d0-%d1/%a0-%a1, -(%sp) /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿å */
|
---|
1708 | lea.l 16(%sp), %a0 /* ä¾å¤ãã¬ã¼ã ã®å
|
---|
1709 | é ã A0 ã« */
|
---|
1710 | move.w %sr, %d0 /* SR ã D0 ã« */
|
---|
1711 | and.w #~0x1000, %sr /* å²è¾¼ã¿ã¢ã¼ã */
|
---|
1712 | move.l %d0, -(%sp) /* å
|
---|
1713 | ã® SR ãã¹ã¿ãã¯ã«ä¿å */
|
---|
1714 | move.l %a0, -(%sp) /* A0 ã弿°ã¨ãã¦æ¸¡ã */
|
---|
1715 | jsr <CPUä¾å¤ãã³ãã©> /* CPUä¾å¤ãã³ãã©ãå¼ã³åºã */
|
---|
1716 | addq.l #4, %sp /* 弿°ãæ¨ã¦ã */
|
---|
1717 | move.l (%sp)+, %d0
|
---|
1718 | and.w #0x1000, %d0 /* å
|
---|
1719 | ãå²è¾¼ã¿ã¢ã¼ããªã */
|
---|
1720 | jbeq 1f /* ããã«ãªã¿ã¼ã³ */
|
---|
1721 | or.w #0x1700, %sr /* ãã¹ã¿ã¢ã¼ãã»å²è¾¼ã¿ç¦æ¢ */
|
---|
1722 | tst.l reqflg /* reqflg ã TRUE ã§ããã° */
|
---|
1723 | jbne ret_exc /* ret_exc 㸠*/
|
---|
1724 | 1: movem.l (%sp)+, %d0-%d1/%a0-%a1 /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ã復帰 */
|
---|
1725 | rte
|
---|
1726 |
|
---|
1727 | (5) æ¹éAã®ãã£ã¹ãããã£
|
---|
1728 |
|
---|
1729 | 以ä¸ã®ã³ã¼ãã§ã¯ï¼chg_ipm ã¯ãµãã¼ããã¦ããªãï¼ã¾ãï¼æ¡ç¨ããªãã£ãã³
|
---|
1730 | ã¼ãã§ããããï¼åä½ãã¹ãããã¦ããªãï¼
|
---|
1731 |
|
---|
1732 | CTXB ã¯ãVP mspãã®ã¿ãå«ãæ§é ä½ã¨ããï¼ã¿ã¹ã¯ã®ã³ã³ããã¹ãã¯ï¼æ¬¡ã®
|
---|
1733 | å³ã®ããã«ã¿ã¹ã¯ã®ã¹ã¿ãã¯ä¸ã«ä¿åããï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ï¼D0ãD1ï¼A0
|
---|
1734 | ãA1ï¼ã¨ãã®ä»ã®ã¬ã¸ã¹ã¿ãå¥ã
|
---|
1735 | ã«ç©ãã®ã¯ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·å
|
---|
1736 | ã«é½åãããããã§ããï¼
|
---|
1737 |
|
---|
1738 | * å° +-----------------------------------+ â TCB ä¸ã«ä¿åããã¦ãã MSP
|
---|
1739 | * â | D2 |
|
---|
1740 | * +-----------------------------------+
|
---|
1741 | * . . . . . .
|
---|
1742 | * +-----------------------------------+
|
---|
1743 | * | D7 |
|
---|
1744 | * +-----------------------------------+
|
---|
1745 | * | A2 |
|
---|
1746 | * +-----------------------------------+
|
---|
1747 | * . . . . . .
|
---|
1748 | * +-----------------------------------+
|
---|
1749 | * | A6 |
|
---|
1750 | * +-----------------------------------+
|
---|
1751 | * | D0 |
|
---|
1752 | * +-----------------------------------+
|
---|
1753 | * | D1 |
|
---|
1754 | * +-----------------------------------+
|
---|
1755 | * | A0 |
|
---|
1756 | * +-----------------------------------+
|
---|
1757 | * | A1 |
|
---|
1758 | * +-----------------+-----------------+
|
---|
1759 | * | SR | PC (ä¸16bit) |
|
---|
1760 | * +-----------------+-----------------+
|
---|
1761 | * â | PC (ä¸16bit) | ä¾å¤æ
|
---|
1762 | å ± |
|
---|
1763 | * 大 +-----------------+-----------------+ â ãã£ã¹ãããã£èµ·ååã® MSP
|
---|
1764 |
|
---|
1765 | dispatch ã¯ï¼trap_dispatch ã TRAPå½ä»¤ã§å¼ã¶é¢æ°ã¨ããï¼
|
---|
1766 |
|
---|
1767 | exit_and_dispatch:
|
---|
1768 | or.w #0x1000, %sr /* ãã¹ã¿ã¢ã¼ã */
|
---|
1769 | jbra dispatch_1
|
---|
1770 |
|
---|
1771 | trap_dispatch:
|
---|
1772 | movem.l %d0-%d1/%a0-%a1, -(%sp) /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿å */
|
---|
1773 | movem.l %d2-%d7/%a2-%a6, -(%sp) /* æ®ãã®ã¬ã¸ã¹ã¿ãä¿å */
|
---|
1774 | move.l runtsk, %a0 /* ã³ã³ããã¹ããä¿å */
|
---|
1775 | move.l %sp, TCB_msp(%a0)
|
---|
1776 | dispatch_1:
|
---|
1777 | move.l schedtsk, %a0
|
---|
1778 | move.l %a0, runtsk /* schedtsk ã runtsk ã« */
|
---|
1779 | jbeq dispatch_3 /* schedtsk ããããï¼ */
|
---|
1780 | move.l TCB_msp(%a0), %sp /* ã³ã³ããã¹ãã復帰 */
|
---|
1781 | movem.l (%sp)+, %d2-%d7/%a2-%a6 /* ã¬ã¸ã¹ã¿ã復帰 */
|
---|
1782 | btst.b #TCB_enatex_bit, TCB_enatex(%a0)
|
---|
1783 | jbeq dispatch_2 /* enatex ã FALSE ãªããªã¿ã¼ã³ */
|
---|
1784 | tst.l TCB_texptn(%a0) /* texptn ã 0 ãªããªã¿ã¼ã³ */
|
---|
1785 | jbeq dispatch_2
|
---|
1786 | jsr call_texrtn /* ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å¼åºã */
|
---|
1787 | dispatch_2:
|
---|
1788 | movem.l (%sp)+, %d0-%d1/%a0-%a1 /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ã復帰 */
|
---|
1789 | rte
|
---|
1790 |
|
---|
1791 | dispatch_3:
|
---|
1792 | stop #0x2000 /* å²è¾¼ã¿å¾
|
---|
1793 | ã¡ï¼å²è¾¼ã¿ã¢ã¼ãï¼ */
|
---|
1794 | /*
|
---|
1795 | * ããã§å²è¾¼ã¿ã¢ã¼ãã«åãæããã®ã¯ï¼ããã§çºçããå²è¾¼ã¿å¦ç
|
---|
1796 | * ã«ã©ã®ã¹ã¿ãã¯ã使ããã¨ããåé¡ã®è§£æ±ºã¨ï¼å²è¾¼ã¿ãã³ãã©å
|
---|
1797 | ã§
|
---|
1798 | * ã®ã¿ã¹ã¯ãã£ã¹ãããã®é²æ¢ã¨ãã2ã¤ã®æå³ãããï¼
|
---|
1799 | */
|
---|
1800 | or.w #0x1700, %sr /* ãã¹ã¿ã¢ã¼ãã»å²è¾¼ã¿ç¦æ¢ */
|
---|
1801 | tst.l reqflg /* reqflg ã FALSE ãªã */
|
---|
1802 | jbeq dispatch_3 /* dispatch_3 㸠*/
|
---|
1803 | clr.l reqflg /* reqflg ãã¯ãªã¢ */
|
---|
1804 | jbra dispatch_1
|
---|
1805 |
|
---|
1806 | ret_int:
|
---|
1807 | /*
|
---|
1808 | * ããã§ã¯ï¼å²è¾¼ã¿ã¢ã¼ãã»å²è¾¼ã¿ç¦æ¢ç¶æ
|
---|
1809 | ï¼
|
---|
1810 | */
|
---|
1811 | move.l %a1, -(%sp) /* A1 ãå²è¾¼ã¿ã¹ã¿ãã¯ã«ä¿å */
|
---|
1812 | movec.l %msp, %a1 /* ã¿ã¹ã¯ã¹ã¿ãã¯ã A1 ã« */
|
---|
1813 | move.l (%sp)+, -(%a1) /* A1 ãã¿ã¹ã¯ã¹ã¿ãã¯ã«ç©ã */
|
---|
1814 | movem.l %d0-%d1/%a0, -(%a1) /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãç©ã */
|
---|
1815 | clr.l reqflg /* reqflg ãã¯ãªã¢ */
|
---|
1816 | move.l runtsk, %a0 /* A0 â runtsk */
|
---|
1817 | tst.l enadsp /* enadsp ã FALSE ãªã */
|
---|
1818 | jbeq ret_int_3 /* ret_int_3 㸠*/
|
---|
1819 | cmp.l schedtsk, %a0 /* runtsk 㨠schedtsk ãåããªã */
|
---|
1820 | jbeq ret_int_3 /* ret_int_3 㸠*/
|
---|
1821 |
|
---|
1822 | /* ãã£ã¹ãããå¦ç */
|
---|
1823 | movem.l %d2-%d7/%a2-%a6, -(%a1) /* ã¬ã¸ã¹ã¿ãä¿å */
|
---|
1824 | move.l %a1, TCB_msp(%a0) /* ã¿ã¹ã¯ã¹ã¿ãã¯ãä¿å */
|
---|
1825 | ret_int_1:
|
---|
1826 | move.l schedtsk, %a0
|
---|
1827 | move.l %a0, runtsk /* schedtsk ã runtsk ã« */
|
---|
1828 | jbne ret_int_2 /* schedtsk ããããï¼ */
|
---|
1829 | ret_int_1x:
|
---|
1830 | stop #0x2000 /* å²è¾¼ã¿å¾
|
---|
1831 | ã¡ï¼å²è¾¼ã¿ãã³ãã©å
|
---|
1832 | ï¼ */
|
---|
1833 | or.w #0x0700, %sr /* å²è¾¼ã¿ç¦æ¢ */
|
---|
1834 | tst.l reqflg /* reqflg ã FALSE ãªã */
|
---|
1835 | jbeq ret_int_1x /* ret_int_1x 㸠*/
|
---|
1836 | clr.l reqflg /* reqflg ãã¯ãªã¢ */
|
---|
1837 | jbra ret_int_1
|
---|
1838 | ret_int_2:
|
---|
1839 | move.l TCB_msp(%a0), %a1 /* ã¿ã¹ã¯ã¹ã¿ãã¯ã A1 ã« */
|
---|
1840 | movem.l (%a1)+, %d2-%d7/%a2-%a6 /* ã¬ã¸ã¹ã¿ã復帰 */
|
---|
1841 |
|
---|
1842 | ret_int_3:
|
---|
1843 | btst.b #TCB_enatex_bit, TCB_enatex(%a0)
|
---|
1844 | jbeq ret_int_4 /* enatex ã FALSE ãªããªã¿ã¼ã³ */
|
---|
1845 | tst.l TCB_texptn(%a0) /* texptn ã 0 ã§ãªããã° */
|
---|
1846 | jbne ret_int_5 /* ret_int_5 㸠*/
|
---|
1847 | ret_int_4
|
---|
1848 | movem.l (%a1)+, %d0-%d1/%a0 /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ã復帰 */
|
---|
1849 | move.l (%a1)+, -(%sp) /* A1 ãå²è¾¼ã¿ã¹ã¿ãã¯ã«ä¿å */
|
---|
1850 | movec.l %a1, %msp /* A1 ãã¿ã¹ã¯ã¹ã¿ãã¯ã« */
|
---|
1851 | move.l (%sp)+, %a1 /* A1 ãå²è¾¼ã¿ã¹ã¿ãã¯ãã復帰 */
|
---|
1852 | rte
|
---|
1853 |
|
---|
1854 | ret_int_5:
|
---|
1855 | move.w 16(%a1), %d0 /* æ»ãå
|
---|
1856 | ã® SR ã D0 ã« */
|
---|
1857 | move.l TCB_exinf(%a0), -(%a1) /* exinf ãã¿ã¹ã¯ã¹ã¿ãã¯ã« */
|
---|
1858 | move.l TCB_texptn(%a0), -(%a1) /* texptn ãã¿ã¹ã¯ã¹ã¿ãã¯ã« */
|
---|
1859 | move.l #ret_tex, -(%a1) /* #ret_tex ãã¿ã¹ã¯ã¹ã¿ãã¯ã« */
|
---|
1860 | clr.l TCB_enatex(%a0) /* runtsk->enatex ãã¯ãªã¢ */
|
---|
1861 | clr.l TCB_texptn(%a0) /* runtsk->texptn ãã¯ãªã¢ */
|
---|
1862 | move.w #ä¾å¤æ
|
---|
1863 | å ±, -(%a1) /* ä¾å¤ã¹ã¿ãã¯ãã¬ã¼ã ãä½ã */
|
---|
1864 | move.l TCB_texrtn(%a0), -(%a1)
|
---|
1865 | move.w %d0, -(%a1)
|
---|
1866 | movec.l %a1, %msp /* A1 ãã¿ã¹ã¯ã¹ã¿ãã¯ã« */
|
---|
1867 | rte
|
---|
1868 |
|
---|
1869 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³å¼åºãæã®ã¹ã¿ãã¯
|
---|
1870 |
|
---|
1871 | * å° +-----------------------------------+
|
---|
1872 | * â | ret_tex |
|
---|
1873 | * +-----------------------------------+
|
---|
1874 | * | texptn |
|
---|
1875 | * +-----------------------------------+
|
---|
1876 | * | exinf |
|
---|
1877 | * +-----------------------------------+
|
---|
1878 | * | D0 |
|
---|
1879 | * +-----------------------------------+
|
---|
1880 | * | D1 |
|
---|
1881 | * +-----------------------------------+
|
---|
1882 | * | A0 |
|
---|
1883 | * +-----------------------------------+
|
---|
1884 | * | A1 |
|
---|
1885 | * +-----------------+-----------------+
|
---|
1886 | * | SR | PC (ä¸16bit) |
|
---|
1887 | * +-----------------+-----------------+
|
---|
1888 | * â | PC (ä¸16bit) | ä¾å¤æ
|
---|
1889 | å ± |
|
---|
1890 | * 大 +-----------------+-----------------+
|
---|
1891 |
|
---|
1892 | ret_tex:
|
---|
1893 | addq.l #8, %sp /* 弿°ã¨ãªã¢ãæ¨ã¦ã */
|
---|
1894 | or.w #0x0700, %sr /* å²è¾¼ã¿ç¦æ¢ */
|
---|
1895 | jsr call_texrtn /* ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·å */
|
---|
1896 | movem.l (%sp)+, %d0-%d1/%a0-%a1 /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ã復帰 */
|
---|
1897 | rte
|
---|
1898 |
|
---|
1899 | (6) æ¹éBï¼æ¡ç¨ï¼
|
---|
1900 |
|
---|
1901 | ã½ã¼ã¹ã³ã¼ããåç
|
---|
1902 | §ï¼
|
---|
1903 |
|
---|
1904 |
|
---|
1905 | ï¼ï¼ã¿ã¼ã²ããä¾åé¨å®è£
|
---|
1906 | ä¸ã®æ³¨æç¹
|
---|
1907 |
|
---|
1908 | 以ä¸ã¯ï¼ã¿ã¼ã²ããä¾åé¨ãå®è£
|
---|
1909 | ããä¸ã§ãã¹ããã¡ãªç¹ããªã¹ãã¢ãããã
|
---|
1910 | ãã®ã§ããï¼
|
---|
1911 |
|
---|
1912 | (1) ã¿ã¹ã¯çµäºæ
|
---|
1913 |
|
---|
1914 | ext_tsk ãå¼ã°ãã«ã¿ã¹ã¯ã®ã¡ã¤ã³é¢æ°ãããªã¿ã¼ã³ããå ´åï¼ext_tsk ãå¼
|
---|
1915 | ã³åºããã®ã¨åçã®å¦çãè¡ãããã«ããªããã°ãªããªãï¼ã¿ã¹ã¯èµ·åæã«ï¼
|
---|
1916 | ã¡ã¤ã³é¢æ°ããã®ãªã¿ã¼ã³ã¢ãã¬ã¹ã ext_tsk ã®çªå°ã«è¨å®ãã¦ããæ¹æ³ã
|
---|
1917 | æ¨å¥¨ããï¼
|
---|
1918 |
|
---|
1919 | (2) ã¿ã¹ã¯ã³ã³ããã¹ãã§ã®å²è¾¼ã¿ãã¹ã¯ã®å¤æ´
|
---|
1920 |
|
---|
1921 | chg_iXX ããµãã¼ãããå ´åï¼ã¿ã¹ã¯åæ¿ãã®éã«ï¼chg_iXX ã«ãã£ã¦è¨å®ã
|
---|
1922 | ãå²è¾¼ã¿ãã¹ã¯ã®å¤ï¼ã¿ã¹ã¯ã³ã³ããã¹ãã«ãããå²è¾¼ã¿ãã¹ã¯ã®å¤ï¼ãæ°ã
|
---|
1923 | ãã¿ã¹ã¯ã«å¼ãç¶ããã¨ãæ¨å¥¨ããï¼ç¹ã«ï¼å²è¾¼ã¿ã®åºå£ã§ã¿ã¹ã¯åæ¿ããè¡
|
---|
1924 | ãç®æã¯æ³¨æãå¿
|
---|
1925 | è¦ã§ããï¼å
|
---|
1926 | ·ä½çã«ã¯ï¼ä»¥åã«åãã¿ã¹ã¯ãåãã¦ããæã®
|
---|
1927 | å²è¾¼ã¿ãã¹ã¯ãã¹ã¿ãã¯ã«ç©ã¾ãã¦ããå ´åã«ï¼ããããã®ã¾ã¾æ¸ãæ»ãã¦ã¯
|
---|
1928 | ãªããªãï¼
|
---|
1929 |
|
---|
1930 | (3) ã¿ã¹ã¯ä¾å¤å¦çã®å®è¡ã³ã³ããã¹ã
|
---|
1931 |
|
---|
1932 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã¯ã¿ã¹ã¯ã³ã³ããã¹ãã§å®è¡ãããããï¼ã¿ã¹ã¯ä¾å¤
|
---|
1933 | å¦çã«ã¼ãã³å®è¡æã«ã¯ã¹ã¿ãã¯ãã¤ã³ã¿ãã¿ã¹ã¯ã¹ã¿ãã¯ãæãã¦ããå¿
|
---|
1934 | è¦
|
---|
1935 | ãããï¼ç¹ã«å²è¾¼ã¿ã®åºå£å¦çã§æ³¨æãããã¨ï¼ ï¼
|
---|
1936 |
|
---|
1937 | (4) CPUä¾å¤ãã³ãã©
|
---|
1938 |
|
---|
1939 | CPUä¾å¤ãã³ãã©å®è¡æã¯ï¼å²è¾¼ã¿ãã¹ã¯ã®å¤ãCPUä¾å¤çºçç´åã¨åãã«ãªã
|
---|
1940 | ããã«ãããã¨ï¼
|
---|
1941 |
|
---|
1942 | (5) å®è¡ãã¹ãã¿ã¹ã¯ããªãå ´åã®å¦ç
|
---|
1943 |
|
---|
1944 | å®è¡ãã¹ãã¿ã¹ã¯ããªãï¼schedtsk ã NULLï¼å ´åã«ï¼ããã»ããµãå¾
|
---|
1945 | ã¡ã¢ã¼
|
---|
1946 | ãï¼ã¹ãªã¼ãã¢ã¼ãï¼ã«ç§»è¡ãããå¦çã¨ï¼å²è¾¼ã¿ã許å¯ããå¦çã¨ã¯ï¼ä¸å¯
|
---|
1947 | åã«è¡ãªãå¿
|
---|
1948 | è¦ãããï¼ãããä¸å¯åã«è¡ãªããªãå ´åï¼å²è¾¼ã¿ã許å¯ããç´
|
---|
1949 | å¾ã«å²è¾¼ã¿ãå
|
---|
1950 | ¥ãï¼ãã®ä¸ã§ã¿ã¹ã¯ãå®è¡å¯è½ç¶æ
|
---|
1951 | ã«ãªãã¨ï¼å®è¡ãã¹ãã¿ã¹
|
---|
1952 | ã¯ãããã«ããããããããã»ããµãå¾
|
---|
1953 | ã¡ã¢ã¼ãã«ãªã£ã¦ãã¾ãï¼
|
---|
1954 |
|
---|
1955 | ã¾ãï¼å®è¡ãã¹ãã¿ã¹ã¯ããªãï¼å²è¾¼ã¿ã許å¯ãã¦å²è¾¼ã¿ãå¾
|
---|
1956 | ã¤éã¯ï¼runtsk
|
---|
1957 | ã NULL ã«è¨å®ããªããã°ãªããªãï¼ãã®ããã«è¨å®ããªãã¨ï¼å²è¾¼ã¿ãã³ã
|
---|
1958 | ã©ãã iget_tid ãå¼ã³åºããéã®åä½ã仿§ã«åè´ããªããªãï¼Î¼ITRON4.0
|
---|
1959 | 仿§ã§ã¯ï¼å®è¡ç¶æ
|
---|
1960 | ã®ã¿ã¹ã¯ããªãå ´åã«ï¼iget_tid 㯠TSK_NONE ãè¿ãã
|
---|
1961 | ã¨ã«ãªã£ã¦ããï¼iget_tid ã®ã³ã¼ãã¯ï¼runtsk ã NULL ã®æã« TSK_NONE ã
|
---|
1962 | è¿ãããã«ãªã£ã¦ããï¼ï¼
|
---|
1963 |
|
---|
1964 | m68k ã®å®è£
|
---|
1965 | ã¯ï¼config/m68k/cpu_support.S ããï¼ï¼
|
---|
1966 |
|
---|
1967 | dispatcher:
|
---|
1968 | move.l schedtsk, %a0
|
---|
1969 | move.l %a0, runtsk /* schedtsk ã runtsk ã« */
|
---|
1970 | jbeq dispatcher_1 /* runtsk ããããï¼ */
|
---|
1971 |
|
---|
1972 | ã¨ãªã£ã¦ããï¼schedtsk ã NULL ã®æã«ï¼runtsk ã NULL ã«ãã¦ããï¼å²è¾¼
|
---|
1973 | ã¿å¾
|
---|
1974 | ã¡ã«å
|
---|
1975 | ¥ãï¼ããããªããï¼ãã®å¦çãæãã¦ããã¨ï¼schedtsk ã NULL
|
---|
1976 | ã®æã«ã¯ï¼runtsk ãããã«æ´æ°ããªãï¼ãã®ããï¼å®è¡ç¶æ
|
---|
1977 | ã®ã¿ã¹ã¯ããªã
|
---|
1978 | å ´åã« iget_tid ãå¼ã¶ã¨ï¼åã«å®è¡ããã¦ããã¿ã¹ã¯ã®ID ãè¿ãï¼
|
---|
1979 |
|
---|
1980 | 以ä¸
|
---|