1 |
|
---|
2 | TOPPERS/ASP3ã«ã¼ãã«
|
---|
3 | ã¿ã¼ã²ããä¾åé¨ ãã¼ãã£ã³ã°ã¬ã¤ã
|
---|
4 |
|
---|
5 | 対å¿ãã¼ã¸ã§ã³: Release 3.B.0
|
---|
6 | æçµæ´æ°: 2016å¹´1æ12æ¥
|
---|
7 |
|
---|
8 | ãã®ããã¥ã¡ã³ãã¯ï¼TOPPERS/ASP3ã«ã¼ãã«ãï¼æªãµãã¼ãã®ã¿ã¼ã²ããã·ã¹
|
---|
9 | ãã ã«ãã¼ãã£ã³ã°ããããã«å¿
|
---|
10 | è¦ã¨ãªãã¿ã¼ã²ããä¾åé¨ã®å®è£
|
---|
11 | æ¹æ³ã説æ
|
---|
12 | ãããã®ã§ããï¼
|
---|
13 |
|
---|
14 | ----------------------------------------------------------------------
|
---|
15 | TOPPERS/ASP Kernel
|
---|
16 | Toyohashi Open Platform for Embedded Real-Time Systems/
|
---|
17 | Advanced Standard Profile Kernel
|
---|
18 |
|
---|
19 | Copyright (C) 2005-2016 by Embedded and Real-Time Systems Laboratory
|
---|
20 | Graduate School of Information Science, Nagoya Univ., JAPAN
|
---|
21 |
|
---|
22 | ä¸è¨èä½æ¨©è
|
---|
23 | ã¯ï¼ä»¥ä¸ã®(1)ã(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
|
---|
24 | ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹
|
---|
25 | å¤ã»åé
|
---|
26 | å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
|
---|
27 | (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
|
---|
28 | 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
|
---|
29 | ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼
|
---|
30 | (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
|
---|
31 | ç¨ã§ããå½¢ã§åé
|
---|
32 | å¸ããå ´åã«ã¯ï¼åé
|
---|
33 | å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨
|
---|
34 | è
|
---|
35 | ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
|
---|
36 | ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
|
---|
37 | (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
|
---|
38 | ç¨ã§ããªãå½¢ã§åé
|
---|
39 | å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
|
---|
40 | ã¨ï¼
|
---|
41 | (a) åé
|
---|
42 | å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è
|
---|
43 | ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
|
---|
44 | ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
|
---|
45 | (b) åé
|
---|
46 | å¸ã®å½¢æ
|
---|
47 | ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã«
|
---|
48 | å ±åãããã¨ï¼
|
---|
49 | (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
|
---|
50 | 害ãããï¼ä¸è¨èä½æ¨©è
|
---|
51 | ããã³TOPPERSããã¸ã§ã¯ããå
|
---|
52 | 責ãããã¨ï¼
|
---|
53 | ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
|
---|
54 | ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
|
---|
55 | ããã³TOPPERSããã¸ã§ã¯ãã
|
---|
56 | å
|
---|
57 | 責ãããã¨ï¼
|
---|
58 |
|
---|
59 | æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
|
---|
60 | ã
|
---|
61 | ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
|
---|
62 | ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
|
---|
63 | ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã
|
---|
64 | ã®è²¬ä»»ãè² ããªãï¼
|
---|
65 |
|
---|
66 | $Id: porting.txt 507 2016-01-12 01:58:33Z ertl-hiro $
|
---|
67 | ----------------------------------------------------------------------
|
---|
68 |
|
---|
69 | âç®æ¬¡
|
---|
70 |
|
---|
71 | ï¼ï¼å
|
---|
72 | ±éäºé
|
---|
73 |
|
---|
74 | 1.1 ã¿ã¼ã²ããä¾åé¨ã®æ§æ
|
---|
75 | 1.1.1 ã¿ã¼ã²ããç¥ç§°ã¨ã¿ã¼ã²ããä¾åé¨ãã£ã¬ã¯ããª
|
---|
76 | 1.1.2 éçºç°å¢ä¾åé¨ãã£ã¬ã¯ããª
|
---|
77 | 1.1.3 ããã»ããµã³ã¢ä¾åé¨ãã£ã¬ã¯ããª
|
---|
78 | 1.1.4 ãããä¾åé¨ãã£ã¬ã¯ããª
|
---|
79 | 1.2 ååã®è¡çªã®é²æ¢
|
---|
80 | 1.3 ããããã¡ã¤ã«ã®è¨è¿°ã«ã¼ã«
|
---|
81 | 1.3.1 ããããã¡ã¤ã«ã®èªå·±å®çµ
|
---|
82 | 1.3.2 å¤éã¤ã³ã¯ã«ã¼ãã¸ã®å¯¾å¿
|
---|
83 | 1.3.3 ã¢ã»ã³ããªè¨èªã¨ã®ããããã¡ã¤ã«ã®å
|
---|
84 | ±ç¨
|
---|
85 | 1.4 ã¤ã³ã¯ã«ã¼ãè¨è¿°ã®æ¹æ³
|
---|
86 | 1.5 ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
|
---|
87 | ¥å¦çã®å®ç¾ã«é¢ããå¶ç´
|
---|
88 | ï¼ï¼ã·ã¹ãã æ§ç¯ç°å¢ã®ã¿ã¼ã²ããä¾åé¨
|
---|
89 | 2.1 ã·ã¹ãã ç¥ç§°ã»éçºç°å¢ç¥ç§°çã®è¨å®
|
---|
90 | 2.2 ä¾åé¨ãã£ã¬ã¯ããªã®è¨å®
|
---|
91 | 2.3 ã³ãã³ãåã®è¨å®
|
---|
92 | 2.4 ã³ã³ãã¤ã«ãªãã·ã§ã³ã¨ãªãã¸ã§ã¯ããã¡ã¤ã«ã®è¨å®
|
---|
93 | 2.5 ãªãã»ãããã¡ã¤ã«ã®çææ¹æ³
|
---|
94 | 2.6 ãªã³ã¯æ¹æ³ã®è¨å®
|
---|
95 | 2.7 ä¾åé¢ä¿ã®å®ç¾©
|
---|
96 | 2.8 ãã®ä»ã®è¨å®
|
---|
97 | ï¼ï¼TOPPERSå
|
---|
98 | ±éå®ç¾©ã®ã¿ã¼ã²ããä¾åé¨
|
---|
99 | 3.1 ã¿ã¼ã²ããèå¥ãã¯ã
|
---|
100 | 3.2 æ´æ°åã®æ大å¤ã»æå°å¤ã»ãããæ°
|
---|
101 | 3.3 ãµã¤ãºã®æå®ãããæ´æ°åï¼ãã®æ大å¤ã»æå°å¤ï¼æ´æ°å®æ°ãä½ããã¯ã
|
---|
102 | 3.4 ãµã¤ãºã®æå®ãããæµ®åå°æ°ç¹åï¼ãã®æ大å¤ã»æå°å¤ã®ãã¯ã
|
---|
103 | 3.5 ã³ã³ãã¤ã©ã®æ¡å¼µæ©è½ã®ããã®ãã¯ãå®ç¾©
|
---|
104 | 3.6 æ¨æºçãªå®ç¾©ã®ä¸æ¸ã
|
---|
105 | 3.7 ã¢ãµã¼ã·ã§ã³ã®ããã®å®ç¾©
|
---|
106 | ï¼ï¼ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ï¼SILï¼ã®ã¿ã¼ã²ããä¾åé¨
|
---|
107 | 4.1 å
|
---|
108 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
109 | ã®ç®¡ç
|
---|
110 | 4.2 å¾®å°æéå¾
|
---|
111 | ã¡
|
---|
112 | 4.3 ããã»ããµã®ã¨ã³ãã£ã¢ã³
|
---|
113 | 4.4 ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°
|
---|
114 | 4.5 I/O空éã¢ã¯ã»ã¹é¢æ°
|
---|
115 | ï¼ï¼ã«ã¼ãã«APIã®ã¿ã¼ã²ããä¾åé¨
|
---|
116 | 5.1 ã¿ã¼ã²ããå®ç¾©ã§ãµãã¼ãããæ©è½
|
---|
117 | 5.2 å²è¾¼ã¿åªå
|
---|
118 | 度ã®ç¯å²
|
---|
119 | 5.3 é«å解è½ã¿ã¤ãã®ã¿ã¤ãå¨æã¨ã«ã¦ã³ãå¤ã®é²ã¿å¹
|
---|
120 |
|
---|
121 | 5.4 ã¡ã¢ãªé å確ä¿ã®ããã®åå®ç¾©
|
---|
122 | 5.5 ããããã¿ã¼ã³ã®ãããæ°
|
---|
123 | 5.6 ã¡ã¢ãªé å確ä¿ã®ããã®ãã¯ã
|
---|
124 | 5.7 ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µã®ããã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
125 | ï¼ï¼ã«ã¼ãã«å®è£
|
---|
126 | ã®ã¿ã¼ã²ããä¾åé¨
|
---|
127 | 6.1 ã«ã¼ãã«å®è£
|
---|
128 | ã®ã¿ã¼ã²ããä¾åé¨ã®å
|
---|
129 | ±éäºé
|
---|
130 |
|
---|
131 | 6.2 ãã¬ã¼ã¹ãã°æ©è½ã¸ã®å¯¾å¿
|
---|
132 | 6.3 ã·ã¹ãã ç¶æ
|
---|
133 | ã®ç®¡ç
|
---|
134 | 6.3.1 å
|
---|
135 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
136 | ã®ç®¡ç
|
---|
137 | 6.3.2 ã³ã³ããã¹ãã®ç®¡ç
|
---|
138 | 6.3.3 CPUããã¯ç¶æ
|
---|
139 | ã®ç®¡ç
|
---|
140 | 6.4 å²è¾¼ã¿ã«é¢é£ããã·ã¹ãã ç¶æ
|
---|
141 | ã®ç®¡ç
|
---|
142 | 6.4.1 å²è¾¼ã¿åªå
|
---|
143 | 度ãã¹ã¯ã®ç®¡ç
|
---|
144 | 6.4.2 å²è¾¼ã¿è¦æ±ç¦æ¢ãã©ã°ã®ç®¡ç
|
---|
145 | 6.4.3 å²è¾¼ã¿è¦æ±ã®ã¯ãªã¢
|
---|
146 | 6.4.4 å²è¾¼ã¿è¦æ±ã®ããã¼ã
|
---|
147 | 6.5 ã¿ã¹ã¯ãã£ã¹ãããã£
|
---|
148 | 6.5.1 ã¿ã¹ã¯ã³ã³ããã¹ããããã¯ã¨ã¿ã¹ã¯åæåã³ã³ããã¹ããããã¯
|
---|
149 | 6.5.2 ãã£ã¹ãããã£æ¬ä½
|
---|
150 | 6.5.3 èªçºçãªãã£ã¹ããã
|
---|
151 | 6.5.4 ãã£ã¹ãããã£ã®åä½éå§
|
---|
152 | 6.5.5 ç¾å¨ã®ã³ã³ããã¹ããæ¨ã¦ã¦ãã£ã¹ããã
|
---|
153 | 6.5.6 ã¿ã¹ã¯ã®èµ·åæºå
|
---|
154 | 6.6 å²è¾¼ã¿ãã³ãã©
|
---|
155 | 6.6.1 å²è¾¼ã¿ãã³ãã©ã®åºå
|
---|
156 | ¥å£å¦ç
|
---|
157 | 6.6.2 å²è¾¼ã¿ãã³ãã©æ¯ã®åºå
|
---|
158 | ¥å£å¦çã®çæ
|
---|
159 | 6.6.3 å²è¾¼ã¿ãã³ãã©ã®è¨å®
|
---|
160 | 6.6.4 å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨å®
|
---|
161 | 6.6.5 å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çã®å¤æ´
|
---|
162 | 6.6.6 ããã©ã«ãã®å²è¾¼ã¿ãã³ãã©
|
---|
163 | 6.6.7 ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿
|
---|
164 | 6.6.8 å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®çæ
|
---|
165 | 6.7 CPUä¾å¤ãã³ãã©ã¨CPUä¾å¤çºçæã®ã·ã¹ãã ç¶æ
|
---|
166 | ã®åç
|
---|
167 | §
|
---|
168 | 6.7.1 CPUä¾å¤ãã³ãã©ã®åºå
|
---|
169 | ¥å£å¦ç
|
---|
170 | 6.7.2 CPUä¾å¤ãã³ãã©ã®åºå
|
---|
171 | ¥å£å¦çã®çæ
|
---|
172 | 6.7.3 CPUä¾å¤ãã³ãã©ã®è¨å®
|
---|
173 | 6.7.4 CPUä¾å¤ç®¡çæ©è½ã®åæåå¦çã®å¤æ´
|
---|
174 | 6.7.5 ããã©ã«ãã®CPUä¾å¤ãã³ãã©
|
---|
175 | 6.7.6 CPUä¾å¤çºçæã®ã·ã¹ãã ç¶æ
|
---|
176 | ã®åç
|
---|
177 | §
|
---|
178 | 6.8 ã«ã¼ãã«ã®èµ·åã»çµäºã¨ã¹ã¿ãã¯é åãªã©
|
---|
179 | 6.9 ã«ã¼ãã«å
|
---|
180 | é¨ã®ãã¥ã¼ãã³ã°
|
---|
181 | 6.9.1 ãããããããµã¼ã
|
---|
182 | 6.9.2 ããããã£ã¼ã«ã
|
---|
183 | 6.10 ã«ã¼ãã«å®è£
|
---|
184 | ã«é¢ãããã®ä»ã®å®ç¾©
|
---|
185 | 6.10.1 ãªãã¸ã§ã¯ãå±æ§ã®æ¡å¼µ
|
---|
186 | 6.10.2 ã¨ã©ã¼ãã§ãã¯æ¹æ³ã®æå®
|
---|
187 | 6.10.3 éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿ãã¯é å
|
---|
188 | 6.10.4 空ã©ãã«ã®å®ç¾©
|
---|
189 | 6.11 ãã¬ã¼ã¹ãã°æ©è½ã«é¢ããè¨å®
|
---|
190 | 6.11.1 åå¾ã§ãããã¬ã¼ã¹ãã°ã®ç¨®é¡ã¨ãã¯ã
|
---|
191 | 6.11.2 ãã¬ã¼ã¹ãã°è¨é²ã®ãµã³ãã«ã³ã¼ã
|
---|
192 | 6.12 ã«ã¼ãã«å®è£
|
---|
193 | ã®ã¿ã¼ã²ããä¾åé¨ã®ããã®ãªãã¼ã è¨è¿°
|
---|
194 | 6.13 é«å解è½ã¿ã¤ããã©ã¤ã
|
---|
195 | 6.13.1 é«å解è½ã¿ã¤ããã©ã¤ãã®ãã¡ã¤ã«æ§æ
|
---|
196 | 6.13.2 é«å解è½ã¿ã¤ãã®æä½ã¨å²è¾¼ã¿å¦ç
|
---|
197 | 6.13.3 é«å解è½ã¿ã¤ããã©ã¤ãã®å®è£
|
---|
198 | ã¢ããã¼ã
|
---|
199 | 6.13.4 ã¿ã¤ã ãã£ãã¯ãç¨ããã¿ã¤ããã©ã¤ãã®å®è£
|
---|
200 |
|
---|
201 | 6.14 ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãï¼ãªãã·ã§ã³ï¼
|
---|
202 | 6.14.1 ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãã®ãã¡ã¤ã«æ§æ
|
---|
203 | 6.14.2 ãªã¼ãã©ã³ã¿ã¤ãã®æä½ã¨å²è¾¼ã¿å¦ç
|
---|
204 | 6.15 åçã¡ã¢ãªç®¡çï¼ãªãã·ã§ã³ï¼
|
---|
205 | 6.15.1 TLSFãç¨ããã¡ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«ã®ä¾
|
---|
206 | ï¼ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿è¨å®ãã¡ã¤ã«ã®ã¿ã¼ã²ããä¾åé¨
|
---|
207 | 7.1 è¨å®ãã¡ã¤ã«ã¨ã¿ã¼ã²ããä¾åé¨ã®ä½ç½®ä»ã
|
---|
208 | 7.2 ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾åé¨
|
---|
209 | 7.2.1 ã¿ã¼ã²ããéä¾åé¨ãã¤ã³ã¯ã«ã¼ãããåã«å®ç¾©ãã¹ãå¤æ°
|
---|
210 | 7.2.2 ã¿ã¼ã²ããéä¾åé¨ã§å®ç¾©ãããå¤æ°
|
---|
211 | 7.3 ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾åé¨
|
---|
212 | 7.3.1 ã¿ã¼ã²ããéä¾åé¨ãã¤ã³ã¯ã«ã¼ãããåã«å®ç¾©ãã¹ãå¤æ°
|
---|
213 | 7.3.2 ã¿ã¼ã²ããä¾åé¨ã§è¡ãã¹ãã¨ã©ã¼ãã§ãã¯
|
---|
214 | 7.4 cfg1_out.cã®ãªã³ã¯ã«å¿
|
---|
215 | è¦ãªã¹ã¿ãã®å®ç¾©ãã¡ã¤ã«
|
---|
216 | ï¼ï¼ã·ã¹ãã ãµã¼ãã¹çã®ã¿ã¼ã²ããä¾åé¨
|
---|
217 | 8.0 ã·ã¹ãã ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾åé¨
|
---|
218 | 8.1 ã·ã¹ãã ãã°æ©è½ã®ã¿ã¼ã²ããä¾åå®ç¾©
|
---|
219 | 8.2 ã·ã¹ãã ãã°ã¿ã¹ã¯ã®ã¿ã¼ã²ããä¾åå®ç¾©
|
---|
220 | 8.3 ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ããä¾åé¨
|
---|
221 | 8.3.1 å¤æ°ï¼ãã¼ã¿åï¼ç®¡çé¢æ°
|
---|
222 | 8.3.2 ããã¤ã¹ãµã¼ãã¹ã«ã¼ãã³
|
---|
223 | 8.3.3 ã³ã¼ã«ããã¯ã«ã¼ãã³
|
---|
224 | 8.4 ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåã®ã¿ã¼ã²ããä¾åå®ç¾©
|
---|
225 | 8.5 ãµã³ãã«ããã°ã©ã ã¨ãã¹ãããã°ã©ã ã®ã¿ã¼ã²ããä¾åå®ç¾©
|
---|
226 | 8.6 å®è¡æéåå¸éè¨ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾åå®ç¾©
|
---|
227 | ï¼ï¼ãã®ä»
|
---|
228 | 9.1 ããã¥ã¡ã³ã
|
---|
229 | 9.2 ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«
|
---|
230 | ï¼ï¼ï¼ãªãã¡ã¬ã³ã¹
|
---|
231 | 10.1 ã¿ã¼ã²ããä¾åé¨ã®ãã¡ã¤ã«ä¸è¦§
|
---|
232 |
|
---|
233 |
|
---|
234 | ï¼ï¼å
|
---|
235 | ±éäºé
|
---|
236 |
|
---|
237 |
|
---|
238 | 1.1 ã¿ã¼ã²ããä¾åé¨ã®æ§æ
|
---|
239 |
|
---|
240 | ã¿ã¼ã²ããä¾åé¨ã¯ï¼targetãã£ã¬ã¯ããªã®ä¸ã«ï¼ã¿ã¼ã²ãããã¼ãã¦ã§ã¢ã¨
|
---|
241 | éçºç°å¢ã®çµã¿åããæ¯ã«ç¨æããï¼ãã ãï¼ã¿ã¼ã²ããä¾åé¨ã®åå©ç¨æ§ã
|
---|
242 | èæ
|
---|
243 | ®ãï¼éçºç°å¢ï¼ããã»ããµã³ã¢ï¼ãããã®ã¿ã«ä¾åããé¨åãï¼éçºç°å¢
|
---|
244 | ä¾åé¨ï¼ããã»ããµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ã¨ããå½¢ã§åãåãã¦ãããï¼
|
---|
245 | åãåãæ¹ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã®å®è£
|
---|
246 | ã«ä»»ããã¦ããï¼éçºç°å¢ä¾åé¨ï¼ã
|
---|
247 | ãã»ããµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ã¯ï¼archãã£ã¬ã¯ããªã®ä¸ã«ç½®ãï¼
|
---|
248 |
|
---|
249 | ASP3ã«ã¼ãã«ã®ã¿ã¼ã²ããä¾åé¨ã¯ï¼ã·ã¹ãã æ§ç¯ç°å¢ã®ã¿ã¼ã²ããä¾åé¨ï¼
|
---|
250 | TOPPERSå
|
---|
251 | ±éå®ç¾©ã®ã¿ã¼ã²ããä¾åé¨ï¼ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ï¼SILï¼
|
---|
252 | ã®ã¿ã¼ã²ããä¾åé¨ï¼ã«ã¼ãã«APIã®ã¿ã¼ã²ããä¾åé¨ï¼ã«ã¼ãã«å®è£
|
---|
253 | ã®ã¿ã¼ã²ã
|
---|
254 | ãä¾åé¨ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿è¨å®ãã¡ã¤ã«ã®ã¿ã¼ã²ããä¾åé¨ãå«ãï¼ï¼ã·
|
---|
255 | ã¹ãã ãµã¼ãã¹çã®ã¿ã¼ã²ããä¾åé¨ï¼ã¿ã¼ã²ããä¾åé¨ã«é¢ããããã¥ã¡ã³
|
---|
256 | ãã§æ§æãããï¼
|
---|
257 |
|
---|
258 | 1.1.1 ã¿ã¼ã²ããç¥ç§°ã¨ã¿ã¼ã²ããä¾åé¨ãã£ã¬ã¯ããª
|
---|
259 |
|
---|
260 | æ°ããã¿ã¼ã²ããä¾åé¨ãä½æããæã¯ï¼ã¾ãï¼ã¿ã¼ã²ããç¥ç§°ãå®ããï¼ã¿ã¼
|
---|
261 | ã²ããç¥ç§°ã¯ï¼ã·ã¹ãã ç¥ç§°ã¨éçºç°å¢ç¥ç§°ã"_"ã§é£çµãããã®ã¨ããï¼ã·ã¹
|
---|
262 | ãã ç¥ç§°ã«ç¨ããæåã¯è±å°æåã¨æ°åã¨"_"ã«ï¼éçºç°å¢ç¥ç§°ã«ç¨ããæåã¯
|
---|
263 | è±å°æåã¨æ°åã«éå®ããï¼GNUéçºç°å¢ã®éçºç°å¢ç¥ç§°ã¯ï¼"gcc"ã¨ããï¼ä¾
|
---|
264 | ãã°ï¼ã·ã¹ãã ç¥ç§°ã"ct11mpcore"ã§ï¼GNUéçºç°å¢ãç¨ããå ´åã«ã¯ï¼ã¿ã¼ã²ã
|
---|
265 | ãç¥ç§°ã¯"ct11mpcore_gcc"ã¨ãªãï¼
|
---|
266 |
|
---|
267 | ã¿ã¼ã²ããä¾åé¨ã®ãã¡ã¤ã«ãç½®ãããã«ï¼targetãã£ã¬ã¯ããªã®ä¸ã«ï¼ã¿ã¼
|
---|
268 | ã²ããç¥ç§°ãå称ã¨ãããã£ã¬ã¯ããªãä½æããï¼ãããã¿ã¼ã²ããä¾åé¨ãã£
|
---|
269 | ã¬ã¯ããªã¨å¼ã¶ï¼
|
---|
270 |
|
---|
271 | 1.1.2 éçºç°å¢ä¾åé¨ãã£ã¬ã¯ããª
|
---|
272 |
|
---|
273 | ã¿ã¼ã²ããä¾åé¨ããéçºç°å¢ä¾åé¨ãåãåããå ´åã«ã¯ï¼archãã£ã¬ã¯ã
|
---|
274 | ãªã®ä¸ã«ï¼éçºç°å¢ç¥ç§°ãå称ã¨ãããã£ã¬ã¯ããªãä½æããï¼ãããéçºç°
|
---|
275 | å¢ä¾åé¨ãã£ã¬ã¯ããªã¨å¼ã¶ï¼
|
---|
276 |
|
---|
277 | 1.1.3 ããã»ããµã³ã¢ä¾åé¨ãã£ã¬ã¯ããª
|
---|
278 |
|
---|
279 | ã¿ã¼ã²ããä¾åé¨ããããã»ããµã³ã¢ä¾åé¨ãåãåããå ´åã«ã¯ï¼ã¾ãï¼ã
|
---|
280 | ãã»ããµã³ã¢ç¥ç§°ãå®ããï¼ããã»ããµã³ã¢ç¥ç§°ã«ç¨ããæåã¯ï¼è±å°æåã¨
|
---|
281 | æ°åã¨"_"ã«éå®ããï¼
|
---|
282 |
|
---|
283 | ããã»ããµã³ã¢ä¾åé¨ã®ãã¡ã¤ã«ãç½®ãããã«ï¼archãã£ã¬ã¯ããªã®ä¸ã«ï¼ã
|
---|
284 | ãã»ããµã³ã¢ç¥ç§°ã¨éçºç°å¢ç¥ç§°ã"_"ã§é£çµãããã®ãå称ã¨ãããã£ã¬ã¯ã
|
---|
285 | ãªãä½æããï¼ä¾ãã°ï¼ããã»ããµã³ã¢ç¥ç§°ã"arm"ã§ï¼GNUéçºç°å¢ãç¨ãã
|
---|
286 | å ´åã«ã¯ï¼ãã£ã¬ã¯ããªã®å称ã¯"arm_gcc"ã¨ãªãï¼
|
---|
287 |
|
---|
288 | ãããä¾åé¨ãã£ã¬ã¯ããªãããã»ããµã³ã¢ä¾åé¨ãã£ã¬ã¯ããªã®ä¸ã«ç½®ãå ´
|
---|
289 | åï¼ã1.1.4 ãããä¾åé¨ãã£ã¬ã¯ããªãã®ç¯ã®(1)ã®å ´åï¼ãé¤ãã¦ã¯ï¼ãã
|
---|
290 | ãããã»ããµã³ã¢ä¾åé¨ãã£ã¬ã¯ããªã¨å¼ã¶ï¼
|
---|
291 |
|
---|
292 | 1.1.4 ãããä¾åé¨ãã£ã¬ã¯ããª
|
---|
293 |
|
---|
294 | ã¿ã¼ã²ããä¾åé¨ãããããä¾åé¨ãåãåããå ´åã«ã¯ï¼ã¾ãï¼ãããç¥ç§°
|
---|
295 | ãå®ããï¼ãããç¥ç§°ã«ç¨ããæåã¯ï¼è±å°æåã¨æ°åã¨"_"ã«éå®ããï¼
|
---|
296 |
|
---|
297 | ãããä¾åé¨ã®ãã¡ã¤ã«ãç½®ããã£ã¬ã¯ããªï¼ããããããä¾åé¨ãã£ã¬ã¯ã
|
---|
298 | ãªã¨å¼ã¶ï¼ã¯ï¼ãã®ç½®ãå ´æã«ãã£ã¦ï¼æ¬¡ã®2ã¤æ¹æ³ãããï¼
|
---|
299 |
|
---|
300 | (1) ããã»ããµã³ã¢ä¾åé¨ãã£ã¬ã¯ããªã®ä¸ã«ç½®ã
|
---|
301 |
|
---|
302 | ãããä¾åé¨ãã£ã¬ã¯ããªãï¼ããã»ããµã³ã¢ä¾åé¨ãã£ã¬ã¯ããªã®ä¸ã«ç½®ã
|
---|
303 | å ´åã«ã¯ï¼ãããç¥ç§°ããã£ã¬ã¯ããªã®å称ã¨ããï¼
|
---|
304 |
|
---|
305 | ãã®æ¹æ³ãåãå ´åï¼ããã»ããµã³ã¢ã®ã¿ã«ä¾åãããã¡ã¤ã«ã¯ï¼ããã»ããµ
|
---|
306 | ã³ã¢ä¾åé¨ãã£ã¬ã¯ããªã®ç´ä¸ã«ã¯ç½®ããï¼ããã»ããµã³ã¢ä¾åé¨ãã£ã¬ã¯ã
|
---|
307 | ãªã®ä¸ã«"common"ã¨ããå称ã®ãã£ã¬ã¯ããªãä½æãï¼ãã®ä¸ã«ç½®ãï¼ãã®å ´
|
---|
308 | åã«ã¯ï¼ããã»ããµã³ã¢ã®ã¿ã«ä¾åãããã¡ã¤ã«ãç½®ããã£ã¬ã¯ããªãï¼ãã
|
---|
309 | ã»ããµã³ã¢ä¾åé¨ãã£ã¬ã¯ããªã¨å¼ã¶ï¼
|
---|
310 |
|
---|
311 | ä¾ãã°ï¼ããã»ããµã³ã¢ç¥ç§°ã"arm"ï¼ãããç¥ç§°ã"mpcore"ã§ï¼GNUéçºç°å¢
|
---|
312 | ãç¨ããå ´åã«ã¯ï¼ããã»ããµã³ã¢ä¾åé¨ãã£ã¬ã¯ããªã¯
|
---|
313 | arch/arm_gcc/commonï¼ãããä¾åé¨ãã£ã¬ã¯ããªã¯arch/arm_gcc/mpcoreã¨ãª
|
---|
314 | ãï¼
|
---|
315 |
|
---|
316 | (2) archãã£ã¬ã¯ããªã®ç´ä¸ã«ç½®ã
|
---|
317 |
|
---|
318 | ãããä¾åé¨ãã£ã¬ã¯ããªãï¼archãã£ã¬ã¯ããªã®ç´ä¸ã«ç½®ãå ´åã«ã¯ï¼ãã
|
---|
319 | ãç¥ç§°ã¨éçºç°å¢ç¥ç§°ã"_"ã§é£çµãããã®ãï¼ãã£ã¬ã¯ããªã®å称ã¨ããï¼
|
---|
320 |
|
---|
321 | 1.2 ååã®è¡çªã®é²æ¢
|
---|
322 |
|
---|
323 | TOPPERSããã¸ã§ã¯ããæä¾ããã½ããã¦ã§ã¢ã®ããã«ï¼TOPPERS_ã§å§ã¾ãã·ã³
|
---|
324 | ãã«ãäºç´ãã¦ããï¼ããããã¡ã¤ã«ä¸ã«è¨è¿°ããï¼ã¢ããªã±ã¼ã·ã§ã³ããå
|
---|
325 | ç
|
---|
326 | §ã§ããå
|
---|
327 | é¨ã·ã³ãã«ã¯ï¼TOPPERS_ã§å§ã¾ãååã¨ããï¼
|
---|
328 |
|
---|
329 | ã¾ãï¼_kernel_ã§å§ã¾ãã·ã³ãã«ã¯ï¼ã«ã¼ãã«å
|
---|
330 | é¨ã®å¤æ°ãé¢æ°ã®ããã«äºç´
|
---|
331 | ãã¦ããï¼ã«ã¼ãã«å
|
---|
332 | é¨ã®å¤æ°ãé¢æ°ã®ååã§ï¼ãªã³ã¯æã«ã¢ããªã±ã¼ã·ã§ã³
|
---|
333 | ã®ååã¨è¡çªããå¯è½æ§ããããã®ã¯ï¼ãªãã¼ã è¨è¿°ã«ãªã¹ãã¢ãããããã¨
|
---|
334 | ã§ï¼ã³ã³ãã¤ã«æã«_kernel_ã§å§ã¾ãååã«ç½®ãæãããã¨ã¨ãã¦ããï¼
|
---|
335 |
|
---|
336 | 1.3 ããããã¡ã¤ã«ã®è¨è¿°ã«ã¼ã«
|
---|
337 |
|
---|
338 | ããããã¡ã¤ã«ã¯ï¼ãã®ç¯ã®ã«ã¼ã«ã«å¾ã£ã¦è¨è¿°ããªããã°ãªããªãï¼ãªãï¼
|
---|
339 | ãã®ç¯ã®è¨è¿°å
|
---|
340 | 容ã¯ï¼æ¬æ¥ã¯ã³ã¼ãã£ã³ã°ã«ã¼ã«ã«å«ããã¹ãå
|
---|
341 | 容ã§ããï¼
|
---|
342 |
|
---|
343 | 1.3.1 ããããã¡ã¤ã«ã®èªå·±å®çµ
|
---|
344 |
|
---|
345 | ããããã¡ã¤ã«ã¯ï¼èªå·±å®çµããããã«ï¼å¿
|
---|
346 | è¦ãªä»ã®ããããã¡ã¤ã«ãã¤ã³ã¯
|
---|
347 | ã«ã¼ãããã®ãååã¨ããï¼è¨ãæããã¨ï¼ããããã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãã
|
---|
348 | ãåã«ï¼ä»ã®ããããã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ããã¦ãããã¨ãä»®å®ãã¦ã¯ãªããª
|
---|
349 | ãï¼
|
---|
350 |
|
---|
351 | 1.3.2 å¤éã¤ã³ã¯ã«ã¼ãã¸ã®å¯¾å¿
|
---|
352 |
|
---|
353 | ããããã¡ã¤ã«ã«ã¯ï¼å¤éã«ã¤ã³ã¯ã«ã¼ãããã¦ãåé¡ãªãããã«ããããã®
|
---|
354 | æ¡ä»¶ã³ã³ãã¤ã«è¨è¿°ãå«ãããã®ã¨ããï¼ä¾ãã°ï¼target_kernel_impl.hã§ã
|
---|
355 | ãã°ï¼ãã¡ã¤ã«ã®å
|
---|
356 | é ã«
|
---|
357 |
|
---|
358 | #ifndef TOPPERS_TARGET_KERNEL_IMPL_H
|
---|
359 | #define TOPPERS_TARGET_KERNEL_IMPL_H
|
---|
360 |
|
---|
361 | ãï¼ãã¡ã¤ã«ã®æ«å°¾ã«
|
---|
362 |
|
---|
363 | #endif /* TOPPERS_TARGET_KERNEL_IMPL_H */
|
---|
364 |
|
---|
365 | ãè¨è¿°ããï¼
|
---|
366 |
|
---|
367 | 1.3.3 ã¢ã»ã³ããªè¨èªã¨ã®ããããã¡ã¤ã«ã®å
|
---|
368 | ±ç¨
|
---|
369 |
|
---|
370 | ããããã¡ã¤ã«ã®ä¸ã§ï¼ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãããã¤ã³ã¯ã«ã¼ã
|
---|
371 | ãããå¯è½æ§ã®ãããã®ã¯ï¼æ¬¡ã®ã«ã¼ã«ã«å¾ã£ã¦è¨è¿°ãããã®ã¨ããï¼
|
---|
372 |
|
---|
373 | ã»TOPPERS_MACRO_ONLYããã¯ãå®ç¾©ããã¦ããå ´åã«ã¯ï¼ã¢ã»ã³ããªè¨èªã§ã¯
|
---|
374 | ã解éã§ããªãè¨è¿°ï¼ãã¯ãå®ç¾©ä»¥å¤ã®è¨è¿°ï¼ãé¤ãããã«è¨è¿°ããï¼
|
---|
375 |
|
---|
376 | ã»ç¬¦å·ç¡ãæ´æ°åã®å®æ°å¤ã¯ï¼UINT_CãULONG_Cãªã©ã®æ´æ°å®æ°ãä½ãããã®ã
|
---|
377 | ãã¯ããç¨ãã¦è¨è¿°ããï¼ãã ãï¼ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãããã¤
|
---|
378 | ãã³ã¯ã«ã¼ãããããã¡ã¤ã«ä¸ã§ãã£ã¦ãï¼Cè¨èªã®ã¿ã§ç¨ããå®æ°ã¯ï¼ããã
|
---|
379 | ãã®ãã¯ãã使ã£ã¦è¨è¿°ããå¿
|
---|
380 | è¦ã¯ãªãï¼
|
---|
381 |
|
---|
382 | ã»ã¢ã»ã³ããªè¨èªãããç¨ããå®æ°ã®å®ç¾©ä¸ã«åãã£ã¹ããç¨ããå ´åã«ã¯ï¼
|
---|
383 | ãCASTãã¯ããç¨ãã¦è¨è¿°ããï¼
|
---|
384 |
|
---|
385 | ã¢ã»ã³ããªè¨èªããããããã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããéã«ã¯ï¼å¿
|
---|
386 | è¦ã«å¿ãã¦ï¼
|
---|
387 | TOPPERS_MACRO_ONLYï¼UINT_Cï¼ULONG_Cï¼CASTããã¯ãå®ç¾©ãã¦ããï¼ã¤ã³ã¯ã«ã¼
|
---|
388 | ãããªããã°ãªããªãï¼
|
---|
389 |
|
---|
390 | 1.4 ã¤ã³ã¯ã«ã¼ãè¨è¿°ã®æ¹æ³
|
---|
391 |
|
---|
392 | éçºç°å¢ã§ç¨æããã¦ããæ¨æºããããã¡ã¤ã«ããã³includeãã£ã¬ã¯ããªä¸ã®
|
---|
393 | æ¨æºããããã¡ã¤ã«ã¯ï¼ã#include <...>ãã«ããã¤ã³ã¯ã«ã¼ãããï¼
|
---|
394 |
|
---|
395 | ãã®ä»ã®ããããã¡ã¤ã«ã¯ï¼ã#include "..."ãã«ããã¤ã³ã¯ã«ã¼ãããï¼ãã
|
---|
396 | ããã¡ã¤ã«ãï¼ã«ã¬ã³ããã£ã¬ã¯ããªãã¤ã³ã¯ã«ã¼ããããã¡ã¤ã«ã¨åããã£
|
---|
397 | ã¬ã¯ããªä»¥å¤ã®ãã£ã¬ã¯ããªã«ç½®ããã¦ããå ´åã«ã¯ï¼æ¬¡ã®ããã«ãã¹æå®ã
|
---|
398 | è¡ãï¼
|
---|
399 |
|
---|
400 | ã»ã¿ã¼ã²ããä¾åé¨ãã£ã¬ã¯ããªï¼éçºç°å¢ä¾åé¨ãã£ã¬ã¯ããªï¼ããã»ããµ
|
---|
401 | ãã³ã¢ä¾åé¨ãã£ã¬ã¯ããªï¼ãããä¾åé¨ãã£ã¬ã¯ããªã«ç½®ããã¦ããå ´åã¯ï¼
|
---|
402 | ããã¹æå®ãè¡ããï¼ãã¡ã¤ã«åã®ã¿ãè¨è¿°ããï¼
|
---|
403 | ä¾ï¼#include "target_kernel_impl.h"
|
---|
404 | ä¾ï¼#include "core_kernel_impl.h"
|
---|
405 | ä¾ï¼#include "tool_stddef.h"
|
---|
406 |
|
---|
407 | ãããã¯ï¼ã³ã³ãã¤ã©ã«ä¸ãã-Iãªãã·ã§ã³ã«ããï¼ã¤ã³ã¯ã«ã¼ããããã¡ã¤
|
---|
408 | ãã«ãå¶å¾¡ã§ããããã«ããããã§ããï¼
|
---|
409 |
|
---|
410 | ã»ãã®ä»ã®ãã£ã¬ã¯ããªã«ç½®ããã¦ããå ´åã«ã¯ï¼ã½ã¼ã¹ããã°ã©ã ã®ã«ã¼ã
|
---|
411 | ããã£ã¬ã¯ããªï¼configureãç½®ããã¦ãããã£ã¬ã¯ããªï¼ããã®ç¸å¯¾ãã¹ã§è¨
|
---|
412 | ãè¿°ããï¼
|
---|
413 | ä¾ï¼#include "arch/logtrace/trace_config.h"
|
---|
414 |
|
---|
415 | ã»ã«ã¼ãã«ãæ§æãããã¡ã¤ã«ããï¼kernelãã£ã¬ã¯ããªä¸ã®ããããã¡ã¤ã«
|
---|
416 | ããã¤ã³ã¯ã«ã¼ãããå ´åã¯ï¼ãã¹æå®ãè¡ããï¼ãã¡ã¤ã«åã®ã¿ãè¨è¿°ããï¼
|
---|
417 | ä¾ï¼#include "kernel_impl.h"
|
---|
418 |
|
---|
419 | 1.5 ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
|
---|
420 | ¥å¦çã®å®ç¾ã«é¢ããå¶ç´
|
---|
421 |
|
---|
422 | ã«ã¼ãã«å
|
---|
423 | ã§ç¨ããã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
|
---|
424 | ¥å¦çãå®ç¾ããå ´åã«ã¯ï¼
|
---|
425 | 次ã®2ã¤ã®æ¡ä»¶ãæºããããã«å®è£
|
---|
426 | ããªããã°ãªããªãï¼
|
---|
427 |
|
---|
428 | (1-5-1) åºå
|
---|
429 | ¥å¦çããæããæç¹ã§ã¯ï¼å²è¾¼ã¿ã®ç¦æ¢ï¼è¨±å¯ãå®äºãã¦ããªã
|
---|
430 | ãã°ãªããªãï¼ä¾ãã°ï¼å²è¾¼ã¿ç¦æ¢ï¼è¨±å¯å½ä»¤ãå®è¡ãã¦ããå®éã«å²è¾¼ã¿ã
|
---|
431 | ç¦æ¢ï¼è¨±å¯ãããã¾ã§ä½å½ä»¤ãé
|
---|
432 | 延ããããã»ããµã®å ´åã«ã¯ï¼åºå
|
---|
433 | ¥å¦çã®ä¸
|
---|
434 | ã«NOPå½ä»¤ãå
|
---|
435 | ¥ãããªã©ã®æ¹æ³ã§ï¼åºå
|
---|
436 | ¥å¦çãæããæç¹ã§ã¯ï¼å²è¾¼ã¿ãç¦æ¢ï¼
|
---|
437 | 許å¯ãããç¶æ
|
---|
438 | ã«ãªã£ã¦ãããã¨ãä¿è¨¼ããªããã°ãªããªãï¼
|
---|
439 |
|
---|
440 | (1-5-2) ã¡ã¢ãªä¸ã®ãã¼ã¿æ§é ãæ¸ãå¤ããå¯è½æ§ããããã¨ãï¼ä½ããã®æ¹
|
---|
441 | æ³ã§ã³ã³ãã¤ã©ã«ç¥ãããªããã°ãªããªãï¼GNUéçºç°å¢ã§ã¯ï¼æ¬¡ã®ããããã®
|
---|
442 | æ¹æ³ã§ãã®å¶ç´ãæºãããã¨ãã§ããï¼
|
---|
443 |
|
---|
444 | (a) ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
|
---|
445 | ¥å¦çã®å
|
---|
446 | ¨ä½ã¾ãã¯åºå
|
---|
447 | ¥å¦çã®æ¬è³ªçãªé¨å
|
---|
448 | ï¼å
|
---|
449 | ·ä½çã«ã¯ï¼å²è¾¼ã¿ç¦æ¢ï¼è¨±å¯ããå¦çï¼ãï¼ã¤ã³ã©ã¤ã³ã§ãªãï¼é常
|
---|
450 | ã®é¢æ°ã«ããå®ç¾ããï¼
|
---|
451 |
|
---|
452 | (b) ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
|
---|
453 | ¥å¦çã®æ¬è³ªçãªé¨åãã¤ã³ã©ã¤ã³ã¢ã»ã³ã
|
---|
454 | ã©ã«ãã£ã¦å®ç¾ãã¦ããå ´åã«ã¯ï¼ãã®ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã©ã®clobberå¤
|
---|
455 | æ°ãªã¹ãã«"memory"ã追å ããï¼
|
---|
456 |
|
---|
457 | (c) ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
|
---|
458 | ¥å¦çã®æ¬è³ªçãªé¨åãï¼ãã¯ããã¤ã³ã©ã¤
|
---|
459 | ã³é¢æ°å¼åºãã§å®ç¾ãã¦ããå ´åã«ã¯ï¼ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã«å
|
---|
460 | ¥ãå¦
|
---|
461 | çã®æå¾ã¨åºãå¦çã®å
|
---|
462 | é ã«ï¼Asm("":::"memory")ã¨ããè¨è¿°ãå
|
---|
463 | ¥ããï¼
|
---|
464 |
|
---|
465 | ãã®ãããªå¶ç´ãè¨ããçç±ã«ã¤ãã¦ã¯ï¼ãTOPPERS/ASP3ã«ã¼ãã« è¨è¨ã¡ã¢ã
|
---|
466 | ã®ãã«ã¼ãã«ã®ãã¼ã¿æ§é ã«å¯¾ããvolatile宣è¨ã«ã¤ãã¦ãã®ç¯ãåç
|
---|
467 | §ããã
|
---|
468 | ã¨ï¼
|
---|
469 |
|
---|
470 |
|
---|
471 | ï¼ï¼ã·ã¹ãã æ§ç¯ç°å¢ã®ã¿ã¼ã²ããä¾åé¨
|
---|
472 |
|
---|
473 | ãã®ç« ã®èª¬æã¯ï¼GNUéçºç°å¢ï¼GCCï¼GASï¼BINUTILSï¼GNU Makeï¼ãç¨ãããã¨
|
---|
474 | ãæ³å®ãã¦è¨è¿°ãã¦ããï¼ãã以å¤ã®éçºç°å¢ãç¨ããå ´åã«ã¯ï¼éçºç°å¢ã«
|
---|
475 | ãããã¦ä¿®æ£ããå¿
|
---|
476 | è¦ãããï¼
|
---|
477 |
|
---|
478 | GNUéçºç°å¢ç¨ã®ã·ã¹ãã æ§ç¯ç°å¢ã¯ï¼ãµã³ãã«ã®Makefileï¼sample/Makefileï¼ï¼
|
---|
479 | ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããï¼configureï¼ã§æ§æãããï¼
|
---|
480 |
|
---|
481 | GNUéçºç°å¢ä»¥å¤ã®éçºç°å¢ãç¨ããå ´åã«ã¯ï¼ãããã®ãã¡ã¤ã«ãï¼ãã®éçº
|
---|
482 | ç°å¢ç¨ã«ç¨æããå¿
|
---|
483 | è¦ãããå ´åãããï¼ãã®å ´åã«ã¯ï¼ãããã®ãã¡ã¤ã«ãï¼
|
---|
484 | ã¿ã¼ã²ããä¾åé¨ãã£ã¬ã¯ããªãéçºç°å¢ä¾åé¨ãã£ã¬ã¯ããªã«ç½®ããã®ã¨ã
|
---|
485 | ãï¼ã¾ãï¼éçºç°å¢ç¨ã®ããã¸ã§ã¯ããã¡ã¤ã«ãå¿
|
---|
486 | è¦ãªå ´åã«ã¯ï¼ã¿ã¼ã²ãã
|
---|
487 | ä¾åé¨ãã£ã¬ã¯ããªã«ç½®ããã®ã¨ããï¼
|
---|
488 |
|
---|
489 | ãµã³ãã«ã®Makefileã¯ï¼ã¿ã¼ã²ããä¾åé¨ãã£ã¬ã¯ããªã®Makefile.targetãã¤
|
---|
490 | ã³ã¯ã«ã¼ãããï¼Makefileã®ã¿ã¼ã²ããä¾åé¨ã¯ï¼ã¿ã¼ã²ããä¾åé¨ãã£ã¬ã¯
|
---|
491 | ããªã®Makefile.targetã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼éçºç°å¢
|
---|
492 | ä¾åé¨ï¼ããã»ããµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ã§ç¨æããããã¡ã¤ã«ãªã©ï¼ã«
|
---|
493 | å«ããï¼ä»¥ä¸ã§ã¯ï¼Makefileã®ã¿ã¼ã²ããä¾åé¨ã«è¨è¿°ãã¹ãå
|
---|
494 | 容ã«ã¤ãã¦èª¬
|
---|
495 | æããï¼
|
---|
496 |
|
---|
497 | 2.1 ã·ã¹ãã ç¥ç§°ã»éçºç°å¢ç¥ç§°çã®è¨å®
|
---|
498 |
|
---|
499 | ã·ã¹ãã ç¥ç§°ï¼éçºç°å¢ç¥ç§°ï¼ããã»ããµã³ã¢ç¥ç§°ï¼ãããç¥ç§°ãè¨å®ããã
|
---|
500 | ãã«ï¼Makefileã®ã¿ã¼ã²ããä¾åé¨ã§æ¬¡ã®å¤æ°ãå®ç¾©ããï¼ãªãï¼ã¿ã¼ã²ãã
|
---|
501 | ç¥ç§°ã¯ï¼ã¿ã¼ã²ããéä¾åã®Makefileã«ããã¦ï¼å¤æ°TARGETã«å®ç¾©ããã¦ãã
|
---|
502 | ãã¨ãæ³å®ããï¼
|
---|
503 |
|
---|
504 | (2-1-1) SYS ã·ã¹ãã ç¥ç§°
|
---|
505 |
|
---|
506 | ã·ã¹ãã ç¥ç§°ã«å®ç¾©ããï¼
|
---|
507 |
|
---|
508 | (2-1-2) TOOL éçºç°å¢ç¥ç§°
|
---|
509 |
|
---|
510 | éçºç°å¢ä¾åé¨ãç¨ããå ´åã«ã¯ï¼éçºç°å¢ç¥ç§°ã«å®ç¾©ããï¼GNUéçºç°å¢ãç¨
|
---|
511 | ããå ´åã«ã¯ï¼gccã«å®ç¾©ããï¼
|
---|
512 |
|
---|
513 | (2-1-3) CORE ããã»ããµã³ã¢ç¥ç§°
|
---|
514 | (2-1-4) CHIP ãããç¥ç§°
|
---|
515 |
|
---|
516 | ããã»ããµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ãç¨ããå ´åã«ã¯ï¼ããããï¼ããã»ã
|
---|
517 | ãµã³ã¢ç¥ç§°ï¼ãããç¥ç§°ã«å®ç¾©ããï¼
|
---|
518 |
|
---|
519 | 2.2 ä¾åé¨ãã£ã¬ã¯ããªã®è¨å®
|
---|
520 |
|
---|
521 | éçºç°å¢ä¾åé¨ãã£ã¬ã¯ããªï¼ããã»ããµã³ã¢ä¾åé¨ãã£ã¬ã¯ããªï¼ãããä¾
|
---|
522 | åé¨ãã£ã¬ã¯ããªãè¨å®ããããã«ï¼Makefileã®ã¿ã¼ã²ããä¾åé¨ã§æ¬¡ã®å¤æ°
|
---|
523 | ãå®ç¾©ããï¼
|
---|
524 |
|
---|
525 | ãªãï¼ã¿ã¼ã²ããä¾åé¨ãã£ã¬ã¯ããªã¯ï¼ã¿ã¼ã²ããéä¾åã®Makefileã«ãã
|
---|
526 | ã¦ï¼å¤æ°TARGETDIRã«å®ç¾©ããã¦ãããã¨ãæ³å®ããï¼ã¾ãï¼ã½ã¼ã¹ããã°ã©ã
|
---|
527 | ã®ã«ã¼ããã£ã¬ã¯ããªï¼configureãç½®ããã¦ãããã£ã¬ã¯ããªï¼ã¯ï¼å¤æ°
|
---|
528 | SRCDIRã«å®ç¾©ããã¦ãããã¨ãæ³å®ããï¼
|
---|
529 |
|
---|
530 | (2-2-1) TOOLDIR éçºç°å¢ä¾åé¨ãã£ã¬ã¯ããª
|
---|
531 | (2-2-2) COREDIR ããã»ããµã³ã¢ä¾åé¨ãã£ã¬ã¯ããª
|
---|
532 | (2-2-3) CHIPDIR ãããä¾åé¨ãã£ã¬ã¯ããª
|
---|
533 |
|
---|
534 | éçºç°å¢ä¾åé¨ï¼ããã»ããµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ãç¨ããå ´åã«ã¯ï¼ã
|
---|
535 | ãããï¼éçºç°å¢ä¾åé¨ãã£ã¬ã¯ããªï¼ããã»ããµã³ã¢ä¾åé¨ãã£ã¬ã¯ããªï¼
|
---|
536 | ãããä¾åé¨ãã£ã¬ã¯ããªã«å®ç¾©ããï¼
|
---|
537 |
|
---|
538 | 2.3 ã³ãã³ãåã®è¨å®
|
---|
539 |
|
---|
540 | (2-3-1) GCC_TARGET GNUéçºç°å¢ã®ã¿ã¼ã²ããå
|
---|
541 |
|
---|
542 | GNUéçºç°å¢ãç¨ããå ´åã«ï¼GNUéçºç°å¢ãconfigureããå ´åã«æå®ããã¿ã¼
|
---|
543 | ã²ããåã«å®ç¾©ããï¼ããã§æå®ããã¿ã¼ã²ããåã¯ï¼éçºç°å¢ã®ã³ãã³ãå
|
---|
544 | ã®å
|
---|
545 | é ã«ä»ä¸ãããæååã¨ãªãï¼ä¾ãã°ï¼GCC_TARGETãarm-none-eabiã«å®ç¾©
|
---|
546 | ããå ´åã«ã¯ï¼ã³ã³ãã¤ã©ã¨ãã¦arm-none-eabi-gccã使ãããï¼ãã®å¤æ°ãå®
|
---|
547 | 義ãããªãå ´åã«ã¯ï¼åãªãgccã使ãããï¼
|
---|
548 |
|
---|
549 | (2-3-2) CC Cã³ã³ãã¤ã©ãã©ã¤ãã®å称
|
---|
550 | (2-3-3) CXX C++ã³ã³ãã¤ã©ãã©ã¤ãã®å称
|
---|
551 | (2-3-4) AS ã¢ã»ã³ãã©ã®å称
|
---|
552 | (2-3-5) LD ãªã³ã«ã®å称
|
---|
553 | (2-3-6) AR ã¢ã¼ã«ã¤ãã®å称
|
---|
554 | (2-3-7) NM nmããã°ã©ã ã®å称
|
---|
555 | (2-3-8) RANLIB ranlibããã°ã©ã ã®å称
|
---|
556 | (2-3-9) OBJCOPY objcopyããã°ã©ã ã®å称
|
---|
557 | (2-3-10) OBJDUMP objdumpããã°ã©ã ã®å称
|
---|
558 |
|
---|
559 | GNUéçºç°å¢ä»¥å¤ã®éçºç°å¢ãç¨ããå ´åã«ï¼ããããã®ã³ãã³ãã®å称ã«å®ç¾©
|
---|
560 | ããï¼å¯¾å¿ããã³ãã³ãããªãå ´åãï¼ã³ãã³ããã©ã¡ã¼ã¿ãç°ãªãå ´åã«ã¯ï¼
|
---|
561 | Makefileä¸ã§ãã®ã³ãã³ããå¼ã³åºãã¦ããé¨åãå¤æ´ããå¿
|
---|
562 | è¦ãããï¼
|
---|
563 |
|
---|
564 | GNUéçºç°å¢ã§ã¯ï¼ãããã¯GCC_TARGETãç¨ãã¦å®ç¾©ãããã®ã§ï¼å®ç¾©ããå¿
|
---|
565 | è¦
|
---|
566 | ã¯ãªãï¼
|
---|
567 |
|
---|
568 | 2.4 ã³ã³ãã¤ã«ãªãã·ã§ã³ã¨ãªãã¸ã§ã¯ããã¡ã¤ã«ã®è¨å®
|
---|
569 |
|
---|
570 | Makefileã®ã¿ã¼ã²ããä¾åé¨ã§ä»¥ä¸ã§èª¬æããå¤æ°ãå®ç¾©ããæã«ã¯ï¼":="ã
|
---|
571 | ç¨ãã¦ï¼ããã¾ã§ã®å®ç¾©ã«è¿½å ããå½¢ã§è¡ãï¼ä¾ãã°ï¼ã³ã³ãã¤ã©ã«å¯¾ããã
|
---|
572 | ã®ä»ã®ãªãã·ã§ã³ã¨ãã¦ã-Wall -g -O2ãã追å ãããå ´åã«ã¯ï¼ãCOPTS :=
|
---|
573 | $(COPTS) -Wall -g -O2ãã¨ããè¨è¿°ãMakefileã®ã¿ã¼ã²ããä¾åé¨ã«å«ããï¼
|
---|
574 |
|
---|
575 | (2-4-1) COPTS ã³ã³ãã¤ã©ã«å¯¾ãããã®ä»ã®ãªãã·ã§ã³
|
---|
576 | (2-4-2) CDEFS ãã¯ãå®ç¾©ãªãã·ã§ã³ï¼-Dãªãã·ã§ã³ï¼
|
---|
577 | (2-4-3) INCLUDES ããããã¡ã¤ã«ã®ç½®ããããã£ã¬ã¯ããªæå®ãª
|
---|
578 | ãã·ã§ã³ï¼-Iãªãã·ã§ã³ï¼
|
---|
579 | (2-4-4) LDFLAGS ãªã³ã«ã«å¯¾ãããã®ä»ã®ãªãã·ã§ã³
|
---|
580 | (2-4-5) LIBS ã©ã¤ãã©ãªãªã³ã¯æå®ã®ããã®ãªãã·ã§ã³
|
---|
581 |
|
---|
582 | ã¿ã¼ã²ããã«ä¾åãã¦ï¼ãã¹ã¦ã®ã½ã¼ã¹ãã¡ã¤ã«ã«å
|
---|
583 | ±éããã³ã³ãã¤ã«ãªãã·ã§
|
---|
584 | ã³ã®è¿½å ãå¿
|
---|
585 | è¦ãªå ´åã«ã¯ï¼ãªãã·ã§ã³ã®ç¨®é¡æ¯ã«ä¸ã«ç¤ºããå¤æ°ã«å®ç¾©ããï¼
|
---|
586 |
|
---|
587 | ã»ã¨ãã©ã®å ´åã«ï¼ã¿ã¼ã²ããä¾åé¨ãã£ã¬ã¯ããªã®Makefile.targetã«ã¯ï¼ä»¥
|
---|
588 | ä¸ã®è¨è¿°ãå«ããå¿
|
---|
589 | è¦ãããï¼
|
---|
590 |
|
---|
591 | ----------------------------------------
|
---|
592 | INCLUDES := $(INCLUDES) -I$(TARGETDIR) -I$(TOOLDIR)
|
---|
593 | ----------------------------------------
|
---|
594 |
|
---|
595 | ã³ã³ãã¤ã©ã®åé¡çã§ï¼è¦åã¡ãã»ã¼ã¸ãåºããã¨ãé²ããªãç¶æ³ä»¥å¤ã§ã¯ï¼
|
---|
596 | COPTSã«-Werrorã追å ãããã¨ãæ¨å¥¨ããï¼
|
---|
597 |
|
---|
598 | ----------------------------------------
|
---|
599 | COPTS := $(COPTS) -Werror
|
---|
600 | ----------------------------------------
|
---|
601 |
|
---|
602 | ã«ã¼ãã«ã®ã³ã³ãã¤ã«æã«ï¼dereferencing type-punned pointer will break
|
---|
603 | strict-aliasing rulesã¨ããè¦åãåºãå ´åã«ã¯ï¼ä»¥ä¸ã追å ããã¨ããï¼ã
|
---|
604 | ã®è¦åã¡ãã»ã¼ã¸ã«é¢ãã詳細ã¯ï¼ãTOPPERS/ASP3ã«ã¼ãã« è¨è¨ã¡ã¢ãã®ãå
|
---|
605 | ãã£ã¹ãã«ä¼´ãè¦åã¡ãã»ã¼ã¸ãã®ç¯ãåç
|
---|
606 | §ãããã¨ï¼
|
---|
607 |
|
---|
608 | ----------------------------------------
|
---|
609 | KERNEL_CFLAGS := $(KERNEL_CFLAGS) -fno-strict-aliasing
|
---|
610 | ----------------------------------------
|
---|
611 |
|
---|
612 | ã¾ãï¼ã¢ã»ã³ããªè¨èªã¬ãã«ã®èå¥åãï¼Cè¨èªã¬ãã«ã®èå¥åã®å
|
---|
613 | é ã«"_"ã
|
---|
614 | ä»ãããã®ã«ãªãå ´åã«ã¯ï¼CDEFSã«-DTOPPERS_LABEL_ASMã追å ããï¼
|
---|
615 |
|
---|
616 | (2-4-6) SYSSVC_DIRS ã·ã¹ãã ãµã¼ãã¹ã®ã½ã¼ã¹ãç½®ããããã£ã¬ã¯ããª
|
---|
617 | (2-4-7) SYSSVC_ASMOBJS ã¢ã»ã³ããªè¨èªã§è¨è¿°ãããã·ã¹ãã ãµã¼ãã¹ã®
|
---|
618 | ãªãã¸ã§ã¯ã
|
---|
619 | (2-4-8) SYSSVC_COBJS Cè¨èªã§è¨è¿°ãããã·ã¹ãã ãµã¼ãã¹ã®ãªãã¸ã§ã¯ã
|
---|
620 | (2-4-9) SYSSVC_CFLAGS ã·ã¹ãã ãµã¼ãã¹ã«å¯¾ããã³ã³ãã¤ã«ãªãã·ã§ã³
|
---|
621 |
|
---|
622 | ã¿ã¼ã²ããã«ä¾åãã¦ï¼ã·ã¹ãã ãµã¼ãã¹ï¼ã·ã¹ãã ãã°ã¿ã¹ã¯ãããã¤ã¹ã
|
---|
623 | ã©ã¤ããªã©ï¼ã®ã½ã¼ã¹ãç½®ããããã£ã¬ã¯ããªï¼ã·ã¹ãã ãµã¼ãã¹ãæ§æãã
|
---|
624 | ãªãã¸ã§ã¯ããã¡ã¤ã«ã®ãªã¹ãï¼ããããã³ã³ãã¤ã«ããéã«é©ç¨ããã³ã³ã
|
---|
625 | ã¤ã«ãªãã·ã§ã³ã追å ããå ´åã«ã¯ï¼ä¸ã«ç¤ºããå¤æ°ã«å®ç¾©ããï¼ãªãï¼
|
---|
626 | SYSSVC_CFLAGSã«å®ç¾©ãããªãã·ã§ã³ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãããã¡ã¤
|
---|
627 | ã«ãã³ã³ãã¤ã«ããå ´åã«ã¯é©ç¨ãããªãããï¼æ³¨æãããã¨ï¼
|
---|
628 |
|
---|
629 | (2-4-10) KERNEL_DIRS ã«ã¼ãã«ã®ã½ã¼ã¹ãç½®ããããã£ã¬ã¯ããª
|
---|
630 | (2-4-11) KERNEL_ASMOBJS ã¢ã»ã³ããªè¨èªã§è¨è¿°ãããã«ã¼ãã«ã®ãªãã¸ã§ã¯ã
|
---|
631 | (2-4-12) KERNEL_COBJS Cè¨èªã§è¨è¿°ãããã«ã¼ãã«ã®ãªãã¸ã§ã¯ã
|
---|
632 | (2-4-13) KERNEL_CFLAGS ã«ã¼ãã«ã«å¯¾ããã³ã³ãã¤ã«ãªãã·ã§ã³
|
---|
633 |
|
---|
634 | ã¿ã¼ã²ããã«ä¾åãã¦ï¼ã«ã¼ãã«ã®ã½ã¼ã¹ãç½®ããããã£ã¬ã¯ããªï¼ã«ã¼ãã«
|
---|
635 | ãæ§æãããªãã¸ã§ã¯ããã¡ã¤ã«ã®ãªã¹ãï¼ããããã³ã³ãã¤ã«ããéã«é©ç¨
|
---|
636 | ããã³ã³ãã¤ã«ãªãã·ã§ã³ã追å ããå ´åã«ã¯ï¼ä¸ã«ç¤ºããå¤æ°ã«å®ç¾©ããï¼
|
---|
637 |
|
---|
638 | ã»ã¨ãã©ã®å ´åã«ï¼ã¿ã¼ã²ããä¾åé¨ãã£ã¬ã¯ããªã®Makefile.targetã«ã¯ï¼ä»¥
|
---|
639 | ä¸ã®è¨è¿°ãå«ããå¿
|
---|
640 | è¦ãããï¼
|
---|
641 |
|
---|
642 | ----------------------------------------
|
---|
643 | KERNEL_DIRS := $(KERNEL_DIRS) $(TARGETDIR)
|
---|
644 | KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) target_support.o
|
---|
645 | KERNEL_COBJS := $(KERNEL_COBJS) target_kernel_impl.o target_timer.o
|
---|
646 | ----------------------------------------
|
---|
647 |
|
---|
648 | (2-4-14) OBJ_LDFLAGS ã«ã¼ãã«ã«å¯¾ãããªã³ã¯ãªãã·ã§ã³
|
---|
649 |
|
---|
650 | ã¿ã¼ã²ããã«ä¾åãã¦ï¼ã«ã¼ãã«ããªã³ã¯ããéã«é©ç¨ãããªãã·ã§ã³ã追å
|
---|
651 | ããå ´åã«ã¯ï¼ä¸ã«ç¤ºããå¤æ°ã«å®ç¾©ããï¼LDFLAGSã¨ç°ãªãï¼ãã®å¤æ°ã«è¿½å
|
---|
652 | ãããªãã·ã§ã³ã¯ï¼cfg1_out.cããªã³ã¯ããéã«ã¯é©ç¨ãããªãï¼
|
---|
653 |
|
---|
654 | (2-4-15) CFG_TABS ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«å¯¾ãããªãã·ã§ã³
|
---|
655 |
|
---|
656 | ã¿ã¼ã²ããã«ä¾åãã¦ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«å¯¾ãããªãã·ã§ã³ã追å ããå ´
|
---|
657 | åã«ã¯ï¼ä¸ã«ç¤ºããå¤æ°ã«å®ç¾©ããï¼å
|
---|
658 | ·ä½çã«ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®å¤å
|
---|
659 | å¾ã·ã³ãã«ãã¼ãã«ã®ã¿ã¼ã²ããä¾åé¨ï¼target_def.csvï¼ãããå ´åã«ã¯ï¼
|
---|
660 | ãããæå®ãããªãã·ã§ã³ã追å ããå¿
|
---|
661 | è¦ãããï¼
|
---|
662 |
|
---|
663 | ã»ã¨ãã©ã®å ´åã«ï¼ã¿ã¼ã²ããä¾åé¨ãã£ã¬ã¯ããªã®Makefile.targetã«ã¯ï¼ä»¥
|
---|
664 | ä¸ã®è¨è¿°ãå«ããå¿
|
---|
665 | è¦ãããï¼
|
---|
666 |
|
---|
667 | ----------------------------------------
|
---|
668 | CFG_TABS := $(CFG_TABS) --cfg1-def-table $(TARGETDIR)/target_def.csv
|
---|
669 | ----------------------------------------
|
---|
670 |
|
---|
671 | (2-4-16) CFG1_OUT_LDFLAGS cfg1_out.cã«å¯¾ãããªã³ã¯ãªãã·ã§ã³
|
---|
672 |
|
---|
673 | ã¿ã¼ã²ããã«ä¾åãã¦ï¼cfg1_out.cããªã³ã¯ããéã«é©ç¨ãããªãã·ã§ã³ã追
|
---|
674 | å ããå ´åã«ã¯ï¼ä¸ã«ç¤ºããå¤æ°ã«å®ç¾©ããï¼LDFLAGSã¨ç°ãªãï¼ãã®å¤æ°ã«è¿½
|
---|
675 | å ãããªãã·ã§ã³ã¯ï¼ã«ã¼ãã«ããªã³ã¯ããéã«ã¯é©ç¨ãããªãï¼
|
---|
676 |
|
---|
677 | (2-4-17) CFG_ASMOBJS ã¢ã»ã³ããªè¨èªã§è¨è¿°ãããã·ã¹ãã ã³ã³ãã£
|
---|
678 | ã®ã¥ã¬ã¼ã·ã§ã³ã®ããã®ãªãã¸ã§ã¯ã
|
---|
679 | (2-4-18) CFG_COBJS Cè¨èªã§è¨è¿°ãããã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼
|
---|
680 | ã·ã§ã³ã®ããã®ãªãã¸ã§ã¯ã
|
---|
681 |
|
---|
682 | ã¿ã¼ã²ããã«ä¾åãã¦ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã®ããã®ãªãã¸ã§ã¯
|
---|
683 | ããã¡ã¤ã«ãï¼kernel_cfg.o以å¤ã«ï¼è¿½å ããå ´åã«ã¯ï¼ä¸ã«ç¤ºããå¤æ°ã«å®
|
---|
684 | 義ããï¼ãã®å ´åï¼è¿½å ãããªãã¸ã§ã¯ããã¡ã¤ã«ã®ä½æã«ã¼ã«ï¼ã³ã³ãã¤ã«ï¼
|
---|
685 | ã¢ã»ã³ãã«ã«ã¼ã«ã¨ä¾åé¢ä¿ä½æã«ã¼ã«ï¼ãï¼Makefileã®ã¿ã¼ã²ããä¾åé¨ã«
|
---|
686 | è¨è¿°ããå¿
|
---|
687 | è¦ãããï¼
|
---|
688 |
|
---|
689 | (2-4-19) CFG2_OUT_SRCS
|
---|
690 |
|
---|
691 | ã¿ã¼ã²ããã«ä¾åãã¦ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹2ã§kernel_cfg.cã¨
|
---|
692 | kernel_cfg.h以å¤ã®ãã¡ã¤ã«ãçæããå ´åã«ã¯ï¼ä¸ã«ç¤ºããå¤æ°ã«å®ç¾©ããï¼
|
---|
693 |
|
---|
694 | (2-4-20) OMIT_WARNING_ALL
|
---|
695 | (2-4-21) OMIT_OPTIMIZATION
|
---|
696 |
|
---|
697 | ãµã³ãã«ã®Makefileã§ã¯ï¼ã³ã³ãã¤ã©ã«å¯¾ãããªãã·ã§ã³ã«ã-Wall -g -O2ã
|
---|
698 | ã追å ããï¼-Wallã追å ããããªãå ´åã«ã¯ï¼Makefileã®ã¿ã¼ã²ããä¾åé¨ã§
|
---|
699 | OMIT_WARNING_ALLã"true"ã«å®ç¾©ããï¼-O2ã追å ããããªãå ´åã«ã¯ï¼
|
---|
700 | Makefileã®ã¿ã¼ã²ããä¾åé¨ã§OMIT_OPTIMIZATIONã"true"ã«å®ç¾©ããï¼
|
---|
701 |
|
---|
702 | 2.5 ãªãã»ãããã¡ã¤ã«ã®çææ¹æ³
|
---|
703 |
|
---|
704 | ã¢ã»ã³ããªè¨èªã§è¨è¿°ãããããã°ã©ã ããï¼Cè¨èªã®æ§é ä½ã«ã¢ã¯ã»ã¹ããå ´
|
---|
705 | åã«ã¯ï¼æ§é ä½ã®åãã£ã¼ã«ãã®ãªãã»ããå¤ãåç
|
---|
706 | §ãããã¨ãå¿
|
---|
707 | è¦ã§ããï¼
|
---|
708 | ASP3ã«ã¼ãã«ã§ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãç¨ãã¦å¿
|
---|
709 | è¦ãªãªãã»ããå¤ãæ±ãï¼
|
---|
710 | ãªãã»ãããã¡ã¤ã«ï¼offset.hï¼ã«çæããããã®ä»çµã¿ãç¨æãã¦ããï¼
|
---|
711 |
|
---|
712 | ãã®ä»çµã¿ãç¨ãããã¨ã§ï¼ä¾ãã°ï¼TCBä¸ã®p_tinibãã£ã¼ã«ãã®ãªãã»ãã
|
---|
713 | å¤ãTCB_p_tinibã«ãã¯ãå®ç¾©ãããã¨ãï¼TCBä¸ã®ã¿ã¹ã¯ã³ã³ããã¹ãããã
|
---|
714 | ã¯ï¼tskctxbï¼ã«å«ã¾ããpcãã£ã¼ã«ãã®ãªãã»ããå¤ãTCB_pcã«ãã¯ãå®ç¾©ã
|
---|
715 | ããã¨ãã§ããï¼ã¾ãï¼TCBä¸ã®enaterãã£ã¼ã«ãã®ãªãã»ããå¤ï¼ãããä½ç½®ï¼
|
---|
716 | ããããã¹ã¯ãï¼ããããTCB_enaterï¼TCB_enater_bitï¼TCB_enater_maskã«ã
|
---|
717 | ã¯ãå®ç¾©ãããã¨ãã§ããï¼
|
---|
718 |
|
---|
719 | ç¨æãã¦ããä»çµã¿ã«ãããªãã»ãããã¡ã¤ã«ãçæã§ããªãæã«ã¯ï¼ãªãã»ã
|
---|
720 | ããã¡ã¤ã«ãã¿ã¼ã²ããä¾åé¨ã§ç¨æããå¿
|
---|
721 | è¦ãããï¼
|
---|
722 |
|
---|
723 | ãªãã»ãããã¡ã¤ã«ãå¿
|
---|
724 | è¦ãªãå ´åãï¼ãªãã»ãããã¡ã¤ã«ãã¿ã¼ã²ããä¾å
|
---|
725 | é¨ã§ç¨æããå ´åã«ã¯ï¼Makefileã®ã¿ã¼ã²ããä¾åé¨ã§OMIT_OFFSET_Hã
|
---|
726 | "true"ã«å®ç¾©ããï¼
|
---|
727 |
|
---|
728 | æ¡å¼µããã±ã¼ã¸ã®ä¸ã«ã¯ï¼TCBã«ãã£ã¼ã«ãã追å ãããã®ãããããï¼TCBä¸
|
---|
729 | ã®ãã£ã¼ã«ãã®ãªãã»ããå¤ã¯å¤åããï¼offset.hãçæããå ´åã§ãï¼ã¿ã¼
|
---|
730 | ã²ããä¾åé¨ã§ç¨æããå ´åã§ãï¼æ¡å¼µããã±ã¼ã¸ã«å¯¾å¿ããããã«ã¯ï¼ãã®
|
---|
731 | ãã¨ãèæ
|
---|
732 | ®ããå¿
|
---|
733 | è¦ãããï¼
|
---|
734 |
|
---|
735 | 以ä¸ã§ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãç¨ãã¦offset.hãçæããæ¹æ³ã«ã¤ãã¦èª¬æ
|
---|
736 | ããï¼ãã®æ¹æ³ã§ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹1ã§çæããcfg1_out.cãã³ã³
|
---|
737 | ãã¤ã«ãã¦çæãããªãã¸ã§ã¯ããã¡ã¤ã«ããï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«ãã£ã¦
|
---|
738 | offset.hãçæããï¼
|
---|
739 |
|
---|
740 | ãã®æ¹æ³ãç¨ããããã«ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§ãªãã»ãããã¡ã¤ã«çæç¨ã
|
---|
741 | ã³ãã¬ã¼ããã¡ã¤ã«ãç¨æãï¼target_cfg1_out.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼
|
---|
742 | ãããããã¡ã¤ã«ï¼ã¨target_def.csvï¼ã¾ãã¯ï¼åçã®å½¹å²ãæã¤ãã¡ã¤ã«ï¼
|
---|
743 | ã«è¨è¿°ã追å ããå¿
|
---|
744 | è¦ãããï¼ãªãï¼ãããã®ãã¡ã¤ã«ãæ°ãã«ç¨æããéã
|
---|
745 | ä¿®æ£ããéã«ã¯ï¼offset.hã«å¦¥å½ãªå®ç¾©ãçæããã¦ãããã¨ã確èªãã¹ãã§
|
---|
746 | ããï¼
|
---|
747 |
|
---|
748 | ãªãã»ãããã¡ã¤ã«çæç¨ãã³ãã¬ã¼ããã¡ã¤ã«ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§ï¼
|
---|
749 | target_offset.tfã«ç¨æããï¼ãªãã»ãããã¡ã¤ã«çæç¨ãã³ãã¬ã¼ããã¡ã¤
|
---|
750 | ã«ãå¥ã®ãã£ã¬ã¯ããªã¾ãã¯å¥ã®ãã¡ã¤ã«åã§ç¨æããå ´åã«ã¯ï¼ãã®ãã¡ã¤
|
---|
751 | ã«åãï¼Makefileã®ã¿ã¼ã²ããä¾åé¨ã§OFFSET_TFã«å®ç¾©ããï¼
|
---|
752 |
|
---|
753 | ãªãã»ãããã¡ã¤ã«çæç¨ãã³ãã¬ã¼ããã¡ã¤ã«ã«ã¯ï¼ä»¥ä¸ã®å
|
---|
754 | 容ãè¨è¿°ããï¼
|
---|
755 |
|
---|
756 | (1) æ¨æºãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
|
---|
757 |
|
---|
758 | ãªãã»ãããã¡ã¤ã«çæç¨ã®æ¨æºãã³ãã¬ã¼ããã¡ã¤ã«ï¼kernel/genoffset.tfï¼
|
---|
759 | ãã¤ã³ã¯ã«ã¼ãããï¼æ¨æºãã³ãã¬ã¼ããã¡ã¤ã«ã«ã¯ï¼ä»¥ä¸ã§ç¨ããDEFINEé¢
|
---|
760 | æ°ãDEFINE_BITé¢æ°ã®å®ç¾©ãªã©ãå«ã¾ãã¦ããï¼
|
---|
761 |
|
---|
762 | ----------------------------------------
|
---|
763 | $ æ¨æºãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
|
---|
764 | $INCLUDE "kernel/genoffset.tf"$
|
---|
765 | ----------------------------------------
|
---|
766 |
|
---|
767 | (2) ãªãã»ããå¤ã®ãã¯ãå®ç¾©ã®çæ
|
---|
768 |
|
---|
769 | DEFINEé¢æ°ãç¨ãã¦ï¼ãªãã»ããå¤ã®ãã¯ãå®ç¾©ãçæããï¼ä¾ãã°ï¼TCBä¸ã®
|
---|
770 | ã¿ã¹ã¯ã³ã³ããã¹ããããã¯ï¼tskctxbï¼ã«å«ã¾ããpcãã£ã¼ã«ãã®ãªãã»ãã
|
---|
771 | å¤ãï¼TCB_pcã«ãã¯ãå®ç¾©ããå ´åã«ã¯ï¼æ¬¡ã®ããã«è¨è¿°ããï¼
|
---|
772 |
|
---|
773 | ----------------------------------------
|
---|
774 | $ ãªãã»ããå¤ã®ãã¯ãå®ç¾©ã®çæ
|
---|
775 | $DEFINE("TCB_pc", offsetof_TCB_pc)$
|
---|
776 | ----------------------------------------
|
---|
777 |
|
---|
778 | ããã§ï¼DEFINEé¢æ°ã®ç¬¬1ãã©ã¡ã¼ã¿ã¯ãã¯ãå®ç¾©ããã·ã³ãã«ï¼ç¬¬2ãã©ã¡ã¼
|
---|
779 | ã¿ã¯ï¼ãªãã»ããå¤ãä¿æããã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®å¤æ°ã§ããï¼
|
---|
780 |
|
---|
781 | ã¾ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãï¼ãªãã»ããå¤ãä¿æããå¤æ°ï¼ä¸ã®ä¾ã§ã¯
|
---|
782 | offsetof_TCB_pcï¼ã«å¤ãè¨å®ããããã«ï¼target_def.csvï¼ã¾ãã¯ï¼åçã®å½¹
|
---|
783 | å²ãæã¤ãã¡ã¤ã«ï¼ã«æ¬¡ã®ä¾ã®ãããªè¡ã追å ããï¼
|
---|
784 |
|
---|
785 | ----------------------------------------
|
---|
786 | offsetof_TCB_pc,"offsetof(TCB,tskctxb.pc)"
|
---|
787 | ----------------------------------------
|
---|
788 |
|
---|
789 | ãã ãï¼åãªãã¸ã§ã¯ãã®åæåãããã¯ã®ã¿ã¼ã²ããéä¾åã®ãã£ã¼ã«ãã®
|
---|
790 | ãªãã»ããå¤ãåå¾ããããã®è¨è¿°ã¯ï¼kernel/kernel_def.csvã«å«ã¾ãã¦ããï¼
|
---|
791 | kernel/kernel_def.csvã«å«ã¾ãã¦ããè¨è¿°ã¯ï¼target_def.csvï¼ã¾ãã¯ï¼åç
|
---|
792 | ã®å½¹å²ãæã¤ãã¡ã¤ã«ï¼ã«è¿½å ããå¿
|
---|
793 | è¦ã¯ãªãï¼
|
---|
794 |
|
---|
795 | (3) ããããªãã»ããå¤çã®ãã¯ãå®ç¾©ã®çæ
|
---|
796 |
|
---|
797 | DEFINE_BITé¢æ°ãç¨ãã¦ï¼ãããã®ãªãã»ããå¤ï¼ãããä½ç½®ï¼ããããã¹ã¯
|
---|
798 | ã®ãã¯ãå®ç¾©ãçæããï¼ä¾ãã°ï¼TCBä¸ã®enaterãã£ã¼ã«ãã®ãªãã»ããå¤ï¼
|
---|
799 | ãããä½ç½®ï¼ããããã¹ã¯ãï¼ããããTCB_enaterï¼TCB_enater_bitï¼
|
---|
800 | TCB_enater_maskã«ãã¯ãå®ç¾©ããå ´åã«ã¯ï¼æ¬¡ã®ããã«è¨è¿°ããï¼
|
---|
801 |
|
---|
802 | ----------------------------------------
|
---|
803 | $DEFINE_BIT("TCB_enater", sizeof_TCB, "B")$
|
---|
804 | ----------------------------------------
|
---|
805 |
|
---|
806 | ããã§ï¼DEFINE_BITé¢æ°ã®ç¬¬1ãã©ã¡ã¼ã¿ã¯ãã¯ãå®ç¾©ããã·ã³ãã«ï¼ã®å
|
---|
807 | é é¨
|
---|
808 | åï¼ï¼ç¬¬2ãã©ã¡ã¼ã¿ã¯æ§é ä½ã®ãµã¤ãºã§ããï¼ç¬¬3ãã©ã¡ã¼ã¿ã«ã¯ï¼ãããã®
|
---|
809 | ãªãã»ããï¼ãããä½ç½®ï¼ããããã¹ã¯ãï¼8ãããåä½ï¼ãã¤ãåä½ï¼ã§æ±ã
|
---|
810 | ãå ´åã«ã¯"B"ãï¼16ãããåä½ã§æ±ããå ´åã«ã¯"H"ãï¼32ãããåä½ã§æ±ã
|
---|
811 | ãå ´åã«ã¯"W"ãæå®ããï¼ãªãï¼ãããä½ç½®ã¯ï¼LSBã0ã¨ããå¤ï¼ããããªã
|
---|
812 | ã«ã¨ã³ãã£ã¢ã³ãæ³å®ï¼ãæ±ããï¼
|
---|
813 |
|
---|
814 | ã¾ãï¼target_cfg1_out.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«ï¼
|
---|
815 | ããããªãã»ããå¤çãæ±ããããã®æ§é ä½ã®å¤æ°å®ç¾©ã追å ããï¼ãã®æ§é
|
---|
816 | ä½ã®å¤æ°ã¯ï¼å称ããã¯ãå®ç¾©ããã·ã³ãã«ï¼DEFINE_BITé¢æ°ã®ç¬¬1ãã©ã¡ã¼ã¿ï¼
|
---|
817 | ã¨ãï¼å¯¾è±¡ã®ãããã®ã¿ã1ã§ï¼ä»ã®ãã¹ã¦ã®ãããã0ã«ãªãããã«åæåã
|
---|
818 | ãï¼ã¾ãï¼const修飾åãä»å ããï¼ä¾ãã°ï¼TCBä¸ã®enaterãã£ã¼ã«ãã®ãã
|
---|
819 | ããªãã»ããå¤çãæ±ããå ´åã«ã¯ï¼æ¬¡ã®ãããªå®ç¾©ã追å ããï¼tskctxbã®å
|
---|
820 | æå¤ã¯ï¼ã¿ã¼ã²ããä¾åãªã®ã§æ³¨æãããã¨ï¼ï¼
|
---|
821 |
|
---|
822 | ----------------------------------------
|
---|
823 | const TCB TCB_enater = {
|
---|
824 | { NULL, NULL }, /* task_queue */
|
---|
825 | NULL, /* p_tinib */
|
---|
826 | 0U, /* tstat */
|
---|
827 | 0U, /* bpriority */
|
---|
828 | 0U, /* priority */
|
---|
829 | false, /* actque */
|
---|
830 | false, /* wupque */
|
---|
831 | false, /* raster */
|
---|
832 | true, /* enater */
|
---|
833 | #ifdef TOPPERS_SUPPORT_OVRHDR
|
---|
834 | false, /* staovr */
|
---|
835 | #endif /* TOPPERS_SUPPORT_OVRHDR */
|
---|
836 | #ifdef TOPPERS_SUPPORT_SUBPRIO
|
---|
837 | 0U, /* subpri */
|
---|
838 | #endif /* TOPPERS_SUPPORT_SUBPRIO */
|
---|
839 | NULL, /* p_winifo */
|
---|
840 | NULL, /* p_lastmtx */
|
---|
841 | #ifdef TOPPERS_SUPPORT_OVRHDR
|
---|
842 | 0U, /* leftotm */
|
---|
843 | #endif /* TOPPERS_SUPPORT_OVRHDR */
|
---|
844 | { NULL, NULL } /* tskctxb */
|
---|
845 | };
|
---|
846 | ----------------------------------------
|
---|
847 |
|
---|
848 | ããã«ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãï¼æ§é ä½ã®ãµã¤ãºï¼ä¸ã®ä¾ã§ã¯sizeof_TCBï¼ã«
|
---|
849 | å¤ãè¨å®ããããã«ï¼target_def.csvï¼ã¾ãã¯ï¼åçã®å½¹å²ãæã¤ãã¡ã¤ã«ï¼
|
---|
850 | ã«æ¬¡ã®ä¾ã®ãããªè¡ã追å ããï¼
|
---|
851 |
|
---|
852 | ----------------------------------------
|
---|
853 | sizeof_TCB,sizeof(TCB)
|
---|
854 | ----------------------------------------
|
---|
855 |
|
---|
856 | ãã ãï¼åè¿°ããéãï¼kernel/kernel_def.csvã«å«ã¾ãã¦ããè¨è¿°ã¯ï¼
|
---|
857 | target_def.csvï¼ã¾ãã¯ï¼åçã®å½¹å²ãæã¤ãã¡ã¤ã«ï¼ã«è¿½å ããå¿
|
---|
858 | è¦ã¯ãªãï¼
|
---|
859 |
|
---|
860 | æå¾ã«ï¼target_cfg1_out.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼
|
---|
861 | ã«ï¼offset.hãçæããä»çµã¿ãæ£ããåä½ãã¦ãããã¨ã確èªããããã®æ¬¡
|
---|
862 | ã®è¨è¿°ã追å ããï¼
|
---|
863 |
|
---|
864 | ----------------------------------------
|
---|
865 | const uint8_t MAGIC_1 = 0x12;
|
---|
866 | const uint16_t MAGIC_2 = 0x1234;
|
---|
867 | const uint32_t MAGIC_4 = 0x12345678;
|
---|
868 | ----------------------------------------
|
---|
869 |
|
---|
870 | 2.6 ãªã³ã¯æ¹æ³ã®è¨å®
|
---|
871 |
|
---|
872 | (2-6-1) LDSCRIPT ãªã³ã«ã¹ã¯ãªããã®ãã¡ã¤ã«å
|
---|
873 |
|
---|
874 | éçºç°å¢ã«æ¨æºã®ãªã³ã«ã¹ã¯ãªããã使ç¨ã§ããªãå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾å
|
---|
875 | é¨ã§ãªã³ã«ã¹ã¯ãªãããç¨æãï¼ãã®ãã¡ã¤ã«åããã®å¤æ°ã«å®ç¾©ããï¼
|
---|
876 |
|
---|
877 | (2-6-2) TEXT_START_ADDRESS ããã¹ãã»ã¯ã·ã§ã³ã®å
|
---|
878 | é çªå°
|
---|
879 | (2-6-3) DATA_START_ADDRESS ãã¼ã¿ã»ã¯ã·ã§ã³ã®å
|
---|
880 | é çªå°
|
---|
881 |
|
---|
882 | åã»ã¯ã·ã§ã³ã®å
|
---|
883 | é çªå°ã®æå®ãå¿
|
---|
884 | è¦ãªå ´åã«ã¯ï¼ãããã®å¤æ°ã«å
|
---|
885 | é çªå°ã
|
---|
886 | å®ç¾©ããï¼
|
---|
887 |
|
---|
888 | (2-6-4) START_OBJS å
|
---|
889 | é ã«ãªã³ã¯ãã¹ãã¢ã¸ã¥ã¼ã«å
|
---|
890 | (2-6-5) END_OBJS æå¾ã«ãªã³ã¯ãã¹ãã¢ã¸ã¥ã¼ã«å
|
---|
891 |
|
---|
892 | ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼ãã¼ãã¢ã¸ã¥ã¼ã«ã®å
|
---|
893 | é ã¨æå¾ã«ãªã³ã¯ãã¹ãã¢ã¸ã¥ã¼
|
---|
894 | ã«ãï¼ã¿ã¼ã²ããä¾åé¨ã§ç¨æããå¿
|
---|
895 | è¦ãããï¼å¤ãã®å ´åï¼ã¹ã¿ã¼ãã¢ãã
|
---|
896 | ã¢ã¸ã¥ã¼ã«ããã¼ãã¢ã¸ã¥ã¼ã«ã®å
|
---|
897 | é ã«ãªã³ã¯ããå¿
|
---|
898 | è¦ãããï¼
|
---|
899 |
|
---|
900 | ãã¼ãã¢ã¸ã¥ã¼ã«ã®å
|
---|
901 | é ã«ãªã³ã¯ãã¹ãããã°ã©ã ãããå ´åã«ã¯ï¼Makefile
|
---|
902 | ã®ã¿ã¼ã²ããä¾åé¨ã«ããã¦ï¼ãã®ãªãã¸ã§ã¯ããã¡ã¤ã«åãSTART_OBJSã«å®
|
---|
903 | 義ãï¼ããã«å¯¾ããã³ã³ãã¤ã«ã«ã¼ã«ã¨ä¾åé¢ä¿ä½æã«ã¼ã«ãå®ç¾©ããï¼ãã¼
|
---|
904 | ãã¢ã¸ã¥ã¼ã«ã®æå¾ã«ãªã³ã¯ãã¹ãã¢ã¸ã¥ã¼ã«ãããå ´åã«ã¯ï¼ãã®ãªãã¸ã§
|
---|
905 | ã¯ããã¡ã¤ã«åãEND_OBJSã«å®ç¾©ãï¼ããã«å¯¾ããã³ã³ãã¤ã«ã«ã¼ã«ã¨ä¾åé¢
|
---|
906 | ä¿ä½æã«ã¼ã«ãå®ç¾©ããï¼ã¾ãï¼æ¨æºã®ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ï¼crt0.oï¼
|
---|
907 | ããªã³ã¯ããªãããã«ï¼LDFLAGSã¨CFG1_OUT_LDFLAGSã«-nostdlibã追å ããå¿
|
---|
908 |
|
---|
909 | è¦ãããï¼ããã«ï¼-nostdlibãã¤ãããã¨ã§æ¨æºã©ã¤ãã©ãªããªã³ã¯ãããªã
|
---|
910 | ãªãããï¼LIBSã«-lgccã追å ããªããã°ãªããªãï¼
|
---|
911 |
|
---|
912 | ä¾ãã°ï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ã½ã¼ã¹ãã¡ã¤ã«ãstart.Sã®å ´åã«ã¯ï¼
|
---|
913 | Makefileã®ã¿ã¼ã²ããä¾åé¨ã«æ¬¡ã®ãããªè¨è¿°ãå
|
---|
914 | ¥ããã¨ããï¼
|
---|
915 |
|
---|
916 | ----------------------------------------
|
---|
917 | # ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ãªãã¸ã§ã¯ããã¡ã¤ã«å
|
---|
918 | START_OBJS = start.o
|
---|
919 |
|
---|
920 | # ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ã³ã³ãã¤ã«ã«ã¼ã«
|
---|
921 | $(START_OBJS): %.o: %.S
|
---|
922 | $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
|
---|
923 |
|
---|
924 | # ãªã³ã«ã«å¯¾ãããªãã·ã§ã³
|
---|
925 | LDFLAGS := -nostdlib $(LDFLAGS)
|
---|
926 | CFG1_OUT_LDFLAGS := -nostdlib $(CFG1_OUT_LDFLAGS)
|
---|
927 | LIBS := $(LIBS) -lgcc
|
---|
928 | ----------------------------------------
|
---|
929 |
|
---|
930 | ã¾ãï¼GNUéçºç°å¢ã§ï¼ã³ã³ãã¤ã©ã«æ¨æºã®crtbegin.oã¨crtend.oãç¨ããå ´å
|
---|
931 | ã«ã¯ï¼Makefile ã®ã¿ã¼ã²ããä¾åé¨ã«æ¬¡ã®ãããªè¨è¿°ãå
|
---|
932 | ¥ããã¨ããï¼
|
---|
933 |
|
---|
934 | ----------------------------------------
|
---|
935 | # ãªãã¸ã§ã¯ããã¡ã¤ã«å
|
---|
936 | START_OBJS = $(shell $(CC) -print-file-name=crtbegin.o)
|
---|
937 | END_OBJS = $(shell $(CC) -print-file-name=crtend.o)
|
---|
938 |
|
---|
939 | # ãªã³ã«ã«å¯¾ãããªãã·ã§ã³
|
---|
940 | LDFLAGS := -nostdlib $(LDFLAGS)
|
---|
941 | CFG1_OUT_LDFLAGS := -nostdlib $(CFG1_OUT_LDFLAGS)
|
---|
942 | LIBS := $(LIBS) -lgcc
|
---|
943 | ----------------------------------------
|
---|
944 |
|
---|
945 | ãã®å ´åï¼ãããã®ãã¡ã¤ã«ãã³ã³ãã¤ã«ãããã¨ã¯ãªãããï¼ã³ã³ãã¤ã«ã«ã¼
|
---|
946 | ã«ã¯ä¸è¦ã§ããï¼ã¾ãï¼ä¾åé¢ä¿ä½æã«ã¼ã«ã¯ããã¼ã§ããï¼ä¾åé¢ä¿ä½æã«ã¼
|
---|
947 | ã«ããªãã¨ã¨ã©ã¼ã«ãªãï¼ï¼
|
---|
948 |
|
---|
949 | (2-6-6) HIDDEN_OBJS æå®ããªãã¦ããªã³ã¯ãããã¢ã¸ã¥ã¼ã«å
|
---|
950 |
|
---|
951 | ãã¼ãã¢ã¸ã¥ã¼ã«ã«ãªã³ã¯ãã¹ãã¢ã¸ã¥ã¼ã«ãï¼ãªã³ã«ã«å¯¾ãããã©ã¡ã¼ã¿ã§
|
---|
952 | ã¯ãªãï¼ãªã³ã«ã¹ã¯ãªããä¸ã«ï¼ä¾ãã°ï¼GNUéçºç°å¢ã®ãªã³ã«ã¹ã¯ãªããã®
|
---|
953 | STARTUPã使ã£ã¦ï¼è¨è¿°ããå ´åã«ã¯ï¼ãã®ãªãã¸ã§ã¯ããã¡ã¤ã«åãï¼
|
---|
954 | ï¼START_OBJSã¾ãã¯END_OBJSã§ã¯ãªãï¼HIDDEN_OBJSã«å®ç¾©ãï¼ããã«å¯¾ããã³
|
---|
955 | ã³ãã¤ã«ã«ã¼ã«ã¨ä¾åé¢ä¿ä½æã«ã¼ã«ãå®ç¾©ããï¼HIDDEN_OBJSã«å®ç¾©ããã¢
|
---|
956 | ã¸ã¥ã¼ã«ã¯ï¼ãªã³ã«ã«å¯¾ãããã©ã¡ã¼ã¿ããã¯é¤å¤ãããï¼LDFLAGSã¨
|
---|
957 | CFG1_OUT_LDFLAGSï¼LIBSã«ã¤ãã¦ã¯ï¼START_OBJSã¾ãã¯END_OBJSãç¨ããå ´å
|
---|
958 | ã¨åæ§ã§ããï¼
|
---|
959 |
|
---|
960 | ä¾ãã°ï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ã½ã¼ã¹ãã¡ã¤ã«ãstart.Sã§ï¼start.oã
|
---|
961 | ãªã³ã¯ãããã¨ããªã³ã«ã¹ã¯ãªããä¸ã«è¨è¿°ããå ´åã«ã¯ï¼Makefileã®ã¿ã¼ã²ã
|
---|
962 | ãä¾åé¨ã«æ¬¡ã®ãããªè¨è¿°ãå
|
---|
963 | ¥ããã¨ããï¼
|
---|
964 |
|
---|
965 | ----------------------------------------
|
---|
966 | # ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ãªãã¸ã§ã¯ããã¡ã¤ã«å
|
---|
967 | HIDDEN_OBJS = start.o
|
---|
968 |
|
---|
969 | # ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ã³ã³ãã¤ã«ã«ã¼ã«
|
---|
970 | $(HIDDEN_OBJS): %.o: %.S
|
---|
971 | $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
|
---|
972 |
|
---|
973 | # ãªã³ã«ã«å¯¾ãããªãã·ã§ã³
|
---|
974 | LDFLAGS := -nostdlib $(LDFLAGS)
|
---|
975 | CFG1_OUT_LDFLAGS := -nostdlib $(CFG1_OUT_LDFLAGS)
|
---|
976 | LIBS := $(LIBS) -lgcc
|
---|
977 | ----------------------------------------
|
---|
978 |
|
---|
979 | 2.7 ä¾åé¢ä¿ã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
980 |
|
---|
981 | ã¿ã¼ã²ããä¾åé¨ã®éçºä¸ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®åãã¹ã«å¯¾ãã¦ï¼ã¿ã¼ã²ã
|
---|
982 | ãä¾åé¨ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã¸ã®ä¾åé¢ä¿ãå®ç¾©ããã¨ä¾¿å©ã§ããï¼å
|
---|
983 | ·ä½
|
---|
984 | çã«ã¯ï¼ãã¹1ï¼ãã¹2ï¼ãã¹3ãä¾åãããã¡ã¤ã«ãï¼ããããcfg1_out.cï¼
|
---|
985 | kernel_cfg.timestampï¼$(OBJFILE)ã«å¯¾ããä¾åé¢ä¿ã®å½¢ã§è¨è¿°ããï¼
|
---|
986 |
|
---|
987 | ã»ã¨ãã©ã®å ´åï¼ã¿ã¼ã²ããä¾åé¨ãã£ã¬ã¯ããªã®Makefile.targetã«å«ããè¨
|
---|
988 | è¿°ã¯ï¼ä»¥ä¸ã®ããã«ãªãï¼
|
---|
989 |
|
---|
990 | ----------------------------------------
|
---|
991 | cfg1_out.c: $(TARGETDIR)/target_def.csv
|
---|
992 | kernel_cfg.timestamp: $(TARGETDIR)/target.tf
|
---|
993 | $(OBJFILE): $(TARGETDIR)/target_check.tf
|
---|
994 | ----------------------------------------
|
---|
995 |
|
---|
996 | 2.8 ãã®ä»ã®è¨å®
|
---|
997 |
|
---|
998 | (2-8-1) CLEAN_FILES cleanã«ããåé¤ãããã¡ã¤ã«å
|
---|
999 |
|
---|
1000 | cleanã«ããåé¤ãããã¡ã¤ã«ãã¿ã¼ã²ããä¾åé¨ã§è¿½å ãããå ´åã«ã¯ï¼ãã¡
|
---|
1001 | ã¤ã«åããã®å¤æ°ã«è¿½å å®ç¾©ããï¼
|
---|
1002 |
|
---|
1003 | (2-8-2) REALCLEAN_FILES realcleanã«ããåé¤ãããã¡ã¤ã«å
|
---|
1004 |
|
---|
1005 | realcleanã«ããåé¤ãããã¡ã¤ã«ãã¿ã¼ã²ããä¾åé¨ã§è¿½å ãããå ´åã«ã¯ï¼
|
---|
1006 | ãã¡ã¤ã«åããã®å¤æ°ã«è¿½å å®ç¾©ããï¼
|
---|
1007 |
|
---|
1008 |
|
---|
1009 | ï¼ï¼TOPPERSå
|
---|
1010 | ±éå®ç¾©ã®ã¿ã¼ã²ããä¾åé¨
|
---|
1011 |
|
---|
1012 | TOPPERSå
|
---|
1013 | ±éå®ç¾©ï¼t_stddef.hï¼ã®ã¿ã¼ã²ããä¾åé¨ã¯ï¼target_stddef.hã¾ã
|
---|
1014 | ã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼éçºç°å¢ä¾åé¨ï¼ããã»ããµã³ã¢ä¾
|
---|
1015 | åé¨ï¼ãããä¾åé¨ã§ç¨æãããããããã¡ã¤ã«ãªã©ï¼ã«å«ããï¼
|
---|
1016 |
|
---|
1017 | 3.1 ã¿ã¼ã²ããèå¥ãã¯ã
|
---|
1018 |
|
---|
1019 | ã¢ããªã±ã¼ã·ã§ã³ãã·ã¹ãã ãµã¼ãã¹ã§ã¿ã¼ã²ãããèå¥ããããã«ï¼
|
---|
1020 | "TOPPERS_"ã«ã·ã¹ãã ç¥ç§°ã大æåã«ããæååãé£çµãããã®ï¼ä¾ãã°ï¼
|
---|
1021 | "TOPPERS_CT11MPCORE"ï¼ããã¯ãå®ç¾©ããï¼
|
---|
1022 |
|
---|
1023 | ã¾ãï¼ã¿ã¼ã²ããä¾åé¨ããããã»ããµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ãåãåã
|
---|
1024 | ãå ´åã«ã¯ï¼"TOPPERS_"ã«ããã»ããµã³ã¢ç¥ç§°ï¼ãããç¥ç§°ã大æåã«ããæ
|
---|
1025 | ååãé£çµãããã®ï¼ä¾ãã°ï¼"TOPPERS_ARM"ï¼ããã¯ãå®ç¾©ããï¼
|
---|
1026 |
|
---|
1027 | 3.2 æ´æ°åã®æ大å¤ã»æå°å¤ã»ãããæ°
|
---|
1028 |
|
---|
1029 | (3-2-1) INT_MAX intã«æ ¼ç´ã§ããæ大å¤ï¼C90æºæ ï¼
|
---|
1030 | (3-2-2) INT_MIN intã«æ ¼ç´ã§ããæå°å¤ï¼C90æºæ ï¼
|
---|
1031 | (3-2-3) UINT_MAX unsigned intã«æ ¼ç´ã§ããæ大å¤ï¼C90æºæ ï¼
|
---|
1032 | (3-2-4) LONG_MAX longã«æ ¼ç´ã§ããæ大å¤ï¼C90æºæ ï¼
|
---|
1033 | (3-2-5) LONG_MIN longã«æ ¼ç´ã§ããæå°å¤ï¼C90æºæ ï¼
|
---|
1034 | (3-2-6) ULONG_MAX unsigned longã«æ ¼ç´ã§ããæ大å¤ï¼C90æºæ ï¼
|
---|
1035 | (3-2-7) CHAR_BIT charåã®ãããæ°ï¼C90æºæ ï¼
|
---|
1036 |
|
---|
1037 | æ´æ°åã®æ大å¤ã»æå°å¤ã»ãããæ°ãï¼ãããã®ã·ã³ãã«ã«ãã¯ãã«å®ç¾©ããï¼
|
---|
1038 |
|
---|
1039 | ãããã®ãã¯ãã¯ï¼C90ã«æºæ ãããã®ã§ããï¼éçºç°å¢ã«C90ã«æºæ ãã
|
---|
1040 | limits.hãç¨æããã¦ããå ´åã«ã¯ï¼ãããã®ãã¯ããå®ç¾©ãããã¨ã«ä»£ãã¦ï¼
|
---|
1041 | limits.hãã¤ã³ã¯ã«ã¼ãããã°ããï¼
|
---|
1042 |
|
---|
1043 | 3.3 ãµã¤ãºã®æå®ãããæ´æ°åï¼ãã®æ大å¤ã»æå°å¤ï¼æ´æ°å®æ°ãä½ããã¯ã
|
---|
1044 |
|
---|
1045 | (3-3-1) int8_t 符å·ä»ã8ãããæ´æ°ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1046 | (3-3-2) uint8_t 符å·ç¡ã8ãããæ´æ°ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1047 | (3-3-3) int16_t 符å·ä»ã16ãããæ´æ°ï¼C99æºæ ï¼
|
---|
1048 | (3-3-4) uint16_t 符å·ç¡ã16ãããæ´æ°ï¼C99æºæ ï¼
|
---|
1049 | (3-3-5) int32_t 符å·ä»ã32ãããæ´æ°ï¼C99æºæ ï¼
|
---|
1050 | (3-3-6) uint32_t 符å·ç¡ã32ãããæ´æ°ï¼C99æºæ ï¼
|
---|
1051 | (3-3-7) int64_t 符å·ä»ã64ãããæ´æ°ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1052 | (3-3-8) uint64_t 符å·ç¡ã64ãããæ´æ°ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1053 | (3-3-9) int128_t 符å·ä»ã128ãããæ´æ°ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1054 | (3-3-10) uint128_t 符å·ç¡ã128ãããæ´æ°ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1055 | (3-3-11) int_least8_t 8ããã以ä¸ã®ç¬¦å·ä»ãæ´æ°ï¼C99æºæ ï¼
|
---|
1056 | (3-3-12) uint_least8_t 8ããã以ä¸ã®ç¬¦å·ç¡ãæ´æ°ï¼C99æºæ ï¼
|
---|
1057 | (3-3-13) size_t ã¡ã¢ãªé åã®ãµã¤ãºã表ã符å·ç¡ãæ´æ°ï¼C90æºæ ï¼
|
---|
1058 | (3-3-14) intptr_t ãã¤ã³ã¿ãæ ¼ç´ã§ãããµã¤ãºã®ç¬¦å·ä»ãæ´æ°ï¼C99æºæ ï¼
|
---|
1059 | (3-3-15) uintptr_t ãã¤ã³ã¿ãæ ¼ç´ã§ãããµã¤ãºã®ç¬¦å·ç¡ãæ´æ°ï¼C99æºæ ï¼
|
---|
1060 | (3-3-16) INT8_MAX int8_tã«æ ¼ç´ã§ããæ大å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1061 | (3-3-17) INT8_MIN int8_tã«æ ¼ç´ã§ããæå°å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1062 | (3-3-18) UINT8_MAX uint8_tã«æ ¼ç´ã§ããæ大å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1063 | (3-3-19) INT16_MAX int16_tã«æ ¼ç´ã§ããæ大å¤ï¼C99æºæ ï¼
|
---|
1064 | (3-3-20) INT16_MIN int16_tã«æ ¼ç´ã§ããæå°å¤ï¼C99æºæ ï¼
|
---|
1065 | (3-3-21) UINT16_MAX uint16_tã«æ ¼ç´ã§ããæ大å¤ï¼C99æºæ ï¼
|
---|
1066 | (3-3-22) INT32_MAX int32_tã«æ ¼ç´ã§ããæ大å¤ï¼C99æºæ ï¼
|
---|
1067 | (3-3-23) INT32_MIN int32_tã«æ ¼ç´ã§ããæå°å¤ï¼C99æºæ ï¼
|
---|
1068 | (3-3-24) UINT32_MAX uint32_tã«æ ¼ç´ã§ããæ大å¤ï¼C99æºæ ï¼
|
---|
1069 | (3-3-25) INT64_MAX int64_tã«æ ¼ç´ã§ããæ大å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1070 | (3-3-26) INT64_MIN int64_tã«æ ¼ç´ã§ããæå°å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1071 | (3-3-27) UINT64_MAX uint64_tã«æ ¼ç´ã§ããæ大å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1072 | (3-3-28) INT128_MAX int128_tã«æ ¼ç´ã§ããæ大å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1073 | (3-3-29) INT128_MIN int128_tã«æ ¼ç´ã§ããæå°å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1074 | (3-3-30) UINT128_MAX uint128_tã«æ ¼ç´ã§ããæ大å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1075 | (3-3-31) INT_LEAST8_MAX int_least8_tã«æ ¼ç´ã§ããæ大å¤ï¼C99æºæ ï¼
|
---|
1076 | (3-3-32) INT_LEAST8_MIN int_least8_tã«æ ¼ç´ã§ããæå°å¤ï¼C99æºæ ï¼
|
---|
1077 | (3-3-33) UINT_LEAST8_MAX uint_least8_tã«æ ¼ç´ã§ããæ大å¤ï¼C99æºæ ï¼
|
---|
1078 | (3-3-34) INT8_C(val) int_least8_tåã®å®æ°ãä½ããã¯ãï¼C99æºæ ï¼
|
---|
1079 | (3-3-35) UINT8_C(val) uint_least8_tåã®å®æ°ãä½ããã¯ãï¼C99æºæ ï¼
|
---|
1080 | (3-3-36) INT16_C(val) int16_tåã®å®æ°ãä½ããã¯ãï¼C99æºæ ï¼
|
---|
1081 | (3-3-37) UINT16_C(val) uint16_tåã®å®æ°ãä½ããã¯ãï¼C99æºæ ï¼
|
---|
1082 | (3-3-38) INT32_C(val) int32_tåã®å®æ°ãä½ããã¯ãï¼C99æºæ ï¼
|
---|
1083 | (3-3-39) UINT32_C(val) uint32_tåã®å®æ°ãä½ããã¯ãï¼C99æºæ ï¼
|
---|
1084 | (3-3-40) INT64_C(val) int64_tåã®å®æ°ãä½ããã¯ãï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1085 | (3-3-41) UINT64_C(val) uint64_tåã®å®æ°ãä½ããã¯ãï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1086 | (3-3-42) INT128_C(val) int128_tåã®å®æ°ãä½ããã¯ãï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1087 | (3-3-43) UINT128_C(val) uint128_tåã®å®æ°ãä½ããã¯ãï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
|
---|
1088 |
|
---|
1089 | æå®ããããµã¤ãºã®æ´æ°åãï¼ãããã®ã·ã³ãã«ã«åå®ç¾©ããï¼ã¾ãï¼ãã¼ã¿
|
---|
1090 | åã«æ ¼ç´ã§ããæ大å¤ã»æå°å¤ã¨ï¼æ´æ°å®æ°ãä½ããã¯ããï¼ãããã®ã·ã³ã
|
---|
1091 | ã«ã«ãã¯ãå®ç¾©ããï¼
|
---|
1092 |
|
---|
1093 | size_tåã¯ï¼C90ã«æºæ ãããã®ã§ããï¼C90æºæ ã®Cè¨èªç°å¢ã§ã¯ï¼size_tã®å®
|
---|
1094 | 義ã¯stddef.hçã«å«ã¾ãã¦ããããï¼ãããã¤ã³ã¯ã«ã¼ããã¦ãããï¼
|
---|
1095 |
|
---|
1096 | ãã®ä»ã®ãã¼ã¿åããã³ãã¯ãã¯ï¼C99ã«æºæ ãããã®ã§ããï¼éçºç°å¢ã«C99
|
---|
1097 | ã«æºæ ããstdint.hãç¨æããã¦ããå ´åã«ã¯ï¼ãããã®ãã¼ã¿åããã³ãã¯
|
---|
1098 | ããå®ç¾©ãããã¨ã«ä»£ãã¦ï¼stdint.hãã¤ã³ã¯ã«ã¼ãããã°ããï¼
|
---|
1099 |
|
---|
1100 | ä¸ã§ãªãã·ã§ã³ã¨è¨è¿°ãããã®ã¯ï¼è©²å½ãããã¼ã¿åãã³ã³ãã¤ã©ã§ãµãã¼ã
|
---|
1101 | ããã¦ããå ´åã«ã®ã¿å®ç¾©ãããã¨ã示ãï¼
|
---|
1102 |
|
---|
1103 | 3.4 ãµã¤ãºã®æå®ãããæµ®åå°æ°ç¹åï¼ãã®æ大å¤ã»æå°å¤ã®ãã¯ã
|
---|
1104 |
|
---|
1105 | (3-4-1) float32_t IEEE754æºæ ã®32ãããå精度浮åå°æ°ç¹æ°ï¼ãªã
|
---|
1106 | ã·ã§ã³ï¼
|
---|
1107 | (3-4-2) double64_t IEEE754æºæ ã®64ãããå精度浮åå°æ°ç¹æ°ï¼ãªã
|
---|
1108 | ã·ã§ã³ï¼
|
---|
1109 | (3-4-3) FLOAT32_MIN float32_tã«æ ¼ç´ã§ããæå°ã®æ£è¦åãããæ£ã®æµ®
|
---|
1110 | åå°æ°ç¹æ°ï¼ãªãã·ã§ã³ï¼
|
---|
1111 | (3-4-4) FLOAT32_MAX float32_tã«æ ¼ç´ã§ãã表ç¾å¯è½ãªæ大ã®æéæµ®å
|
---|
1112 | å°æ°ç¹æ°ï¼ãªãã·ã§ã³ï¼
|
---|
1113 | (3-4-5) DOUBLE64_MIN double64_tã«æ ¼ç´ã§ããæå°ã®æ£è¦åãããæ£ã®æµ®
|
---|
1114 | åå°æ°ç¹æ°ï¼ãªãã·ã§ã³ï¼
|
---|
1115 | (3-4-6) DOUBLE64_MAX double64_tã«æ ¼ç´ã§ãã表ç¾å¯è½ãªæ大ã®æéæµ®å
|
---|
1116 | å°æ°ç¹æ°ï¼ãªãã·ã§ã³ï¼
|
---|
1117 |
|
---|
1118 | æå®ããããµã¤ãºã»è¡¨ç¾å½¢å¼ã®æµ®åå°æ°ç¹åãï¼ãããã®ã·ã³ãã«ã«åå®ç¾©ã
|
---|
1119 | ãï¼ã¾ãï¼ãã¼ã¿åã«æ ¼ç´ã§ããæ大å¤ã»æå°å¤ãï¼ãããã®ã·ã³ãã«ã«ãã¯
|
---|
1120 | ãå®ç¾©ããï¼
|
---|
1121 |
|
---|
1122 | ããããï¼è©²å½ãããã¼ã¿åãã³ã³ãã¤ã©ã§ãµãã¼ãããã¦ããå ´åã«ã®ã¿å®
|
---|
1123 | 義ããï¼
|
---|
1124 |
|
---|
1125 | 3.5 ã³ã³ãã¤ã©ã®æ¡å¼µæ©è½ã®ããã®ãã¯ãå®ç¾©
|
---|
1126 |
|
---|
1127 | ã³ã³ãã¤ã©ã®æ¡å¼µæ©è½ãç¨ããããã®ãã¯ãã¨ãã¦ï¼å¿
|
---|
1128 | è¦ã«å¿ãã¦ï¼ä»¥ä¸ã®ã
|
---|
1129 | ã¯ãã®å®ç¾©ãå«ããï¼
|
---|
1130 |
|
---|
1131 | (3-5-1) inlineï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯æªå®ç¾©ï¼
|
---|
1132 | (3-5-2) Inlineï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯static inlineï¼
|
---|
1133 |
|
---|
1134 | ã¤ã³ã©ã¤ã³é¢æ°ã§ãããã¨ã示ãæå®ï¼Inlineã¯ï¼ã³ã³ãã¤ã«åä½ã«ãã¼ã«ã«
|
---|
1135 | ãªã¤ã³ã©ã¤ã³é¢æ°ã§ãããã¨ã示ãï¼
|
---|
1136 |
|
---|
1137 | (3-5-3) asmï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯æªå®ç¾©ï¼
|
---|
1138 | (3-5-4) Asmï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯æªå®ç¾©ï¼
|
---|
1139 |
|
---|
1140 | ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã©ãè¨è¿°ããããã®æå®ï¼Asmã¯ï¼æé©åã«ããåé¤ãã¦ã¯
|
---|
1141 | ãªããªããã¨ã示ãï¼ãããã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§ã®ã¿ä½¿ããã¯ãã§ããã
|
---|
1142 | ãï¼ã¿ã¼ã²ããä¾åé¨ã§ä½¿ããªããªãå®ç¾©ããå¿
|
---|
1143 | è¦ã¯ãªãï¼
|
---|
1144 |
|
---|
1145 | (3-5-5) offsetof(structure, field)ï¼ãªãã·ã§ã³ï¼ããã©ã«ãã®å®ç¾©ããï¼
|
---|
1146 |
|
---|
1147 | æ§é ä½structureã®ä¸ã§ã®ï¼ãã£ã¼ã«ãfieldã®ãªãã»ãããæ±ãããã¯ãï¼
|
---|
1148 | C90æºæ ã®Cè¨èªç°å¢ã§ã¯ï¼offsetofã®å®ç¾©ã¯stddef.hã«å«ã¾ãã¦ããããï¼ã
|
---|
1149 | ããã¤ã³ã¯ã«ã¼ããã¦ãããï¼
|
---|
1150 |
|
---|
1151 | (3-5-6) alignof(type)ï¼ãªãã·ã§ã³ï¼ããã©ã«ãã®å®ç¾©ããï¼
|
---|
1152 |
|
---|
1153 | ãã¼ã¿åtypeã®ã¢ã©ã¤ã³ã¡ã³ãåä½ãæ±ãããã¯ãï¼
|
---|
1154 |
|
---|
1155 | (3-5-7) NoReturnï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯æªå®ç¾©ï¼
|
---|
1156 |
|
---|
1157 | ãªã¿ã¼ã³ãããã¨ã®ãªãé¢æ°ã§ãããã¨ã示ãæå®ï¼ããã¯ï¼ã¿ã¼ã²ããä¾å
|
---|
1158 | é¨ã®ã¿ä½¿ããã¯ãã§ããããï¼ã¿ã¼ã²ããä¾åé¨ã§ä½¿ããªããªãå®ç¾©ããå¿
|
---|
1159 | è¦
|
---|
1160 | ã¯ãªãï¼
|
---|
1161 |
|
---|
1162 | 3.6 æ¨æºçãªå®ç¾©ã®ä¸æ¸ã
|
---|
1163 |
|
---|
1164 | t_stddef.hã«å«ã¾ããTOPPERSå
|
---|
1165 | ±éå®ç¾©ã®æ¨æºçãªå®ç¾©ãä¸æ¸ãããå ´åã«ã¯ï¼
|
---|
1166 | 以ä¸ã®ãã¯ããå®ç¾©ããï¼
|
---|
1167 |
|
---|
1168 | (3-6-1) TOPPERS_boolï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯intï¼
|
---|
1169 | (3-6-2) TOPPERS_fpï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯ä»ã¨äºææ§ã®ãªãé¢æ°ãã¤ã³ã¿ï¼
|
---|
1170 |
|
---|
1171 | ããããï¼bool_tï¼FPã«åå®ç¾©ãã¹ããã¼ã¿åï¼
|
---|
1172 |
|
---|
1173 | (3-6-3) UINT_C(val)ï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯Uãä»å ï¼
|
---|
1174 | (3-6-4) ULONG_C(val)ï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯ULãä»å ï¼
|
---|
1175 |
|
---|
1176 | ããããï¼unsigned uintåï¼unsigned longåã®å®æ°ãä½ãããã®ãã¯ãï¼
|
---|
1177 |
|
---|
1178 | (3-6-5) NULLï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯0ï¼
|
---|
1179 |
|
---|
1180 | C90æºæ ã®Cè¨èªç°å¢ã§ã¯ï¼NULLã®å®ç¾©ã¯stddef.hã«å«ã¾ãã¦ããããï¼ããã
|
---|
1181 | ã¤ã³ã¯ã«ã¼ããã¦ãããï¼
|
---|
1182 |
|
---|
1183 | (3-6-6) ERCD(mercd, sercd)ï¼ãªãã·ã§ã³ï¼
|
---|
1184 | (3-6-7) MERCD(ercd)ï¼ãªãã·ã§ã³ï¼
|
---|
1185 | (3-6-8) SERCD(ercd)ï¼ãªãã·ã§ã³ï¼
|
---|
1186 |
|
---|
1187 | ERCDï¼MERCDï¼SERCDã®æ¨æºã®å®ç¾©ã¯ï¼ç¬¦å·ä»ãæ´æ°ã2ã®è£æ°ã§è¡¨ç¾ããã¦ããï¼
|
---|
1188 | å³ã·ããæ¼ç®åï¼>>ï¼ãç®è¡ã·ããããããã¨ãä»®å®ãã¦ããï¼å¤ãã®ã³ã³ã
|
---|
1189 | ã¤ã©ã§ãã®ä»®å®ãæãç«ã¤ãï¼ããã§ãªãå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§ãã
|
---|
1190 | ãã®å®ç¾©ãä¸æ¸ãããå¿
|
---|
1191 | è¦ãããï¼
|
---|
1192 |
|
---|
1193 | (3-6-9) ALIGN_TYPE(addr, type)ï¼ãªãã·ã§ã³ï¼
|
---|
1194 |
|
---|
1195 | ã¢ãã¬ã¹addrãï¼ãã¼ã¿åtypeã®ã¢ã©ã¤ã³ã¡ã³ãåä½ã«ã¢ã©ã¤ã³ãã¦ããã
|
---|
1196 | ãã§ãã¯ãããã¯ãï¼
|
---|
1197 |
|
---|
1198 | 3.7 ã¢ãµã¼ã·ã§ã³ã®ããã®å®ç¾©
|
---|
1199 |
|
---|
1200 | t_stddef.hã«ã¯ï¼assertã®å®ç¾©ãå«ã¾ããï¼assertã失æããå ´åï¼assertã®
|
---|
1201 | ãã©ã¡ã¼ã¿ãfalseã«ãªã£ãå ´åï¼ã®å¦çãï¼ã¿ã¼ã²ããä¾åã«ç¨æããå¿
|
---|
1202 | è¦ã
|
---|
1203 | ããï¼ãããã®å®ç¾©ã¯ï¼assertãã¯ãã使ç¨ããåã§ããã°ï¼t_stddef.h以é
|
---|
1204 | ã«ã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ã«å«ã¾ãã¦ãã¦ãããï¼ãªãï¼assertãç¡å¹ã«
|
---|
1205 | ããï¼NDEBUGããã¯ãå®ç¾©ãã¦ã³ã³ãã¤ã«ããï¼å ´åã«ã¯ï¼ããããç¨æãã
|
---|
1206 | å¿
|
---|
1207 | è¦ã¯ãªãï¼
|
---|
1208 |
|
---|
1209 | (3-7-1) TOPPERS_assert_abort(void)
|
---|
1210 |
|
---|
1211 | assertã失æããå ´åã«ï¼ããã°ã©ã ãåæ¢ãããé¢æ°ï¼ã·ã¹ãã éçºä¸ã¯ã
|
---|
1212 | ããã¬ã«è½ã¨ãã®ãçæ³çã§ããï¼ã·ã¹ãã 稼åæã«ã¯ä¾å¤å¦çãè¡ãããã
|
---|
1213 | ã¨ã«ãªãï¼
|
---|
1214 |
|
---|
1215 | (3-7-2) TOPPERS_assert_fail(exp, file, line)
|
---|
1216 |
|
---|
1217 | assertã失æããæã®æ
|
---|
1218 | å ±ã表示/è¨é²ããããã®ãã¯ãï¼ã·ã¹ãã ãã°æ©è½ã
|
---|
1219 | ç¨ããå ´åã«ã¯ï¼t_syslog.hã«ã·ã¹ãã ãã°æ©è½ã«è¨é²ããããã®å®ç¾©ãå«ã¾
|
---|
1220 | ãã¦ããã®ã§ï¼ã¿ã¼ã²ããä¾åé¨ã§ç¨æããå¿
|
---|
1221 | è¦ã¯ãªãï¼
|
---|
1222 |
|
---|
1223 |
|
---|
1224 | ï¼ï¼ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ï¼SILï¼ã®ã¿ã¼ã²ããä¾åé¨
|
---|
1225 |
|
---|
1226 | ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ï¼SILï¼sil.hï¼ã®ã¿ã¼ã²ããä¾åé¨ã®å®ç¾©ã¯ï¼
|
---|
1227 | target_sil.hã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼éçºç°å¢ä¾åé¨ï¼
|
---|
1228 | ããã»ããµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ã§ç¨æãããããããã¡ã¤ã«ãªã©ï¼ã«å«
|
---|
1229 | ããï¼
|
---|
1230 |
|
---|
1231 | SILã®ãµã¼ãã¹ã³ã¼ã«ã¯ï¼ä»»æã®ã·ã¹ãã ç¶æ
|
---|
1232 | ã§å¼ã³åºããã¨ãã§ããï¼ãã®ã
|
---|
1233 | ãï¼SILã®ã¿ã¼ã²ããä¾åé¨ã®é¢æ°ã¯ï¼ä»»æã®ã·ã¹ãã ç¶æ
|
---|
1234 | ã§å¼ã³åºããããã«
|
---|
1235 | å®è£
|
---|
1236 | ããªããã°ãªããªãï¼
|
---|
1237 |
|
---|
1238 | 4.1 å
|
---|
1239 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
1240 | ã®ç®¡ç
|
---|
1241 |
|
---|
1242 | SILã®ã¿ã¼ã²ããä¾åé¨ã§ã¯ï¼å
|
---|
1243 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
1244 | ã¸é·ç§»ããæ©è½ã¨ï¼å
|
---|
1245 | ã®ç¶æ
|
---|
1246 |
|
---|
1247 | ã¸æ»ãæ©è½ï¼å
|
---|
1248 | ã®ç¶æ
|
---|
1249 | ãè¨æ¶ããããã«å¤æ°ã使ãï¼ãæä¾ããï¼å
|
---|
1250 | ¨å²è¾¼ã¿ãã
|
---|
1251 | ã¯ç¶æ
|
---|
1252 | ã§ããããå¤å¥ããæ©è½ã¯æä¾ããå¿
|
---|
1253 | è¦ããªãï¼
|
---|
1254 |
|
---|
1255 | SILã®æ©è½ã¯ï¼ã«ã¼ãã«ã使ç¨ããªãå ´åã«ã使ç¨ã§ããå¿
|
---|
1256 | è¦ãããï¼ãã®ããï¼
|
---|
1257 | å
|
---|
1258 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
1259 | ã¸ã®é·ç§»ã¨å
|
---|
1260 | ã®ç¶æ
|
---|
1261 | ã¸ã®å¾©å¸°ã¯ï¼ã«ã¼ãã«ãç¨ããï¼ãã
|
---|
1262 | ã»ããµã®ãªã½ã¼ã¹ãç´æ¥æä½ãããã¨ã«ãã£ã¦å®ç¾ããï¼ã¾ãï¼å
|
---|
1263 | ¨å²è¾¼ã¿ãã
|
---|
1264 | ã¯ç¶æ
|
---|
1265 | ã¸ã®é·ç§»ã¨å
|
---|
1266 | ã®ç¶æ
|
---|
1267 | ã¸ã®å¾©å¸°ã¯ï¼å
|
---|
1268 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
1269 | ãCPUããã¯ç¶æ
|
---|
1270 | ã§
|
---|
1271 | ãè¡ããå¿
|
---|
1272 | è¦ãããï¼
|
---|
1273 |
|
---|
1274 | ä¿è·æ©è½ãæã£ãã«ã¼ãã«ã§ã¯ï¼ã¦ã¼ã¶ã¿ã¹ã¯ããããã»ããµã®ãªã½ã¼ã¹ãç´
|
---|
1275 | æ¥æä½ãããã¨ãã§ããªãããï¼ã¦ã¼ã¶ã¿ã¹ã¯ããã¯ãããã®æ©è½ãç¨ããã
|
---|
1276 | ã¨ãã§ããªãï¼ç¨ããå ´åã®æ¯èãã¯ã¿ã¼ã²ããããã»ããµã«ä¾åãããï¼å
|
---|
1277 | ¸
|
---|
1278 | åçã«ã¯ï¼ç¹æ¨©å½ä»¤éåãªã©ã®CPUä¾å¤ãçºçãããã¨ã«ãªãï¼
|
---|
1279 |
|
---|
1280 | (4-1-1) SIL_PRE_LOC
|
---|
1281 |
|
---|
1282 | å
|
---|
1283 | ¨å²è¾¼ã¿ããã¯ãã©ã°ã®ç¶æ
|
---|
1284 | ãä¿åããããã®å¤æ°ãå®ç¾©ãããã¯ãï¼ååã®
|
---|
1285 | å¾ã«ï¼å¤æ°åãç¶ãããã®ã«å®ç¾©ããï¼å¤æ°åã¯ï¼ä»ã®ååã¨è¡çªããªããã
|
---|
1286 | ã«ï¼"TOPPERS_"ã§å§ã¾ãååã«ããï¼
|
---|
1287 |
|
---|
1288 | (4-1-2) SIL_LOC_INT()
|
---|
1289 |
|
---|
1290 | ç¾å¨ã®å
|
---|
1291 | ¨å²è¾¼ã¿ããã¯ãã©ã°ã®ç¶æ
|
---|
1292 | ãSIL_PRE_LOCã§å®ç¾©ããå¤æ°ã«ä¿åãï¼å
|
---|
1293 | ¨
|
---|
1294 | å²è¾¼ã¿ããã¯ç¶æ
|
---|
1295 | ã«é·ç§»ããããã¯ãï¼ãã®ãã¯ããå®ç¾ããéã«ã¯ï¼ã1.5
|
---|
1296 | ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
|
---|
1297 | ¥å¦çã®å®ç¾ã«é¢ããå¶ç´ãã®ç¯ã«è¨è¿°ããã¦ã
|
---|
1298 | ãå¶ç´ã«å¾ããªããã°ãªããªãï¼
|
---|
1299 |
|
---|
1300 | (4-1-3) SIL_UNL_INT()
|
---|
1301 |
|
---|
1302 | SIL_LOC_INT()ã«ãã£ã¦å¤æ°ã«ä¿åããç¶æ
|
---|
1303 | ã«æ»ããã¯ãï¼ãã®ãã¯ããå®ç¾ã
|
---|
1304 | ãéã«ã¯ï¼ã1.5 ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
|
---|
1305 | ¥å¦çã®å®ç¾ã«é¢ããå¶ç´ãã®
|
---|
1306 | ç¯ã«è¨è¿°ããã¦ããå¶ç´ã«å¾ããªããã°ãªããªãï¼
|
---|
1307 |
|
---|
1308 | 4.2 å¾®å°æéå¾
|
---|
1309 | ã¡
|
---|
1310 |
|
---|
1311 | (4-2-1) void sil_dly_nse(ulong_t dlytim)
|
---|
1312 |
|
---|
1313 | dlytimã§æå®ããã以ä¸ã®æéï¼åä½ã¯ããç§ï¼ï¼ã«ã¼ããªã©ã«ãã£ã¦å¾
|
---|
1314 | ã¤é¢
|
---|
1315 | æ°ï¼
|
---|
1316 |
|
---|
1317 | 以ä¸ã®é¢æ°ã¨ç価ãªå¦çãï¼ã¢ã»ã³ããªè¨èªã§è¨è¿°ããæ¹æ³ãï¼æ¨æºçãªå®è£
|
---|
1318 |
|
---|
1319 | æ¹æ³ã¨ããï¼ã¢ã»ã³ããªè¨èªã§è¨è¿°ããã®ã¯ï¼ã³ã³ãã¤ã©ã®æé©åã«ä¾åããª
|
---|
1320 | ãããã«ããããã§ããï¼ã¾ããã®é¢æ°ã¯ï¼ãã£ãã·ã¥çã®å½±é¿ãåããªãã
|
---|
1321 | ãã«ï¼ã§ããéãã¡ã¢ãªã¢ã¯ã»ã¹ãè¡ããªãããã«å®è£
|
---|
1322 | ãã¹ãã§ããï¼
|
---|
1323 |
|
---|
1324 | void sil_dly_nse(ulong_t dlytim)
|
---|
1325 | {
|
---|
1326 | dlytim -= SIL_DLY_TIM1;
|
---|
1327 | if (çµæã0ãã大ãã) {
|
---|
1328 | do {
|
---|
1329 | dlytim -= SIL_DLY_TIM2;
|
---|
1330 | } while (çµæã0ãã大ãã);
|
---|
1331 | }
|
---|
1332 | }
|
---|
1333 |
|
---|
1334 | ãã®é¢æ°ã®åä½ã¯æ¬¡ã®éãã§ããï¼dlytimãSIL_DLY_TIM1以ä¸ã®å ´åã«ã¯ï¼æ
|
---|
1335 | åã®ifæã®æ¡ä»¶ãæç«ããï¼ããã«é¢æ°ããæããï¼dlytimãSIL_DLY_TIM1ã
|
---|
1336 | ã大ããï¼(SIL_DLY_TIM1+SIL_DLY_TIM2)以ä¸ã®å ´åã«ã¯ï¼æåã®ifæã®æ¡ä»¶ã¯
|
---|
1337 | æç«ãããï¼doã«ã¼ãã¯1åãåããã«é¢æ°ããæããï¼dlytimã
|
---|
1338 | (SIL_DLY_TIM1+SIL_DLY_TIM2)ãã大ããï¼(SIL_DLY_TIM1+SIL_DLY_TIM2*2)以
|
---|
1339 | ä¸ã®å ´åã«ã¯ï¼doã«ã¼ãã1åã ãåã£ã¦é¢æ°ããæããï¼ãã®å¾ï¼dlytimã
|
---|
1340 | SIL_DLY_TIM2大ãããªã度ã«ï¼whileã«ã¼ããåãåæ°ã1åãã¤å¢ããï¼
|
---|
1341 |
|
---|
1342 | ãªãï¼ãã®é¢æ°ãã¢ã»ã³ããªè¨èªï¼ã¾ãã¯ï¼Cè¨èªï¼ã§è¨è¿°ããå ´åï¼ã©ã®ãã¡
|
---|
1343 | ã¤ã«ã«è¨è¿°ããããåé¡ã«ãªãï¼SILã®ã¿ã¼ã²ããä¾åé¨ã«ã¯ï¼æ¨æºã§ã¯ï¼ã¢ã»
|
---|
1344 | ã³ããªè¨èªï¼ã¾ãã¯ï¼Cè¨èªï¼ã®é¢æ°å®ç¾©ãè¨è¿°ããããã®ãã¡ã¤ã«ãç¨æãã¦
|
---|
1345 | ããªãï¼ã¿ã¼ã²ããä¾åã§ç¨æãã¦ããããï¼ä¾å¤çã«ï¼ã«ã¼ãã«å®è£
|
---|
1346 | ã®ã¿ã¼
|
---|
1347 | ã²ããä¾åã¢ã¸ã¥ã¼ã«ï¼target_support.Sã¾ãã¯target_kernel_impl.cï¼ã«è¨
|
---|
1348 | è¿°ãã¦ããããã¨ã«ããï¼
|
---|
1349 |
|
---|
1350 | (4-2-2) SIL_DLY_TIM1ï¼ãªãã·ã§ã³ï¼
|
---|
1351 | (4-2-3) SIL_DLY_TIM2ï¼ãªãã·ã§ã³ï¼
|
---|
1352 |
|
---|
1353 | sil_dly_nseãä¸è¨ã®æ¨æºçãªæ¹æ³ã§å®ç¾ããå ´åï¼ãã®2ã¤ã®å®æ°ãã¿ã¼ã²ã
|
---|
1354 | ãä¾åé¨ã§ãã¯ãå®ç¾©ããï¼
|
---|
1355 |
|
---|
1356 | SIL_DLY_TIM2ã¯ï¼ä¸è¨ã®é¢æ°ã«ããã¦ï¼doã«ã¼ã1åã®å®è¡æéï¼åä½ã¯ããç§ï¼
|
---|
1357 | ã«è¨å®ããï¼ã¿ã¼ã²ããããã»ããµã®å½ä»¤ã»ããã«ããããï¼ããããï¼æ¸ç®
|
---|
1358 | å½ä»¤ã¨æ¡ä»¶åå²å½ä»¤å1åã®å®è¡æéã«ãªãï¼SIL_DLY_TIM2ã決ã¾ãã°ï¼é¢æ°å¼
|
---|
1359 | åºããå«ããå
|
---|
1360 | ¨ä½ã®æéãdlytimã§æå®ããã以ä¸ã®æéã«ãªãããã«ï¼
|
---|
1361 | SIL_DLY_TIM1ã決ããï¼
|
---|
1362 |
|
---|
1363 | ãã®2ã¤ã®å®æ°å¤ã®æ±ºå®ãæ¯æ´ããããã°ã©ã ã¨ãã¦ï¼testãã£ã¬ã¯ããªã«ï¼
|
---|
1364 | test_dlynseãç¨æãã¦ããï¼test_dlynseãå®è¡ããã¨ï¼æ¬¡ã®ãããªåºåãå¾
|
---|
1365 | ãããï¼
|
---|
1366 |
|
---|
1367 | -- for fitting parameters --
|
---|
1368 | sil_dly_nse(0): 430 OK
|
---|
1369 | sil_dly_nse(420): 430 OK
|
---|
1370 | sil_dly_nse(510): 520 OK
|
---|
1371 | sil_dly_nse(600): 610 OK
|
---|
1372 | <ä¸ç¥>
|
---|
1373 | -- for checking boundary conditions --
|
---|
1374 | sil_dly_nse(421): 520 OK
|
---|
1375 | sil_dly_nse(511): 610 OK
|
---|
1376 | sil_dly_nse(601): 700 OK
|
---|
1377 |
|
---|
1378 | "for fitting parameters"ã«ç¶ãåºåã¯ï¼sil_dly_nse(dlytim)ãå¼ã³åºããå ´
|
---|
1379 | åã®å¾
|
---|
1380 | ã¡æéã測å®ããçµæã§ããï¼ãã®ããã°ã©ã ãç¨ãã¦ï¼":"ã®å³å´ã®æ°
|
---|
1381 | å¤ãï¼dlytimããã大ããç¯å²ã§ãªãã¹ãè¿ãå¤ã«ãªãããã«ï¼2ã¤ã®å®æ°å¤ã
|
---|
1382 | 調æ´ããï¼"for checking boundary conditions"ã«ç¶ãåºåã¯ï¼ããã°ã©ã ã®
|
---|
1383 | 妥å½æ§ããã§ãã¯ããããã®ãã®ã§ï¼":"ã®å³å´ã®æ°å¤ãï¼dlytimããã大ãã
|
---|
1384 | ãã¨ã確èªããï¼è¿ãå¤ã«ãªãå¿
|
---|
1385 | è¦ã¯ãªãï¼ï¼
|
---|
1386 |
|
---|
1387 | 4.3 ããã»ããµã®ã¨ã³ãã£ã¢ã³
|
---|
1388 |
|
---|
1389 | (4-3-1) SIL_ENDIAN_BIG
|
---|
1390 | (4-3-2) SIL_ENDIAN_LITTLE
|
---|
1391 |
|
---|
1392 | ããã»ããµã®ã¨ã³ãã£ã¢ã³ã«ããï¼ããããçæ¹ã®ã·ã³ãã«ããã¯ãå®ç¾©ããï¼
|
---|
1393 |
|
---|
1394 | (4-3-3) TOPPERS_SIL_REV_ENDIAN_UINT16ï¼ãªãã·ã§ã³ï¼
|
---|
1395 | (4-3-4) TOPPERS_SIL_REV_ENDIAN_UINT32ï¼ãªãã·ã§ã³ï¼
|
---|
1396 |
|
---|
1397 | ããããï¼16ãããï¼32ãããã®ç¬¦å·ç¡ãæ´æ°ã®ã¨ã³ãã£ã¢ã³ãå転ãããã
|
---|
1398 | ã¯ãï¼ããã»ããµãã¨ã³ãã£ã¢ã³å転ã®ããã®å½ä»¤ãæã¤å ´åã«ã¯ï¼ãã®å½ä»¤
|
---|
1399 | ãç¨ãã¦å®ç¾ããï¼ãããã®ã·ã³ãã«ããã¯ãå®ç¾©ããªãå ´åã«ã¯ï¼ããã©ã«
|
---|
1400 | ãã®å®ç¾©ã使ãããï¼
|
---|
1401 |
|
---|
1402 | 4.4 ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°
|
---|
1403 |
|
---|
1404 | (4-4-1) TOPPERS_OMIT_SIL_ACCESS
|
---|
1405 |
|
---|
1406 | æ¨æºã®ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°ã使ç¨ããï¼ã¿ã¼ã²ããä¾åé¨ã§ç¨æããå ´å
|
---|
1407 | ã«ã¯ï¼ãã®ã·ã³ãã«ããã¯ãå®ç¾©ããï¼
|
---|
1408 |
|
---|
1409 | (4-4-2) TOPPERS_OMIT_SIL_REH_LEM
|
---|
1410 | (4-4-3) TOPPERS_OMIT_SIL_WRH_LEM
|
---|
1411 | (4-4-4) TOPPERS_OMIT_SIL_REH_BEM
|
---|
1412 | (4-4-5) TOPPERS_OMIT_SIL_WRH_BEM
|
---|
1413 | (4-4-6) TOPPERS_OMIT_SIL_REW_LEM
|
---|
1414 | (4-4-7) TOPPERS_OMIT_SIL_WRW_LEM
|
---|
1415 | (4-4-8) TOPPERS_OMIT_SIL_REW_BEM
|
---|
1416 | (4-4-9) TOPPERS_OMIT_SIL_WRW_BEM
|
---|
1417 |
|
---|
1418 | ããããï¼æ¨æºã®sil_reh_lemï¼sil_wrh_lemï¼sil_reh_bemï¼sil_wrh_bemï¼
|
---|
1419 | sil_rew_lemï¼sil_wrw_lemï¼sil_rew_bemï¼sil_wrw_bemã使ç¨ããï¼ã¿ã¼ã²ã
|
---|
1420 | ãä¾åé¨ã§ç¨æããå ´åã«ã¯ï¼ãããã®ã·ã³ãã«ããã¯ãå®ç¾©ããï¼
|
---|
1421 |
|
---|
1422 | 4.5 I/O空éã¢ã¯ã»ã¹é¢æ°
|
---|
1423 |
|
---|
1424 | ã¡ã¢ãªç©ºéã¨ã¯å¥ã«I/O空éãæã¤ããã»ããµã§ã¯ï¼I/O空éã«ããããã¤ã¹ã¬
|
---|
1425 | ã¸ã¹ã¿ãã¢ã¯ã»ã¹ããããã®é¢æ°ã¨ãã¦ï¼sil_reb_iopï¼sil_wrb_iopï¼
|
---|
1426 | sil_reh_iopï¼sil_wrh_iopï¼sil_reh_lepï¼sil_wrh_lepï¼sil_reh_bepï¼
|
---|
1427 | sil_wrh_bepï¼sil_rew_iopï¼sil_wrw_iopï¼sil_rew_lepï¼sil_wrw_lepï¼
|
---|
1428 | sil_rew_bepï¼sil_wrw_bepã®ä¸ã§å¿
|
---|
1429 | è¦ãªãã®ãï¼ã¿ã¼ã²ããä¾åé¨ã§ç¨æããï¼
|
---|
1430 |
|
---|
1431 |
|
---|
1432 | ï¼ï¼ã«ã¼ãã«APIã®ã¿ã¼ã²ããä¾åé¨
|
---|
1433 |
|
---|
1434 | ã«ã¼ãã«APIï¼kernel.hï¼ã®ã¿ã¼ã²ããä¾åé¨ã®å®ç¾©ã¯ï¼target_kernel.hã¾ã
|
---|
1435 | ã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼éçºç°å¢ä¾åé¨ï¼ããã»ããµã³ã¢ä¾
|
---|
1436 | åé¨ï¼ãããä¾åé¨ã§ç¨æãããããããã¡ã¤ã«ãªã©ï¼ã«å«ããï¼
|
---|
1437 |
|
---|
1438 | 5.1 ã¿ã¼ã²ããå®ç¾©ã§ãµãã¼ãããæ©è½
|
---|
1439 |
|
---|
1440 | (5-1-1) TOPPERS_TARGET_SUPPORT_DIS_INT dis_intããµãã¼ããã
|
---|
1441 | (5-1-2) TOPPERS_TARGET_SUPPORT_ENA_INT ena_intããµãã¼ããã
|
---|
1442 |
|
---|
1443 | dis_intï¼ena_intããµãã¼ãããå ´åã«ï¼ããããã®ã·ã³ãã«ããã¯ãå®ç¾©ã
|
---|
1444 | ãï¼
|
---|
1445 |
|
---|
1446 | 5.2 å²è¾¼ã¿åªå
|
---|
1447 | 度ã®ç¯å²
|
---|
1448 |
|
---|
1449 | (5-2-1) TMIN_INTPRI å²è¾¼ã¿åªå
|
---|
1450 | 度ã®æå°å¤ï¼æé«å¤ï¼
|
---|
1451 | (5-2-2) TMAX_INTPRI å²è¾¼ã¿åªå
|
---|
1452 | 度ã®æ大å¤ï¼æä½å¤ï¼
|
---|
1453 |
|
---|
1454 | ããããï¼ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿åªå
|
---|
1455 | 度ã®æå°å¤ï¼ï¼åªå
|
---|
1456 | 度ãæé«ï¼ï¼ã«ã¼ã
|
---|
1457 | ã«ç®¡çã®å²è¾¼ã¿åªå
|
---|
1458 | 度ã®æ大å¤ï¼åªå
|
---|
1459 | 度ãæä½ï¼ã«å®ç¾©ããï¼TMAX_INTPRIã¯-1
|
---|
1460 | ã«åºå®ããã¦ãããï¼å¯¾ç§°æ§ã®ããã«ï¼ã¿ã¼ã²ããä¾åé¨ã§å®ç¾©ãããã¨ã«ã
|
---|
1461 | ã¦ããï¼
|
---|
1462 |
|
---|
1463 | 5.3 é«å解è½ã¿ã¤ãã®ã¿ã¤ãå¨æã¨ã«ã¦ã³ãå¤ã®é²ã¿å¹
|
---|
1464 |
|
---|
1465 |
|
---|
1466 | é«å解è½ã¿ã¤ããã©ã¤ãã«é¢ãã¦ï¼ã¢ããªã±ã¼ã·ã§ã³ããåç
|
---|
1467 | §ã§ãããã¯ãã
|
---|
1468 | å®ç¾©ããï¼é«å解è½ã¿ã¤ããã©ã¤ãã®è©³ç´°ã«é¢ãã¦ã¯ï¼ã6.13 é«å解è½ã¿ã¤ã
|
---|
1469 | ãã©ã¤ããã®ç¯ãåç
|
---|
1470 | §ãããã¨ï¼
|
---|
1471 |
|
---|
1472 | (5-3-1) TCYC_HRTCNT é«å解è½ã¿ã¤ãã®ã¿ã¤ãå¨æ
|
---|
1473 |
|
---|
1474 | é«å解è½ã¿ã¤ãã®ã¿ã¤ãå¨æãï¼ãã®ãã¯ãã«å®ç¾©ããï¼ã¿ã¤ãå¨æã2^32ã®
|
---|
1475 | å ´åã«ã¯ï¼ãã®ãã¯ããå®ç¾©ããªãï¼
|
---|
1476 |
|
---|
1477 | (5-3-2) TSTEP_HRTCNT é«å解è½ã¿ã¤ãã®ã«ã¦ã³ãå¤ã®é²ã¿å¹
|
---|
1478 |
|
---|
1479 |
|
---|
1480 | é«å解è½ã¿ã¤ãã®ã«ã¦ã³ãå¤ã®é²ã¿å¹
|
---|
1481 | ãï¼ãã®ãã¯ãã«å®ç¾©ããï¼ä¾ãã°ï¼é«
|
---|
1482 | å解è½ã¿ã¤ããï¼2ãã¤ã¯ãç§æ¯ã«2ãã¤ã«ã¦ã³ãã¢ããããå ´åã«ã¯ï¼
|
---|
1483 | TSTEP_HRTCNTã2ã«å®ç¾©ããï¼
|
---|
1484 |
|
---|
1485 | 5.4 ã¡ã¢ãªé å確ä¿ã®ããã®åå®ç¾©
|
---|
1486 |
|
---|
1487 | (5-4-1) TOPPERS_STK_T ã¹ã¿ãã¯é åã確ä¿ããããã®åï¼ãªãã·ã§ã³ï¼
|
---|
1488 | (5-4-2) TOPPERS_MPF_T åºå®é·ã¡ã¢ãªãã¼ã«é åã確ä¿ããããã®åï¼ãªãã·ã§ã³ï¼
|
---|
1489 |
|
---|
1490 | ã¹ã¿ãã¯é åã¨åºå®é·ã¡ã¢ãªãã¼ã«é åã¯ï¼æ¨æºã§ã¯intptr_tåã®é
|
---|
1491 | åã¨ãã¦
|
---|
1492 | 確ä¿ãããï¼ãã大ããåä½ã§ã¢ã©ã¤ã³ãããããªã©ã®çç±ã§ãã以å¤ã®åã®
|
---|
1493 | é
|
---|
1494 | åã¨ãã¦ç¢ºä¿ããå ´åã«ã¯ï¼ããããTOPPERS_STK_Tã¨TOPPERS_MPF_Tãï¼é
|
---|
1495 |
|
---|
1496 | åã®ãã¼ã¹ã¨ãªããã¼ã¿åã«ãã¯ãå®ç¾©ããï¼
|
---|
1497 |
|
---|
1498 | 5.5 ããããã¿ã¼ã³ã®ãããæ°
|
---|
1499 |
|
---|
1500 | (5-5-1) TBIT_FLGPTN ã¤ãã³ããã©ã°ã®ãããæ°ï¼ãªãã·ã§ã³ï¼
|
---|
1501 |
|
---|
1502 | TBIT_FLGPTNã®æ¨æºã®å®ç¾©ã§ã¯ï¼æ´æ°åã®æå¹ãããæ°ãï¼ãã®åã®sizeofã«
|
---|
1503 | CHAR_BITãä¹ãããã®ã¨ä¸è´ãã¦ãããã¨ãä»®å®ãã¦ããï¼å¤ãã®ã³ã³ãã¤ã©
|
---|
1504 | ã§ãã®ä»®å®ãæãç«ã¤ãï¼ããã§ãªãå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§ãããã®
|
---|
1505 | å®ç¾©ãä¸æ¸ãããå¿
|
---|
1506 | è¦ãããï¼ãã ãï¼ãããã®å¤ã¯16以ä¸ã§ãªããã°ãªããª
|
---|
1507 | ãï¼
|
---|
1508 |
|
---|
1509 | 5.6 ã¡ã¢ãªé å確ä¿ã®ããã®ãã¯ã
|
---|
1510 |
|
---|
1511 | (5-6-1) TOPPERS_ROUND_SZï¼ãªãã·ã§ã³ï¼
|
---|
1512 | (5-6-2) TOPPERS_COUNT_SZï¼ãªãã·ã§ã³ï¼
|
---|
1513 |
|
---|
1514 | TOPPERS_COUNT_SZ(sz, unit)ã¯ï¼sz/unitãåãä¸ããå¤ãæ±ãããã¯ãã§ï¼ãµ
|
---|
1515 | ã¤ãºãszã®ã¡ã¢ãªé åããµã¤ãºãunitã®ãã¼ã¿åã®é
|
---|
1516 | åã§ç¢ºä¿ããå ´åã®è¦ç´
|
---|
1517 | æ°ãæ±ããããã«ç¨ããï¼TOPPERS_ROUND_SZ(sz, unit)ã¯ï¼sz/unitãåãä¸ã
|
---|
1518 | ããã®ã«unitããããå¤ãæ±ãããã¯ãã§ï¼ãµã¤ãºãszã®ã¡ã¢ãªé åããµã¤ãº
|
---|
1519 | ãunitã®ãã¼ã¿åã®é
|
---|
1520 | åã§ç¢ºä¿ããå ´åã®ãã¼ã¿ã«ãµã¤ãºãæ±ããããã«ç¨ã
|
---|
1521 | ãï¼
|
---|
1522 |
|
---|
1523 | ããããï¼æ¨æºã®TOPPERS_ROUND_SZï¼TOPPERS_COUNT_SZãé©åã§ãªãï¼ã¿ã¼ã²ã
|
---|
1524 | ãä¾åé¨ã§ç¨æããå ´åã«ã¯ï¼ãããã®ã·ã³ãã«ãé©åãªå¤ã«ãã¯ãå®ç¾©ããï¼
|
---|
1525 |
|
---|
1526 | 5.7 ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µã®ããã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
1527 |
|
---|
1528 | ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ããµãã¼ãããï¼ä½¿ç¨ã§ããããã«ã
|
---|
1529 | ãï¼å ´åã«ã¯ï¼æ¬¡ã®3ã¤ãå®æ½ãããã¨ãå¿
|
---|
1530 | è¦ã§ããï¼
|
---|
1531 |
|
---|
1532 | ã»ãã®ç¯ã§èª¬æããå®ç¾©ãè¡ãï¼
|
---|
1533 | ã»ï¼ç« ã«ç¤ºãã³ã¼ãä¸ã§ï¼TOPPERS_SUPPORT_OVRHDRããã¯ãå®ç¾©ããã¦ããå ´
|
---|
1534 | ãåã«ã®ã¿æå¹ã¨ãªãã³ã¼ããå®è£
|
---|
1535 | ããï¼
|
---|
1536 | ã»ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ããç¨æããï¼ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãã«ã¤ãã¦
|
---|
1537 | ãã¯ï¼ã6.14 ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ããã®ç¯ãåç
|
---|
1538 | §ãããã¨ï¼
|
---|
1539 |
|
---|
1540 | (5-7-1) TOPPERS_TARGET_SUPPORT_OVRHDR
|
---|
1541 |
|
---|
1542 | ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ããµãã¼ãããå ´åã«ã¯ï¼ãã®ã·ã³ã
|
---|
1543 | ã«ããã¯ãå®ç¾©ããï¼
|
---|
1544 |
|
---|
1545 | (5-7-2) TMAX_OVRTIMï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯UINT32_MAXï¼
|
---|
1546 |
|
---|
1547 | ããã»ããµæéã¨ãã¦ãªã¼ãã©ã³ã¿ã¤ãã«è¨å®ã§ããæ大å¤ï¼åä½ã¯ãã¤ã¯ã
|
---|
1548 | ç§ï¼ã«ãã¯ãå®ç¾©ããï¼
|
---|
1549 |
|
---|
1550 |
|
---|
1551 | ï¼ï¼ã«ã¼ãã«å®è£
|
---|
1552 | ã®ã¿ã¼ã²ããä¾åé¨
|
---|
1553 |
|
---|
1554 | ãTOPPERS/ASP1ã«ã¼ãã«ã¨ã®é¢ä¿ã
|
---|
1555 |
|
---|
1556 | ASP1ã«ã¼ãã«ã§ã¯ï¼ã«ã¼ãã«å®è£
|
---|
1557 | ã®ã¿ã¼ã²ããä¾åé¨ãæ§æããé¢æ°ãï¼ã¿ã¹
|
---|
1558 | ã¯ã³ã³ããã¹ãå°ç¨ï¼t_ã§å§ã¾ããã®ï¼ï¼éã¿ã¹ã¯ã³ã³ããã¹ãå°ç¨ï¼i_ã§å§
|
---|
1559 | ã¾ããã®ï¼ï¼ãããã®ã³ã³ããã¹ãããã§ãå¼ã³åºããã¨ãã§ãããã®ï¼x_ã§
|
---|
1560 | å§ã¾ããã®ï¼ã«åãã¦ãããï¼ASP3ã«ã¼ãã«ã§ã¯åããªããã¨ã«ããï¼
|
---|
1561 |
|
---|
1562 | 6.1 ã«ã¼ãã«å®è£
|
---|
1563 | ã®ã¿ã¼ã²ããä¾åé¨ã®å
|
---|
1564 | ±éäºé
|
---|
1565 |
|
---|
1566 |
|
---|
1567 | ã«ã¼ãã«å®è£
|
---|
1568 | ã®ã¿ã¼ã²ããä¾åé¨ã¯ï¼ä»¥ä¸ã®è¦ç´ ã§æ§æãããï¼
|
---|
1569 |
|
---|
1570 | (a) ã«ã¼ãã«å®è£
|
---|
1571 | ã®ã¿ã¼ã²ããä¾åã®å®ç¾©
|
---|
1572 |
|
---|
1573 | ã«ã¼ãã«å®è£
|
---|
1574 | ã®ã¿ã¼ã²ããéä¾åé¨ããåç
|
---|
1575 | §ãããã¿ã¼ã²ããä¾åã®å®ç¾©ã¯ï¼
|
---|
1576 | target_kernel_impl.hã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼éçºç°å¢
|
---|
1577 | ä¾åé¨ï¼ããã»ããµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ã§ç¨æãããããããã¡ã¤ã«ãª
|
---|
1578 | ã©ï¼ã«å«ããï¼
|
---|
1579 |
|
---|
1580 | ã¿ã¼ã²ããã®ãã¼ãã¦ã§ã¢è³æºï¼å²è¾¼ã¿ãã³ãã©çªå·ãCPUä¾å¤ãã³ãã©çªå·ï¼
|
---|
1581 | ããã¤ã¹ã¬ã¸ã¹ã¿ã®çªå°ãªã©ï¼ã®å®ç¾©ã¯ï¼ã·ã¹ãã ãµã¼ãã¹ãã¢ããªã±ã¼ã·ã§
|
---|
1582 | ã³ã«ãæç¨ã§ããããï¼ã«ã¼ãã«å®è£
|
---|
1583 | ã®ã¿ã«æç¨ãªå®ç¾©ãå«ããã¡ã¤ã«ã¨ã¯å
|
---|
1584 | ãåãã¦ï¼ç¬ç«ããããããã¡ã¤ã«ã«å«ããï¼ãã®ããããã¡ã¤ã«ã®æ¨æºçãª
|
---|
1585 | å称ãï¼ã·ã¹ãã ç¥ç§°.hï¼ã¾ãã¯ï¼ãããç¥ç§°.hï¼ããã»ããµç¥ç§°.hï¼ã¨ããï¼
|
---|
1586 |
|
---|
1587 | (b) ã«ã¼ãã«å®è£
|
---|
1588 | ã®ã¿ã¼ã²ããä¾åã¢ã¸ã¥ã¼ã«
|
---|
1589 |
|
---|
1590 | ã«ã¼ãã«å®è£
|
---|
1591 | ã®ã¿ã¼ã²ããä¾åã®å¤æ°å®ç¾©ãé¢æ°ãå«ãã¢ã¸ã¥ã¼ã«ï¼Cè¨èªã§è¨
|
---|
1592 | è¿°ãããé¨åãtarget_kernel_impl.cï¼ã¢ã»ã³ããªè¨èªã§è¨è¿°ãããé¨åã
|
---|
1593 | target_support.Sã«å«ããï¼éçºç°å¢ä¾åé¨ï¼ããã»ããµã³ã¢ä¾åé¨ï¼ããã
|
---|
1594 | ä¾åé¨ãåãåãããã¨ãï¼ãã¡ã¤ã«ã大ãããªãå ´åã«è¤æ°ã®ãã¡ã¤ã«ã«å
|
---|
1595 | å²ãããã¨ãå¯è½ã§ããï¼
|
---|
1596 |
|
---|
1597 | (c) ã«ã¼ãã«å®è£
|
---|
1598 | ã®ã¿ã¼ã²ããä¾åé¨ã®ããã®ãªãã¼ã è¨è¿°
|
---|
1599 |
|
---|
1600 | ã«ã¼ãã«å®è£
|
---|
1601 | ã®ã¿ã¼ã²ããä¾åé¨ã®å¤æ°åãé¢æ°åãï¼å
|
---|
1602 | é ã«_kernel_ãä»ä¸
|
---|
1603 | ããååã«ãªãã¼ã ããããã®ã¢ã¸ã¥ã¼ã«ï¼target_rename.defãç¨æãï¼ãã¼
|
---|
1604 | ã«ï¼utils/genrenameï¼ã«ããï¼target_rename.hã¨target_unrename.hãçæã
|
---|
1605 | ãï¼éçºç°å¢ä¾åé¨ï¼ããã»ããµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ãåãåããå ´å
|
---|
1606 | ã«ã¯ï¼ãªãã¼ã è¨è¿°ãåãåããï¼
|
---|
1607 |
|
---|
1608 | (d) ã¿ã¤ããã©ã¤ã
|
---|
1609 |
|
---|
1610 | ã«ã¼ãã«ãã·ã¹ãã æå»ã®æ´æ°ã«ç¨ããããé«å解è½ã¿ã¤ããæ½è±¡åãããã
|
---|
1611 | ã®é«å解è½ã¿ã¤ããã©ã¤ãã®ããããã¡ã¤ã«ï¼å®è£
|
---|
1612 | ãã¡ã¤ã«ï¼ã·ã¹ãã ã³ã³ãã£
|
---|
1613 | ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ãï¼ããããï¼target_timer.hï¼target_timer.cï¼
|
---|
1614 | target_timer.cfgã«å«ããï¼éçºç°å¢ä¾åé¨ï¼ããã»ããµã³ã¢ä¾åé¨ï¼ããã
|
---|
1615 | ä¾åé¨ãåãåãããã¨ãå¯è½ã§ããï¼
|
---|
1616 |
|
---|
1617 | ã¾ãï¼ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ããµãã¼ãããå ´åã«ã¯ï¼ãªã¼
|
---|
1618 | ãã©ã³ãã³ãã©ãèµ·åããããã®ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ããï¼åããã¡ã¤ã«
|
---|
1619 | ã«å«ããï¼
|
---|
1620 |
|
---|
1621 | ãªãï¼ãã®ç« ã«ç¤ºãã³ã¼ãä¸ã§ï¼TOPPERS_SUPPORT_OVRHDRããã¯ãå®ç¾©ããã¦
|
---|
1622 | ããå ´åã«ã®ã¿æå¹ã¨ãªãã³ã¼ãã¯ï¼ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸
|
---|
1623 | ããµãã¼ãããªãå ´åã«ã¯ï¼å®è£
|
---|
1624 | ããå¿
|
---|
1625 | è¦ããªãï¼
|
---|
1626 |
|
---|
1627 | (e) ã³ã³ãã£ã®ã¥ã¬ã¼ã¿è¨å®ãã¡ã¤ã«
|
---|
1628 |
|
---|
1629 | ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®è¨å®ãã¡ã¤ã«ã®ã¿ã¼ã²ããä¾åé¨ãï¼target_def.csvï¼
|
---|
1630 | target.tfï¼target_check.tfã«ç¨æããï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿è¨å®ãã¡ã¤ã«ã®
|
---|
1631 | è¨è¿°æ¹æ³ã«ã¤ãã¦ã¯ï¼ï¼ç« ã§èª¬æããï¼
|
---|
1632 |
|
---|
1633 | 6.2 ãã¬ã¼ã¹ãã°æ©è½ã¸ã®å¯¾å¿
|
---|
1634 |
|
---|
1635 | ã«ã¼ãã«ã®ãã¬ã¼ã¹ãã°æ©è½ã®ä¸ã§ï¼ãã£ã¹ãããã£ï¼å²è¾¼ã¿ãã³ãã©ï¼CPUä¾
|
---|
1636 | å¤ãã³ãã©ã®éå§ã»çµäºã®ãã¬ã¼ã¹ãã°åå¾ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§å®è£
|
---|
1637 | ãã
|
---|
1638 | å¿
|
---|
1639 | è¦ãããï¼ã»ã¨ãã©ã®ã¿ã¼ã²ããã·ã¹ãã ã«ããã¦ï¼ãããã®å¦çã¯ã¢ã»ã³
|
---|
1640 | ããªè¨èªã§è¨è¿°ããã¦ããï¼ã¿ã¼ã²ããéä¾åé¨åãã®ãã¬ã¼ã¹ãã°ãã¯ãã¨
|
---|
1641 | åãæ¹æ³ï¼ãã¬ã¼ã¹ãã°ãã¯ããï¼ãã¬ã¼ã¹ãã°åå¾å¦çã®Cè¨èªè¨è¿°ã«ãã¯ã
|
---|
1642 | å®ç¾©ããæ¹æ³ï¼ã¯ï¼ç¨ãããã¨ãã§ããªãï¼
|
---|
1643 |
|
---|
1644 | ããã§ï¼ã¢ã»ã³ããªè¨èªã§è¨è¿°ããã¦ããå¦çä¸ã«ãã¬ã¼ã¹ãã°åå¾ãåãè¾¼
|
---|
1645 | ãå ´åã«ã¯ï¼ãã¬ã¼ã¹ãã°ãã¯ããå®ç¾©ããã¦ããã°ï¼ãããä½ã«å®ç¾©ããã¦
|
---|
1646 | ãããã¯ç¡è¦ãã¦ï¼æ¨æºçãªãã¬ã¼ã¹ãã°é¢æ°ãCè¨èªã§è¨è¿°ããã¦ããã¨æ³å®
|
---|
1647 | ãã¦ï¼ãããå¼ã³åºãããã«ã³ã¼ãã£ã³ã°ããï¼
|
---|
1648 |
|
---|
1649 | å
|
---|
1650 | ·ä½çã«ã¯ï¼ä¸ã®è¡¨ã®å·¦å´ã«ç¤ºãããã¬ã¼ã¹ãã°ãã¯ããå®ç¾©ããã¦ããã°ï¼
|
---|
1651 | 表ã®å³å´ã«ç¤ºããCè¨èªè¨è¿°ã¨åçã®å¦çãè¡ãããã«ã³ã¼ãã£ã³ã°ããï¼
|
---|
1652 |
|
---|
1653 | ãã¬ã¼ã¹ãã°ãã¯ã ãã¬ã¼ã¹ãã°åå¾å¦ç
|
---|
1654 | -----------------------------------------------
|
---|
1655 | LOG_DSP_ENTER log_dsp_enter(p_runtsk)
|
---|
1656 | LOG_DSP_LEAVE log_dsp_leave(p_runtsk)
|
---|
1657 | LOG_INH_ENTER log_inh_enter(inhno)
|
---|
1658 | LOG_INH_LEAVE log_inh_leave(inhno)
|
---|
1659 | LOG_EXC_ENTER log_exc_enter(excno)
|
---|
1660 | LOG_EXC_LEAVE log_exc_leave(excno)
|
---|
1661 |
|
---|
1662 | 6.3 ã·ã¹ãã ç¶æ
|
---|
1663 | ã®ç®¡ç
|
---|
1664 |
|
---|
1665 | ASP3ã«ã¼ãã«ãæ°ããªã¿ã¼ã²ããã·ã¹ãã ã«ãã¼ãã£ã³ã°ããéã«ï¼æãéè¦
|
---|
1666 | ãªä½æ¥ã¯ï¼ã«ã¼ãã«ãå®ç¾©ããã·ã¹ãã ç¶æ
|
---|
1667 | ãï¼ãã¼ãã¦ã§ã¢ï¼ããã»ããµï¼
|
---|
1668 | ä¸ã§ã©ã®ããã«å®ç¾ãããã§ããï¼ä»¥ä¸ã®èª¬æã¯ï¼TOPPERSæ°ä¸ä»£ã«ã¼ãã«ã«ã
|
---|
1669 | ããã·ã¹ãã ç¶æ
|
---|
1670 | ã®å®ç¾©ã»æå³ãç¥ã£ã¦ãããã¨ãåæã«è¨è¿°ãã¦ããï¼
|
---|
1671 |
|
---|
1672 | 6.3.1 å
|
---|
1673 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
1674 | ã®ç®¡ç
|
---|
1675 |
|
---|
1676 | å
|
---|
1677 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
1678 | ã¯ï¼NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ããã¹ã¯ããç¶æ
|
---|
1679 | ã§ããï¼å
|
---|
1680 | ¨
|
---|
1681 | å²è¾¼ã¿ããã¯ç¶æ
|
---|
1682 | ã管çããæ©è½ã¯ï¼ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ï¼SILï¼ã«
|
---|
1683 | ãã£ã¦æä¾ããï¼ã«ã¼ãã«ã¯å
|
---|
1684 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
1685 | ã管çããªãï¼
|
---|
1686 |
|
---|
1687 | å
|
---|
1688 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
1689 | ã§ã¯ï¼sns_kerã¨ext_ker以å¤ã®ã«ã¼ãã«ã®ãµã¼ãã¹ã³ã¼ã«
|
---|
1690 | ãå¼ã¶ãã¨ã¯ã§ããªããã®ã¨ãã¦ããï¼å¼ãã å ´åã«ã¯ä½ãèµ·ãããä¿è¨¼ãã¦
|
---|
1691 | ããªãï¼sns_kerã¨ext_kerããå¼ã³åºãå¦çã¯ï¼ãã¬ã¼ã¹ãã°åå¾å¦çã¨SILã®
|
---|
1692 | ãµã¼ãã¹ã³ã¼ã«ãé¤ãã¨ï¼call_exit_kernelã®ã¿ã§ããï¼ãã®ããï¼
|
---|
1693 | call_exit_kernelããå¼ã³åºããã®ãé¤ãã¦ï¼ã«ã¼ãã«ã®ã¿ã¼ã²ããä¾åé¨ã®
|
---|
1694 | é¢æ°ãï¼å
|
---|
1695 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
1696 | ã§å¼ã³åºãããç¶æ³ã¯èããå¿
|
---|
1697 | è¦ããªãï¼
|
---|
1698 |
|
---|
1699 | 6.3.2 ã³ã³ããã¹ãã®ç®¡ç
|
---|
1700 |
|
---|
1701 | å¦çåä½ãå®è¡ãããã³ã³ããã¹ãã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ãã¨éã¿ã¹ã¯ã³ã³ã
|
---|
1702 | ãã¹ãã«åé¡ãããï¼
|
---|
1703 |
|
---|
1704 | ã¿ã¼ã²ããä¾åé¨ã¯ï¼å®è¡ä¸ã®å¦çåä½ãï¼ã¿ã¹ã¯ã³ã³ããã¹ãã§å®è¡ããã¦
|
---|
1705 | ãããéã¿ã¹ã¯ã³ã³ããã¹ãã§å®è¡ããã¦ããããå¤å¥ããæ©è½ãæä¾ããï¼
|
---|
1706 | ã¾ãï¼CPUä¾å¤ãçºçããã³ã³ããã¹ãã«ã¤ãã¦å¤å¥ããæ©è½ãæä¾ããï¼
|
---|
1707 |
|
---|
1708 | ã¿ã¼ã²ããä¾åé¨ã§ã¯ï¼å²è¾¼ã¿ãã³ãã©ã¨CPUä¾å¤ãã³ãã©ã®å
|
---|
1709 | ¥å£å¦çã§éã¿ã¹
|
---|
1710 | ã¯ã³ã³ããã¹ãã«åãæãï¼ãããã®åºå£å¦çã§å
|
---|
1711 | ã®ã³ã³ããã¹ãã«æ»ãï¼
|
---|
1712 |
|
---|
1713 | (6-3-2-1) bool_t sense_context(void)
|
---|
1714 |
|
---|
1715 | å®è¡ä¸ã®å¦çåä½ãï¼ã¿ã¹ã¯ã³ã³ããã¹ãã§å®è¡ããã¦ããå ´åã«ã¯falseï¼é
|
---|
1716 | ã¿ã¹ã¯ã³ã³ããã¹ãã§å®è¡ããã¦ããå ´åã«ã¯trueãè¿ãé¢æ°ï¼ãã®é¢æ°ã¯ï¼
|
---|
1717 | CPUããã¯ç¶æ
|
---|
1718 | ã§ãCPUããã¯è§£é¤ç¶æ
|
---|
1719 | ã§ãå¼ã³åºããããã«å®è£
|
---|
1720 | ããªããã°ãª
|
---|
1721 | ããªãï¼
|
---|
1722 |
|
---|
1723 | 6.3.3 CPUããã¯ç¶æ
|
---|
1724 | ã®ç®¡ç
|
---|
1725 |
|
---|
1726 | ã¿ã¼ã²ããä¾åé¨ã¯ï¼CPUããã¯ç¶æ
|
---|
1727 | ã¸é·ç§»ããæ©è½ï¼CPUããã¯è§£é¤ç¶æ
|
---|
1728 | ã¸é·
|
---|
1729 | 移ããæ©è½ï¼CPUããã¯ç¶æ
|
---|
1730 | ã§ããããå¤å¥ããæ©è½ãæä¾ããï¼
|
---|
1731 |
|
---|
1732 | (6-3-3-1) void lock_cpu(void)
|
---|
1733 |
|
---|
1734 | CPUããã¯è§£é¤ç¶æ
|
---|
1735 | ããï¼CPUããã¯ç¶æ
|
---|
1736 | ã¸é·ç§»ãããé¢æ°ï¼ãã®é¢æ°ã¯ï¼CPUãã
|
---|
1737 | ã¯ç¶æ
|
---|
1738 | ã§å¼ã³åºããããã¨ã¯ãªãï¼å¼ã³åºãããå ´åã®åä½ã¯ä¿è¨¼ããå¿
|
---|
1739 | è¦ã
|
---|
1740 | ãªãï¼
|
---|
1741 |
|
---|
1742 | ãã®é¢æ°ãå®ç¾ããéã«ã¯ï¼ã1.5 ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
|
---|
1743 | ¥å¦çã®å®ç¾
|
---|
1744 | ã«é¢ããå¶ç´ãã®ç¯ã«è¨è¿°ããã¦ããå¶ç´ã«å¾ããªããã°ãªããªãï¼
|
---|
1745 |
|
---|
1746 | (6-3-3-2) void lock_cpu_dsp(void)
|
---|
1747 |
|
---|
1748 | ã¿ã¹ã¯ãã£ã¹ãããã§ããç¶æ
|
---|
1749 | ã«ããã¦ï¼CPUããã¯è§£é¤ç¶æ
|
---|
1750 | ããï¼CPUããã¯
|
---|
1751 | ç¶æ
|
---|
1752 | ã¸é·ç§»ãããé¢æ°ï¼
|
---|
1753 |
|
---|
1754 | ãã®é¢æ°ã¯ï¼ãã£ã¹ãããã§ããç¶æ
|
---|
1755 | ã§ã®ã¿å¼ã³åºãããï¼ãã£ã¹ãããã§ã
|
---|
1756 | ãç¶æ
|
---|
1757 | ã«ããã¦ã¯ï¼å²è¾¼ã¿åªå
|
---|
1758 | 度ãã¹ã¯å
|
---|
1759 | ¨è§£é¤ç¶æ
|
---|
1760 | ã§ããããï¼ããã»ããµã«
|
---|
1761 | ãã£ã¦ã¯ï¼lock_cpuããå¹ççã«å®è£
|
---|
1762 | ã§ããå ´åãããï¼ããã§ãªãå ´åã«ã¯ï¼
|
---|
1763 | lock_cpuã«å®ç¾©ããã°ããï¼
|
---|
1764 |
|
---|
1765 | lock_cpu_dspã«ãã£ã¦CPUããã¯ç¶æ
|
---|
1766 | ã«é·ç§»ããå¾ï¼unlock_cpuã«ãã£ã¦CPUãã
|
---|
1767 | ã¯ç¶æ
|
---|
1768 | ã解é¤ããå ´åãããï¼ãã®ããï¼lock_cpuã§CPUããã¯ç¶æ
|
---|
1769 | ã«é·ç§»ãã
|
---|
1770 | åã®ç¶æ
|
---|
1771 | ãå¤æ°ã«ä¿åããå ´åã«ã¯ï¼lock_cpu_dspã§ããã®å¤æ°ãè¨å®ããå¿
|
---|
1772 |
|
---|
1773 | è¦ãããï¼
|
---|
1774 |
|
---|
1775 | (6-3-3-3) void unlock_cpu(void)
|
---|
1776 |
|
---|
1777 | CPUããã¯ç¶æ
|
---|
1778 | ããï¼CPUããã¯è§£é¤ç¶æ
|
---|
1779 | ã¸é·ç§»ãããé¢æ°ï¼ãã®é¢æ°ã¯ï¼CPUãã
|
---|
1780 | ã¯è§£é¤ç¶æ
|
---|
1781 | ã§å¼ã³åºããããã¨ã¯ãªãï¼å¼ã³åºãããå ´åã®åä½ã¯ä¿è¨¼ããå¿
|
---|
1782 |
|
---|
1783 | è¦ããªãï¼
|
---|
1784 |
|
---|
1785 | ã¿ã¹ã¯ã³ã³ããã¹ãã§CPUããã¯ç¶æ
|
---|
1786 | ã«é·ç§»ããå ´åã«ã¯ï¼CPUããã¯è§£é¤ç¶æ
|
---|
1787 |
|
---|
1788 | ã«æ»ãã®ã¯ã¿ã¹ã¯ã³ã³ããã¹ãã«éããï¼éã¿ã¹ã¯ã³ã³ããã¹ãã§CPUããã¯è§£
|
---|
1789 | é¤ç¶æ
|
---|
1790 | ã«æ»ããã¨ã¯ãªãï¼åæ§ã«ï¼éã¿ã¹ã¯ã³ã³ããã¹ãã§CPUããã¯ç¶æ
|
---|
1791 | ã«é·
|
---|
1792 | 移ããå ´åã«ã¯ï¼CPUããã¯è§£é¤ç¶æ
|
---|
1793 | ã«æ»ãã®ã¯éã¿ã¹ã¯ã³ã³ããã¹ãã«éããï¼
|
---|
1794 | ã¿ã¹ã¯ã³ã³ããã¹ãã§CPUããã¯è§£é¤ç¶æ
|
---|
1795 | ã«æ»ããã¨ã¯ãªãï¼
|
---|
1796 |
|
---|
1797 | ãããã®é¢æ°ãå®ç¾ããéã«ã¯ï¼ã1.5 ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
|
---|
1798 | ¥å¦çã®
|
---|
1799 | å®ç¾ã«é¢ããå¶ç´ãã®ç¯ã«è¨è¿°ããã¦ããå¶ç´ã«å¾ããªããã°ãªããªãï¼
|
---|
1800 |
|
---|
1801 | (6-3-3-4) void unlock_cpu_dsp(void)
|
---|
1802 |
|
---|
1803 | ã¿ã¹ã¯ãã£ã¹ãããã§ããç¶æ
|
---|
1804 | ã«æ»ãç¶æ³ã«ããã¦ï¼CPUããã¯ç¶æ
|
---|
1805 | ããï¼CPU
|
---|
1806 | ããã¯è§£é¤ç¶æ
|
---|
1807 | ã¸é·ç§»ãããé¢æ°ï¼
|
---|
1808 |
|
---|
1809 | ãã®é¢æ°ã¯ï¼CPUããã¯è§£é¤å¾ã¯ï¼ãã£ã¹ãããã§ããç¶æ
|
---|
1810 | ã«æ»ãç¶æ³ã§ã®ã¿å¼
|
---|
1811 | ã³åºãããï¼ãã£ã¹ãããã§ããç¶æ
|
---|
1812 | ã«ããã¦ã¯ï¼å²è¾¼ã¿åªå
|
---|
1813 | 度ãã¹ã¯å
|
---|
1814 | ¨è§£é¤
|
---|
1815 | ç¶æ
|
---|
1816 | ã§ããããï¼ããã»ããµã«ãã£ã¦ã¯ï¼unlock_cpuããå¹ççã«å®è£
|
---|
1817 | ã§ãã
|
---|
1818 | å ´åãããï¼ããã§ãªãå ´åã«ã¯ï¼unlock_cpuã«å®ç¾©ããã°ããï¼
|
---|
1819 |
|
---|
1820 | (6-3-3-5) bool_t sense_lock(void)
|
---|
1821 |
|
---|
1822 | ç¾å¨ã®ã·ã¹ãã ç¶æ
|
---|
1823 | ãï¼CPUããã¯ç¶æ
|
---|
1824 | ã®å ´åã¯trueï¼CPUããã¯è§£é¤ç¶æ
|
---|
1825 | ã®å ´
|
---|
1826 | åã«ã¯falseãè¿ãé¢æ°ï¼
|
---|
1827 |
|
---|
1828 | ãã®é¢æ°ãå
|
---|
1829 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
1830 | ã§å¼ã³åºãããç¶æ³ã¯èããå¿
|
---|
1831 | è¦ããªããã¨ã
|
---|
1832 | ãï¼å
|
---|
1833 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
1834 | ã¨CPUããã¯ç¶æ
|
---|
1835 | ãåºå¥ã§ããå¿
|
---|
1836 | è¦ã¯ãªãï¼NMI以å¤ã«
|
---|
1837 | ã«ã¼ãã«ã®ç®¡çå¤ã®å²è¾¼ã¿ãè¨ããªãå ´åã«ã¯ï¼å
|
---|
1838 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
1839 | ã¨CPUãã
|
---|
1840 | ã¯ç¶æ
|
---|
1841 | ãå
|
---|
1842 | ¨ãåä¸ã®ç¶æ
|
---|
1843 | ã§ããã¾ããªãï¼
|
---|
1844 |
|
---|
1845 | (6-3-3-6) void delay_for_interrupt(void)
|
---|
1846 |
|
---|
1847 | å²è¾¼ã¿ãåãä»ããããããã«å¦çãé
|
---|
1848 | 延ãããé¢æ°ï¼
|
---|
1849 |
|
---|
1850 | ã«ã¼ãã«å
|
---|
1851 | ã§ï¼CPUããã¯ç¶æ
|
---|
1852 | ã§ã®å®è¡ãé·ããªãå ´åã«ï¼ä¸æçã«CPUããã¯
|
---|
1853 | ç¶æ
|
---|
1854 | ã解é¤ãã¦ï¼å²è¾¼ã¿ãåãä»ããããã«ãã¦ããï¼ãã®æï¼unlock_cpuã¨
|
---|
1855 | lock_cpuããã®é ã§å¼ã³åºããï¼ãã®2ã¤ã®é¢æ°ãé£ç¶ãã¦å¼ã³åºãã¨ï¼ã¿ã¼ã²ã
|
---|
1856 | ãã«ãã£ã¦ã¯å²è¾¼ã¿ãåãä»ããããªãå ´åãããï¼ããã§ï¼unlock_cpuã¨
|
---|
1857 | lock_cpuãå¼ã³åºãéã«ï¼ãã®é¢æ°ï¼delay_for_interruptï¼ãå¼ã³åºãï¼2ã¤
|
---|
1858 | ã®é¢æ°ãé£ç¶ãã¦å¼ã³åºãã¨å²è¾¼ã¿ãåãä»ããããªãã¿ã¼ã²ããã§ã¯ï¼ãã®
|
---|
1859 | é¢æ°ã«ããï¼å²è¾¼ã¿ãåãä»ããããããã«å®è£
|
---|
1860 | ããï¼
|
---|
1861 |
|
---|
1862 | 6.4 å²è¾¼ã¿ã«é¢é£ããã·ã¹ãã ç¶æ
|
---|
1863 | ã®ç®¡ç
|
---|
1864 |
|
---|
1865 | å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ãã³ãã©çªå·ã¯ã¿ã¼ã²ããå®ç¾©ã§ä»ä¸ãããããï¼ããã
|
---|
1866 | ãæå¹ãªå¤ãã©ãããå¤æããæ©è½ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§ç¨æããå¿
|
---|
1867 | è¦ãã
|
---|
1868 | ãï¼
|
---|
1869 |
|
---|
1870 | (6-4-0-1) bool_t VALID_INTNO(INTNO intno)
|
---|
1871 |
|
---|
1872 | intnoãï¼å²è¾¼ã¿çªå·ã¨ãã¦æå¹ãªå¤ã§ããå ´åã«trueï¼ããã§ãªãå ´åã«
|
---|
1873 | falseãè¿ããã¯ãï¼
|
---|
1874 |
|
---|
1875 | VALID_INTNO_DISINTï¼VALID_INTNO_CREISRãåå¥ã«å®ç¾©ãï¼ã¿ã¼ã²ããä¾åé¨
|
---|
1876 | ã§ããã®ãã¯ãã使ç¨ããªãå ´åã«ã¯ï¼ç¨æããå¿
|
---|
1877 | è¦ããªãï¼
|
---|
1878 |
|
---|
1879 | (6-4-0-2) bool_t VALID_INHNO(INHNO inhno)ï¼ãªãã·ã§ã³ï¼
|
---|
1880 |
|
---|
1881 | inhnoãï¼å²è¾¼ã¿ãã³ãã©çªå·ã¨ãã¦æå¹ãªå¤ã§ããå ´åã«trueï¼ããã§ãªãå ´
|
---|
1882 | åã«falseãè¿ããã¯ãï¼ãªãï¼ASP3ã«ã¼ãã«ã§ã¯ï¼å²è¾¼ã¿ãã³ãã©çªå·ãç¨ã
|
---|
1883 | ãAPIã¯ï¼DEF_INHã®ã¿ã§ããï¼
|
---|
1884 |
|
---|
1885 | ASP3ã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾åé¨ã§ã¯ï¼ãã®ãã¯ãã¯ä½¿ããã¦ããªãããï¼
|
---|
1886 | ã¿ã¼ã²ããä¾åé¨ã§ã使ç¨ããªãå ´åã«ã¯ï¼ç¨æããå¿
|
---|
1887 | è¦ããªãï¼
|
---|
1888 |
|
---|
1889 | 6.4.1 å²è¾¼ã¿åªå
|
---|
1890 | 度ãã¹ã¯ã®ç®¡ç
|
---|
1891 |
|
---|
1892 | ã¿ã¼ã²ããä¾åé¨ã¯ï¼å²è¾¼ã¿åªå
|
---|
1893 | 度ãã¹ã¯ãè¨å®ããæ©è½ã¨ï¼å²è¾¼ã¿åªå
|
---|
1894 | 度ã
|
---|
1895 | ã¹ã¯ãåç
|
---|
1896 | §ããæ©è½ãæä¾ããï¼
|
---|
1897 |
|
---|
1898 | (6-4-1-1) bool_t VALID_INTPRI_CHGIPM(PRI intpri)ï¼ãªãã·ã§ã³ï¼
|
---|
1899 |
|
---|
1900 | intpriãï¼chg_ipmã«å¯¾ããå²è¾¼ã¿åªå
|
---|
1901 | 度ã¨ãã¦æå¹ãªå¤ã§ããå ´åã«trueï¼ã
|
---|
1902 | ãã§ãªãå ´åã«falseãè¿ããã¯ãï¼æ¨æºã§ã¯ï¼TMIN_INTPRI以ä¸ï¼TIPM_ENAALL
|
---|
1903 | ï¼ï¼0ï¼ä»¥ä¸ã®å¤ãchg_ipmã«å¯¾ããå²è¾¼ã¿åªå
|
---|
1904 | 度ã¨ãã¦æå¹ã§ãããï¼ã¿ã¼ã²ã
|
---|
1905 | ãä¾åé¨ã§ãã®ãã¯ããå®ç¾©ãããã¨ã§ï¼TMIN_INTPRIãããå°ããå¤ãæå¹ã¨
|
---|
1906 | ãããã¨ãã§ããï¼æå¹ãªå¤ã®ç¯å²ãçãã¦ã¯ãªããªãï¼ï¼
|
---|
1907 |
|
---|
1908 | (6-4-1-2) void t_set_ipm(PRI intpri)
|
---|
1909 |
|
---|
1910 | å²è¾¼ã¿åªå
|
---|
1911 | 度ãã¹ã¯ã®å¤ãintpriã«è¨å®ããé¢æ°ï¼
|
---|
1912 |
|
---|
1913 | ãã®é¢æ°ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ããã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ãã§ï¼CPUããã¯ç¶
|
---|
1914 | æ
|
---|
1915 | ã®å ´åã«ã®ã¿å¼ã³åºãããï¼
|
---|
1916 |
|
---|
1917 | ã¾ãï¼ãã®é¢æ°ã¯ï¼VALID_INTPRI_CHGIPM(intpri)ãtrueãè¿ãintpriã«å¯¾ãã¦
|
---|
1918 | ã®ã¿å¼ã°ããï¼intpriã«ããã§ãªãå¤ã渡ãããå ´åã®åä½ã¯ä¿è¨¼ããå¿
|
---|
1919 | è¦ã
|
---|
1920 | ãªãï¼
|
---|
1921 |
|
---|
1922 | (6-4-1-3) PRI t_get_ipm(void)
|
---|
1923 |
|
---|
1924 | å²è¾¼ã¿åªå
|
---|
1925 | 度ãã¹ã¯ã®å¤ãåç
|
---|
1926 | §ãã¦è¿ãé¢æ°ï¼
|
---|
1927 |
|
---|
1928 | ãã®é¢æ°ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ããã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ãã§ï¼CPUããã¯ç¶
|
---|
1929 | æ
|
---|
1930 | ã®å ´åã«ã®ã¿å¼ã³åºãããï¼
|
---|
1931 |
|
---|
1932 | å²è¾¼ã¿åªå
|
---|
1933 | 度ãã¹ã¯ãç¨ãã¦ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ããã¹ã¦ãã¹ã¯ããç¶æ
|
---|
1934 | ã¯ï¼
|
---|
1935 | CPUããã¯ç¶æ
|
---|
1936 | ã¨åºå¥ã§ãããã¨ãå¿
|
---|
1937 | è¦ã§ããï¼å
|
---|
1938 | ·ä½çã«ã¯ï¼CPUããã¯è§£é¤ç¶
|
---|
1939 | æ
|
---|
1940 | ã«ããã¦ï¼t_set_ipmãç¨ãã¦ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ããã¹ã¦ãã¹ã¯ããå ´å
|
---|
1941 | ã§ãï¼sense_lockã¯falseãè¿ãï¼
|
---|
1942 |
|
---|
1943 | ããã«å¯¾ãã¦ï¼å²è¾¼ã¿åªå
|
---|
1944 | 度ãã¹ã¯ãç¨ãã¦NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ããã¹ã¯
|
---|
1945 | ã§ããå ´åï¼ãã®ç¶æ
|
---|
1946 | ã¨å
|
---|
1947 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
1948 | ãåºå¥ã§ããå¿
|
---|
1949 | è¦ã¯ãªãï¼å
|
---|
1950 | ¨ãå
|
---|
1951 | ä¸ã®ç¶æ
|
---|
1952 | ã§ããã¾ããªãï¼
|
---|
1953 |
|
---|
1954 | 6.4.2 å²è¾¼ã¿è¦æ±ç¦æ¢ãã©ã°ã®ç®¡ç
|
---|
1955 |
|
---|
1956 | ã¿ã¼ã²ããä¾åé¨ã¯ï¼å²è¾¼ã¿è¦æ±ç¦æ¢ãã©ã°ãã»ããããæ©è½ã¨ã¯ãªã¢ããæ©
|
---|
1957 | è½ãæä¾ããï¼
|
---|
1958 |
|
---|
1959 | (6-4-2-1) bool_t VALID_INTNO_DISINT(INTNO intno)ï¼ãªãã·ã§ã³ï¼
|
---|
1960 |
|
---|
1961 | intnoãï¼dis_intï¼ena_intã«å¯¾ããå²è¾¼ã¿çªå·ã¨ãã¦æå¹ãªå¤ã§ããå ´åã«
|
---|
1962 | trueï¼ããã§ãªãå ´åã«falseãè¿ããã¯ãï¼å²è¾¼ã¿è¦æ±ç¦æ¢ãã©ã°ãã»ããï¼
|
---|
1963 | ã¯ãªã¢ã§ããªãintnoã«å¯¾ãã¦ã¯ï¼ãã®ãã¯ããfalseãè¿ãããã«ããï¼
|
---|
1964 |
|
---|
1965 | ãã®ãã¯ããå®ç¾©ããªãå ´åï¼VALID_INTNOã使ãããï¼VALID_INTNOã§æå¹ã¨
|
---|
1966 | å¤æãããå²è¾¼ã¿çªå·ãï¼dis_intï¼ena_intã«å¯¾ãã¦æå¹ãªå²è¾¼ã¿çªå·ã¨ä¸è´
|
---|
1967 | ãã¦ããå ´åï¼ãã®ãã¯ããç¨æããå¿
|
---|
1968 | è¦ã¯ãªãï¼
|
---|
1969 |
|
---|
1970 | (6-4-2-2) bool_t disable_int(INTNO intno)
|
---|
1971 |
|
---|
1972 | intnoã§æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ããå²è¾¼ã¿è¦æ±ç¦æ¢ãã©ã°ãã»ãããï¼
|
---|
1973 | trueãè¿ãé¢æ°ï¼æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ãã¦ï¼å²è¾¼ã¿å±æ§ãè¨å®ã
|
---|
1974 | ãã¦ããªãå ´åã«ã¯ï¼falseãè¿ãï¼
|
---|
1975 |
|
---|
1976 | ãã®é¢æ°ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ãCPUããã¯è§£é¤ç¶æ
|
---|
1977 | ã§å¼ã³åºããã¨ã¯ãªãã
|
---|
1978 | ãï¼CPUããã¯è§£é¤ç¶æ
|
---|
1979 | ã§å¼ã³åºãããå ´åã®åä½ã¯ä¿è¨¼ããå¿
|
---|
1980 | è¦ããªãï¼ãã
|
---|
1981 | ãï¼ã¿ã¼ã²ããä¾åé¨ããCPUããã¯è§£é¤ç¶æ
|
---|
1982 | ã§å¼ã³åºãå ´åã«ã¯ï¼ä¿è¨¼ããå¿
|
---|
1983 |
|
---|
1984 | è¦ãããï¼
|
---|
1985 |
|
---|
1986 | ã¾ãï¼ãã®é¢æ°ã¯ï¼VALID_INTNO_DISINT(intno)ãtrueã¨ãªãintnoã«å¯¾ãã¦ã®
|
---|
1987 | ã¿å¼ã°ããï¼intnoã«ããã§ãªãå¤ã渡ãããå ´åã®åä½ã¯ä¿è¨¼ããå¿
|
---|
1988 | è¦ããªãï¼
|
---|
1989 |
|
---|
1990 | dis_intãµã¼ãã¹ã³ã¼ã«ããµãã¼ãããå ´åï¼TOPPERS_SUPPORT_DIS_INTããã¯
|
---|
1991 | ãå®ç¾©ããå ´åï¼ã«ã¯ï¼disable_intãç¨æããã¦ããªããã°ãªããªãï¼
|
---|
1992 |
|
---|
1993 | (6-4-2-3) bool_t enable_int(INTNO intno)
|
---|
1994 |
|
---|
1995 | intnoã§æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ããå²è¾¼ã¿è¦æ±ç¦æ¢ãã©ã°ãã¯ãªã¢ãï¼
|
---|
1996 | trueãè¿ãé¢æ°ï¼æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ãã¦ï¼å²è¾¼ã¿å±æ§ãè¨å®ã
|
---|
1997 | ãã¦ããªãå ´åã«ã¯ï¼falseãè¿ãï¼
|
---|
1998 |
|
---|
1999 | ãã®é¢æ°ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ãCPUããã¯è§£é¤ç¶æ
|
---|
2000 | ã§å¼ã³åºããã¨ã¯ãªãã
|
---|
2001 | ãï¼CPUããã¯è§£é¤ç¶æ
|
---|
2002 | ã§å¼ã³åºãããå ´åã®åä½ã¯ä¿è¨¼ããå¿
|
---|
2003 | è¦ããªãï¼ãã
|
---|
2004 | ãï¼ã¿ã¼ã²ããä¾åé¨ããCPUããã¯è§£é¤ç¶æ
|
---|
2005 | ã§å¼ã³åºãå ´åã«ã¯ï¼ä¿è¨¼ããå¿
|
---|
2006 |
|
---|
2007 | è¦ãããï¼
|
---|
2008 |
|
---|
2009 | ã¾ãï¼ãã®é¢æ°ã¯ï¼VALID_INTNO_DISINT(intno)ãtrueã¨ãªãintnoã«å¯¾ãã¦ã®
|
---|
2010 | ã¿å¼ã°ããï¼intnoã«ããã§ãªãå¤ã渡ãããå ´åã®åä½ã¯ä¿è¨¼ããå¿
|
---|
2011 | è¦ããªãï¼
|
---|
2012 |
|
---|
2013 | ena_intãµã¼ãã¹ã³ã¼ã«ããµãã¼ãããå ´åï¼TOPPERS_SUPPORT_ENA_INTããã¯
|
---|
2014 | ãå®ç¾©ããå ´åï¼ã«ã¯ï¼t_enable_intãç¨æããã¦ããªããã°ãªããªãï¼
|
---|
2015 |
|
---|
2016 | 6.4.3 å²è¾¼ã¿è¦æ±ã®ã¯ãªã¢
|
---|
2017 |
|
---|
2018 | (6-4-3-1) void clear_int(INTNO intno)
|
---|
2019 |
|
---|
2020 | intnoã§æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ãã¨ãã¸ããªã¬ã§ããå ´åã«ï¼ããªã¬ãã
|
---|
2021 | ãå²è¾¼ã¿è¦æ±ãã¯ãªã¢ããé¢æ°ï¼intnoã§æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ãã¬ãã«
|
---|
2022 | ããªã¬ã§ããå ´åã«ã¯ä½ãããªãï¼
|
---|
2023 |
|
---|
2024 | ASP3ã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾åé¨ã§ã¯ï¼ãã®é¢æ°ãå¼ã³åºãã¦ããªããï¼ã¿ã¼
|
---|
2025 | ã²ããä¾åé¨ãã·ã¹ãã ãµã¼ãã¹ã§å¼ã³åºãå¯è½æ§ãé«ãããï¼ç¨æãããã¨
|
---|
2026 | ã¨ãã¦ããï¼ãã®ããï¼ãã®é¢æ°ãã©ã®ãããªã·ã¹ãã ç¶æ
|
---|
2027 | ã§å¼ã³åºãããã¯ï¼
|
---|
2028 | ã¿ã¼ã²ããä¾åé¨å
|
---|
2029 | ã§ä¸è²«ãã¦ããã°ããï¼
|
---|
2030 |
|
---|
2031 | 6.4.4 å²è¾¼ã¿è¦æ±ã®ããã¼ã
|
---|
2032 |
|
---|
2033 | (6-4-4-1) bool_t probe_int(INTNO intno)
|
---|
2034 |
|
---|
2035 | intnoã§æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ãã¦ï¼å²è¾¼ã¿ãè¦æ±ããã¦ããå ´åã«
|
---|
2036 | trueï¼ããã§ãªãå ´åã«falseãè¿ãé¢æ°ï¼
|
---|
2037 |
|
---|
2038 | ASP3ã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾åé¨ã§ã¯ï¼ãã®é¢æ°ãå¼ã³åºãã¦ããªããï¼ã¿ã¼
|
---|
2039 | ã²ããä¾åé¨ãã·ã¹ãã ãµã¼ãã¹ã§å¼ã³åºãå¯è½æ§ãé«ãããï¼ç¨æãããã¨
|
---|
2040 | ã¨ãã¦ããï¼ãã®ããï¼ãã®é¢æ°ãã©ã®ãããªã·ã¹ãã ç¶æ
|
---|
2041 | ã§å¼ã³åºãããã¯ï¼
|
---|
2042 | ã¿ã¼ã²ããä¾åé¨å
|
---|
2043 | ã§ä¸è²«ãã¦ããã°ããï¼
|
---|
2044 |
|
---|
2045 | 6.5 ã¿ã¹ã¯ãã£ã¹ãããã£
|
---|
2046 |
|
---|
2047 | 6.5.1 ã¿ã¹ã¯ã³ã³ããã¹ããããã¯ã¨ã¿ã¹ã¯åæåã³ã³ããã¹ããããã¯
|
---|
2048 |
|
---|
2049 | (6-5-1-1) TSKCTXB
|
---|
2050 |
|
---|
2051 | ã¿ã¼ã²ããä¾åã®ã¿ã¹ã¯ã³ã³ããã¹ããä¿åããããã«ï¼TCBä¸ã«æã¤ãã¨ãå¿
|
---|
2052 |
|
---|
2053 | è¦ãªãã¼ã¿æ§é ã®åãï¼TSKCTXBã«å®ç¾©ããï¼æ¨æºçã«ã¯ï¼TSKCTXBã«ã¯ï¼ã¿ã¹
|
---|
2054 | ã¯ã®ã¹ã¿ãã¯ãã¤ã³ã¿ã¨å®è¡åéçªå°ãæ ¼ç´ããï¼
|
---|
2055 |
|
---|
2056 | (6-5-1-2) USE_TSKINICTXBï¼ãªãã·ã§ã³ï¼
|
---|
2057 | (6-5-1-3) TSKINICTXBï¼ãªãã·ã§ã³ï¼
|
---|
2058 |
|
---|
2059 | ã¿ã¼ã²ããä¾åã®æ
|
---|
2060 | å ±ãã¿ã¹ã¯åæåãããã¯ï¼TINIBï¼ã«å
|
---|
2061 | ¥ãããå ´åãï¼
|
---|
2062 | TINIBä¸ã®ã¹ã¿ãã¯é åã®ãµã¤ãºã¨å
|
---|
2063 | é çªå°ã®æã¡æ¹ãã¿ã¼ã²ããä¾åã«å¤æ´ã
|
---|
2064 | ããå ´åã«ã¯ï¼USE_TSKINICTXBããã¯ãå®ç¾©ãï¼TINIBä¸ã«æã¤ãã¨ãå¿
|
---|
2065 | è¦ãªãã¼
|
---|
2066 | ã¿æ§é ã®åãï¼TSKINICTXBã«å®ç¾©ããï¼
|
---|
2067 |
|
---|
2068 | USE_TSKINICTXBããã¯ãå®ç¾©ããã¨ï¼TINIBä¸ã«ã¹ã¿ãã¯é åã¨ãµã¤ãºã¨å
|
---|
2069 | é çª
|
---|
2070 | å°ãå«ã¾ããªããªãããï¼ããã«ä»£ããæ
|
---|
2071 | å ±ãTSKINICTXBä¸ã«æã¤å¿
|
---|
2072 | è¦ãããï¼
|
---|
2073 | ã¾ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾å
|
---|
2074 | é¨ã§ï¼TSKINICTXBã®åæåæ
|
---|
2075 | å ±ãçæããããã®GENERATE_TSKINICTXBãï¼ãã¹
|
---|
2076 | 3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾åé¨ã§ï¼TINIBããã¹ã¿ãã¯é åã®
|
---|
2077 | å
|
---|
2078 | é çªå°ãåãåºãããã®GET_STK_TSKINICTXBãå®ç¾©ããå¿
|
---|
2079 | è¦ãããï¼
|
---|
2080 |
|
---|
2081 | 6.5.2 ãã£ã¹ãããã£æ¬ä½
|
---|
2082 |
|
---|
2083 | ãã£ã¹ãããã£æ¬ä½ï¼dispatcherï¼ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ããç´æ¥å¼ã³åºã
|
---|
2084 | ãããã¨ã¯ãªãï¼ã«ã¼ãã«ã®ã¿ã¼ã²ããä¾åé¨ã®å
|
---|
2085 | é¨ããã®ã¿å¼ã³åºãããï¼
|
---|
2086 |
|
---|
2087 | dispatcherã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ãã»CPUããã¯ç¶æ
|
---|
2088 | ã»å²è¾¼ã¿åªå
|
---|
2089 | 度ãã¹ã¯å
|
---|
2090 | ¨è§£
|
---|
2091 | é¤ç¶æ
|
---|
2092 | ã»ãã£ã¹ããã許å¯ç¶æ
|
---|
2093 | ã§å¼ã³åºãããï¼
|
---|
2094 |
|
---|
2095 | dispatcherã®å¦çå
|
---|
2096 | 容ã¯æ¬¡ã®éãï¼
|
---|
2097 |
|
---|
2098 | ----------------------------------------
|
---|
2099 | void
|
---|
2100 | dispatcher(void)
|
---|
2101 | {
|
---|
2102 | #ifdef LOG_DSP_ENTER
|
---|
2103 | log_dsp_enter(p_runtsk);
|
---|
2104 | #endif /* LOG_DSP_ENTER */
|
---|
2105 |
|
---|
2106 | dispatcher_0:
|
---|
2107 | p_runtsk = p_schedtsk;
|
---|
2108 | if (p_runtsk != NULL) {
|
---|
2109 | èªã¿ã¹ã¯ï¼p_runtskï¼ã®TCBããã¹ã¿ãã¯ãã¤ã³ã¿ã復帰ãã
|
---|
2110 | #ifdef LOG_DSP_LEAVE
|
---|
2111 | log_dsp_leave(p_runtsk);
|
---|
2112 | #endif /* LOG_DSP_LEAVE */
|
---|
2113 | èªã¿ã¹ã¯ã®TCBããå®è¡åéçªå°ã復帰ãï¼ããã¸åå²ãã ⦠(*a)
|
---|
2114 | }
|
---|
2115 |
|
---|
2116 | /*
|
---|
2117 | * ã¢ã¤ãã«å¦ç
|
---|
2118 | */
|
---|
2119 | å²è¾¼ã¿ã許å¯ãããCPUããã¯è§£é¤ç¶æ
|
---|
2120 | ã«ãªãããæºåãã
|
---|
2121 | å²è¾¼ã¿ããã¹ã¦è¨±å¯ãã
|
---|
2122 | while (true) {
|
---|
2123 | å²è¾¼ã¿çºçãå¾
|
---|
2124 | 㤠⦠(*b)
|
---|
2125 | }
|
---|
2126 | }
|
---|
2127 | ----------------------------------------
|
---|
2128 |
|
---|
2129 | (*b)ã«ããã¦ï¼å²è¾¼ã¿çºçãå¾
|
---|
2130 | ã¤å½ä»¤ãç¨æããã¦ããªãå ´åãï¼ãããçºè¡
|
---|
2131 | ããã®ãä¸é½åãªå ´åã«ã¯ï¼å²è¾¼ã¿çºçãå¾
|
---|
2132 | ã¤å¦çãçãï¼whileã«ã¼ãã«ãã£
|
---|
2133 | ã¦å²è¾¼ã¿çºçãå¾
|
---|
2134 | ã¤ããã«ãã¦ãè¯ãï¼
|
---|
2135 |
|
---|
2136 | å²è¾¼ã¿å¾
|
---|
2137 | ã¡ã®éã¯ï¼p_runtskãNULLï¼ï¼0ï¼ã«è¨å®ããªããã°ãªããªãï¼ä¸ã®å¦
|
---|
2138 | çå
|
---|
2139 | 容ããã®ã¾ã¾å®è£
|
---|
2140 | ããã°ãããªãï¼ï¼ãã®ããã«è¨å®ããªãã¨ï¼å²è¾¼ã¿ã
|
---|
2141 | ã³ãã©ããget_tidãå¼ã³åºããéã®åä½ãä»æ§ã«åè´ããªããªãï¼
|
---|
2142 |
|
---|
2143 | dispatcherãã¢ã»ã³ããªè¨èªã§è¨è¿°ããå ´åã«ã¯ï¼ãã¬ã¼ã¹ãã°åå¾å¦çã¯ï¼
|
---|
2144 | ã6.2 ãã¬ã¼ã¹ãã°æ©è½ã¸ã®å¯¾å¿ãã®ç¯ã§è¨è¿°ããæ¹æ³ã§ã³ã¼ãã£ã³ã°ããã
|
---|
2145 | ã¨ï¼ãªãï¼log_dsp_enterã¯åæãåã®ã¿ã¹ã¯ã®ã¹ã¿ãã¯ã§ï¼log_dsp_leaveã¯
|
---|
2146 | åæãå¾ã®ã¿ã¹ã¯ã®ã¹ã¿ãã¯ã§å®è¡ããï¼
|
---|
2147 |
|
---|
2148 | ãªãï¼dispatcherã«åå²ãã¦ããæï¼ã¹ã¿ãã¯ãã¤ã³ã¿ã¯ï¼æå¾ã«å®è¡ç¶æ
|
---|
2149 | ã§
|
---|
2150 | ãã£ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãæãã¦ããï¼ãã ãï¼ã«ã¼ãã«åä½éå§ç´å¾ã«ã¢ã¤
|
---|
2151 | ãã«ã«ãªã£ãæã«ã¯ï¼IDã1ã®ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãæãã¦ããï¼
|
---|
2152 |
|
---|
2153 | ãTOPPERS/ASP1ã«ã¼ãã«ã¨ã®é¢ä¿ã
|
---|
2154 |
|
---|
2155 | ã¢ã¤ãã«å¦çã®è¨è¨ãä¸æ°ããï¼è©³ããã¯ï¼ãTOPPERS/ASP3ã«ã¼ãã« è¨è¨ã¡ã¢ã
|
---|
2156 | ã®ãã¢ã¤ãã«å¦çãã®ç¯ãåç
|
---|
2157 | §ãããã¨ï¼
|
---|
2158 |
|
---|
2159 | 6.5.3 èªçºçãªãã£ã¹ããã
|
---|
2160 |
|
---|
2161 | (6-5-3-1) void dispatch(void)
|
---|
2162 |
|
---|
2163 | ã¿ã¹ã¯ã³ã³ããã¹ãããå¼ã°ãããµã¼ãã¹ã³ã¼ã«å¦çã«ããã¦ï¼ã¿ã¹ã¯åæã
|
---|
2164 | ãå¿
|
---|
2165 | è¦ã«ãªã£ãå ´åã«ã¯ï¼ã¿ã¹ã¯ããã®èªçºçãªãã£ã¹ãããå¦çï¼dispatchï¼
|
---|
2166 | ãå¼ã³åºãããï¼
|
---|
2167 |
|
---|
2168 | dispatchã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ãã»CPUããã¯ç¶æ
|
---|
2169 | ã»å²è¾¼ã¿åªå
|
---|
2170 | 度ãã¹ã¯å
|
---|
2171 | ¨è§£é¤
|
---|
2172 | ç¶æ
|
---|
2173 | ã»ãã£ã¹ããã許å¯ç¶æ
|
---|
2174 | ã§å¼ã³åºãããï¼
|
---|
2175 |
|
---|
2176 | dispatchã®å¦çå
|
---|
2177 | 容ã¯æ¬¡ã®éãï¼
|
---|
2178 |
|
---|
2179 | ----------------------------------------
|
---|
2180 | void
|
---|
2181 | dispatch(void)
|
---|
2182 | {
|
---|
2183 | #ifdef TOPPERS_SUPPORT_OVRHDR
|
---|
2184 | ovrtimer_stop(); /* ãªã¼ãã©ã³ã¿ã¤ãã®åæ¢ */
|
---|
2185 | #endif /* TOPPERS_SUPPORT_OVRHDR */
|
---|
2186 | ã¹ã¯ã©ããã¬ã¸ã¹ã¿(*)ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ã«ä¿åãã
|
---|
2187 | ã¹ã¿ãã¯ãã¤ã³ã¿ãèªã¿ã¹ã¯ï¼p_runtskï¼ã®TCBã«ä¿åãã
|
---|
2188 | dispatch_rãï¼å®è¡åéçªå°ã¨ãã¦èªã¿ã¹ã¯ã®TCBã«ä¿åãã ⦠(*a)
|
---|
2189 | dispatcherã«åå²ãã
|
---|
2190 |
|
---|
2191 | dispatch_r:
|
---|
2192 | ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ãã復帰ãã
|
---|
2193 | #ifdef TOPPERS_SUPPORT_OVRHDR
|
---|
2194 | ovrtimer_start(); /* ãªã¼ãã©ã³ã¿ã¤ãã®åä½éå§ */
|
---|
2195 | #endif /* TOPPERS_SUPPORT_OVRHDR */
|
---|
2196 | }
|
---|
2197 | ----------------------------------------
|
---|
2198 |
|
---|
2199 | ããã§ã¹ã¯ã©ããã¬ã¸ã¹ã¿(*)ã¨ã¯ï¼é¢æ°å¼åºãã«ããä¿åãããªãã¬ã¸ã¹ã¿ã®
|
---|
2200 | ãã¨ã§ããï¼å¿
|
---|
2201 | è¦ãªå ´åã«ã¯ï¼é¢æ°ãå¼ã³åºãå´ã§ä¿åããªããã°ãªããªãã
|
---|
2202 | ãï¼caller saved registerã¨å¼ã°ããå ´åãããï¼
|
---|
2203 |
|
---|
2204 | dispatchãå¼ã³åºããã¿ã¹ã¯ã次ã«å®è¡ãããæã«ã¯ï¼å®è¡åéçªå°ã¨ãã¦ç»
|
---|
2205 | é²ããdispatch_rã«æ»ã£ã¦ããï¼dispatch_rã«ã¯ï¼dispatcherã®ã¿ããåå²ãï¼
|
---|
2206 | ãã®æã®ç¶æ
|
---|
2207 | ã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ãã»CPUããã¯ç¶æ
|
---|
2208 | ã»å²è¾¼ã¿åªå
|
---|
2209 | 度ãã¹ã¯å
|
---|
2210 | ¨
|
---|
2211 | 解é¤ç¶æ
|
---|
2212 | ã»ãã£ã¹ããã許å¯ç¶æ
|
---|
2213 | ã§ããï¼
|
---|
2214 |
|
---|
2215 | (6-5-3-2) void request_dispatch(void)
|
---|
2216 |
|
---|
2217 | éã¿ã¹ã¯ã³ã³ããã¹ãã«ããã¦ã¿ã¹ã¯åæããå¿
|
---|
2218 | è¦ã«ãªã£ãå ´åã«ã¯ï¼éã¿ã¹
|
---|
2219 | ã¯ã³ã³ããã¹ãããã®èªçºçãªãã£ã¹ãããè¦æ±ï¼request_dispatchï¼ãå¼ã³
|
---|
2220 | åºãããï¼
|
---|
2221 |
|
---|
2222 | å²è¾¼ã¿ãã³ãã©ã®åºå
|
---|
2223 | ¥å£å¦çãï¼æ¨æºéãã«å®è£
|
---|
2224 | ããï¼dispatchãæ示çã«å¼
|
---|
2225 | ã³åºãï¼å ´åã«ã¯ï¼request_dispatchã§ã¯ä½ãããå¿
|
---|
2226 | è¦ããªãï¼
|
---|
2227 |
|
---|
2228 | 6.5.4 ãã£ã¹ãããã£ã®åä½éå§
|
---|
2229 |
|
---|
2230 | (6-5-4-1) void start_dispatch(void)
|
---|
2231 |
|
---|
2232 | ãã£ã¹ãããã£ã®åä½éå§å¦çï¼start_dispatchï¼ã¯ï¼ã«ã¼ãã«èµ·åæã«ï¼ã«ã¼
|
---|
2233 | ãã«ã®åæåå¦çããå¼ã³åºãããï¼start_dispatchã¯ï¼ãªã¿ã¼ã³ãããã¨ã®
|
---|
2234 | ãªãé¢æ°ã§ããï¼
|
---|
2235 |
|
---|
2236 | start_dispatchã¯ï¼éã¿ã¹ã¯ã³ã³ããã¹ãã§ï¼NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ããã¹
|
---|
2237 | ã¯ããç¶æ
|
---|
2238 | ï¼å
|
---|
2239 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
2240 | ã¨åçã®ç¶æ
|
---|
2241 | ï¼ã§å¼ã³åºãããï¼
|
---|
2242 | start_dispatchå
|
---|
2243 | ã§ï¼ã¿ã¹ã¯ã³ã³ããã¹ãã«åãæãï¼CPUããã¯ç¶æ
|
---|
2244 | ã»å²è¾¼ã¿
|
---|
2245 | åªå
|
---|
2246 | 度ãã¹ã¯å
|
---|
2247 | ¨è§£é¤ç¶æ
|
---|
2248 | ã«ããªããã°ãªããªãï¼ã¾ãï¼ã¹ã¿ãã¯ãï¼IDã1ã®ã¿
|
---|
2249 | ã¹ã¯ã®ã¹ã¿ãã¯é åã«åãæããï¼
|
---|
2250 |
|
---|
2251 | start_dispatchã®å¦çå
|
---|
2252 | 容ã¯æ¬¡ã®éãï¼
|
---|
2253 |
|
---|
2254 | ----------------------------------------
|
---|
2255 | void
|
---|
2256 | start_dispatch(void)
|
---|
2257 | {
|
---|
2258 | ã¿ã¹ã¯ã³ã³ããã¹ãã«åãæãã
|
---|
2259 | ã¹ã¿ãã¯ãIDã1ã®ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã«åãæãã
|
---|
2260 | CPUããã¯ç¶æ
|
---|
2261 | ã»å²è¾¼ã¿åªå
|
---|
2262 | 度ãã¹ã¯å
|
---|
2263 | ¨è§£é¤ç¶æ
|
---|
2264 | ã«ãã
|
---|
2265 | dispatcher_0ã«åå²ãã
|
---|
2266 | }
|
---|
2267 | ----------------------------------------
|
---|
2268 |
|
---|
2269 | 6.5.5 ç¾å¨ã®ã³ã³ããã¹ããæ¨ã¦ã¦ãã£ã¹ããã
|
---|
2270 |
|
---|
2271 | (6-5-5-1) void exit_and_dispatch(void)
|
---|
2272 |
|
---|
2273 | èªã¿ã¹ã¯ãçµäºããããµã¼ãã¹å¦çããã¯ï¼ç¾å¨ã®ã³ã³ããã¹ããæ¨ã¦ã¦ãã£
|
---|
2274 | ã¹ãããããå¦çï¼exit_and_dispatchï¼ãå¼ã³åºãããï¼exit_and_dispatch
|
---|
2275 | ã¯ï¼ãªã¿ã¼ã³ãããã¨ã®ãªãé¢æ°ã§ããï¼
|
---|
2276 |
|
---|
2277 | exit_and_dispatchã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ãã»CPUããã¯ç¶æ
|
---|
2278 | ã»å²è¾¼ã¿åªå
|
---|
2279 | 度ã
|
---|
2280 | ã¹ã¯å
|
---|
2281 | ¨è§£é¤ç¶æ
|
---|
2282 | ã»ãã£ã¹ããã許å¯ç¶æ
|
---|
2283 | ã§å¼ã³åºãããï¼
|
---|
2284 |
|
---|
2285 | exit_and_dispatchã®å¦çå
|
---|
2286 | 容ã¯æ¬¡ã®éãï¼
|
---|
2287 |
|
---|
2288 | ----------------------------------------
|
---|
2289 | void
|
---|
2290 | exit_and_dispatch(void)
|
---|
2291 | {
|
---|
2292 | dispatcherã«åå²ãã
|
---|
2293 | }
|
---|
2294 | ----------------------------------------
|
---|
2295 |
|
---|
2296 | 6.5.6 ã¿ã¹ã¯ã®èµ·åæºå
|
---|
2297 |
|
---|
2298 | (6-5-6-1) void activate_context(TCB *p_tcb)
|
---|
2299 |
|
---|
2300 | ã¿ã¹ã¯ã®èµ·åæºåå¦çï¼activate_contextï¼ã¯ï¼ã¿ã¹ã¯ãä¼æ¢ç¶æ
|
---|
2301 | ããå®è¡ã§
|
---|
2302 | ããç¶æ
|
---|
2303 | ã«ããæã«å¼ã°ãï¼p_tcbã§æå®ãããã¿ã¹ã¯ï¼å¯¾è±¡ã¿ã¹ã¯ï¼ã®TCBä¸
|
---|
2304 | ã®ã¹ã¿ãã¯ãã¤ã³ã¿ãåæåãï¼å®è¡åéçªå°ãã¿ã¹ã¯éå§æå¦çï¼start_rï¼
|
---|
2305 | ã«è¨å®ããï¼ãã®æç¹ã§ã¯ï¼å¾è¿°ããçç±ã§ï¼å¯¾è±¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã使ã£
|
---|
2306 | ã¦ã¯ãªããªãï¼
|
---|
2307 |
|
---|
2308 | 対象ã¿ã¹ã¯ãæåã«å®è¡ãããæã«ã¯ï¼å¯¾è±¡ã¿ã¹ã¯ãèªã¿ã¹ã¯ã¨ãã¦ï¼å®è¡å
|
---|
2309 | éçªå°ã¨ãã¦ç»é²ããstart_rã«åå²ãã¦ããï¼start_rã«ã¯ï¼dispatcherã®ã¿
|
---|
2310 | ããåå²ãï¼ãã®æã®ç¶æ
|
---|
2311 | ã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ãã»CPUããã¯ç¶æ
|
---|
2312 | ã»å²è¾¼ã¿åª
|
---|
2313 | å
|
---|
2314 | 度ãã¹ã¯å
|
---|
2315 | ¨è§£é¤ç¶æ
|
---|
2316 | ã»ãã£ã¹ããã許å¯ç¶æ
|
---|
2317 | ã§ããï¼
|
---|
2318 |
|
---|
2319 | start_rã¯ï¼CPUããã¯ç¶æ
|
---|
2320 | ã解é¤ããå¾ï¼ã¿ã¹ã¯ã®èµ·åçªå°ãå¼ã³åºãï¼ãã
|
---|
2321 | ã«ï¼ã¿ã¹ã¯ã®èµ·åçªå°ããæ»ã£ã¦ããå ´åã«ã¯ï¼ext_tskãå¼ã³åºãï¼
|
---|
2322 |
|
---|
2323 | activate_contextã¨start_rã®å¦çå
|
---|
2324 | 容ã¯æ¬¡ã®éãï¼
|
---|
2325 |
|
---|
2326 | ----------------------------------------
|
---|
2327 | void
|
---|
2328 | activate_context(TCB *p_tcb)
|
---|
2329 | {
|
---|
2330 | æå®ãããã¿ã¹ã¯ï¼p_tcbï¼ã®TCBä¸ã®ã¹ã¿ãã¯ãã¤ã³ã¿ãåæåãã
|
---|
2331 | start_rãï¼å®è¡åéçªå°ã¨ãã¦èªã¿ã¹ã¯ã®TCBã«ä¿åãã ⦠(*a)
|
---|
2332 | return;
|
---|
2333 |
|
---|
2334 | start_r:
|
---|
2335 | #ifdef TOPPERS_SUPPORT_OVRHDR
|
---|
2336 | ovrtimer_start(); /* ãªã¼ãã©ã³ã¿ã¤ãã®åä½éå§ */
|
---|
2337 | #endif /* TOPPERS_SUPPORT_OVRHDR */
|
---|
2338 | CPUããã¯è§£é¤ç¶æ
|
---|
2339 | ã«ãã
|
---|
2340 | èªã¿ã¹ã¯ï¼p_runtskï¼ã®èµ·åçªå°ãï¼æ¡å¼µæ
|
---|
2341 | å ±ããã©ã¡ã¼ã¿ã¨ãã¦å¼ã³åºã
|
---|
2342 | ext_tskã«åå²ãã ... (*c)
|
---|
2343 | }
|
---|
2344 | ----------------------------------------
|
---|
2345 |
|
---|
2346 | (*c)ã§ext_tskãå¼ã¶ä»£ããã«ï¼èªã¿ã¹ã¯ã®èµ·åçªå°ãå¼ã³åºãæã®è¿ãçªå°ã
|
---|
2347 | ext_tskã®çªå°ã¨ãã¦ããæ¹æ³ãããï¼
|
---|
2348 |
|
---|
2349 | ããã§ï¼ã¿ã¹ã¯ã®èµ·åå¦çã«ããã¦å¯¾è±¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã使ã£ã¦ã¯ãªã
|
---|
2350 | ãªãçç±ã¯ï¼æ¬¡ã®éãï¼å¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸ã«ããã¦ï¼è¤æ°ã®å¶ç´ã¿ã¹
|
---|
2351 | ã¯ãã¹ã¿ãã¯é åãå
|
---|
2352 | ±æãã¦ããå ´åã«ï¼ã¿ã¹ã¯ã®èµ·åæç¹ã§ã¯ï¼ãã®ã¿ã¹ã¯
|
---|
2353 | ã¨ã¹ã¿ãã¯é åãå
|
---|
2354 | ±æãã¦ããã¿ã¹ã¯ãï¼ã¹ã¿ãã¯é åã使ç¨ãã¦ããå¯è½æ§
|
---|
2355 | ãããããã§ããï¼
|
---|
2356 |
|
---|
2357 | ãã®ãã¼ãã£ã³ã°ã¬ã¤ãã§ã¯ï¼ã¿ã¹ã¯ã®å®è¡åéçªå°ãTCBã«ä¿åãã¦ãã
|
---|
2358 | (*a)ï¼ãããã¹ã¿ãã¯ã«ä¿åããæ¹æ³ãèãããããï¼ã¿ã¹ã¯ã®èµ·åå¦çã§ã¹
|
---|
2359 | ã¿ãã¯é åã使ããªããã¨ããï¼ã¿ã¹ã¯ã®èµ·åå¦çã ãã¯ä¾å¤æ±ãããªããã°
|
---|
2360 | ãªããªãï¼ä¾ãã°ï¼ã¿ã¹ã¯ã®èµ·åå¦çã«ããã¦ã¯TCBä¸ã®ã¹ã¿ãã¯ãã¤ã³ã¿ãç¹
|
---|
2361 | æ®ãªå¤ï¼ä¾ãã°0ï¼ã«è¨å®ãã¦ããï¼ãã£ã¹ãããã£æ¬ä½ã§TCBä¸ã®ã¹ã¿ãã¯ã
|
---|
2362 | ã¤ã³ã¿ããã®å¤ã®å ´åã«ã¯start_rã«åå²ããï¼start_rã«ããã¦ã¹ã¿ãã¯ãã¤
|
---|
2363 | ã³ã¿ãåæåããæ¹æ³ãèããããï¼
|
---|
2364 |
|
---|
2365 | 6.6 å²è¾¼ã¿ãã³ãã©
|
---|
2366 |
|
---|
2367 | 6.6.1 å²è¾¼ã¿ãã³ãã©ã®åºå
|
---|
2368 | ¥å£å¦ç
|
---|
2369 |
|
---|
2370 | ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ãã³ãã©ã®åºå
|
---|
2371 | ¥å£å¦çã¯ï¼ä»¥ä¸ã®æ¬ä¼¼ã³ã¼ãã¨ç価ã«ãª
|
---|
2372 | ãããã«å®è£
|
---|
2373 | ããï¼å¦çå
|
---|
2374 | 容ãç価ã§ããã°ï¼å¦çé åºãå¤æ´ãã¦ããã¾ããª
|
---|
2375 | ãï¼
|
---|
2376 |
|
---|
2377 | ããã»ããµã«ãã£ã¦ã¯ï¼æ¬ä¼¼ã³ã¼ãã«å«ã¾ããå¦çããã¼ãã¦ã§ã¢ã§å®ç¾ãã
|
---|
2378 | ã¦ããå ´åããããï¼ãã®ãããªå¦çã¯ã½ããã¦ã§ã¢ã§è¡ãå¿
|
---|
2379 | è¦ã¯ãªãï¼
|
---|
2380 |
|
---|
2381 | æ¬ä¼¼ã³ã¼ãä¸ã§ï¼ãå°ãªãã¨ãã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ãç¦æ¢ããç¶æ
|
---|
2382 | ãã¨ã¯ï¼
|
---|
2383 | ã«ã¼ãã«å
|
---|
2384 | é¨ã§ç¨ããä¸æçãªç¶æ
|
---|
2385 | ã§ããï¼ãã®ç¶æ
|
---|
2386 | ã®ã¾ã¾ã§ã«ã¼ãã«å¤ã«åº
|
---|
2387 | ããã¨ã¯ãªãï¼ãã®ããï¼ãã®ç¶æ
|
---|
2388 | ã§ã¯ï¼CPUããã¯ç¶æ
|
---|
2389 | ã§ããã¨èå¥ã§ããªã
|
---|
2390 | ã¦ãããï¼ä¾ãã°ï¼CPUããã¯ç¶æ
|
---|
2391 | ã§ãããã¨ã示ãå¤æ°ãç¨æãã¦ããå ´åã«
|
---|
2392 | ã¯ï¼ãã®ç¶æ
|
---|
2393 | ã§ã¯ãã®å¤æ°ãCPUããã¯ç¶æ
|
---|
2394 | ã示ãå¤ã«å¤æ´ããå¿
|
---|
2395 | è¦ã¯ãªãï¼ã¾
|
---|
2396 | ãï¼ãã®ç¶æ
|
---|
2397 | ã§ã¯ï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ï¼ã®ä¸é¨ï¼ãç¦æ¢ããã¦ãã¦ãã
|
---|
2398 | ãï¼
|
---|
2399 |
|
---|
2400 | ----------------------------------------
|
---|
2401 | void
|
---|
2402 | <å²è¾¼ã¿ã®åºå
|
---|
2403 | ¥å£å¦ç>(void)
|
---|
2404 | {
|
---|
2405 | å°ãªãã¨ãã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ãç¦æ¢ããç¶æ
|
---|
2406 | ã«ãã ⦠(*d)
|
---|
2407 | ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ã«ä¿åãã
|
---|
2408 | if (å²è¾¼ã¿ãã¿ã¹ã¯ã³ã³ããã¹ãã§çºç) {
|
---|
2409 | #ifdef TOPPERS_SUPPORT_OVRHDR
|
---|
2410 | ovrtimer_stop(); /* ãªã¼ãã©ã³ã¿ã¤ãã®åæ¢ */ ⦠(*e)
|
---|
2411 | #endif /* TOPPERS_SUPPORT_OVRHDR */
|
---|
2412 | ã¹ã¿ãã¯ãéã¿ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿ãã¯ã«åãæãï¼
|
---|
2413 | éã¿ã¹ã¯ã³ã³ããã¹ãã«åãæãã
|
---|
2414 | }
|
---|
2415 | å²è¾¼ã¿åªå
|
---|
2416 | 度ãã¹ã¯ãï¼åãä»ããå²è¾¼ã¿ã®å²è¾¼ã¿åªå
|
---|
2417 | 度ã«è¨å®ãã
|
---|
2418 | CPUããã¯è§£é¤ç¶æ
|
---|
2419 | ã«ããï¼åãä»ããå²è¾¼ã¿ãããåªå
|
---|
2420 | 度ã®é«ãå²è¾¼ã¿ã
|
---|
2421 | åãä»ããããã«ããï¼
|
---|
2422 | å²è¾¼ã¿ãã³ãã©ã®å
|
---|
2423 | ¥å£ã§å¿
|
---|
2424 | è¦ãªIRCã®æä½ãè¡ãï¼å²è¾¼ã¿è¦æ±ã©ã¤ã³ãã¨ã
|
---|
2425 | ã¸ããªã¬ã§ããå ´åã®ããªã¬ãããå²è¾¼ã¿è¦æ±ã®ã¯ãªã¢ãªã©ï¼
|
---|
2426 |
|
---|
2427 | #ifdef LOG_INH_ENTER
|
---|
2428 | log_inh_enter(å²è¾¼ã¿ãã³ãã©çªå·);
|
---|
2429 | #endif /* LOG_INH_ENTER */
|
---|
2430 | å²è¾¼ã¿ãã³ãã©ãå¼ã³åºã
|
---|
2431 | #ifdef LOG_INH_LEAVE
|
---|
2432 | log_inh_leave(å²è¾¼ã¿ãã³ãã©çªå·);
|
---|
2433 | #endif /* LOG_INH_LEAVE */
|
---|
2434 |
|
---|
2435 | å²è¾¼ã¿ãã³ãã©ã®åºå£ã§å¿
|
---|
2436 | è¦ãªIRCã®æä½ãè¡ãï¼IRCã«å¯¾ããå²è¾¼ã¿å¦ç
|
---|
2437 | ã®çµäºéç¥ãªã©ï¼
|
---|
2438 | å°ãªãã¨ãã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ãç¦æ¢ããç¶æ
|
---|
2439 | ã«ãã
|
---|
2440 | å²è¾¼ã¿åªå
|
---|
2441 | 度ãã¹ã¯ãï¼å²è¾¼ã¿ãåãä»ããåã®å¤ã«æ»ã ⦠(*f)
|
---|
2442 |
|
---|
2443 | if (å²è¾¼ã¿ãã¿ã¹ã¯ã³ã³ããã¹ãã§çºç) {
|
---|
2444 | ã¹ã¿ãã¯ãã¿ã¹ã¯ç¨ã®ã¹ã¿ãã¯ã«æ»ãï¼ã¿ã¹ã¯ã³ã³ããã¹ãã«åãæãã
|
---|
2445 | ⦠(*g)
|
---|
2446 | if (p_runtsk != p_schedtsk) {
|
---|
2447 | CPUããã¯ç¶æ
|
---|
2448 | ã«ãã ⦠(*h)
|
---|
2449 | å²è¾¼ã¿åªå
|
---|
2450 | 度ãã¹ã¯ã¯ï¼å
|
---|
2451 | ¨è§£é¤ç¶æ
|
---|
2452 | ï¼TIPM_ENAALLï¼ã«ãªã£ã¦
|
---|
2453 | ããªããã°ãªããªã ⦠(*i)
|
---|
2454 | if (p_runtsk != NULL) {
|
---|
2455 | ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ã«ä¿åãã
|
---|
2456 | ã¹ã¿ãã¯ãã¤ã³ã¿ãèªã¿ã¹ã¯ï¼p_runtskï¼ã®TCBã«ä¿åãã
|
---|
2457 | ret_int_rãï¼å®è¡åéçªå°ã¨ãã¦èªã¿ã¹ã¯ã®TCBã«ä¿åãã ⦠(*a)
|
---|
2458 | dispatcherã«åå²ãã
|
---|
2459 | }
|
---|
2460 | else {
|
---|
2461 | dispatcher_0ã«åå²ãã
|
---|
2462 | }
|
---|
2463 |
|
---|
2464 | ret_int_r:
|
---|
2465 | ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ãã復帰ãã
|
---|
2466 | #ifdef TOPPERS_SUPPORT_OVRHDR
|
---|
2467 | ovrtimer_start(); /* ãªã¼ãã©ã³ã¿ã¤ãã®åä½éå§ */
|
---|
2468 | #endif /* TOPPERS_SUPPORT_OVRHDR */
|
---|
2469 | }
|
---|
2470 | #ifdef TOPPERS_SUPPORT_OVRHDR
|
---|
2471 | else {
|
---|
2472 | if (p_runtsk != NULL) {
|
---|
2473 | ovrtimer_start(); /* ãªã¼ãã©ã³ã¿ã¤ãã®åä½éå§ */
|
---|
2474 | }
|
---|
2475 | }
|
---|
2476 | #endif /* TOPPERS_SUPPORT_OVRHDR */
|
---|
2477 | }
|
---|
2478 | å²è¾¼ã¿å¦çããã®ãªã¿ã¼ã³ã«ããï¼CPUããã¯è§£é¤ç¶æ
|
---|
2479 | ã«æ»ãããã«æºåãã
|
---|
2480 | ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ãã復帰ãã
|
---|
2481 | å²è¾¼ã¿å¦çããã®ãªã¿ã¼ã³
|
---|
2482 | }
|
---|
2483 | ----------------------------------------
|
---|
2484 |
|
---|
2485 | å²è¾¼ã¿ã®åä»ãã«ããå²è¾¼ã¿ãç¦æ¢ãããªãããã»ããµã§ã¯ï¼(*d)ã«ããã¦ï¼
|
---|
2486 | å°ãªãã¨ãã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ãç¦æ¢ããï¼ããã¯ï¼ovrtimer_stopãã¹ã¿ã
|
---|
2487 | ã¯ãåãæããå¦ççã«ããã¦ï¼ã«ã¼ãã«ã®å
|
---|
2488 | é¨å¤æ°ãã¢ã¯ã»ã¹ããï¼å ´åã
|
---|
2489 | ããï¼ããï¼ãããã«å¯¾ããæä»å¶å¾¡ãå¿
|
---|
2490 | è¦ãªããã§ããï¼ãªã¼ãã©ã³ã¿ã¤ã
|
---|
2491 | ããµãã¼ãããï¼ãã®ä»ã®å¦çã§ãã«ã¼ãã«ã®å
|
---|
2492 | é¨å¤æ°ãã¢ã¯ã»ã¹ããªãå ´å
|
---|
2493 | ã«ã¯ï¼(*d)ãçç¥ã§ããå ´åãããï¼
|
---|
2494 |
|
---|
2495 | ãã ãï¼ãã¼ãã¦ã§ã¢ã«ããã¹ã¿ãã¯ãã¤ã³ã¿ãåãæããæ©è½ããªãããã»ã
|
---|
2496 | ãµã§ã¯ï¼å²è¾¼ã¿ãã³ãã©ã®å
|
---|
2497 | ¥å£å¦çã®ã§ããéãæ©ãã¿ã¤ãã³ã°ã§ï¼ã«ã¼ãã«
|
---|
2498 | 管çå¤ã®å²è¾¼ã¿ãå«ãã¦ï¼ãã¹ã¦ã®å²è¾¼ã¿ãç¦æ¢ããã®ãæã¾ããï¼è©³ããã¯ï¼
|
---|
2499 | ãå¤éå²è¾¼ã¿ã¨ã¹ã¿ãã¯ãã®é
|
---|
2500 | ãåç
|
---|
2501 | §ãããã¨ï¼
|
---|
2502 |
|
---|
2503 | å²è¾¼ã¿ã®åä»ãã«ããå²è¾¼ã¿ãç¦æ¢ãããªãããã»ããµã§ã¯ï¼(*e)ã®å¦çãï¼
|
---|
2504 | ifæã®æåã§ï¼ã¤ã¾ãï¼å²è¾¼ã¿ãçºçããã³ã³ããã¹ãã«ä¾ããã«ï¼è¡ãã¹ã
|
---|
2505 | ã§ããï¼ããã¯ï¼(*d)ã«ããã¦å²è¾¼ã¿ãç¦æ¢ããåã«å¤éå²è¾¼ã¿ãåãä»ãã
|
---|
2506 | ããå ´åã«ï¼ãã®å²è¾¼ã¿å¦çã®éããªã¼ãã©ã³ã¿ã¤ãã®åä½ãæ¢ãã¦ãããã
|
---|
2507 | ã«å¿
|
---|
2508 | è¦ã§ããï¼ãªãï¼ovrtimer_stopã¯ï¼ãªã¼ãã©ã³ã¿ã¤ããåä½ãã¦ããªãæ
|
---|
2509 | ã¯ä½ãè¡ããªãããï¼éå°ã«å¼ã³åºãã¦ãå·®ãæ¯ããªãï¼
|
---|
2510 |
|
---|
2511 | (*f)ã«ããã¦ï¼å²è¾¼ã¿åªå
|
---|
2512 | 度ãã¹ã¯ãå²è¾¼ã¿ãåãä»ããåã®å¤ã«æ»ãå¦çã¯ï¼
|
---|
2513 | å²è¾¼ã¿å¦çãããªã¿ã¼ã³ããã¾ã§ã«è¡ãã°ããï¼å²è¾¼ã¿å¦çããã®ãªã¿ã¼ã³ã«
|
---|
2514 | ããå²è¾¼ã¿åªå
|
---|
2515 | 度ãã¹ã¯ãå
|
---|
2516 | ã«æ»ãæ©è½ãããå ´åã«ã¯ï¼ããã«å§ãã¦ãããï¼
|
---|
2517 | ãã ãï¼ãã®ããã«ããå ´åã«ã¯ï¼(*i)ã«ããã¦ï¼å²è¾¼ã¿åªå
|
---|
2518 | 度ãã¹ã¯ã¯å
|
---|
2519 | ¨è§£
|
---|
2520 | é¤ç¶æ
|
---|
2521 | ï¼TIPM_ENAALLï¼ã«ããå¦çãè¡ãå¿
|
---|
2522 | è¦ãããï¼
|
---|
2523 |
|
---|
2524 | (*g)ã«ããã¦ã¿ã¹ã¯ã³ã³ããã¹ãã«åãæããå¦çã¯ï¼å²è¾¼ã¿å¦çããã®ãªã¿ã¼
|
---|
2525 | ã³ã«ããã¹ã¿ãã¯ã¨ã³ã³ããã¹ããå
|
---|
2526 | ã«æ»ãããã»ããµã§ã¯ï¼dispatcherã«å
|
---|
2527 | å²ããå ´åã«ã®ã¿è¡ãã°ããï¼dispatcherã«åå²ããªãå ´åã«ã¯ï¼éã¿ã¹ã¯ã³
|
---|
2528 | ã³ããã¹ãã®ã¾ã¾å¦çãç¶ãï¼å²è¾¼ã¿å¦çããã®ãªã¿ã¼ã³ã§ã¿ã¹ã¯ã³ã³ããã¹
|
---|
2529 | ãã«æ»ããã¨ã«ãªãï¼
|
---|
2530 |
|
---|
2531 | (*h)ã«ããã¦CPUããã¯ç¶æ
|
---|
2532 | ã«ããã®ã¯ï¼dispatcherã«åå²ããéã«ï¼CPUãã
|
---|
2533 | ã¯ç¶æ
|
---|
2534 | ã«ãªã£ã¦ããå¿
|
---|
2535 | è¦ãããããã§ããï¼
|
---|
2536 |
|
---|
2537 | (*i)ã®å¦çã«å°éããã®ã¯ï¼å²è¾¼ã¿å¦çåã«å²è¾¼ã¿åªå
|
---|
2538 | 度ãã¹ã¯ãå
|
---|
2539 | ¨è§£é¤ç¶æ
|
---|
2540 |
|
---|
2541 | ï¼TIPM_ENAALLï¼ã§ãã£ãå ´åã«éãããããï¼(*f)ã«ããã¦å²è¾¼ã¿åªå
|
---|
2542 | 度ãã¹
|
---|
2543 | ã¯ãå²è¾¼ã¿ãåãä»ããåã®å¤ã«æ»ãã¦ããã°ï¼ããã§ã¯ä½ãããªãã¦ãè¯ãï¼
|
---|
2544 | ãã ãï¼å²è¾¼ã¿åªå
|
---|
2545 | 度ãã¹ã¯ãæ»ãå¦çãå¾ã§è¡ãå ´åã«ã¯ï¼(*i)ã«ããã¦ï¼
|
---|
2546 | å²è¾¼ã¿åªå
|
---|
2547 | 度ãã¹ã¯ãå
|
---|
2548 | ¨è§£é¤ç¶æ
|
---|
2549 | ã«è¨å®ããªããã°ãªããªãï¼ãªãï¼ããã§å²
|
---|
2550 | è¾¼ã¿åªå
|
---|
2551 | 度ãã¹ã¯ãå
|
---|
2552 | ¨è§£é¤ç¶æ
|
---|
2553 | ã«ãªã£ã¦ããªããã°ãªããªãã®ã¯ï¼dispatcher
|
---|
2554 | ã«åå²ããéã«ã¯ï¼å²è¾¼ã¿åªå
|
---|
2555 | 度ãã¹ã¯å
|
---|
2556 | ¨è§£é¤ç¶æ
|
---|
2557 | ã«ãªã£ã¦ããå¿
|
---|
2558 | è¦ãããã
|
---|
2559 | ãã§ããï¼
|
---|
2560 |
|
---|
2561 | ã¿ã¹ã¯ã®å®è¡ä¸ã«å²è¾¼ã¿ãçºçãï¼å²è¾¼ã¿ããã®åºå£å¦çä¸ã§dispatcherã«å
|
---|
2562 | å²ããå ´åï¼ãã®ã¿ã¹ã¯ã次ã«å®è¡ãããæã«ã¯ï¼å®è¡åéçªå°ã¨ãã¦ç»é²ã
|
---|
2563 | ãret_int_rã«æ»ã£ã¦ããï¼ret_int_rã«ã¯ï¼dispatcherã®ã¿ããåå²ãï¼ãã®
|
---|
2564 | æã®ç¶æ
|
---|
2565 | ã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ãã»CPUããã¯ç¶æ
|
---|
2566 | ã»å²è¾¼ã¿åªå
|
---|
2567 | 度ãã¹ã¯å
|
---|
2568 | ¨è§£é¤
|
---|
2569 | ç¶æ
|
---|
2570 | ã»ãã£ã¹ããã許å¯ç¶æ
|
---|
2571 | ã§ããï¼
|
---|
2572 |
|
---|
2573 | å²è¾¼ã¿ã®åºå
|
---|
2574 | ¥å£å¦çãã¢ã»ã³ããªè¨èªã§è¨è¿°ããå ´åã«ã¯ï¼ãã¬ã¼ã¹ãã°åå¾
|
---|
2575 | å¦çã¯ï¼ã6.2 ãã¬ã¼ã¹ãã°æ©è½ã¸ã®å¯¾å¿ãã®ç¯ã§è¨è¿°ããæ¹æ³ã§ã³ã¼ãã£ã³
|
---|
2576 | ã°ãããã¨ï¼
|
---|
2577 |
|
---|
2578 | ãå¤éå²è¾¼ã¿ã¨ã¹ã¿ãã¯ã
|
---|
2579 |
|
---|
2580 | ãã¼ãã¦ã§ã¢ã«ããã¹ã¿ãã¯ãã¤ã³ã¿ãåãæããæ©è½ããªãããã»ããµã§ã¯ï¼
|
---|
2581 | å²è¾¼ã¿ã®å
|
---|
2582 | ¥å£å¦çã«ããã¦ï¼éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿ãã¯ã«åãæãã
|
---|
2583 | åã«å¤éå²è¾¼ã¿ãåãä»ããã¨ï¼ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã使ç¨ãããï¼ãã®ã
|
---|
2584 | ãï¼åã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã確ä¿ããéã«ï¼ããã§åãä»ããå²è¾¼ã¿ã使ç¨
|
---|
2585 | ããã¹ã¿ãã¯ãè¦è¾¼ãã§ç¢ºä¿ããªããã°ãªããªãï¼
|
---|
2586 |
|
---|
2587 | åã¿ã¹ã¯ã®ã¹ã¿ãã¯é åããªãã¹ãå°ããããããã«ã¯ï¼ã¹ã¿ãã¯ããªãã¹ã
|
---|
2588 | 使ç¨ããªãå
|
---|
2589 | ã«ï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãå«ãã¦ï¼å¤éå²è¾¼ã¿ãç¦æ¢ããã®
|
---|
2590 | ãæã¾ããï¼ä¸æ¹ã§ï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã®ç¦æ¢æéãé·ããªãã¨ï¼ã«ã¼
|
---|
2591 | ãã«ç®¡çå¤ã®å²è¾¼ã¿ã®å¿çæ§ãä½ä¸ããããï¼ã¦ã¼ã¶ã«æ³¨æãä¿ãå¿
|
---|
2592 | è¦ãããï¼
|
---|
2593 |
|
---|
2594 | ç¹ã«ï¼å²è¾¼ã¿ã®åä»ã«ããå²è¾¼ã¿ãç¦æ¢ãããï¼ãã¼ãã¦ã§ã¢ã«ããã¹ã¿ãã¯
|
---|
2595 | ãã¤ã³ã¿ãåãæããæ©è½ããªãããã»ããµã§ã¯ï¼æ¬¡ã®ç¹ã«æ³¨æãå¿
|
---|
2596 | è¦ã§ããï¼
|
---|
2597 |
|
---|
2598 | ãã®ãããªããã»ããµã§ã¯ï¼éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿ãã¯ã«åãæãã
|
---|
2599 | åã«ï¼æ大ã§å²è¾¼ã¿åªå
|
---|
2600 | 度ã®æ®µæ°åã®å¤éå²è¾¼ã¿ãçºçãããã¨ãé²ããã¨ã¯
|
---|
2601 | ã§ããï¼åã¿ã¹ã¯ã®ã¹ã¿ãã¯é åããã®åãè¦è¾¼ãã§ç¢ºä¿ããªããã°ãªããªãï¼
|
---|
2602 | ããã§ï¼ã¹ã¿ãã¯ããªãã¹ã使ç¨ããªãå
|
---|
2603 | ã«å¤éå²è¾¼ã¿ãç¦æ¢ããããã«ï¼ã¹
|
---|
2604 | ã¯ã©ããã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ã«ä¿åããåã«ï¼ãã¹ã¦ã®å²è¾¼ã¿ãç¦æ¢ããã®ã
|
---|
2605 | æã¾ããï¼ãã ãï¼å²è¾¼ã¿ã®ç¦æ¢å¦çã«å¿
|
---|
2606 | è¦ãªæä½éã®ã¬ã¸ã¹ã¿ã«ã¤ãã¦ã¯ï¼
|
---|
2607 | å²è¾¼ã¿ã®ç¦æ¢ã«å
|
---|
2608 | ç«ã£ã¦ã¹ã¿ãã¯ã«ä¿åããå¿
|
---|
2609 | è¦ãããï¼
|
---|
2610 |
|
---|
2611 | ã«ã¼ãã«ã®ç®¡è½å¤ã§ã¯ãããï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿å¦çã«ããã¦ãï¼éã¿
|
---|
2612 | ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿ãã¯ï¼ã¾ãã¯ï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿å¦çç¨ã®ã¹
|
---|
2613 | ã¿ãã¯ï¼ã«åãæãããã¨ãæã¾ããï¼
|
---|
2614 |
|
---|
2615 | ãTOPPERS/ASP1ã«ã¼ãã«ã¨ã®é¢ä¿ã
|
---|
2616 |
|
---|
2617 | æ¬ä¼¼ã³ã¼ãã®æ§æãè¦ç´ããï¼æ¬ä¼¼ã³ã¼ãã§æ³å®ãã¦ããããã»ããµã®ã¿ã¤ã
|
---|
2618 | ãå¤ããï¼ï¼
|
---|
2619 |
|
---|
2620 | reqflgãå»æ¢ããï¼ã¾ãï¼ã¿ã¹ã¯åæãã®æ¡ä»¶å¤å®ã§ï¼dspflgããã§ãã¯ãã
|
---|
2621 | å¿
|
---|
2622 | è¦ããªããªã£ãï¼
|
---|
2623 |
|
---|
2624 | ã¢ã¤ãã«å¦çã®è¨è¨ãå¤æ´ããããï¼å²è¾¼ã¿ãã³ãã©ã®åºå£å¦çã«ãããã¿ã¹
|
---|
2625 | ã¯åæãã«ããã¦ï¼p_runtskãNULLã¨ãªã£ã¦ããç¶æ³ãèããå¿
|
---|
2626 | è¦ãçããï¼
|
---|
2627 |
|
---|
2628 | 6.6.2 å²è¾¼ã¿ãã³ãã©æ¯ã®åºå
|
---|
2629 | ¥å£å¦çã®çæ
|
---|
2630 |
|
---|
2631 | å²è¾¼ã¿ãã¯ãã«ããã¼ãã¦ã§ã¢ã§å®ç¾ãã¦ããå ´åãªã©ï¼å²è¾¼ã¿ãã³ãã©æ¯ã«
|
---|
2632 | åºå
|
---|
2633 | ¥å£å¦çãç¨æããæ¹ãå¹çãè¯ãããã»ããµã®ããã«ï¼å²è¾¼ã¿ãã³ãã©æ¯
|
---|
2634 | ã«åºå
|
---|
2635 | ¥å£å¦çãçæããæ©æ§ãç¨æãã¦ããï¼
|
---|
2636 |
|
---|
2637 | 以ä¸ã®ãã¯ãã¯ï¼æ¨æºã®å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãç¨ããå ´åã®ã¿ï¼ã¿ã¼
|
---|
2638 | ã²ããéä¾åé¨ã§ä½¿ãããï¼å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãã¿ã¼ã²ããä¾åé¨
|
---|
2639 | ã§ç¨æãï¼ãã®ä¸ã§ãããã®ãã¯ãã使ããªãå ´åã«ã¯ï¼ãããã®ãã¯ããç¨
|
---|
2640 | æããå¿
|
---|
2641 | è¦ã¯ãªãï¼
|
---|
2642 |
|
---|
2643 | (6-6-2-1) INT_ENTRY(inhno, inthdr)
|
---|
2644 |
|
---|
2645 | å²è¾¼ã¿ãã³ãã©çªå·ãinhnoï¼å²è¾¼ã¿ãã³ãã©ã®é¢æ°åãinthdrã§ããå²è¾¼ã¿ã
|
---|
2646 | ã³ãã©ã®åºå
|
---|
2647 | ¥å£å¦çã®ã©ãã«ãä½ããã¯ãï¼INTHDR_ENTRYãç¨ãã¦å²è¾¼ã¿ãã³
|
---|
2648 | ãã©æ¯ã«åºå
|
---|
2649 | ¥å£å¦çãçæããå ´åã«ã¯ï¼æ¬¡ã®ããã«å®ç¾©ããï¼
|
---|
2650 |
|
---|
2651 | #define INT_ENTRY(inhno, inthdr) _kernel_##inthdr##_##inhno
|
---|
2652 |
|
---|
2653 | å²è¾¼ã¿ãã³ãã©æ¯ã«åºå
|
---|
2654 | ¥å£å¦çãä½ãå¿
|
---|
2655 | è¦ããªãå ´åã«ã¯ï¼æ¬¡ã®ããã«å®ç¾©ã
|
---|
2656 | ã¦ï¼å²è¾¼ã¿ãã³ãã©ã®é¢æ°åããã®ã¾ã¾è¿ãï¼
|
---|
2657 |
|
---|
2658 | #define INT_ENTRY(inhno, inthdr) inthdr
|
---|
2659 |
|
---|
2660 | (6-6-2-2) INTHDR_ENTRY(inhno, inhno_num, inthdr)
|
---|
2661 |
|
---|
2662 | å²è¾¼ã¿ãã³ãã©çªå·ãinhnoï¼å²è¾¼ã¿ãã³ãã©ã®é¢æ°åãinthdrã§ããå²è¾¼ã¿ã
|
---|
2663 | ã³ãã©ã®åºå
|
---|
2664 | ¥å£å¦çãçæãããã¯ãï¼inhno_numã«ã¯ï¼ã¢ã»ã³ããªè¨èªè¨è¿°ç¨
|
---|
2665 | ã«ï¼å²è¾¼ã¿ãã³ãã©çªå·ãæ°å¤ã§æ¸¡ãããï¼å²è¾¼ã¿ãã³ãã©æ¯ã«åºå
|
---|
2666 | ¥å£å¦çã
|
---|
2667 | ä½ãå¿
|
---|
2668 | è¦ããªãå ´åã«ã¯ï¼ç©ºã«å®ç¾©ããï¼
|
---|
2669 |
|
---|
2670 | 6.6.3 å²è¾¼ã¿ãã³ãã©ã®è¨å®
|
---|
2671 |
|
---|
2672 | (6-6-3-1) void define_inh(INHNO inhno, FP int_entry)
|
---|
2673 |
|
---|
2674 | inhnoã§æå®ãããå²è¾¼ã¿ãã³ãã©ã®åºå
|
---|
2675 | ¥å£å¦çã®çªå°ãint_entryã«è¨å®ããï¼
|
---|
2676 |
|
---|
2677 | ãã®é¢æ°ã¯ï¼æ¨æºã®å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãç¨ããå ´åã®ã¿ï¼ã¿ã¼ã²ã
|
---|
2678 | ãéä¾åé¨ããå¼ã³åºãããï¼å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãã¿ã¼ã²ããä¾å
|
---|
2679 | é¨ã§ç¨æãï¼ãã®ä¸ã§ãã®é¢æ°ãå¼ã³åºããªãå ´åã«ã¯ï¼ãã®é¢æ°ãç¨æãã
|
---|
2680 | å¿
|
---|
2681 | è¦ã¯ãªãï¼
|
---|
2682 |
|
---|
2683 | ãã®é¢æ°ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ã®ã«ã¼ãã«åæåå¦çããå¼ã³åºãããããï¼
|
---|
2684 | ã«ã¼ãã«ã®åæåå¦çï¼NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ããã¹ã¯ããã¦ããï¼ããå¼
|
---|
2685 | ã³åºããããã«å®è£
|
---|
2686 | ããã°ããï¼
|
---|
2687 |
|
---|
2688 | æå®ãããå²è¾¼ã¿ãã³ãã©çªå·ãDEF_INHã«å¯¾ãããã®ã¨ãã¦æå¹ãªå¤ã§ãªãå ´
|
---|
2689 | åã®åä½ã¯ä¿è¨¼ããå¿
|
---|
2690 | è¦ããªãï¼assertã§ã¨ã©ã¼ã¨ããã®ãæã¾ããï¼ï¼ãã
|
---|
2691 | ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãï¼ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾åé¨
|
---|
2692 | ã§å®ç¾©ããINHNO_DEFINH_VALIDãç¨ãã¦ã¨ã©ã¼ãæ¤åºããããã§ããï¼
|
---|
2693 |
|
---|
2694 | 6.6.4 å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨å®
|
---|
2695 |
|
---|
2696 | (6-6-4-1) void config_int(INTNO intno, ATR intatr, PRI intpri)
|
---|
2697 |
|
---|
2698 | intnoã§æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å²è¾¼ã¿å±æ§ãï¼intatrã§æå®ãããéã
|
---|
2699 | ã«è¨å®ããï¼ã¾ãï¼å²è¾¼ã¿åªå
|
---|
2700 | 度ãï¼intpriã§æå®ãããå¤ã«è¨å®ããï¼
|
---|
2701 |
|
---|
2702 | ãã®é¢æ°ã¯ï¼æ¨æºã®å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãç¨ããå ´åã®ã¿ï¼ã¿ã¼ã²ã
|
---|
2703 | ãéä¾åé¨ããå¼ã³åºãããï¼å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãã¿ã¼ã²ããä¾å
|
---|
2704 | é¨ã§ç¨æãï¼ãã®ä¸ã§ãã®é¢æ°ãå¼ã³åºããªãå ´åã«ã¯ï¼ãã®é¢æ°ãç¨æãã
|
---|
2705 | å¿
|
---|
2706 | è¦ã¯ãªãï¼
|
---|
2707 |
|
---|
2708 | ãã®é¢æ°ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ã®ã«ã¼ãã«åæåå¦çããå¼ã³åºãããããï¼
|
---|
2709 | ã«ã¼ãã«ã®åæåå¦çï¼NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ããã¹ã¯ããã¦ããï¼ããå¼
|
---|
2710 | ã³åºããããã«å®è£
|
---|
2711 | ããã°ããï¼
|
---|
2712 |
|
---|
2713 | intatrã¨ãã¦è¨å®ã§ããå²è¾¼ã¿å±æ§ã¯æ¬¡ã®éãï¼
|
---|
2714 |
|
---|
2715 | TA_ENAINT 0x01 å²è¾¼ã¿è¦æ±ç¦æ¢ãã©ã°ãã¯ãªã¢
|
---|
2716 | TA_EDGE 0x02 ã¨ãã¸ããªã¬
|
---|
2717 |
|
---|
2718 | ãã®ä»ã«ï¼ã¿ã¼ã²ããå®ç¾©ã§å²è¾¼ã¿å±æ§ã追å ãã¦ãããï¼ã¿ã¼ã²ããå®ç¾©ã§
|
---|
2719 | 追å ããããã«ï¼ä»¥ä¸ã®å±æ§åãäºç´ããã¦ããï¼
|
---|
2720 |
|
---|
2721 | TA_POSEDGE ãã¸ãã£ãã¨ãã¸ããªã¬
|
---|
2722 | TA_NEGEDGE ãã¬ãã£ãã¨ãã¸ããªã¬
|
---|
2723 | TA_BOTHEDGE 両ã¨ãã¸ããªã¬
|
---|
2724 | TA_LOWLEVEL ãã¼ã¬ãã«ããªã¬
|
---|
2725 | TA_HIGHLEVEL ãã¤ã¬ãã«ããªã¬
|
---|
2726 |
|
---|
2727 | ãããã®å±æ§åãã¿ã¼ã²ããå®ç¾©ã§è¿½å ããå ´åã«ã¯ï¼ãã®å±æ§å¤ã決å®ãï¼
|
---|
2728 | å®ç¾©ãtarget_kernel.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«å«
|
---|
2729 | ããï¼ã¾ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãã³ãã¬ã¼ããã¡ã¤ã«ããåç
|
---|
2730 | §ã§ããããã«ï¼
|
---|
2731 | target_def.csvï¼ã¾ãã¯ï¼åçã®å½¹å²ãæã¤ãã¡ã¤ã«ï¼ã«å«ãï¼ã³ã³ãã£ã®ã¥
|
---|
2732 | ã¬ã¼ã¿ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾åé¨ã§ã¨ã©ã¼ã¨ãªããªãããã«ï¼
|
---|
2733 | target.tfï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã§TARGET_INTATR
|
---|
2734 | ã«è¨å®ããï¼
|
---|
2735 |
|
---|
2736 | æå®ãããå²è¾¼ã¿çªå·ãæå¹ãªå¤ã§ãªãå ´åãï¼ãã®å²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ã
|
---|
2737 | ã¦è¨å®ã§ããªãå±æ§ãæå®ããå ´åï¼è¨å®ã§ããªãå²è¾¼ã¿åªå
|
---|
2738 | 度ãæå®ããå ´
|
---|
2739 | åã®åä½ã¯ä¿è¨¼ããå¿
|
---|
2740 | è¦ããªãï¼assertã§ã¨ã©ã¼ã¨ããã®ãæã¾ããï¼ï¼ãã®
|
---|
2741 | ãããªã±ã¼ã¹ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã§ã¨ã©ã¼ãæ¤åºãã¹ãã§ããï¼ã³ã³ãã£
|
---|
2742 | ã®ã¥ã¬ã¼ã¿ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾åé¨ã¯ï¼ãã¹2ã®ãã³ãã¬ã¼
|
---|
2743 | ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾åé¨ã§å®ç¾©ããINTNO_CFGINT_VALIDï¼
|
---|
2744 | TARGET_INTATRï¼INTPRI_CFGINT_VALIDãç¨ãã¦ã¨ã©ã¼ãæ¤åºãããï¼æ¨æºã®å²
|
---|
2745 | è¾¼ã¿å±æ§ï¼TA_ENAINTï¼TA_EDGEï¼ãè¨å®ã§ããªãå ´åãï¼è¨å®ã§ããªãå±æ§ã
|
---|
2746 | å²è¾¼ã¿åªå
|
---|
2747 | 度ãå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«ãã£ã¦ç°ãªãå ´åã«ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼
|
---|
2748 | ã¿ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾åé¨ã§æ¤åºããªããã°ãªããªãï¼
|
---|
2749 |
|
---|
2750 | 6.6.5 å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çã®å¤æ´
|
---|
2751 |
|
---|
2752 | (6-6-5-1) OMIT_INITIALIZE_INTERRUPTï¼ãªãã·ã§ã³ï¼
|
---|
2753 |
|
---|
2754 | å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãã¿ã¼ã²ããä¾åé¨ã§ç¨æãï¼ã¿ã¼ã²ããéä¾å
|
---|
2755 | é¨ã«å«ã¾ããæ¨æºã®å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãç¨ããªãå ´åã«ã¯ï¼ãã®ã·
|
---|
2756 | ã³ãã«ããã¯ãå®ç¾©ããï¼
|
---|
2757 |
|
---|
2758 | ãã®ã·ã³ãã«ããã¯ãå®ç¾©ããã¨ï¼INHINIBï¼INTINIBï¼initialize_interrupt
|
---|
2759 | ã®å®ç¾©ãï¼ã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾åé¨ããåãé¤ãããï¼ã¾ãï¼
|
---|
2760 | TNUM_DEF_INHNOï¼tnum_def_inhnoï¼inhinib_tableï¼TNUM_CFG_INTNOï¼
|
---|
2761 | tnum_cfg_intnoï¼intinib_tableã®å®ç¾©ã¨ï¼å²è¾¼ã¿ãã³ãã©æ¯ã®åºå
|
---|
2762 | ¥å£å¦çãç
|
---|
2763 | æããããã®è¨è¿°ï¼INTHDR_ENTRYãã¯ãã®ãªã¹ãï¼ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®
|
---|
2764 | ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾åé¨ã«ãã£ã¦kernel_cfg.cã«ç
|
---|
2765 | æãããªããªãï¼
|
---|
2766 |
|
---|
2767 | (6-6-5-2) void initialize_interrupt(void)ï¼ãªãã·ã§ã³ï¼
|
---|
2768 |
|
---|
2769 | OMIT_INITIALIZE_INTERRUPTããã¯ãå®ç¾©ããå ´åã«ã¯ï¼ãã®é¢æ°ãã¿ã¼ã²ãã
|
---|
2770 | ä¾åé¨ã§ç¨æããï¼OMIT_INITIALIZE_INTERRUPTããã¯ãå®ç¾©ãããã¨ã«ããå
|
---|
2771 | ãé¤ããããã®ä»ã®ãã¼ã¿åï¼å¤æ°ï¼ãã¯ãã¯ï¼ãã®é¢æ°ã§ä½¿ç¨ããå ´åã«ã®
|
---|
2772 | ã¿ç¨æããã°ããï¼
|
---|
2773 |
|
---|
2774 | (6-6-5-3) USE_INHINIB_TABLEï¼ãªãã·ã§ã³ï¼
|
---|
2775 |
|
---|
2776 | OMIT_INITIALIZE_INTERRUPTããã¯ãå®ç¾©ãããï¼å²è¾¼ã¿ãã³ãã©ã®åæåã«å¿
|
---|
2777 |
|
---|
2778 | è¦ãªæ
|
---|
2779 | å ±ãkernel_cfg.cã«çæãããå ´åã«ã¯ï¼ãã®ã·ã³ãã«ããã¯ãå®ç¾©ã
|
---|
2780 | ãï¼
|
---|
2781 |
|
---|
2782 | ãã®ã·ã³ãã«ããã¯ãå®ç¾©ããã¨ï¼INHINIBã®å®ç¾©ãï¼ã«ã¼ãã«ã®ã¿ã¼ã²ããé
|
---|
2783 | ä¾åé¨ããåãé¤ãããªãï¼ã¾ãï¼TNUM_DEF_INHNOï¼tnum_def_inhnoï¼
|
---|
2784 | inhinib_tableã®å®ç¾©ã¨ï¼å²è¾¼ã¿ãã³ãã©æ¯ã®åºå
|
---|
2785 | ¥å£å¦çãçæããããã®è¨è¿°
|
---|
2786 | ï¼INTHDR_ENTRYãã¯ãã®ãªã¹ãï¼ãï¼ã¿ã¼ã²ããéä¾åé¨ã«ãã£ã¦çæãããï¼
|
---|
2787 |
|
---|
2788 | (6-6-5-4) USE_INTINIB_TABLEï¼ãªãã·ã§ã³ï¼
|
---|
2789 |
|
---|
2790 | OMIT_INITIALIZE_INTERRUPTããã¯ãå®ç¾©ãããï¼å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®åæåã«
|
---|
2791 | å¿
|
---|
2792 | è¦ãªæ
|
---|
2793 | å ±ãkernel_cfg.cã«çæãããå ´åã«ã¯ï¼ãã®ã·ã³ãã«ããã¯ãå®ç¾©
|
---|
2794 | ããï¼
|
---|
2795 |
|
---|
2796 | ãã®ã·ã³ãã«ããã¯ãå®ç¾©ããã¨ï¼INTINIBã®å®ç¾©ãï¼ã«ã¼ãã«ã®ã¿ã¼ã²ããé
|
---|
2797 | ä¾åé¨ããåãé¤ãããªãï¼ã¾ãï¼TNUM_CFG_INTNOï¼tnum_cfg_intnoï¼
|
---|
2798 | intinib_tableã®å®ç¾©ãï¼ã¿ã¼ã²ããéä¾åé¨ã«ãã£ã¦çæãããï¼
|
---|
2799 |
|
---|
2800 | 6.6.6 ããã©ã«ãã®å²è¾¼ã¿ãã³ãã©
|
---|
2801 |
|
---|
2802 | (6-6-6-1) void default_int_handler(void)ï¼ãªãã·ã§ã³ï¼
|
---|
2803 |
|
---|
2804 | ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«ããå²è¾¼ã¿ãã³ãã©ã®ãã¼ãã«ãçæããå ´åãªã©ã«ã¯ï¼
|
---|
2805 | å²è¾¼ã¿ãã³ãã©ãç»é²ããªãã£ãå²è¾¼ã¿ãã³ãã©çªå·ã«å¯¾ãã¦ï¼ããã©ã«ãã®
|
---|
2806 | å²è¾¼ã¿ãã³ãã©ã¨ãã¦ï¼default_int_handlerãç»é²ããï¼
|
---|
2807 |
|
---|
2808 | default_int_handlerã¯ï¼æ¨æºã®ãã®ãã¿ã¼ã²ããä¾åé¨ã§ç¨æãããï¼ã¦ã¼ã¶
|
---|
2809 | ãç¨æãããã®ã§ç½®ãæããããããã«ï¼OMIT_DEFAULT_INT_HANDLERããã¯ã
|
---|
2810 | å®ç¾©ããå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§å®ç¾©ããªãããã«ããï¼ãªãï¼ã¦ã¼ã¶
|
---|
2811 | ãç¨æããå ´åã®å称ã¯ï¼_kernel_default_int_handlerã¨ãªãï¼
|
---|
2812 |
|
---|
2813 | 6.6.7 ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿
|
---|
2814 |
|
---|
2815 | ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãã³ãã©ã¯ï¼ã«ã¼ãã«å
|
---|
2816 | ã®å²è¾¼ã¿åºå
|
---|
2817 | ¥å£å¦çãçµç±ã
|
---|
2818 | ãã«å®è¡ããã®ãåºæ¬ã§ããï¼
|
---|
2819 |
|
---|
2820 | ãã ãï¼ãã¹ã¦ã®å²è¾¼ã¿ã§åãã¢ãã¬ã¹ã«åå²ããããã»ããµã§ã¯ï¼ã«ã¼ãã«
|
---|
2821 | å
|
---|
2822 | ã®å²è¾¼ã¿åºå
|
---|
2823 | ¥å£å¦çãå
|
---|
2824 | ¨ãçµç±ããã«ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãã³ãã©ãå®
|
---|
2825 | è¡ãããã¨ãã§ããªãããï¼å²è¾¼ã¿åºå
|
---|
2826 | ¥å£å¦çã®ãªãã¹ãæ©ãã¿ã¤ãã³ã°ã§ï¼
|
---|
2827 | ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã§ããããå¤å¥ãï¼å¦çå
|
---|
2828 | 容ãåããå¿
|
---|
2829 | è¦ãããï¼å
|
---|
2830 | ·
|
---|
2831 | ä½çã«ã¯ï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã®åºå
|
---|
2832 | ¥å£å¦çã§ã¯ï¼ãªã¼ãã©ã³ãã³ãã©ã®
|
---|
2833 | åæ¢ã¨åä½éå§ãè¡ã£ã¦ã¯ãªããªãï¼ã¾ãï¼ã¿ã¹ã¯åæããè¡ãå¿
|
---|
2834 | è¦ããªãï¼
|
---|
2835 | ããã«ï¼NMIã®åºå
|
---|
2836 | ¥å£å¦çã§ã¯ï¼ãã¬ã¼ã¹ãã°åå¾å¦çï¼log_inh_enterããã³
|
---|
2837 | log_inh_leaveï¼ãå¼ã³åºãã¦ã¯ãªããªãï¼
|
---|
2838 |
|
---|
2839 | ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãã³ãã©ãå®è¡ããéã«ï¼ã«ã¼ãã«å
|
---|
2840 | ã®å²è¾¼ã¿åºå
|
---|
2841 | ¥å£
|
---|
2842 | å¦çã®ä¸é¨åãçµç±ããå ´åã«ã¯ï¼CPUä¾å¤ãèµ·ããå¯è½æ§ã極åæ¸ããã¨ã¨ã
|
---|
2843 | ã«ï¼CPUä¾å¤ãèµ·ããå¯è½æ§ãããå ´åã«ã¯ï¼ãã®å¯è½æ§ãã¿ã¼ã²ããä¾åé¨ã®
|
---|
2844 | ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã«è¨è¼ããªããã°ãªããªãï¼
|
---|
2845 |
|
---|
2846 | 次ã«ï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã®è¨å®æ¹æ³ã«é¢ãã¦ï¼ãTOPPERSæ°ä¸ä»£ã«ã¼ãã«
|
---|
2847 | çµ±åä»æ§æ¸ãã®ã2.7.8 ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã®è¨å®æ¹æ³ãã®ç¯ã®3ã¤ã®æ¹æ³
|
---|
2848 | ã®ããããæ¡ç¨ãããã決å®ããï¼
|
---|
2849 |
|
---|
2850 | (a-1)ã¾ãã¯(a-2)ãæ¡ç¨ãï¼ã«ã¼ãã«ç®¡çå¤ã¨ããå²è¾¼ã¿ã«å¯¾ãã¦ï¼ã«ã¼ãã«
|
---|
2851 | ã®APIã«ããå²è¾¼ã¿ãã³ãã©ã®ç»é²ã¨å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨å®ããµãã¼ã
|
---|
2852 | ããªãå ´åã«ã¯ï¼ããã«ä»£ããæ¹æ³ãã¿ã¼ã²ããä¾åé¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢
|
---|
2853 | ã«ã«è¨è¿°ããï¼
|
---|
2854 |
|
---|
2855 | (a-1)ã¾ãã¯(a-2)ãæ¡ç¨ãã¦ã«ã¼ãã«ã®APIã«ããå²è¾¼ã¿ãã³ãã©ã®ç»é²ãå²è¾¼
|
---|
2856 | ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨å®ããµãã¼ãããå ´åãï¼(b)ãæ¡ç¨ããå ´åã«ã¯ï¼ã¿ã¼
|
---|
2857 | ã²ããä¾åé¨ã«ããã¦ãããå®ç¾ããå¿
|
---|
2858 | è¦ãããï¼
|
---|
2859 |
|
---|
2860 | ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã«å¯¾ãã¦ï¼DEF_INHã«ããå²è¾¼ã¿ãã³ãã©ã®ç»é²ããµãã¼
|
---|
2861 | ãããã«ã¯ï¼æ¬¡ã®è¨å®ãå¿
|
---|
2862 | è¦ã«ãªãï¼
|
---|
2863 |
|
---|
2864 | ã»TARGET_INHATRã«ï¼TA_NONKERNELãè¨å®ããï¼
|
---|
2865 |
|
---|
2866 | ã»(a-1)ã¾ãã¯(a-2)ãæ¡ç¨ããå ´åã«ã¯ï¼INHNO_DEFINH_VALIDã«ï¼ã«ã¼ãã«ç®¡
|
---|
2867 | ãçå¤ã¨ããå²è¾¼ã¿ã«å¯¾å¿ããå²è¾¼ã¿ãã³ãã©çªå·ãå«ããï¼ã¾ãï¼
|
---|
2868 | ãVALID_INHNOãï¼ã«ã¼ãã«ç®¡çå¤ã¨ããå²è¾¼ã¿ãã³ãã©çªå·ãæå¹ãªå¤ã¨å¤å®
|
---|
2869 | ãããããã«ããï¼
|
---|
2870 |
|
---|
2871 | ã»(a-1)ã¾ãã¯(a-2)ãæ¡ç¨ããå ´åã«ã¯ï¼INHNO_FIX_KERNELã«ã«ã¼ãã«ç®¡çã¨
|
---|
2872 | ãããå²è¾¼ã¿ãã³ãã©çªå·ã®ãªã¹ããï¼INHNO_FIX_NONKERNELã«ã«ã¼ãã«ç®¡çå¤
|
---|
2873 | ãã¨ããå²è¾¼ã¿ãã³ãã©çªå·ã®ãªã¹ãè¨å®ããï¼
|
---|
2874 |
|
---|
2875 | ã»DEF_INHãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã«å¯¾å¿ã§ããããã«ããï¼æ¨æºã®å²è¾¼ã¿ç®¡
|
---|
2876 | ãçæ©è½ã®åæåå¦çãç¨ããå ´åã«ã¯ï¼define_inhãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼
|
---|
2877 | ãã¿ã«å¯¾å¿ãããï¼
|
---|
2878 |
|
---|
2879 | ã»å¿
|
---|
2880 | è¦ãªå ´åã«ã¯ï¼TA_NONKERNELå±æ§ãè¨å®ãããå²è¾¼ã¿ãã³ãã©ãã«ã¼ãã«
|
---|
2881 | ã管çå¤ã¨æ±ãããã«ï¼ã«ã¼ãã«å
|
---|
2882 | ã®å²è¾¼ã¿åºå
|
---|
2883 | ¥å£å¦çãä¿®æ£ããï¼æ¨æºã®å²
|
---|
2884 | ãè¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãç¨ããå ´åï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã«å¯¾ãã¦
|
---|
2885 | ãã¯ï¼ã«ã¼ãã«å
|
---|
2886 | ã®å²è¾¼ã¿åºå
|
---|
2887 | ¥å£å¦çãçæããï¼ã¢ããªã±ã¼ã·ã§ã³ãç»é²ã
|
---|
2888 | ããå²è¾¼ã¿ãã³ãã©ãç´æ¥å¼ã³åºãããã«ï¼ã¿ã¼ã²ããéä¾åé¨ã«ããè¨å®ã
|
---|
2889 | ãããããï¼ã¿ã¼ã²ããä¾åé¨ã§ã¯å¯¾å¿ããå¿
|
---|
2890 | è¦ããªãï¼
|
---|
2891 |
|
---|
2892 | ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã«å¯¾ãã¦ï¼CFG_INTã«ããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨
|
---|
2893 | å®ããµãã¼ãããã«ã¯ï¼æ¬¡ã®è¨å®ãå¿
|
---|
2894 | è¦ã«ãªãï¼
|
---|
2895 |
|
---|
2896 | ã»(a-1)ã¾ãã¯(a-2)ãæ¡ç¨ããå ´åã«ã¯ï¼INTNO_CFGINT_VALIDã«ï¼ã«ã¼ãã«ç®¡
|
---|
2897 | ãçå¤ã¨ããå²è¾¼ã¿ã«å¯¾å¿ããå²è¾¼ã¿çªå·ãå«ããï¼ã¾ãï¼VALID_INTNOãï¼ã«ã¼
|
---|
2898 | ããã«ç®¡çå¤ã¨ããå²è¾¼ã¿çªå·ãæå¹ãªå¤ã¨å¤å®ããããã«ããï¼å¿
|
---|
2899 | è¦ã§ãã
|
---|
2900 | ãã°ï¼VALID_INTNO_DISINTã¨VALID_INTNO_CREISRã®å®ç¾©ã追å ã¾ãã¯å¤æ´ããï¼
|
---|
2901 |
|
---|
2902 | ã»(a-1)ã¾ãã¯(a-2)ãæ¡ç¨ããå ´åã«ã¯ï¼INTNO_FIX_KERNELã«ã«ã¼ãã«ç®¡çã¨
|
---|
2903 | ãããå²è¾¼ã¿çªå·ã®ãªã¹ããï¼INTNO_FIX_NONKERNELã«ã«ã¼ãã«ç®¡çå¤ã¨ããå²
|
---|
2904 | ãè¾¼ã¿çªå·ã®ãªã¹ãè¨å®ããï¼
|
---|
2905 |
|
---|
2906 | ã»INTPRI_CFGINT_VALIDã«ï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã¨ãªãåªå
|
---|
2907 | 度ãå«ããï¼
|
---|
2908 |
|
---|
2909 | ã»CFG_INTãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã«å¯¾å¿ã§ããããã«ããï¼æ¨æºã®å²è¾¼ã¿ç®¡
|
---|
2910 | ãçæ©è½ã®åæåå¦çãç¨ããå ´åã«ã¯ï¼config_intãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼
|
---|
2911 | ãã¿ã«å¯¾å¿ãããï¼
|
---|
2912 |
|
---|
2913 | chg_ipmã«ããï¼ï¼NMI以å¤ã®ï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ããã¹ã¯ã§ããããã«
|
---|
2914 | ããå ´åã«ã¯ï¼æ¬¡ã®è¨å®ãå¿
|
---|
2915 | è¦ã«ãªãï¼
|
---|
2916 |
|
---|
2917 | ã»VALID_INTPRI_CHGIPMãï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã¨ãªãåªå
|
---|
2918 | 度ãæå¹ãªå¤ã¨
|
---|
2919 | ãå¤å®ããããã«ããï¼
|
---|
2920 |
|
---|
2921 | ã»t_set_ipmãï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã¨ãªãåªå
|
---|
2922 | 度ãæ±ããããã«ããï¼
|
---|
2923 |
|
---|
2924 | 6.6.8 å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®çæ
|
---|
2925 |
|
---|
2926 | (6-6-8-1) bool_t VALID_INTNO_CREISR(INTNO intno)ï¼ãªãã·ã§ã³ï¼
|
---|
2927 |
|
---|
2928 | intnoãï¼acre_isrã«å¯¾ããå²è¾¼ã¿çªå·ã¨ãã¦æå¹ãªå¤ã§ããå ´åã«trueï¼ãã
|
---|
2929 | ã§ãªãå ´åã«falseãè¿ããã¯ãï¼åççææ©è½æ¡å¼µããã±ã¼ã¸ã使ç¨ããªãå ´
|
---|
2930 | åã«ã¯ï¼å®ç¾©ããå¿
|
---|
2931 | è¦ããªãï¼
|
---|
2932 |
|
---|
2933 | ãã®ãã¯ããå®ç¾©ããªãå ´åï¼VALID_INTNOã使ãããï¼VALID_INTNOã§æå¹ã¨
|
---|
2934 | å¤æãããå²è¾¼ã¿çªå·ãï¼acre_isrã«å¯¾ãã¦æå¹ãªå²è¾¼ã¿çªå·ã¨ä¸è´ãã¦ãã
|
---|
2935 | å ´åï¼ãã®ãã¯ããç¨æããå¿
|
---|
2936 | è¦ã¯ãªãï¼
|
---|
2937 |
|
---|
2938 | 6.7 CPUä¾å¤ãã³ãã©ã¨CPUä¾å¤çºçæã®ã·ã¹ãã ç¶æ
|
---|
2939 | ã®åç
|
---|
2940 | §
|
---|
2941 |
|
---|
2942 | 6.7.1 CPUä¾å¤ãã³ãã©ã®åºå
|
---|
2943 | ¥å£å¦ç
|
---|
2944 |
|
---|
2945 | CPUä¾å¤ãã³ãã©ã®åºå
|
---|
2946 | ¥å£å¦çã¯ï¼ä»¥ä¸ã®æ¬ä¼¼ã³ã¼ãã¨ç価ã«ãªãããã«å®è£
|
---|
2947 | ã
|
---|
2948 | ãï¼å¦çå
|
---|
2949 | 容ãç価ã§ããã°ï¼å¦çé åºãå¤æ´ãã¦ããã¾ããªãï¼
|
---|
2950 |
|
---|
2951 | ----------------------------------------
|
---|
2952 | void
|
---|
2953 | <CPUä¾å¤ã®åºå
|
---|
2954 | ¥å£å¦ç>(void)
|
---|
2955 | {
|
---|
2956 | ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ã«ä¿åãã
|
---|
2957 | CPUä¾å¤ãçºçããç¶æ³ãå¤æããããã®è¿½å æ
|
---|
2958 | å ±ãã¹ã¿ãã¯ã«ä¿åãã ⦠(*j)
|
---|
2959 | ãã®æç¹ã§ã®ã¹ã¿ãã¯ãã¤ã³ã¿Â±nãï¼CPUä¾å¤ã®æ
|
---|
2960 | å ±ãè¨æ¶ãã¦ããé åã®
|
---|
2961 | å
|
---|
2962 | é çªå°ã¨ããï¼å¿
|
---|
2963 | è¦ãªãä¿åããï¼
|
---|
2964 | if (ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤) {
|
---|
2965 | if (CPUä¾å¤ãã¿ã¹ã¯ã³ã³ããã¹ãã§çºç) {
|
---|
2966 | ã¹ã¿ãã¯ãéã¿ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿ãã¯ã«åãæãï¼
|
---|
2967 | éã¿ã¹ã¯ã³ã³ããã¹ãã«åãæãã ⦠(*k)
|
---|
2968 | }
|
---|
2969 | ã·ã¹ãã ç¶æ
|
---|
2970 | ï¼ã³ã³ããã¹ãã¯é¤ãï¼ãï¼CPUä¾å¤çºçæã®ç¶æ
|
---|
2971 | ã«ãã
|
---|
2972 | CPUä¾å¤ãã³ãã©ãï¼CPUä¾å¤ã®æ
|
---|
2973 | å ±ãè¨æ¶ãã¦ããé åã®å
|
---|
2974 | é çªå°ã
|
---|
2975 | ãã©ã¡ã¼ã¿ï¼p_excinfï¼ã¨ãã¦å¼ã³åºã
|
---|
2976 | if (CPUä¾å¤ãã¿ã¹ã¯ã³ã³ããã¹ãã§çºç) {
|
---|
2977 | ã¹ã¿ãã¯ãã¿ã¹ã¯ç¨ã®ã¹ã¿ãã¯ã«æ»ãï¼
|
---|
2978 | ã¿ã¹ã¯ã³ã³ããã¹ãã«åãæãã ⦠(*k)
|
---|
2979 | }
|
---|
2980 | CPUä¾å¤å¦çããã®ãªã¿ã¼ã³å¾ã«ï¼CPUä¾å¤çºçæã®ã·ã¹ãã ç¶æ
|
---|
2981 | ã«
|
---|
2982 | æ»ãããã«æºåãã
|
---|
2983 | }
|
---|
2984 | else {
|
---|
2985 | if (CPUä¾å¤ãã¿ã¹ã¯ã³ã³ããã¹ãã§çºç) {
|
---|
2986 | å°ãªãã¨ãã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ãç¦æ¢ããç¶æ
|
---|
2987 | ã«ãã
|
---|
2988 | #ifdef TOPPERS_SUPPORT_OVRHDR
|
---|
2989 | ovrtimer_stop(); /* ãªã¼ãã©ã³ã¿ã¤ãã®åæ¢ */
|
---|
2990 | #endif /* TOPPERS_SUPPORT_OVRHDR */
|
---|
2991 | ã¹ã¿ãã¯ãéã¿ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿ãã¯ã«åãæãï¼
|
---|
2992 | éã¿ã¹ã¯ã³ã³ããã¹ãã«åãæãã
|
---|
2993 | }
|
---|
2994 | å²è¾¼ã¿åªå
|
---|
2995 | 度ãã¹ã¯ãï¼CPUä¾å¤çºçæã®å¤ã«è¨å®ãã ⦠(*l)
|
---|
2996 | CPUããã¯è§£é¤ç¶æ
|
---|
2997 | ã«ããï¼CPUä¾å¤çºçæã®å²è¾¼ã¿åªå
|
---|
2998 | 度ãã¹ã¯ããã
|
---|
2999 | åªå
|
---|
3000 | 度ã®é«ãå²è¾¼ã¿ãåãä»ããããã«ããï¼
|
---|
3001 |
|
---|
3002 | #ifdef LOG_EXC_ENTER
|
---|
3003 | log_exc_enter(CPUä¾å¤ãã³ãã©çªå·);
|
---|
3004 | #endif /* LOG_EXC_ENTER */
|
---|
3005 | CPUä¾å¤ãã³ãã©ãï¼CPUä¾å¤ã®æ
|
---|
3006 | å ±ãè¨æ¶ãã¦ããé åã®å
|
---|
3007 | é çªå°ã
|
---|
3008 | ãã©ã¡ã¼ã¿ï¼p_excinfï¼ã¨ãã¦å¼ã³åºã
|
---|
3009 | #ifdef LOG_EXC_LEAVE
|
---|
3010 | log_exc_leave(CPUä¾å¤ãã³ãã©çªå·);
|
---|
3011 | #endif /* LOG_EXC_LEAVE */
|
---|
3012 |
|
---|
3013 | å°ãªãã¨ãã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ãç¦æ¢ããç¶æ
|
---|
3014 | ã«ãã ⦠(*m)
|
---|
3015 | å²è¾¼ã¿åªå
|
---|
3016 | 度ãã¹ã¯ãï¼CPUä¾å¤çºçæã®å¤ã«è¨å®ãã ⦠(*n)
|
---|
3017 |
|
---|
3018 | if (CPUä¾å¤ãã¿ã¹ã¯ã³ã³ããã¹ãã§çºç) {
|
---|
3019 | ã¹ã¿ãã¯ãã¿ã¹ã¯ç¨ã®ã¹ã¿ãã¯ã«æ»ãï¼ã¿ã¹ã¯ã³ã³ããã¹ãã«åãæãã
|
---|
3020 | ⦠(*g)
|
---|
3021 | if (p_runtsk != p_schedtsk) {
|
---|
3022 | CPUããã¯ç¶æ
|
---|
3023 | ã«ãã ⦠(*h)
|
---|
3024 | å²è¾¼ã¿åªå
|
---|
3025 | 度ãã¹ã¯ã¯ï¼å
|
---|
3026 | ¨è§£é¤ç¶æ
|
---|
3027 | ï¼TIPM_ENAALLï¼ã«ãªã£ã¦
|
---|
3028 | ããªããã°ãªããªã ⦠(*i)
|
---|
3029 | if (p_runtsk != NULL) {
|
---|
3030 | ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ã«ä¿åãã
|
---|
3031 | ã¹ã¿ãã¯ãã¤ã³ã¿ãèªã¿ã¹ã¯ï¼p_runtskï¼ã®TCBã«ä¿åãã
|
---|
3032 | ret_exc_rãï¼å®è¡åéçªå°ã¨ãã¦èªã¿ã¹ã¯ã®TCBã«ä¿åãã
|
---|
3033 | ⦠(*a)
|
---|
3034 | dispatcherã«åå²ãã
|
---|
3035 | }
|
---|
3036 | else {
|
---|
3037 | dispatcher_0ã«åå²ãã
|
---|
3038 | }
|
---|
3039 |
|
---|
3040 | ret_exc_r:
|
---|
3041 | ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ãã復帰ãã
|
---|
3042 | #ifdef TOPPERS_SUPPORT_OVRHDR
|
---|
3043 | ovrtimer_start(); /* ãªã¼ãã©ã³ã¿ã¤ãã®åä½éå§ */
|
---|
3044 | #endif /* TOPPERS_SUPPORT_OVRHDR */
|
---|
3045 | }
|
---|
3046 | #ifdef TOPPERS_SUPPORT_OVRHDR
|
---|
3047 | else {
|
---|
3048 | if (p_runtsk != NULL) {
|
---|
3049 | ovrtimer_start(); /* ãªã¼ãã©ã³ã¿ã¤ãã®åä½éå§ */
|
---|
3050 | }
|
---|
3051 | }
|
---|
3052 | #endif /* TOPPERS_SUPPORT_OVRHDR */
|
---|
3053 | }
|
---|
3054 | CPUä¾å¤å¦çããã®ãªã¿ã¼ã³å¾ã«ï¼CPUããã¯è§£é¤ç¶æ
|
---|
3055 | ã«æ»ãããã«æºåãã
|
---|
3056 | }
|
---|
3057 | CPUä¾å¤ãçºçããç¶æ³ãå¤æããããã®è¿½å æ
|
---|
3058 | å ±ãã¹ã¿ãã¯ä¸ããæ¨ã¦ã
|
---|
3059 | ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ãã復帰ãã
|
---|
3060 | CPUä¾å¤å¦çããã®ãªã¿ã¼ã³
|
---|
3061 | }
|
---|
3062 | ----------------------------------------
|
---|
3063 |
|
---|
3064 | CPUä¾å¤ãã³ãã©ã¯ï¼éã³ã³ããã¹ãã«åãæãããã¨ãé¤ãã¦ã¯ï¼CPUä¾å¤çº
|
---|
3065 | çæã¨åãã·ã¹ãã ç¶æ
|
---|
3066 | ã§å¼ã³åºããªããã°ãªããªãï¼ä¾ãã°ï¼CPUä¾å¤ãCPU
|
---|
3067 | ããã¯ç¶æ
|
---|
3068 | ã§çºçããå ´åã«ã¯CPUããã¯ç¶æ
|
---|
3069 | ï¼CPUããã¯è§£é¤ç¶æ
|
---|
3070 | ã§çºçãã
|
---|
3071 | å ´åã«ã¯CPUããã¯è§£é¤ç¶æ
|
---|
3072 | ã§ï¼CPUä¾å¤ãã³ãã©ãå¼ã³åºããªããã°ãªããªãï¼
|
---|
3073 | CPUããã¯ç¶æ
|
---|
3074 | ã§çºçããCPUä¾å¤ã¯ï¼ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ã¨ãªãããï¼ã«ã¼
|
---|
3075 | ãã«ç®¡çã®CPUä¾å¤ãã³ãã©ã«ã¤ãã¦ã¯ï¼CPUããã¯è§£é¤ç¶æ
|
---|
3076 | ã§å¼ã³åºããã¨ã«
|
---|
3077 | ãªãï¼
|
---|
3078 |
|
---|
3079 | (*j)ã§ã¯ï¼CPUä¾å¤ãã³ãã©ã®ä¸ï¼ããã³ï¼ããããå¼ã³åºãããxsns_dpnï¼ã§
|
---|
3080 | ã¯ï¼CPUä¾å¤ãçºçããç¶æ³ãå¤æããããã«å¿
|
---|
3081 | è¦ã¨ãªã追å æ
|
---|
3082 | å ±ãã¹ã¿ãã¯ã«
|
---|
3083 | ä¿åããï¼è¿½å æ
|
---|
3084 | å ±ãå¿
|
---|
3085 | è¦ãªãå ´åã¯ï¼(*j)ã®å¦çã¯å¿
|
---|
3086 | è¦ãªãï¼
|
---|
3087 |
|
---|
3088 | ããã»ããµã«ãã£ã¦ã¯ï¼ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ãæ£ç¢ºã«å¤å®ããã®ãé£ãã
|
---|
3089 | å ´åãããï¼ãã®ãããªå ´åã«ã¯ï¼å²è¾¼ã¿åªå
|
---|
3090 | 度ãã¹ã¯ãå
|
---|
3091 | ¨è§£é¤ã§ãªãç¶æ
|
---|
3092 | ã§
|
---|
3093 | çºçããCPUä¾å¤ãï¼ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ã¨æ±ã£ã¦ãããï¼ããã¯ï¼å²è¾¼
|
---|
3094 | ã¿åªå
|
---|
3095 | 度ãã¹ã¯ãå
|
---|
3096 | ¨è§£é¤ã§ãªãå ´åã«ã¯xsns_dpnãtrueãè¿ãããï¼ã«ã¼ãã«
|
---|
3097 | æ©è½ãç¨ãããªã«ããªãã§ããªãããã§ããï¼
|
---|
3098 |
|
---|
3099 | å
|
---|
3100 | ·ä½çã«ã¯ï¼å
|
---|
3101 | ¨å²è¾¼ã¿ããã¯ï¼ã¾ãã¯CPUããã¯ï¼ãå°ãããªã¼ããããã§å®ç¾
|
---|
3102 | ãããã¨ããã¨ï¼CPUä¾å¤ãã³ãã©ã®ä¸ã§ï¼å
|
---|
3103 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
3104 | ï¼ã¾ãã¯CPUãã
|
---|
3105 | ã¯ç¶æ
|
---|
3106 | ï¼ã¨å²è¾¼ã¿åªå
|
---|
3107 | 度ãã¹ã¯ãé«ãã¬ãã«ã«è¨å®ããç¶æ
|
---|
3108 | ãåºå¥ã§ããªãå ´
|
---|
3109 | åãããï¼ã¾ãï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿å¦çä¸ãã«ã¼ãã«å®è¡ä¸ã§ãããã¨
|
---|
3110 | ãæ£ç¢ºã«å¤æãããã¨ãé£ããå ´åãããï¼
|
---|
3111 |
|
---|
3112 | ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ã®å ´åã«ï¼(*k)ã«ããã¦ï¼ã¹ã¿ãã¯ãéã¿ã¹ã¯ã³ã³ã
|
---|
3113 | ãã¹ãç¨ã®ã¹ã¿ãã¯ã«åãæãï¼éã¿ã¹ã¯ã³ã³ããã¹ãã«åãæãã¦ãããï¼
|
---|
3114 | ãã®åæãã¯ã¿ã¼ã²ããå®ç¾©ã§çãã¦ãè¯ãï¼ããã¯ï¼ã«ã¼ãã«ç®¡çå¤ã®CPUä¾
|
---|
3115 | å¤ã¯ï¼ã«ã¼ãã«å
|
---|
3116 | ã®ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ä¸ã§çºçããå¯è½æ§ãããããï¼
|
---|
3117 | å®å
|
---|
3118 | ¨ã«åãæããããã¨ã¯éããªãããã§ããï¼ã¾ãï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼
|
---|
3119 | ã¿ãã³ãã©ãå¼ã¶æã®ã³ã³ããã¹ããã¹ã¿ãã¯ã¯ã¿ã¼ã²ããä¾åãªã®ã§ï¼ã«ã¼
|
---|
3120 | ãã«ç®¡çå¤ã®CPUä¾å¤ãã³ãã©ãããã¨åæ§ã«æ±ã£ã¦è¯ãã¨èããããããã§ã
|
---|
3121 | ãï¼
|
---|
3122 |
|
---|
3123 | ä¸ã®æ¬ä¼¼ã³ã¼ãã§ã¯ï¼ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ã«å¯¾ãã¦ï¼ãã¬ã¼ã¹ãã°åå¾å¦
|
---|
3124 | çï¼log_exc_enterããã³log_exc_leaveï¼ãå¼ã³åºãã¦ããªããï¼å
|
---|
3125 | ¨å²è¾¼ã¿ãã
|
---|
3126 | ã¯ç¶æ
|
---|
3127 | ãNMIã®å¦çä¸ã«CPUä¾å¤ãçºçããå ´åãé¤å¤ããã°ï¼å¼ã³åºãã¦ãã
|
---|
3128 | ã¾ããªãï¼å
|
---|
3129 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
3130 | ãNMIã®å¦çä¸ã«çºçããCPUä¾å¤ã®å ´åã«ã¯ï¼
|
---|
3131 | ãã¬ã¼ã¹ãã°åå¾å¦çãå¼ã³åºãã¦ã¯ãªããªãï¼
|
---|
3132 |
|
---|
3133 | (*l)ã®å¦çã¯ï¼CPUä¾å¤ã®çºçï¼åä»ã«ããï¼å²è¾¼ã¿åªå
|
---|
3134 | 度ãã¹ã¯ãå¤åããªã
|
---|
3135 | ããã»ããµã§ã¯çãã¦ãããï¼ããã«å¯¾ãã¦(*n)ã®å¦çã¯ï¼CPUä¾å¤ãã³ãã©ä¸
|
---|
3136 | ã§å²è¾¼ã¿åªå
|
---|
3137 | 度ãã¹ã¯ãå¤æ´ãããå ´åã«å¯¾å¿ããããã®ãã®ãªã®ã§ï¼çãã
|
---|
3138 | ã¨ã¯ã§ããªãï¼
|
---|
3139 |
|
---|
3140 | (*m)ã®å¦çã¯ï¼ããã»ããµã«ãã£ã¦ã¯ï¼CPUä¾å¤ãã¿ã¹ã¯ã³ã³ããã¹ãã§çºçã
|
---|
3141 | ãæã®ã¿ã«è¡ã£ã¦ãããå ´åãããï¼
|
---|
3142 |
|
---|
3143 | CPUä¾å¤ãã³ãã©ãå®è¡ããéã«çµç±ããé¨åã§ã¯ï¼CPUä¾å¤ãèµ·ããå¯è½æ§ã
|
---|
3144 | 極åæ¸ããã¨ã¨ãã«ï¼CPUä¾å¤ãèµ·ããå¯è½æ§ãããå ´åï¼ä¾ãã°ï¼ã¹ã¯ã©ãã
|
---|
3145 | ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ã«ä¿åããæã«ï¼ãã¹ã¨ã©ã¼ãªã©ã®CPUä¾å¤ãçºçããå¯è½
|
---|
3146 | æ§ãèããããï¼ã«ã¯ï¼ãã®å¯è½æ§ãã¿ã¼ã²ããä¾åé¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢
|
---|
3147 | ã«ã«è¨è¼ããªããã°ãªããªãï¼
|
---|
3148 |
|
---|
3149 | CPUä¾å¤ãã³ãã©ã®åºå£å¦çã¯ï¼å²è¾¼ã¿ãã³ãã©ã®åºå£å¦çã¨å
|
---|
3150 | ±éé¨åãå¤ãã
|
---|
3151 | ãï¼ããã»ããµã«ãã£ã¦ã¯ï¼å
|
---|
3152 | ±éã®ã«ã¼ãã³ãç¨ãããã¨ãã§ããå¯è½æ§ãã
|
---|
3153 | ãï¼
|
---|
3154 |
|
---|
3155 | CPUä¾å¤ã®åºå
|
---|
3156 | ¥å£å¦çãã¢ã»ã³ããªè¨èªã§è¨è¿°ããå ´åã«ã¯ï¼ãã¬ã¼ã¹ãã°åå¾
|
---|
3157 | å¦çã¯ï¼ã6.2 ãã¬ã¼ã¹ãã°æ©è½ã¸ã®å¯¾å¿ãã®ç¯ã§è¨è¿°ããæ¹æ³ã§ã³ã¼ãã£ã³
|
---|
3158 | ã°ãããã¨ï¼
|
---|
3159 |
|
---|
3160 | ãTOPPERS/ASP1ã«ã¼ãã«ã¨ã®é¢ä¿ã
|
---|
3161 |
|
---|
3162 | æ¬ä¼¼ã³ã¼ãã®æ§æãè¦ç´ããï¼æ¬ä¼¼ã³ã¼ãã§æ³å®ãã¦ããããã»ããµã®ã¿ã¤ã
|
---|
3163 | ãå¤ããï¼ï¼
|
---|
3164 |
|
---|
3165 | reqflgãå»æ¢ããï¼ã¾ãï¼ã¿ã¹ã¯åæãã®æ¡ä»¶å¤å®ã§ï¼dspflgããã§ãã¯ãã
|
---|
3166 | å¿
|
---|
3167 | è¦ããªããªã£ãï¼
|
---|
3168 |
|
---|
3169 | ã¢ã¤ãã«å¦çã®è¨è¨ãå¤æ´ããããï¼CPUä¾å¤ãã³ãã©ã®åºå£å¦çã«ãããã¿ã¹
|
---|
3170 | ã¯åæãã«ããã¦ï¼p_runtskãNULLã¨ãªã£ã¦ããç¶æ³ãèããå¿
|
---|
3171 | è¦ãçããï¼
|
---|
3172 |
|
---|
3173 | 6.7.2 CPUä¾å¤ãã³ãã©ã®åºå
|
---|
3174 | ¥å£å¦çã®çæ
|
---|
3175 |
|
---|
3176 | CPUä¾å¤ãã¯ãã«ããã¼ãã¦ã§ã¢ã§å®ç¾ãã¦ããå ´åãªã©ï¼CPUä¾å¤ãã³ãã©æ¯
|
---|
3177 | ã«åºå
|
---|
3178 | ¥å£å¦çãç¨æããæ¹ãå¹çãè¯ãã¿ã¼ã²ããã®ããã«ï¼CPUä¾å¤ãã³ãã©
|
---|
3179 | æ¯ã«åºå
|
---|
3180 | ¥å£å¦çãçæããæ©æ§ãç¨æãã¦ããï¼
|
---|
3181 |
|
---|
3182 | 以ä¸ã®ãã¯ãã¯ï¼æ¨æºã®CPUä¾å¤ç®¡çæ©è½ã®åæåå¦çãç¨ããå ´åã®ã¿ï¼ã¿ã¼
|
---|
3183 | ã²ããéä¾åé¨ã§ä½¿ãããï¼CPUä¾å¤ç®¡çæ©è½ã®åæåå¦çãã¿ã¼ã²ããä¾åé¨
|
---|
3184 | ã§ç¨æãï¼ãã®ä¸ã§ãããã®ãã¯ãã使ããªãå ´åã«ã¯ï¼ãããã®ãã¯ããç¨
|
---|
3185 | æããå¿
|
---|
3186 | è¦ã¯ãªãï¼
|
---|
3187 |
|
---|
3188 | (6-7-2-1) EXC_ENTRY(excno, exchdr)
|
---|
3189 |
|
---|
3190 | CPUä¾å¤ãã³ãã©çªå·ãexcnoï¼CPUä¾å¤ãã³ãã©ã®é¢æ°åãexchdrã§ããCPUä¾
|
---|
3191 | å¤ãã³ãã©ã®åºå
|
---|
3192 | ¥å£å¦çã®ã©ãã«ãä½ããã¯ãï¼EXCHDR_ENTRYãç¨ãã¦CPUä¾å¤
|
---|
3193 | ãã³ãã©æ¯ã«åºå
|
---|
3194 | ¥å£å¦çãçæããå ´åã«ã¯ï¼æ¬¡ã®ããã«å®ç¾©ããï¼
|
---|
3195 |
|
---|
3196 | #define EXC_ENTRY(excno, exchdr) _kernel_##exchdr##_##excno
|
---|
3197 |
|
---|
3198 | CPUä¾å¤ãã³ãã©æ¯ã«åºå
|
---|
3199 | ¥å£å¦çãä½ãå¿
|
---|
3200 | è¦ããªãå ´åã«ã¯ï¼æ¬¡ã®ããã«å®ç¾©ã
|
---|
3201 | ã¦ï¼CPUä¾å¤ãã³ãã©ã®é¢æ°åããã®ã¾ã¾è¿ãï¼
|
---|
3202 |
|
---|
3203 | #define EXC_ENTRY(excno, exchdr) exchdr
|
---|
3204 |
|
---|
3205 | (6-7-2-2) EXCHDR_ENTRY(excno, excno_num, exchdr)
|
---|
3206 |
|
---|
3207 | CPUä¾å¤ãã³ãã©çªå·ãexcnoï¼CPUä¾å¤ãã³ãã©ã®é¢æ°åãexchdrã§ããCPUä¾
|
---|
3208 | å¤ãã³ãã©ã®åºå
|
---|
3209 | ¥å£å¦çãçæãããã¯ãï¼excno_numã«ã¯ï¼ã¢ã»ã³ããªè¨èªè¨
|
---|
3210 | è¿°ç¨ã«ï¼CPUä¾å¤ãã³ãã©çªå·ãæ°å¤ã§æ¸¡ãããï¼CPUä¾å¤ãã³ãã©æ¯ã«åºå
|
---|
3211 | ¥å£
|
---|
3212 | å¦çãä½ãå¿
|
---|
3213 | è¦ããªãå ´åã«ã¯ï¼ç©ºã«å®ç¾©ããï¼
|
---|
3214 |
|
---|
3215 | 6.7.3 CPUä¾å¤ãã³ãã©ã®è¨å®
|
---|
3216 |
|
---|
3217 | (6-7-3-1) bool_t VALID_EXCNO(EXCNO excno)ï¼ãªãã·ã§ã³ï¼
|
---|
3218 |
|
---|
3219 | excnoãï¼CPUä¾å¤ãã³ãã©çªå·ã¨ãã¦æå¹ãªå¤ã§ããå ´åã«trueï¼ããã§ãªã
|
---|
3220 | å ´åã«falseãè¿ããã¯ãï¼ãªãï¼ASP3ã«ã¼ãã«ã§ã¯ï¼CPUä¾å¤ãã³ãã©çªå·ã
|
---|
3221 | ç¨ããAPIã¯ï¼DEF_EXCã®ã¿ã§ããï¼
|
---|
3222 |
|
---|
3223 | ASP3ã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾åé¨ã§ã¯ï¼ãã®ãã¯ãã¯ä½¿ããã¦ããªãããï¼
|
---|
3224 | ã¿ã¼ã²ããä¾åé¨ã§ä½¿ããªããªãï¼ç¨æããå¿
|
---|
3225 | è¦ããªãï¼
|
---|
3226 |
|
---|
3227 | (6-7-3-2) void define_exc(EXCNO excno, FP exc_entry)
|
---|
3228 |
|
---|
3229 | excnoã§æå®ãããCPUä¾å¤ãã³ãã©ã®åºå
|
---|
3230 | ¥å£å¦çã®çªå°ãexc_entryã«è¨å®ããï¼
|
---|
3231 |
|
---|
3232 | ãã®é¢æ°ã¯ï¼æ¨æºã®CPUä¾å¤ç®¡çæ©è½ã®åæåå¦çãç¨ããå ´åã®ã¿ï¼ã¿ã¼ã²ã
|
---|
3233 | ãéä¾åé¨ããå¼ã³åºãããï¼CPUä¾å¤ç®¡çæ©è½ã®åæåå¦çãã¿ã¼ã²ããä¾å
|
---|
3234 | é¨ã§ç¨æãï¼ãã®ä¸ã§ãã®é¢æ°ãå¼ã³åºããªãå ´åã«ã¯ï¼ãã®é¢æ°ãç¨æãã
|
---|
3235 | å¿
|
---|
3236 | è¦ã¯ãªãï¼
|
---|
3237 |
|
---|
3238 | ãã®é¢æ°ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ã®ã«ã¼ãã«åæåå¦çããå¼ã³åºãããããï¼
|
---|
3239 | ã«ã¼ãã«ã®åæåå¦çï¼NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ããã¹ã¯ããã¦ããï¼ããå¼
|
---|
3240 | ã³åºããããã«å®è£
|
---|
3241 | ããã°ããï¼
|
---|
3242 |
|
---|
3243 | æå®ãããCPUä¾å¤ãã³ãã©çªå·ãDEF_EXCã«å¯¾ãããã®ã¨ãã¦æå¹ãªå¤ã§ãªã
|
---|
3244 | å ´åã®åä½ã¯ä¿è¨¼ããå¿
|
---|
3245 | è¦ããªãï¼assertã§ã¨ã©ã¼ã¨ããã®ãæã¾ããï¼ï¼ã
|
---|
3246 | ãã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãï¼ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å
|
---|
3247 | é¨ã§å®ç¾©ããEXCNO_VALIDãç¨ãã¦ã¨ã©ã¼ãæ¤åºããããã§ããï¼
|
---|
3248 |
|
---|
3249 | 6.7.4 CPUä¾å¤ç®¡çæ©è½ã®åæåå¦çã®å¤æ´
|
---|
3250 |
|
---|
3251 | (6-7-4-1) OMIT_INITIALIZE_EXCEPTIONï¼ãªãã·ã§ã³ï¼
|
---|
3252 |
|
---|
3253 | CPUä¾å¤ç®¡çæ©è½ã®åæåå¦çãã¿ã¼ã²ããä¾åé¨ã§ç¨æãï¼ã¿ã¼ã²ããéä¾å
|
---|
3254 | é¨ã«å«ã¾ããæ¨æºã®å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãç¨ããªãå ´åã«ã¯ï¼ãã®ã·
|
---|
3255 | ã³ãã«ããã¯ãå®ç¾©ããï¼
|
---|
3256 |
|
---|
3257 | ãã®ã·ã³ãã«ããã¯ãå®ç¾©ããã¨ï¼EXCINIBã¨initialize_exceptionã®å®ç¾©ãï¼
|
---|
3258 | ã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾åé¨ããåãé¤ãããï¼ã¾ãï¼TNUM_DEF_EXCNOï¼
|
---|
3259 | tnum_def_excnoï¼excinib_tableã®å®ç¾©ã¨ï¼CPUä¾å¤ãã³ãã©æ¯ã®åºå
|
---|
3260 | ¥å£å¦çã
|
---|
3261 | çæããããã®è¨è¿°ï¼EXCHDR_ENTRYãã¯ãã®ãªã¹ãï¼ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿
|
---|
3262 | ã®ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾åé¨ã«ãã£ã¦kernel_cfg.cã«
|
---|
3263 | çæãããªããªãï¼
|
---|
3264 |
|
---|
3265 | (6-7-4-2) void initialize_exception(void)ï¼ãªãã·ã§ã³ï¼
|
---|
3266 |
|
---|
3267 | OMIT_INITIALIZE_EXCEPTIONããã¯ãå®ç¾©ããå ´åã«ã¯ï¼ãã®é¢æ°ãã¿ã¼ã²ãã
|
---|
3268 | ä¾åé¨ã§ç¨æããï¼OMIT_INITIALIZE_EXCEPTIONããã¯ãå®ç¾©ãããã¨ã«ããå
|
---|
3269 | ãé¤ããããã®ä»ã®ãã¼ã¿åï¼å¤æ°ï¼ãã¯ãã¯ï¼ãã®é¢æ°ã§ä½¿ç¨ããå ´åã«ã®
|
---|
3270 | ã¿ç¨æããã°ããï¼
|
---|
3271 |
|
---|
3272 | 6.7.5 ããã©ã«ãã®CPUä¾å¤ãã³ãã©
|
---|
3273 |
|
---|
3274 | (6-7-5-1) void default_exc_handler(void *p_excinf)ï¼ãªãã·ã§ã³ï¼
|
---|
3275 |
|
---|
3276 | ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«ããCPUä¾å¤ãã³ãã©ã®ãã¼ãã«ãçæããå ´åãªã©ã«ã¯ï¼
|
---|
3277 | CPUä¾å¤ãã³ãã©ãç»é²ããªãã£ãCPUä¾å¤ãã³ãã©çªå·ã«å¯¾ãã¦ï¼ããã©ã«ã
|
---|
3278 | ã®CPUä¾å¤ãã³ãã©ã¨ãã¦ï¼default_exc_handlerãç»é²ããï¼
|
---|
3279 |
|
---|
3280 | default_exc_handlerã¯ï¼æ¨æºã®ãã®ãã¿ã¼ã²ããä¾åé¨ã§ç¨æãããï¼ã¦ã¼ã¶
|
---|
3281 | ãç¨æãããã®ã§ç½®ãæããããããã«ï¼OMIT_DEFAULT_EXC_HANDLERããã¯ã
|
---|
3282 | å®ç¾©ããå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§å®ç¾©ããªãããã«ããï¼ãªãï¼ã¦ã¼ã¶
|
---|
3283 | ãç¨æããå ´åã®å称ã¯ï¼_kernel_default_exc_handlerã¨ãªãï¼
|
---|
3284 |
|
---|
3285 | 6.7.6 CPUä¾å¤çºçæã®ã·ã¹ãã ç¶æ
|
---|
3286 | ã®åç
|
---|
3287 | §
|
---|
3288 |
|
---|
3289 | (6-7-6-1) bool_t exc_sense_intmask(void *p_excinf)
|
---|
3290 |
|
---|
3291 | CPUä¾å¤ãçºçããæã®ã·ã¹ãã ç¶æ
|
---|
3292 | ãï¼ä»¥ä¸ã®æ¡ä»¶ããã¹ã¦æºããå ´åã«
|
---|
3293 | trueï¼ããã§ãªãæã«falseãè¿ãé¢æ°ï¼
|
---|
3294 |
|
---|
3295 | ã(1) ã«ã¼ãã«å
|
---|
3296 | ã®ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®å®è¡ä¸ã§ãªã
|
---|
3297 | ã(2) å
|
---|
3298 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
3299 | ã§ãªã
|
---|
3300 | ã(3) CPUããã¯ç¶æ
|
---|
3301 | ã§ãªã
|
---|
3302 | ã(4) ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãã³ãã©å®è¡ä¸ã§ãªã
|
---|
3303 | ã(5) ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ãã³ãã©å®è¡ä¸ã§ãªã
|
---|
3304 | ã(6) ã¿ã¹ã¯ã³ã³ããã¹ã
|
---|
3305 | ã(7) å²è¾¼ã¿åªå
|
---|
3306 | 度ãã¹ã¯ãå
|
---|
3307 | ¨è§£é¤
|
---|
3308 |
|
---|
3309 | å¤ãã®å ´åï¼ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ããã¹ã¦ãã¹ã¯ããã¦ãããã¨ããã§ãã¯
|
---|
3310 | ãããã¨ã§ï¼(1)ã(5)ã®å¤å®ãä¸æ¬ãã¦è¡ããã¨ãã§ããï¼ã¾ãï¼å²è¾¼ã¿åªå
|
---|
3311 |
|
---|
3312 | 度ãã¹ã¯ãå®ç¾ãã¦ãããã¼ãã¦ã§ã¢ã¬ã¸ã¹ã¿ããã§ãã¯ãããã¨ã§ï¼(1)ã
|
---|
3313 | (5)ã¨(7)ã®å¤å®ãä¸æ¬ãã¦è¡ããå ´åãå¤ãï¼
|
---|
3314 |
|
---|
3315 | p_excinfã«ã¯ï¼CPUä¾å¤ã®æ
|
---|
3316 | å ±ãè¨æ¶ãã¦ããé åã®å
|
---|
3317 | é çªå°ã渡ãããï¼
|
---|
3318 |
|
---|
3319 | 6.8 ã«ã¼ãã«ã®èµ·åã»çµäºã¨ã¹ã¿ãã¯é åãªã©
|
---|
3320 |
|
---|
3321 | (6-8-1) ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«
|
---|
3322 |
|
---|
3323 | ã«ã¼ãã«ã®ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã¯ï¼ã·ã¹ãã ã®ãªã»ããå¾ã«æåã«å®è¡
|
---|
3324 | ãããããã°ã©ã ã§ããï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã¯ï¼æ¨æºçã«ã¯ï¼ããã»ã
|
---|
3325 | ãµä¾åé¨ã¾ãã¯ãããä¾åé¨ã§ç¨æã以ä¸ã®å¦çãè¡ããï¼ããã«ãã ããå¿
|
---|
3326 |
|
---|
3327 | è¦ã¯ãªãï¼å
|
---|
3328 | ·ä½çã«ã¯ï¼éçºç°å¢ã«ç¨æããã¦ããã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«
|
---|
3329 | ãç¨ããæ¹æ³ï¼ãã®å ´åï¼ã¿ã¼ã²ããä¾åé¨ã§mainé¢æ°ãç¨æããå¿
|
---|
3330 | è¦ãããï¼
|
---|
3331 | ãï¼ã¢ããªã±ã¼ã·ã§ã³ã§ç¨æããå ´åãèããããï¼
|
---|
3332 |
|
---|
3333 | (a) ããã»ããµç¶æ
|
---|
3334 | ã®åæå
|
---|
3335 |
|
---|
3336 | ããã»ããµã¢ã¼ãï¼ã¹ã¿ãã¯ãã¤ã³ã¿ï¼ãã¬ã¼ã ãã¤ã³ã¿çï¼ããã»ããµã®ç¶
|
---|
3337 | æ
|
---|
3338 | ãåæåããï¼ã¾ãï¼NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ããã¹ã¯ããç¶æ
|
---|
3339 | ï¼å
|
---|
3340 | ¨å²è¾¼ã¿
|
---|
3341 | ããã¯ç¶æ
|
---|
3342 | ã¨åçã®ç¶æ
|
---|
3343 | ï¼ã¨ããï¼DRAMã³ã³ããã¼ã©ã®åæåãªã©ï¼ã¡ã¢ãªã
|
---|
3344 | ã¢ã¯ã»ã¹ããããã«å¿
|
---|
3345 | è¦ãªåæåå¦çãããã§è¡ã£ã¦ãããï¼æ¬¡ã®
|
---|
3346 | hardware_init_hookã§è¡ã£ã¦ãããï¼ï¼
|
---|
3347 |
|
---|
3348 | (b) hardware_init_hookãå¼ã³åºã
|
---|
3349 |
|
---|
3350 | ã·ã¹ãã ã®ãªã»ããå¾ããã«è¡ãå¿
|
---|
3351 | è¦ã®ããã¿ã¼ã²ããã·ã¹ãã ä¾åã®åæå
|
---|
3352 | å¦çãè¡ãããã«ï¼hardware_init_hookãå¼ã³åºãï¼hardware_init_hookãç¨
|
---|
3353 | æããã¦ããªãå ´åã¯ï¼ä½ãããªãï¼GNUéçºç°å¢ã§ã¯ï¼ãªã³ã«ã¹ã¯ãªããä¸ã®
|
---|
3354 | weak definitionã«ããï¼hardware_init_hookãç¨æããã¦ããªãå ´åã®å¤ã0
|
---|
3355 | ã¨ãããã¨ã§ï¼ãããå®ç¾ã§ããï¼weak definitionã®æ©è½ãæããªãéçºç°å¢
|
---|
3356 | ã§ã¯ï¼hardware_init_hookãå¿
|
---|
3357 | ãå¼ã³åºããã¨ã«ããï¼
|
---|
3358 |
|
---|
3359 | hardware_init_hookã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§ç¨æããã®ãæ¨æºã§ãããï¼ã·ã¹
|
---|
3360 | ãã ã®ãªã»ããå¾ããã«è¡ãå¿
|
---|
3361 | è¦ã®ããåæåå¦çã追å ããããã«ï¼ã¢ããª
|
---|
3362 | ã±ã¼ã·ã§ã³ã§ç¨æãããã®ãç¨ããå ´åãããï¼
|
---|
3363 |
|
---|
3364 | ã¡ã¢ãªã¢ã¯ã»ã¹ã«å¿
|
---|
3365 | è¦ãªåæåå¦çãhardware_init_hookã§è¡ãå ´åã«ã¯ï¼ã
|
---|
3366 | ããå¼ã³åºãæç¹ã§ã¡ã¢ãªã«ã¢ã¯ã»ã¹ãããã¨ãã§ããªãããï¼é¢æ°ï¼ãµãã«ã¼
|
---|
3367 | ãã³ï¼ãå¼ã³åºãããã«ã¹ã¿ãã¯ã使ç¨ããããã»ããµã§ã¯ï¼æ»ãçªå°ãæ±ç¨
|
---|
3368 | ã¬ã¸ã¹ã¿ã«å
|
---|
3369 | ¥ãã¦å¼ã³åºãã¨ãã£ã工夫ãå¿
|
---|
3370 | è¦ã§ããï¼ãã®å ´åï¼
|
---|
3371 | hardware_init_hookãCè¨èªã§è¨è¿°ãããã¨ã¯ã§ããªããªããï¼ãããããªãï¼
|
---|
3372 |
|
---|
3373 | (c) bssã»ã¯ã·ã§ã³ã¨dataã»ã¯ã·ã§ã³ã®åæå
|
---|
3374 |
|
---|
3375 | bssã»ã¯ã·ã§ã³ãã¯ãªã¢ãï¼dataã»ã¯ã·ã§ã³ã«åæå¤ãè¨å®ããï¼
|
---|
3376 |
|
---|
3377 | ãã ãï¼ã«ã¼ãã«æ¬ä½ã¯ï¼kerflgãfalseï¼ï¼0ï¼ã«åæåããããã¨ä»¥å¤ã«ï¼
|
---|
3378 | ãããã®ã»ã¯ã·ã§ã³ãåæåããããã¨ã«ä¾åãã¦ããªãããï¼ã¹ã¿ã¼ãã¢ã
|
---|
3379 | ãã¢ã¸ã¥ã¼ã«ãã¢ããªã±ã¼ã·ã§ã³ã§ç¨æããå ´åã§ï¼ã·ã¹ãã ãµã¼ãã¹ãã¢ã
|
---|
3380 | ãªã±ã¼ã·ã§ã³ããããã®ã»ã¯ã·ã§ã³ãåæåããããã¨ã«ä¾åãã¦ããªãå ´å
|
---|
3381 | ã«ã¯ï¼ã·ã¹ãã ã®èµ·åæéãç縮ããããã«ï¼kerflgãfalseã«åæåããã ã
|
---|
3382 | ã§ååã§ããï¼
|
---|
3383 |
|
---|
3384 | (d) software_init_hookãå¼ã³åºã
|
---|
3385 |
|
---|
3386 | éçºç°å¢ï¼ç¹ã«ã©ã¤ãã©ãªï¼ã«ä¾åãã¦å¿
|
---|
3387 | è¦ãªåæåå¦çãè¡ãããã«ï¼
|
---|
3388 | software_init_hookãå¼ã³åºãï¼software_init_hookãç¨æããã¦ããªãå ´å
|
---|
3389 | ã¯ï¼ä½ãããªãï¼GNUéçºç°å¢ã§ã¯ï¼ãªã³ã«ã¹ã¯ãªããä¸ã®weak definitionã«
|
---|
3390 | ããï¼software_init_hookãç¨æããã¦ããªãå ´åã®å¤ã0ã¨ãããã¨ã§ï¼ãã
|
---|
3391 | ãå®ç¾ã§ããï¼weak definitionã®æ©è½ãæããªãéçºç°å¢ã§ã¯ï¼
|
---|
3392 | software_init_hookãå¿
|
---|
3393 | ãå¼ã³åºããã¨ã«ããï¼
|
---|
3394 |
|
---|
3395 | software_init_hookã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§ç¨æããã®ãæ¨æºã§ããï¼
|
---|
3396 |
|
---|
3397 | (e) sta_kerã¸åå²
|
---|
3398 |
|
---|
3399 | sta_kerãå¼ã³åºãï¼sta_kerã¯ï¼NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ããã¹ã¯ããç¶æ
|
---|
3400 |
|
---|
3401 | ï¼å
|
---|
3402 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
3403 | ã¨åçã®ç¶æ
|
---|
3404 | ï¼ã§å¼ã³åºããªããã°ãªããªãï¼sta_kerã
|
---|
3405 | ãã¯ãªã¿ã¼ã³ãããã¨ããªãããï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã«æ»ã£ã¦ããã
|
---|
3406 | ã¨ã¯èããå¿
|
---|
3407 | è¦ããªãï¼
|
---|
3408 |
|
---|
3409 | (6-8-2) void target_initialize(void)
|
---|
3410 |
|
---|
3411 | ã¿ã¼ã²ããä¾åé¨ã®åæåãè¡ãé¢æ°ï¼sta_kerã®æåã§å¼ã³åºãããï¼éçºç°
|
---|
3412 | å¢ä¾åï¼ããã»ããµã³ã¢ä¾åï¼ãããä¾åã®åæåå¦çãï¼ãããã®ä¾åé¨ã«
|
---|
3413 | åãåãããã¨ãå¯è½ã§ããï¼
|
---|
3414 |
|
---|
3415 | ãã®é¢æ°ã¯ï¼ããã¾ã§ãã«ã¼ãã«ã®ã¿ã¼ã²ããä¾åé¨ã®åæåå¦çãè¡ããã
|
---|
3416 | ã®ãã®ã§ããï¼ã¢ããªã±ã¼ã·ã§ã³ã«å¿
|
---|
3417 | è¦ãªåæåå¦çã¯ï¼åæåã«ã¼ãã³ã§è¡
|
---|
3418 | ãã®ãåºæ¬ã§ãããï¼ã·ã¹ãã ã®ãªã»ããå¾ããã«è¡ãå¿
|
---|
3419 | è¦ãããå ´åã«ã¯ï¼
|
---|
3420 | hardware_init_hookãç¨ããï¼
|
---|
3421 |
|
---|
3422 | (6-8-3) void call_exit_kernel(void)
|
---|
3423 |
|
---|
3424 | éã¿ã¹ã¯ã³ã³ããã¹ãã«åãæãã¦ï¼exit_kernelã¸åå²ããé¢æ°ï¼ext_kerã
|
---|
3425 | ãå¼ã³åºãããï¼exit_kernelããã¯ãªã¿ã¼ã³ãããã¨ããªãããï¼ãã®é¢æ°ã«
|
---|
3426 | æ»ã£ã¦ãããã¨ã¯èããå¿
|
---|
3427 | è¦ããªãï¼
|
---|
3428 |
|
---|
3429 | éã¿ã¹ã¯ã³ã³ããã¹ãã«åãæããã®ã¯ï¼çµäºå¦çã«ã¼ãã³ãï¼éã¿ã¹ã¯ã³ã³
|
---|
3430 | ããã¹ãç¨ã®ã¹ã¿ãã¯ã§å®è¡ããããã§ããï¼çµäºå¦çã«ã¼ãã³ãã¿ã¹ã¯ç¨ã®
|
---|
3431 | ã¹ã¿ãã¯ã§å®è¡ããã¨ï¼åã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®ãµã¤ãºã決å®ããéã«ï¼çµ
|
---|
3432 | äºå¦çã«ã¼ãã³ã使ç¨ããã¹ã¿ãã¯é åãèæ
|
---|
3433 | ®ããªããã°ãªããªãï¼ããã«ã¯ï¼
|
---|
3434 | çµäºå¦çã«ã¼ãã³ã使ç¨ããã¹ã¿ãã¯é åã大ããå ´åã«åã¿ã¹ã¯ã®ã¹ã¿ãã¯
|
---|
3435 | é åãç¡é§ã«å¤§ããããªããã°ãªããªããã¨ã«å ãã¦ï¼æå³ããªãã¹ã¿ãã¯ãªã¼
|
---|
3436 | ãã¼ããã¼ãçºçããå¯è½æ§ãé«ããã¨ããåé¡ãããï¼
|
---|
3437 |
|
---|
3438 | ãã®é¢æ°ã¯ï¼å
|
---|
3439 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
3440 | ã§å¼ã°ããããï¼å
|
---|
3441 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
3442 | ããå¼
|
---|
3443 | ã³åºããã¨ãã§ããªãé¢æ°ãå¼ã°ãªãããã«å®è£
|
---|
3444 | ããªããã°ãªããªãï¼
|
---|
3445 |
|
---|
3446 | (6-8-4) void target_exit(void)
|
---|
3447 |
|
---|
3448 | ã¿ã¼ã²ããä¾åé¨ã®çµäºå¦çãè¡ãé¢æ°ï¼ãã®é¢æ°ã¯ï¼ã«ã¼ãã«çµäºå¦çã®æ
|
---|
3449 | å¾ã«å¼ã³åºããï¼ãªã¿ã¼ã³ãã¦ã¯ãªããªãï¼éçºç°å¢ä¾åï¼ããã»ããµã³ã¢ä¾
|
---|
3450 | åï¼ãããä¾åã®çµäºå¦çãï¼ãããã®ä¾åé¨ã«åãåãããã¨ãå¯è½ã§ããï¼
|
---|
3451 |
|
---|
3452 | ãã®é¢æ°ã§ã¯ï¼æåã«ï¼atexitã«ãã£ã¦ç»é²ãããé¢æ°ã¨ãã¹ãã©ã¯ã¿ãå¼ã³
|
---|
3453 | åºããã¨ãæå³ãã¦ããï¼æ¨æºçã«ã¯ï¼software_term_hookãå¼ã³åºãï¼
|
---|
3454 | software_term_hookãç¨æããã¦ããªãå ´åã¯ï¼ä½ãããªãï¼GNUéçºç°å¢ã§ã¯ï¼
|
---|
3455 | ãªã³ã«ã¹ã¯ãªããä¸ã®weak definitionã«ããï¼software_term_hookãç¨æãã
|
---|
3456 | ã¦ããªãå ´åã®å¤ã0ã¨ãããã¨ã§ï¼ãããå®ç¾ã§ããï¼weak definitionã®æ©
|
---|
3457 | è½ãæããªãéçºç°å¢ã§ã¯ï¼software_term_hookãå¿
|
---|
3458 | ãå¼ã³åºããã¨ã«ããï¼
|
---|
3459 |
|
---|
3460 | ãã®é¢æ°ã¯ï¼å
|
---|
3461 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
3462 | ã§å¼ã°ããããï¼å
|
---|
3463 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
3464 | ããå¼
|
---|
3465 | ã³åºããã¨ãã§ããªãé¢æ°ãå¼ã°ãªãããã«å®è£
|
---|
3466 | ããªããã°ãªããªãï¼
|
---|
3467 |
|
---|
3468 | 6.9 ã«ã¼ãã«å
|
---|
3469 | é¨ã®ãã¥ã¼ãã³ã°
|
---|
3470 |
|
---|
3471 | 6.9.1 ãããããããµã¼ã
|
---|
3472 |
|
---|
3473 | (6-9-1-1) OMIT_BITMAP_SEARCHï¼ãªãã·ã§ã³ï¼
|
---|
3474 | (6-9-1-2) uint_t bitmap_search(uint16_t bitmap)ï¼ãªãã·ã§ã³ï¼
|
---|
3475 |
|
---|
3476 | ã¿ã¼ã²ããéä¾åé¨ã§ï¼uint16_tåã®æ´æ°å¤ï¼bitmapï¼ä¸ã®1ã®ãããã®å
|
---|
3477 | ï¼æ
|
---|
3478 | ãä¸ä½ï¼å³ï¼ã®ãã®ããµã¼ããï¼ãã®ãããçªå·ãè¿ãé¢æ°bitmap_searchãç¨
|
---|
3479 | æãã¦ããï¼ããã§ï¼ãããçªå·ã¯æä¸ä½ãããã0ã¨ãï¼bitmapã«0ãæå®ã
|
---|
3480 | ã¦ã¯ãªããªããã®ã¨ãã¦ããï¼
|
---|
3481 |
|
---|
3482 | ããããµã¼ãå½ä»¤ãæã¤ããã»ããµã§ã¯ï¼bitmap_searchãï¼ããããµã¼ãå½ä»¤
|
---|
3483 | ã使ãããã«æ¸ãç´ããæ¹ãå¹çãè¯ãå ´åãããï¼ãã®ãããªå ´åã«ã¯ï¼ã¿ã¼
|
---|
3484 | ã²ããä¾åé¨ã§ããããµã¼ãå½ä»¤ã使ã£ãbitmap_searchãå®ç¾©ãï¼
|
---|
3485 | OMIT_BITMAP_SEARCHããã¯ãå®ç¾©ããï¼
|
---|
3486 |
|
---|
3487 | æ¨æºã©ã¤ãã©ãªã«ããããµã¼ãå½ä»¤ãç¨ããffsãããå ´åï¼bitmap_searchã
|
---|
3488 | (ffs(bitmap) - 1)ã«å®ç¾©ããã¨ããï¼
|
---|
3489 |
|
---|
3490 | (6-9-1-3) uint16_t PRIMAP_BIT(PRI pri)ï¼ãªãã·ã§ã³ï¼
|
---|
3491 |
|
---|
3492 | ããããµã¼ãå½ä»¤ã®ãµã¼ãæ¹åãéãªã©ã®çç±ã§ï¼åªå
|
---|
3493 | 度ã¨ãããã¨ã®å¯¾å¿ã
|
---|
3494 | å¤æ´ãããå ´åã«ã¯ï¼PRIMAP_BITããã¯ãå®ç¾©ããï¼
|
---|
3495 |
|
---|
3496 | 6.9.2 ããããã£ã¼ã«ã
|
---|
3497 |
|
---|
3498 | (6-9-2-1) BIT_FIELD_UINTï¼ãªãã·ã§ã³ï¼
|
---|
3499 |
|
---|
3500 | 8ããã以ä¸ã®å¹
|
---|
3501 | ã®ããããã£ã¼ã«ãã§ï¼ç¬¦å·ç¡ãæ´æ°å¤ãä¿æãããå ´åã«ç¨
|
---|
3502 | ããã¹ããã¼ã¿åï¼ããã©ã«ãã®å®ç¾©ã¯unsigned intã¨ãªã£ã¦ãããï¼ã¿ã¼ã²ã
|
---|
3503 | ãããã¼ã«ä¾åã§ï¼unsigned charã¾ãã¯unsigned shortã«å®ç¾©ããæ¹ãå¹çã
|
---|
3504 | è¯ãå ´åãããï¼
|
---|
3505 |
|
---|
3506 | (6-9-2-2) BIT_FIELD_BOOLï¼ãªãã·ã§ã³ï¼
|
---|
3507 |
|
---|
3508 | 1ãããå¹
|
---|
3509 | ã®ããããã£ã¼ã«ãã§ï¼ãã¼ã«å¤ãä¿æãããå ´åã«ç¨ããã¹ããã¼
|
---|
3510 | ã¿åï¼ããã©ã«ãã§ã¯BIT_FIELD_UINTã¨åä¸ã«å®ç¾©ãã¦ãããï¼ãã¼ã«å¤ãä¿
|
---|
3511 | æãããã¨ãæ示ããããã«å¥ã®ååã¨ãã¦ããï¼
|
---|
3512 |
|
---|
3513 | (6-9-2-3) TBIT_TCB_PRIORITYï¼ãªãã·ã§ã³ï¼
|
---|
3514 |
|
---|
3515 | ç¾å¨åªå
|
---|
3516 | 度ï¼ããã³ï¼ãã¥ã¼ããã¯ã¹æ¡å¼µã«ããããã¼ã¹åªå
|
---|
3517 | 度ï¼ãä¿æãã
|
---|
3518 | ããã®TCBä¸ã®ãã£ã¼ã«ãã®ãããæ°ï¼ããã©ã«ãã§ã¯8ãããã«å®ç¾©ãã¦ãã
|
---|
3519 | ãï¼ãã以å¤ã«å®ç¾©ãããå ´åã«ï¼ãããæ°ããã®ååã«ãã¯ãå®ç¾©ããï¼
|
---|
3520 |
|
---|
3521 | 6.10 ã«ã¼ãã«å®è£
|
---|
3522 | ã«é¢ãããã®ä»ã®å®ç¾©
|
---|
3523 |
|
---|
3524 | 6.10.1 ã¿ã¼ã²ããä¾åã®ãªãã¸ã§ã¯ãå±æ§
|
---|
3525 |
|
---|
3526 | (6-10-1-1) TARGET_TSKATRï¼ãªãã·ã§ã³ï¼ ã¿ã¼ã²ããå®ç¾©ã®ã¿ã¹ã¯å±æ§
|
---|
3527 | (6-10-1-2) TARGET_ISRATRï¼ãªãã·ã§ã³ï¼ ã¿ã¼ã²ããå®ç¾©ã®ISRå±æ§
|
---|
3528 | (6-10-1-3) TARGET_INHATRï¼ãªãã·ã§ã³ï¼ ã¿ã¼ã²ããå®ç¾©ã®å²è¾¼ã¿ãã³ãã©å±æ§
|
---|
3529 | (6-10-1-4) TARGET_INTATRï¼ãªãã·ã§ã³ï¼ ã¿ã¼ã²ããå®ç¾©ã®å²è¾¼ã¿å±æ§
|
---|
3530 | (6-10-1-5) TARGET_EXCATRï¼ãªãã·ã§ã³ï¼ ã¿ã¼ã²ããå®ç¾©ã®CPUä¾å¤ãã³ãã©å±æ§
|
---|
3531 |
|
---|
3532 | åãªãã¸ã§ã¯ãã®å±æ§ãï¼ã¿ã¼ã²ããå®ç¾©ã«æ¡å¼µããå ´åã«ï¼è©²å½ãããªãã¸ã§
|
---|
3533 | ã¯ãå±æ§ã示ãå¤æ°ã«ï¼æ¡å¼µã«ä½¿ç¨ãããããã®è«çåãå®ç¾©ããï¼ããã«ã
|
---|
3534 | ãï¼æ¡å¼µã«ä½¿ç¨ããããããè¨å®ããã¦ããå ´åã«ï¼ã¨ã©ã¼ã«ãªãã®ãé²ãï¼
|
---|
3535 |
|
---|
3536 | ãªãï¼TOPPERSæ°ä¸ä»£ã«ã¼ãã«çµ±åä»æ§æ¸ã§ã¯ï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ï¼ISRï¼
|
---|
3537 | å±æ§ãã¿ã¼ã²ããå®ç¾©ã§æ¡å¼µã§ããä»æ§ã¨ã¯ãªã£ã¦ããªãï¼
|
---|
3538 |
|
---|
3539 | 6.10.2 ã¨ã©ã¼ãã§ãã¯æ¹æ³ã®æå®
|
---|
3540 |
|
---|
3541 | (6-10-2-1) TARGET_MIN_STKSZï¼ãªãã·ã§ã³ï¼
|
---|
3542 |
|
---|
3543 | ã¿ã¼ã²ããå®ç¾©ã§ï¼ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ãè¨å®ããå ´åã«ã¯ï¼ã
|
---|
3544 | ã®å¤æ°ãã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ã«å®ç¾©ããï¼
|
---|
3545 |
|
---|
3546 | (6-10-2-2) TARGET_MIN_ISTKSZï¼ãªãã·ã§ã³ï¼
|
---|
3547 |
|
---|
3548 | ã¿ã¼ã²ããå®ç¾©ã§ï¼éã¿ã¹ã¯ã³ã³ããã¹ãã®ã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ãè¨å®ã
|
---|
3549 | ãå ´åã«ã¯ï¼ãã®å¤æ°ãã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ã«å®ç¾©ããï¼
|
---|
3550 |
|
---|
3551 | (6-10-2-3) CHECK_STKSZ_ALIGNï¼ãªãã·ã§ã³ï¼
|
---|
3552 |
|
---|
3553 | ã¹ã¿ãã¯é åã®ãµã¤ãºãããå¤ï¼ã¢ã©ã¤ã³åä½ï¼ã®åæ°ã§ãªããã°ãªããªãå ´
|
---|
3554 | åã«ï¼ãã®å¤æ°ãã¢ã©ã¤ã³åä½ã«å®ç¾©ããï¼ãã®å¤æ°ãå®ç¾©ãããã¨ã§ï¼
|
---|
3555 | kernel.tfããã³acre_tskï¼åççææ©è½æ¡å¼µããã±ã¼ã¸ã®ã¿ï¼ã«ããã¦ï¼ã¹ã¿ã
|
---|
3556 | ã¯é åã®ãµã¤ãºãæ£ãããªãï¼ãã®å¤æ°ã«å®ç¾©ããå¤ã®åæ°ã§ãªãï¼å ´åã®ã¨
|
---|
3557 | ã©ã¼ããã§ãã¯ããããã«ãªãï¼ãã§ãã¯ãå¿
|
---|
3558 | è¦ãªãå ´åã«ã¯ï¼ãã®å¤æ°ãå®
|
---|
3559 | 義ããªãï¼
|
---|
3560 |
|
---|
3561 | (6-10-2-4) CHECK_INTPTR_ALIGNï¼ãªãã·ã§ã³ï¼ intptr_tåã®å¤æ°ã®ã¢ã©ã¤ã³åä½
|
---|
3562 | (6-10-2-5) CHECK_INTPTR_NONNULLï¼ãªãã·ã§ã³ï¼intptr_tåã®å¤æ°ã®éNULLãã§ãã¯
|
---|
3563 | (6-10-2-6) CHECK_FUNC_ALIGNï¼ãªãã·ã§ã³ï¼ å¦çåä½ã®ã¢ã©ã¤ã³åä½
|
---|
3564 | (6-10-2-7) CHECK_FUNC_NONNULLï¼ãªãã·ã§ã³ï¼ å¦çåä½ã®éNULLãã§ãã¯
|
---|
3565 | (6-10-2-8) CHECK_STACK_ALIGNï¼ãªãã·ã§ã³ï¼ ã¹ã¿ãã¯é åã®ã¢ã©ã¤ã³åä½
|
---|
3566 | (6-10-2-9) CHECK_STACK_NONNULLï¼ãªãã·ã§ã³ï¼ã¹ã¿ãã¯é åã®éNULLãã§ãã¯
|
---|
3567 | (6-10-2-10) CHECK_MPF_ALIGNï¼ãªãã·ã§ã³ï¼ åºå®é·ã¡ã¢ãªãã¼ã«é åã®ã¢ã©ã¤ã³åä½
|
---|
3568 | (6-10-2-11) CHECK_MPF_NONNULLï¼ãªãã·ã§ã³ï¼ åºå®é·ã¡ã¢ãªãã¼ã«é åã®éNULL
|
---|
3569 | ãã§ãã¯
|
---|
3570 |
|
---|
3571 | intptr_tåã®å¤æ°ï¼å¦çåä½ï¼ã¹ã¿ãã¯é åï¼åºå®é·ã¡ã¢ãªãã¼ã«é åã®å
|
---|
3572 | é
|
---|
3573 | çªå°ãããå¤ï¼ã¢ã©ã¤ã³åä½ï¼ã®åæ°ã§ãªããã°ãªããªãå ´åã«ï¼ããããï¼
|
---|
3574 | CHECK_INTPTR_ALIGNï¼CHECK_FUNC_ALIGNï¼CHECK_STACK_ALIGNï¼
|
---|
3575 | CHECK_MPF_ALIGNãã¢ã©ã¤ã³åä½ã«å®ç¾©ããï¼intptr_tåã®å¤æ°ï¼å¦çåä½ï¼ã¹
|
---|
3576 | ã¿ãã¯é åï¼åºå®é·ã¡ã¢ãªãã¼ã«é åã®å
|
---|
3577 | é çªå°ãNULLã§ãªããã®ãã§ãã¯ã
|
---|
3578 | è¡ãå ´åã«ã¯ï¼ããããCHECK_INTPTR_NULLï¼CHECK_FUNC_NONNULLï¼
|
---|
3579 | CHECK_STACK_NONNULLï¼CHECK_MPF_NONNULLãå®ç¾©ããï¼
|
---|
3580 |
|
---|
3581 | (6-10-2-12) CHECK_MB_ALIGNï¼ãªãã·ã§ã³ï¼ 管çé åã®ã¢ã©ã¤ã³åä½
|
---|
3582 |
|
---|
3583 | ã«ã¼ãã«å
|
---|
3584 | ã®ç®¡çé åï¼å
|
---|
3585 | ·ä½çã«ã¯ï¼ãã¼ã¿ãã¥ã¼ç®¡çé åï¼åªå
|
---|
3586 | 度ãã¼ã¿
|
---|
3587 | ãã¥ã¼ç®¡çé åï¼åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çé åï¼ã®å
|
---|
3588 | é çªå°ãããå¤ï¼ã¢ã©ã¤
|
---|
3589 | ã³åä½ï¼ã®åæ°ã§ãªããã°ãªããªãå ´åã«ï¼ãã®å¤æ°ãã¢ã©ã¤ã³åä½ã«å®ç¾©ã
|
---|
3590 | ãï¼åççææ©è½æ¡å¼µããã±ã¼ã¸ã使ç¨ããªãå ´åã«ã¯ï¼å®ç¾©ããå¿
|
---|
3591 | è¦ããªãï¼
|
---|
3592 |
|
---|
3593 | 6.10.3 éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿ãã¯é å
|
---|
3594 |
|
---|
3595 | (6-10-3-1) DEFAULT_ISTKSZ
|
---|
3596 |
|
---|
3597 | DEF_ICSã«ããéã¿ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿ãã¯é åãæå®ãããªãå ´åã®ï¼
|
---|
3598 | ããã©ã«ãã®ã¹ã¿ãã¯é åã®ãµã¤ãºï¼
|
---|
3599 |
|
---|
3600 | (6-10-3-2) DEFAULT_ISTKï¼ãªãã·ã§ã³ï¼
|
---|
3601 |
|
---|
3602 | DEF_ICSã«ããéã¿ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿ãã¯é åãæå®ãããªãå ´åã®ï¼
|
---|
3603 | ããã©ã«ãã®ã¹ã¿ãã¯é åã®å
|
---|
3604 | é çªå°ï¼ãã®ãã¯ããå®ç¾©ãããªãå ´åã«ã¯ï¼
|
---|
3605 | ãµã¤ãºãDEFAULT_ISTKSZã®ã¹ã¿ãã¯é åãï¼é
|
---|
3606 | åã«ãã確ä¿ãããï¼
|
---|
3607 |
|
---|
3608 | (6-10-3-3) STK_T *TOPPERS_ISTKPT(STK_T *istk, size_t istksz)ï¼ãªãã·ã§ã³ï¼
|
---|
3609 |
|
---|
3610 | éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿ãã¯ãã¤ã³ã¿ã®åæå¤ãä¿æããå¤æ°ï¼istkptï¼
|
---|
3611 | ãç¨ããå ´åã«ï¼ãã®ã·ã³ãã«ã«ï¼ã¹ã¿ãã¯é åã®å
|
---|
3612 | é çªå°ï¼istkï¼ã¨ã¹ã¿ã
|
---|
3613 | ã¯é åã®ãµã¤ãºï¼istkszï¼ããï¼ã¹ã¿ãã¯ãã¤ã³ã¿ã®åæå¤ãæ±ãããã¯ãã
|
---|
3614 | å®ç¾©ããï¼
|
---|
3615 |
|
---|
3616 | 6.10.4 空ã©ãã«ã®å®ç¾©
|
---|
3617 |
|
---|
3618 | (6-10-4-1) TOPPERS_EMPTY_LABEL(type, symbol)ï¼ãªãã·ã§ã³ï¼
|
---|
3619 |
|
---|
3620 | ãªã³ã¯ã¨ã©ã¼ãé²ãããã«ï¼ãã¼ã¿åtypeã®é
|
---|
3621 | åã§ããå¤æ°symbolã«å®ç¾©ãä¸
|
---|
3622 | ããããã®ãã¯ãï¼ä¸ããå®ç¾©ãåç
|
---|
3623 | §ããããã¨ã¯ãªãããï¼ã©ã®ãããªå®ç¾©
|
---|
3624 | ãä¸ãã¦ãããï¼
|
---|
3625 |
|
---|
3626 | ããã©ã«ãã§ã¯ï¼symbolãï¼è¦ç´ åãtypeã§ãµã¤ãºã0ã®é
|
---|
3627 | åã«å®ç¾©ãã¦ããï¼
|
---|
3628 | ãµã¤ãºã0ã®é
|
---|
3629 | åãã¨ã©ã¼ã¨ãªããªãã³ã³ãã¤ã©ï¼GCCã¯ããã«è©²å½ï¼ãç¨ãã
|
---|
3630 | å ´åã«ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§å®ç¾©ããå¿
|
---|
3631 | è¦ã¯ãªãï¼
|
---|
3632 |
|
---|
3633 | 6.11 ãã¬ã¼ã¹ãã°æ©è½ã«é¢ããè¨å®
|
---|
3634 |
|
---|
3635 | ASP3ã«ã¼ãã«ã®ã½ã¼ã¹ã³ã¼ãã«ã¯ï¼ã«ã¼ãã«ã®å®è¡ãã¬ã¼ã¹ãã°ãåå¾ããã
|
---|
3636 | ãã®ãã¯ãçãåãè¾¼ãã§ããï¼ããã©ã«ãã§ã¯ï¼ãããã®ãã¯ãã¯ç©ºã«å®ç¾©
|
---|
3637 | ããã¦ãã¬ã¼ã¹ãã°ã®åå¾ã¯è¡ããªããï¼ãããã®ãã¯ããé©åã«å®ç¾©ããã
|
---|
3638 | ã¨ã§ãã¬ã¼ã¹ãã°ã®åå¾ãè¡ããã¨ãã§ããï¼
|
---|
3639 |
|
---|
3640 | 6.11.1 åå¾ã§ãããã¬ã¼ã¹ãã°ã®ç¨®é¡ã¨ãã¯ã
|
---|
3641 |
|
---|
3642 | åå¾ã§ãããã¬ã¼ã¹ãã°ã®ç¨®é¡ã¨ï¼ãããåå¾ããããã«å®ç¾©ãããã¯ãã¯æ¬¡
|
---|
3643 | ã®éãã§ããï¼
|
---|
3644 |
|
---|
3645 | (a) ã«ã¼ãã«ã®åä½éå§ã¨çµäº
|
---|
3646 |
|
---|
3647 | 次ã®ãã¯ããå®ç¾©ãããã¨ã§ï¼ã«ã¼ãã«ã®åä½éå§æã¨çµäºæã®ãã¬ã¼ã¹ãã°
|
---|
3648 | ãåå¾ãããã¨ãã§ããï¼
|
---|
3649 |
|
---|
3650 | LOG_KER_ENTER ã«ã¼ãã«ãåä½ãéå§ããç´åï¼åæåã®å®äºå¾ï¼
|
---|
3651 | LOG_KER_LEAVE ã«ã¼ãã«ã®çµäºï¼ext_kerï¼ãå¼ã°ããç´å¾ï¼çµäºå¦
|
---|
3652 | çã®å®è¡åï¼
|
---|
3653 |
|
---|
3654 | (b) å¦çåä½ã®å®è¡éå§ã¨çµäº
|
---|
3655 |
|
---|
3656 | 次ã®ãã¯ããå®ç¾©ãããã¨ã§ï¼å²è¾¼ã¿ãã³ãã©ï¼INHï¼ï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ã
|
---|
3657 | ã³ï¼ISRï¼ï¼å¨æãã³ãã©ï¼CYCï¼ï¼ã¢ã©ã¼ã ãã³ãã©ï¼ALMï¼ï¼CPUä¾å¤ãã³ã
|
---|
3658 | ã©ï¼EXCï¼ã®å®è¡éå§åã¨çµäºå¾ã®ãã¬ã¼ã¹ãã°ãåå¾ãããã¨ãã§ããï¼
|
---|
3659 |
|
---|
3660 | LOG_<å¦çåä½ç¥å·>_ENTER å¦çåä½ã®å®è¡éå§ç´å
|
---|
3661 | LOG_<å¦çåä½ç¥å·>_LEAVE å¦çåä½ã®çµäºç´å¾
|
---|
3662 |
|
---|
3663 | å²è¾¼ã¿ãã³ãã©ã¯ï¼ã¢ããªã±ã¼ã·ã§ã³ãç»é²ãããã®ã®ã¿ã対象ã¨ãï¼å²è¾¼ã¿
|
---|
3664 | ãµã¼ãã¹ã«ã¼ãã³ãå¼ã³åºãããã«ã«ã¼ãã«å
|
---|
3665 | ã«çæããããã®ã¯å¯¾è±¡ã¨ããª
|
---|
3666 | ãï¼ã¿ã¹ã¯ã®å®è¡éå§ã¨çµäºã¯ï¼ä»ã®æ¹æ³ã§åå¾ã§ããããï¼ãã®æ¹æ³ã¯ç¨æ
|
---|
3667 | ãã¦ããªãï¼
|
---|
3668 |
|
---|
3669 | ãªãï¼å²è¾¼ã¿ãã³ãã©ã¨CPUä¾å¤ãã³ãã©ã®å®è¡éå§ã¨çµäºã®ãã¬ã¼ã¹ãã°åå¾
|
---|
3670 | ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§å®è£
|
---|
3671 | ããå¿
|
---|
3672 | è¦ãããï¼è©³ããã¯ï¼ã6.2 ãã¬ã¼ã¹ãã°
|
---|
3673 | æ©è½ã¸ã®å¯¾å¿ãã6.6.1 å²è¾¼ã¿ãã³ãã©ã®åºå
|
---|
3674 | ¥å£å¦çãã6.7.1 CPUä¾å¤ãã³ã
|
---|
3675 | ã©ã®åºå
|
---|
3676 | ¥å£å¦çãã®ç¯ãåç
|
---|
3677 | §ãããã¨ï¼
|
---|
3678 |
|
---|
3679 | (c) ã¿ã¹ã¯ç¶æ
|
---|
3680 | ã®å¤å
|
---|
3681 |
|
---|
3682 | 次ã®ãã¯ããå®ç¾©ãããã¨ã§ï¼ã¿ã¹ã¯ç¶æ
|
---|
3683 | ãå¤åããæã®ãã¬ã¼ã¹ãã°ãåå¾
|
---|
3684 | ãããã¨ãã§ããï¼ãã ãï¼å®è¡ç¶æ
|
---|
3685 | ã¨å®è¡å¯è½ç¶æ
|
---|
3686 | ã®éã®é·ç§»ã¯ï¼ä»ã®æ¹æ³
|
---|
3687 | ã§åå¾ã§ããããï¼ãã®ãã¯ãã§ã¯åå¾ã§ããªãï¼
|
---|
3688 |
|
---|
3689 | LOG_TSKSTAT ã¿ã¹ã¯ç¶æ
|
---|
3690 | ã®å¤å
|
---|
3691 |
|
---|
3692 | (d) ãã£ã¹ãããã£ã®å®è¡éå§ã¨çµäº
|
---|
3693 |
|
---|
3694 | 次ã®ãã¯ããå®ç¾©ãããã¨ã§ï¼ãã£ã¹ãããã£ãå®è¡éå§ããæã¨ï¼çµäºãã
|
---|
3695 | æã®ãã¬ã¼ã¹ãã°ãåå¾ãããã¨ãã§ããï¼
|
---|
3696 |
|
---|
3697 | LOG_DSP_ENTER ãã£ã¹ãããã£ã®å®è¡éå§
|
---|
3698 | LOG_DSP_LEAVE ãã£ã¹ãããã£ã®çµäº
|
---|
3699 |
|
---|
3700 | ãã£ã¹ãããã£ã®å®è¡éå§ã¯ï¼ã¿ã¹ã¯ãå®è¡ç¶æ
|
---|
3701 | ããå®è¡å¯è½ç¶æ
|
---|
3702 | ã«é·ç§»ãã
|
---|
3703 | ã¿ã¤ãã³ã°ã§ããããï¼å®è¡å¯è½ç¶æ
|
---|
3704 | ã¸é·ç§»ããã¿ã¹ã¯ã®TCBã¸ã®ãã¤ã³ã¿ãã
|
---|
3705 | ã©ã¡ã¼ã¿ã¨ããï¼éã«ï¼ãã£ã¹ãããã£ã®çµäºã¯ï¼ã¿ã¹ã¯ãå®è¡å¯è½ç¶æ
|
---|
3706 | ãã
|
---|
3707 | å®è¡ç¶æ
|
---|
3708 | ã«é·ç§»ããã¿ã¤ãã³ã°ã§ããããï¼å®è¡ç¶æ
|
---|
3709 | ã¸é·ç§»ããã¿ã¹ã¯ã®TCBã¸
|
---|
3710 | ã®ãã¤ã³ã¿ããã©ã¡ã¼ã¿ã¨ããï¼
|
---|
3711 |
|
---|
3712 | ASP3ã«ã¼ãã«ã§ã¯ï¼å®è¡ã§ããã¿ã¹ã¯ããªãï¼ã«ã¼ãã«ãã¢ã¤ãã«ç¶æ
|
---|
3713 | ã«ãªã
|
---|
3714 | å ´åã«ã¯ï¼ãã£ã¹ãããã£ã®ä¸ã«çã¾ãï¼ãã®ããï¼ã¢ã¤ãã«ç¶æ
|
---|
3715 | ã¸ã®é·ç§»ã¨
|
---|
3716 | ã¢ã¤ãã«ç¶æ
|
---|
3717 | ããä»ã®ç¶æ
|
---|
3718 | ã¸ã®é·ç§»ã¯ï¼ãã®ãã¯ãã§ã¯åå¾ã§ããªãï¼
|
---|
3719 |
|
---|
3720 | ãªãï¼ãã£ã¹ãããã£ã®å®è¡éå§ã¨çµäºã®ãã¬ã¼ã¹ãã°åå¾ã¯ï¼ã¿ã¼ã²ããä¾
|
---|
3721 | åé¨ã§å®è£
|
---|
3722 | ããå¿
|
---|
3723 | è¦ãããï¼è©³ããã¯ï¼ã6.2 ãã¬ã¼ã¹ãã°æ©è½ã¸ã®å¯¾å¿ãã¨
|
---|
3724 | ã6.5.2 ãã£ã¹ãããã£æ¬ä½ãã®ç¯ãåç
|
---|
3725 | §ãããã¨ï¼
|
---|
3726 |
|
---|
3727 | (e) ãµã¼ãã¹ã³ã¼ã«ã®å
|
---|
3728 | ¥å£ã¨åºå£
|
---|
3729 |
|
---|
3730 | 次ã®ãã¯ããå®ç¾©ãããã¨ã§ï¼åãµã¼ãã¹ã³ã¼ã«ã®å
|
---|
3731 | ¥å£ã¨åºå£ã®ãã¬ã¼ã¹ãã°
|
---|
3732 | ãåå¾ãããã¨ãã§ããï¼
|
---|
3733 |
|
---|
3734 | LOG_<ãµã¼ãã¹ã³ã¼ã«ã®å¤§æå表è¨>_ENTER ãµã¼ãã¹ã³ã¼ã«åã®å
|
---|
3735 | ¥å£
|
---|
3736 | LOG_<ãµã¼ãã¹ã³ã¼ã«ã®å¤§æå表è¨>_LEAVE ãµã¼ãã¹ã³ã¼ã«åã®åºå£
|
---|
3737 |
|
---|
3738 | ããããã®ãã¯ãã®å称ããã©ã¡ã¼ã¿ã®è©³ç´°ã«ã¤ãã¦ã¯ï¼ã«ã¼ãã«ã®ã½ã¼ã¹ã³ã¼
|
---|
3739 | ããåç
|
---|
3740 | §ãããã¨ï¼
|
---|
3741 |
|
---|
3742 | 6.11.2 ãã¬ã¼ã¹ãã°è¨é²ã®ãµã³ãã«ã³ã¼ã
|
---|
3743 |
|
---|
3744 | ãã¬ã¼ã¹ãã°ãè¨é²ããæ¹æ³ã®ä¸ä¾ã¨ãã¦ï¼ã¡ã¢ãªä¸ã«ãã¬ã¼ã¹ãã°ãè¨é²ã
|
---|
3745 | ãããã®ãµã³ãã«ã³ã¼ããarch/logtraceãã£ã¬ã¯ããªã«ç¨æãã¦ããï¼ãã®ãµ
|
---|
3746 | ã³ãã«ã³ã¼ãã¯ï¼ã·ã¹ãã ãã°æ©è½ã¨åæ§ã®ãã¬ã¼ã¹ãã°æ©è½ãç¨æãï¼ãã¬ã¼
|
---|
3747 | ã¹ãã°æ
|
---|
3748 | å ±ãã¡ã¢ãªä¸ã«è¨é²ããã¨ã¨ãã«ï¼ãããèªã¿åºãã¦è¡¨ç¤ºããæ©è½ã
|
---|
3749 | å®ç¾ãã¦ããï¼
|
---|
3750 |
|
---|
3751 | ãã®ãµã³ãã«ã³ã¼ããçµã¿è¾¼ãæ¹æ³ã¯æ¬¡ã®éãã§ããï¼
|
---|
3752 |
|
---|
3753 | (1) target_kernel_impl.hããã³target_syssvc.hã«ï¼æ¬¡ã®è¨è¿°ã追å ããï¼
|
---|
3754 |
|
---|
3755 | #ifdef TOPPERS_ENABLE_TRACE
|
---|
3756 | #include "arch/logtrace/trace_config.h"
|
---|
3757 | #endif /* TOPPERS_ENABLE_TRACE */
|
---|
3758 |
|
---|
3759 | (2) Makefile.targetã«ï¼æ¬¡ã®è¨è¿°ã追å ããï¼
|
---|
3760 |
|
---|
3761 | ifeq ($(ENABLE_TRACE),true)
|
---|
3762 | COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
|
---|
3763 | KERNEL_DIRS := $(KERNEL_DIRS) $(SRCDIR)/arch/logtrace
|
---|
3764 | KERNEL_COBJS := $(KERNEL_COBJS) trace_config.o trace_dump.o
|
---|
3765 | endif
|
---|
3766 |
|
---|
3767 | (3) ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã§ï¼bssã»ã¯ã·ã§ã³ã®ã¯ãªã¢ãçç¥ãã¦ããå ´å
|
---|
3768 | ã«ã¯ï¼trace_modeãTRACE_STOPï¼ï¼0ï¼ã«åæåããã³ã¼ãã追å ããï¼ã
|
---|
3769 | ãã¯ï¼ãã¬ã¼ã¹ãã°æ©è½ãåæåãããåã«æ¸ãè¾¼ã¾ãããã¬ã¼ã¹ãã°ã
|
---|
3770 | ç¡è¦ããããã§ããï¼
|
---|
3771 |
|
---|
3772 | ãã®ãµã³ãã«ã³ã¼ããç¨ãã¦ï¼ãã¬ã¼ã¹ãã°ãè¨é²ã»ãã³ãããæ¹æ³ã®ä¾ã«ã¤
|
---|
3773 | ãã¦ã¯ï¼ãTOPPERS/ASP3ã«ã¼ãã« ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ãã®ã11.6 ãã¬ã¼ã¹
|
---|
3774 | ãã°è¨é²ã®ãµã³ãã«ã³ã¼ãã®ä½¿ç¨æ¹æ³ãã®ç¯ãåç
|
---|
3775 | §ãããã¨ï¼
|
---|
3776 |
|
---|
3777 | ãªãï¼ãã®ãµã³ãã«ã³ã¼ãã§ã¯ï¼ãã£ã¹ãããã£ã®åºå£ï¼ã¿ã¹ã¯ã®ç¶æ
|
---|
3778 | é·ç§»ï¼
|
---|
3779 | ã·ã¹ãã ãã°ã®åºåã®3ã¤ã®ãã¬ã¼ã¹ãã°ã®ã¿ãè¨é²ãã¦ããï¼ä»ã®ãã¬ã¼ã¹ã
|
---|
3780 | ã°ãè¨é²ãããå ´åã«ã¯ï¼trace_config.hï¼ããã³trace_dump.cï¼ãä¿®æ£ãã
|
---|
3781 | å¿
|
---|
3782 | è¦ãããï¼
|
---|
3783 |
|
---|
3784 | 6.12 ã«ã¼ãã«å®è£
|
---|
3785 | ã®ã¿ã¼ã²ããä¾åé¨ã®ããã®ãªãã¼ã è¨è¿°
|
---|
3786 |
|
---|
3787 | ã«ã¼ãã«å
|
---|
3788 | é¨ã«éãã¦ä½¿ãããé¢æ°ãå¤æ°ãªã©ã®å称ã§ï¼ãªãã¸ã§ã¯ããã¡ã¤
|
---|
3789 | ã«ã®ã·ã³ãã«è¡¨ã«ç»é²ããã¦å¤é¨ããåç
|
---|
3790 | §ã§ããå称ã¯ï¼Cè¨èªã¬ãã«ã§ï¼å
|
---|
3791 | é
|
---|
3792 | ã"_kernel_"ã¾ãã¯"_KERNEL_"ã§ããå称ã¨ããªããã°ãªããªããï¼ASP3ã«ã¼
|
---|
3793 | ãã«ã§ã¯ï¼ã½ã¼ã¹ã³ã¼ããã³ã³ãã¯ãã«ä¿ã¡ã¤ã¤ãããå®ç¾ããããã«ï¼ãªãã¼
|
---|
3794 | ã è¨è¿°ãã¡ã¤ã«ãå°å
|
---|
3795 | ¥ãã¦ããï¼
|
---|
3796 |
|
---|
3797 | å
|
---|
3798 | ·ä½çã«ã¯ï¼ãªãã¼ã ãã¹ãå称ããªã¹ãã¢ããããxxx_rename.defãç¨æãï¼
|
---|
3799 | ãã®ãã¡ã¤ã«ãããã¼ã«ï¼utils/genrenameï¼ã«ããï¼å称ããªãã¼ã ãããã
|
---|
3800 | ã®ãã¯ãå®ç¾©ãå«ãxxx_rename.hã¨ï¼ãããã®ãã¯ãå®ç¾©ã解é¤ããããã®
|
---|
3801 | xxx_unrename.hãçæããï¼ãã¼ã«ã®èµ·åæ¹æ³ã¯æ¬¡ã®éãã§ããï¼
|
---|
3802 |
|
---|
3803 | % genrename xxx
|
---|
3804 |
|
---|
3805 | xxx_rename.defã«ã¯ï¼ãªãã¼ã ãã¹ãå称ã1è¡ã«1ã¤è¨è¿°ããï¼xxxxã¨ããå
|
---|
3806 | 称ãè¨è¿°ããã¦ããå ´åï¼xxx_rename.hã«ã¯æ¬¡ã®ãããªè¨è¿°ãçæãããï¼
|
---|
3807 |
|
---|
3808 | #define xxxx _kernel_xxxx
|
---|
3809 | #ifdef TOPPERS_LABEL_ASM
|
---|
3810 | #define _xxxx __kernel_xxxx
|
---|
3811 | #endif /* TOPPERS_LABEL_ASM */
|
---|
3812 |
|
---|
3813 | ã¾ãï¼xxx_unrename.hã«ã¯æ¬¡ã®ãããªè¨è¿°ãçæãããï¼
|
---|
3814 |
|
---|
3815 | #undef xxxx
|
---|
3816 | #ifdef TOPPERS_LABEL_ASM
|
---|
3817 | #undef _xxxx
|
---|
3818 | #endif /* TOPPERS_LABEL_ASM */
|
---|
3819 |
|
---|
3820 | xxx_rename.defã®ä¸ã«ã¯ï¼ä»ã®ãªãã¼ã è¨è¿°ãåãè¾¼ãããã«ï¼ãINCLUDE
|
---|
3821 | "yyy"ãã¾ãã¯ãINCLUDE <yyy>ãã¨ããè¨è¿°ãå«ãããã¨ãã§ããï¼ãã®è¨è¿°
|
---|
3822 | ãããã¦ããå ´åï¼xxx_rename.hã«ã¯ã#include "yyy_rename.h"ãã¾ãã¯
|
---|
3823 | ã#include <yyy_rename.h>ãã¨ããè¨è¿°ãï¼xxx_unrename.hã«ã¯ã#include
|
---|
3824 | "yyy_unrename.h"ãã¾ãã¯ã#include <yyy_unrename.h>ãã¨ããè¨è¿°ãçæã
|
---|
3825 | ããï¼
|
---|
3826 |
|
---|
3827 | xxx_rename.defã®ä¸ã®"#"ã§å§ã¾ãè¡ã¯ã³ã¡ã³ãã¨ãã¦èªã¿é£ã°ãããï¼ã¾ãï¼
|
---|
3828 | 空è¡ãç¡è¦ãããï¼
|
---|
3829 |
|
---|
3830 | ã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾åé¨ã§ä½¿ãããå称ããªãã¼ã ããããã«ï¼kernel
|
---|
3831 | ãã£ã¬ã¯ããªã«ï¼kernel_rename.defã¨ï¼ããããçæããkernel_rename.hã
|
---|
3832 | ãã³kernel_unrename.hãç¨æããã¦ããï¼kernel_rename.defã«ã¯ï¼
|
---|
3833 | ãINCLUDE "target"ãã¨ããè¨è¿°ãå«ã¾ãã¦ããï¼ã¿ã¼ã²ããä¾åé¨ã®ãªãã¼
|
---|
3834 | ã è¨è¿°ãåãè¾¼ãããã«ãªã£ã¦ããï¼ã¿ã¼ã²ããä¾åé¨ã§å®ç¾©ãï¼ã¿ã¼ã²ãã
|
---|
3835 | éä¾åé¨ã§åç
|
---|
3836 | §ãããå称ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã®ãªãã¼ã è¨è¿°ã«å«ããï¼
|
---|
3837 |
|
---|
3838 | ã¿ã¼ã²ããä¾åé¨ã§ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§ä½¿ãããå称ããªãã¼ã ãããã
|
---|
3839 | ã«ï¼target_rename.defã¨ï¼ããããçæããtarget_rename.hããã³
|
---|
3840 | target_unrename.hãç¨æããï¼ã¿ã¼ã²ããä¾åé¨ããéçºç°å¢ä¾åé¨ï¼ããã»ã
|
---|
3841 | ãµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ãåãåããå ´åã«ã¯ï¼target_rename.defã«
|
---|
3842 | INCLUDEè¨è¿°ãå
|
---|
3843 | ¥ãï¼éçºç°å¢ä¾åé¨ï¼ããã»ããµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ã®
|
---|
3844 | ãªãã¼ã è¨è¿°ãåãè¾¼ãããã«ããï¼
|
---|
3845 |
|
---|
3846 | 6.13 é«å解è½ã¿ã¤ããã©ã¤ã
|
---|
3847 |
|
---|
3848 | é«å解è½ã¿ã¤ããã©ã¤ãã¯ï¼ã«ã¼ãã«ãã·ã¹ãã æå»ã®æ´æ°ã«ç¨ããããé«å
|
---|
3849 | 解è½ã¿ã¤ããæ½è±¡åããããã®ããã¤ã¹ãã©ã¤ãã§ããï¼é«å解è½ã¿ã¤ããã©
|
---|
3850 | ã¤ãã«é¢é£ãã¦ï¼target_kernel.hã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«
|
---|
3851 | ã«å«ããã¹ãå®ç¾©ã«ã¤ãã¦ã¯ï¼ã5.3 é«å解è½ã¿ã¤ãã®ã¿ã¤ãå¨æã¨ã«ã¦ã³ã
|
---|
3852 | å¤ã®é²ã¿å¹
|
---|
3853 | ãã®ç¯ãåç
|
---|
3854 | §ãããã¨ï¼
|
---|
3855 |
|
---|
3856 | ãTOPPERS/ASP1ã«ã¼ãã«ã¨ã®é¢ä¿ã
|
---|
3857 |
|
---|
3858 | ASP3ã«ã¼ãã«ã§ã¯ï¼ã¿ã¤ã ãã£ãã¯ãç¨ããªãæé管çã®ããã«ï¼é«å解è½ã¿
|
---|
3859 | ã¤ããç¨ãã¦ããï¼é«å解è½ã¿ã¤ããå¹ççã«å®ç¾ã§ããªãã¿ã¼ã²ããã·ã¹ã
|
---|
3860 | ã åãã«ã¯ï¼é«å解è½ã¿ã¤ããã©ã¤ããï¼ã¿ã¤ã ãã£ãã¯ãç¨ãã¦å®è£
|
---|
3861 | ããæ¹
|
---|
3862 | æ³ãããï¼ãã®å®è£
|
---|
3863 | æ¹æ³ã«ã¤ãã¦ã¯ï¼ã6.13.4 ã¿ã¤ã ãã£ãã¯ãç¨ããã¿ã¤ã
|
---|
3864 | ãã©ã¤ãã®å®è£
|
---|
3865 | ãã®ç¯ãåç
|
---|
3866 | §ãããã¨ï¼
|
---|
3867 |
|
---|
3868 | 6.13.1 é«å解è½ã¿ã¤ããã©ã¤ãã®ãã¡ã¤ã«æ§æ
|
---|
3869 |
|
---|
3870 | é«å解è½ã¿ã¤ããã©ã¤ããçµã¿è¾¼ãããã®éçAPIãè¨è¿°ããã·ã¹ãã ã³ã³ãã£
|
---|
3871 | ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ãï¼target_timer.cfgã«ç¨æããï¼ãã®ãã¡ã¤ã«ã«ã¯ï¼
|
---|
3872 | é«å解è½ã¿ã¤ããã©ã¤ããåæåããããã®åæåã«ã¼ãã³ã®è¿½å ï¼é«å解è½
|
---|
3873 | ã¿ã¤ããã©ã¤ããçµäºãããããã®çµäºå¦çã«ã¼ãã³ã®è¿½å ï¼é«å解è½ã¿ã¤ã
|
---|
3874 | å²è¾¼ã¿ã®ããã®å²è¾¼ã¿ãã³ãã©ã®å®ç¾©ï¼ã¾ãã¯ï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®ç
|
---|
3875 | æï¼ï¼é«å解è½ã¿ã¤ãå²è¾¼ã¿ã®ããã®å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨å®ã®éç
|
---|
3876 | APIãªã©ãå«ããã¨ã«ãªãï¼
|
---|
3877 |
|
---|
3878 | é«å解è½ã¿ã¤ããã©ã¤ããå¼ã³åºãããã«å¿
|
---|
3879 | è¦ãªå®ç¾©ãå«ãããããã¡ã¤ã«ãï¼
|
---|
3880 | target_timer.hã«ç¨æããï¼ã¾ãï¼é«å解è½ã¿ã¤ããã©ã¤ãã®å®è£
|
---|
3881 | ãã¡ã¤ã«ã
|
---|
3882 | target_timer.cã«ç¨æããï¼
|
---|
3883 |
|
---|
3884 | ã·ã¹ãã æå»ã®çµéããã£ããã«è¡ãå¦çã®å¤ãã¯ï¼ã¿ã¹ã¯ã®èµ·åãå¾
|
---|
3885 | ã¡è§£é¤
|
---|
3886 | ãè¡ããã®ã§ããããï¼é«å解è½ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿åªå
|
---|
3887 | 度ã¯ï¼å²è¾¼ã¿ã®ä¸
|
---|
3888 | ã§æä½ã®åªå
|
---|
3889 | 度ã§ååã§ããï¼ãã ãï¼å¨æãã³ãã©ãã¢ã©ã¼ã ãã³ãã©ã®å®
|
---|
3890 | è¡éå§é
|
---|
3891 | ããåé¡ã«ãªãå ´åã«ã¯ï¼é«å解è½ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿åªå
|
---|
3892 | 度ãã
|
---|
3893 | ãé«ãå¤ã«è¨å®ãããï¼ããã§ï¼é«å解è½ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿åªå
|
---|
3894 | 度ãå¤æ´
|
---|
3895 | ããæ¹æ³ãï¼ã¿ã¼ã²ããä¾åé¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã«è¨è¼ãã¹ãã§ããï¼
|
---|
3896 |
|
---|
3897 | 6.13.2 é«å解è½ã¿ã¤ãã®æä½ã¨å²è¾¼ã¿å¦ç
|
---|
3898 |
|
---|
3899 | é«å解è½ã¿ã¤ããã©ã¤ããæä¾ããæ½è±¡åãããé«å解è½ã¿ã¤ãã¯ï¼0ããï¼1
|
---|
3900 | ãã¤ã¯ãç§ã«1ã®ãã¼ã¹ã§ã«ã¦ã³ãã¢ãããï¼ã¿ã¤ãå¨æã«éããã0ã«æ»ãã
|
---|
3901 | ã®ã¨ããï¼1ãã¤ã¯ãç§ã«1ã®ãã¼ã¹ã§ã«ã¦ã³ãã¢ããããã°ï¼1ãã¤é£ç¶ãã¦ã«
|
---|
3902 | ã¦ã³ãã¢ããããªãã¦ãããï¼ä¾ãã°ï¼2ãã¤ã¯ãç§æ¯ã«2ãã¤ã«ã¦ã³ãã¢ãã
|
---|
3903 | ãã¦ãè¯ãï¼ï¼ã¿ã¤ãå¨æã¯ã¿ã¼ã²ããä¾åã§ãããï¼2^32以ä¸ã§ãããã®ã¨
|
---|
3904 | ããï¼
|
---|
3905 |
|
---|
3906 | (6-13-2-1) void target_hrt_initialize(intptr_t exinf)
|
---|
3907 |
|
---|
3908 | é«å解è½ã¿ã¤ããåæåãï¼é«å解è½ã¿ã¤ãã®åä½ãéå§ãããï¼
|
---|
3909 |
|
---|
3910 | ãã®é¢æ°ã¯ï¼target_timer.cfgä¸ã«è¨è¿°ããéçAPIã«ããï¼åæåã«ã¼ãã³ã¨
|
---|
3911 | ãã¦ã«ã¼ãã«ã«ç»é²ããï¼ãã®ããï¼é¢æ°åãå¤æ´ãã¦ãå·®ãæ¯ããªãï¼
|
---|
3912 |
|
---|
3913 | (6-13-2-2) void target_hrt_terminate(intptr_t exinf)
|
---|
3914 |
|
---|
3915 | é«å解è½ã¿ã¤ãã®åä½ãåæ¢ããï¼é«å解è½ã¿ã¤ãå²è¾¼ã¿ãçºçããªãããã«
|
---|
3916 | ããï¼
|
---|
3917 |
|
---|
3918 | ãã®é¢æ°ã¯ï¼target_timer.cfgä¸ã«è¨è¿°ããéçAPIã«ããï¼çµäºå¦çã«ã¼ãã³
|
---|
3919 | ã¨ãã¦ã«ã¼ãã«ã«ç»é²ããï¼ãã®ããï¼é¢æ°åãå¤æ´ãã¦ãå·®ãæ¯ããªãï¼
|
---|
3920 |
|
---|
3921 | (6-13-2-3) HRTCNT target_hrt_get_current(void)
|
---|
3922 |
|
---|
3923 | é«å解è½ã¿ã¤ãã®ç¾å¨å¤ãè¿ãï¼
|
---|
3924 |
|
---|
3925 | (6-13-2-4) void target_hrt_set_event(HRTCNT hrtcnt)
|
---|
3926 |
|
---|
3927 | é«å解è½ã¿ã¤ããï¼hrtcntã§æå®ããå¤ã«ã¦ã³ãã¢ãããããå²è¾¼ã¿ãçºçã
|
---|
3928 | ããããã«è¨å®ããï¼å²è¾¼ã¿ãçºçãããã¿ã¤ãã³ã°ããã§ã«è¨å®ããã¦ãã
|
---|
3929 | å ´åã¯ï¼ããã¾ã§ã«è¨å®ããã¦ããã¿ã¤ãã³ã°ã¯ãã£ã³ã»ã«ããï¼hrtcntã«0ã
|
---|
3930 | 渡ããããã¨ã¯ãªãï¼ãã®ãããªå ´åã«ã¯ï¼target_hrt_raise_eventãå¼ã°ã
|
---|
3931 | ãï¼ï¼
|
---|
3932 |
|
---|
3933 | é«å解è½ã¿ã¤ãã®ã«ã¦ã³ãå¤ã1ãã¤é£ç¶ãã¦ã«ã¦ã³ãã¢ããããªãå ´åã«ã¯ï¼
|
---|
3934 | å²è¾¼ã¿ãçºçãããã¿ã¤ãã³ã°ãé
|
---|
3935 | ãæ¹ã«ä¸¸ããï¼
|
---|
3936 |
|
---|
3937 | (6-13-2-5) void target_hrt_raise_event(void)
|
---|
3938 |
|
---|
3939 | é«å解è½ã¿ã¤ãå²è¾¼ã¿ãå³åº§ã«çºçãããï¼ãã¼ãã¦ã§ã¢ã®æ©è½çã«ãããå®
|
---|
3940 | ç¾ã§ããªãå ´åã«ã¯ï¼æå°ã®ã«ã¦ã³ãã¢ããå¤ã§å²è¾¼ã¿ãçºçãããæ¹æ³ï¼è¨
|
---|
3941 | ãæããã¨ãtarget_hrt_set_event(1U)ãã§å®ç¾ãã¦ãããï¼
|
---|
3942 |
|
---|
3943 | (6-13-2-6) HRTCNT_BOUND
|
---|
3944 |
|
---|
3945 | é«å解è½ã¿ã¤ãã«è¨å®ããã«ã¦ã³ãã¢ããå¤ã®ä¸éå¤ãï¼ãã®ãã¯ãã«å®ç¾©ã
|
---|
3946 | ãï¼HRTCNT_BOUNDã¯ï¼é«å解è½ã¿ã¤ãã®ã¿ã¤ãå¨æï¼TCYC_HRTCNTï¼ããã¿ã¤ã
|
---|
3947 | å²è¾¼ã¿ã®é
|
---|
3948 | 延æéãããé·ãå¤ãæ¸ããå¤ã«å®ç¾©ããï¼ã«ã¼ãã«ã®å®è£
|
---|
3949 | ä¸ã®é½
|
---|
3950 | åã«ããï¼HRTCNT_BOUNDã¯ï¼4,294,000,000æªæºã®å¤ã«è¨å®ããªããã°ãªããªãï¼
|
---|
3951 |
|
---|
3952 | HRTCNT_BOUNDãè¨ãã¦ããçç±ã¯ï¼é«å解è½ã¿ã¤ããã¿ã¤ãå¨æã®ããããã§
|
---|
3953 | å²è¾¼ã¿ããããããã«è¨å®ããå ´åï¼å²è¾¼ã¿ãã³ãã©å
|
---|
3954 | ã§é«å解è½ã¿ã¤ããèª
|
---|
3955 | ãã æç¹ã§ã¿ã¤ãå¨æãè¶ãã¦ããï¼é«å解è½ã¿ã¤ããå¨åãããã¨ãè¦è½ã¨
|
---|
3956 | ãå¯è½æ§ãããããã§ããï¼
|
---|
3957 |
|
---|
3958 | (6-13-2-7) void target_hrt_handler(void)
|
---|
3959 | ã¾ã㯠void target_hrt_isr(intptr_t exinf)
|
---|
3960 |
|
---|
3961 | é«å解è½ã¿ã¤ãå²è¾¼ã¿ã«ããèµ·åãããå²è¾¼ã¿å¦çããã°ã©ã ï¼å²è¾¼ã¿ãã³ã
|
---|
3962 | ã©ã¨ãã¦å®ç¾ããå ´åã«ã¯target_hrt_handlerï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã¨ã
|
---|
3963 | ã¦å®ç¾ããå ´åã«ã¯target_hrt_isrã®å称ã¨ããï¼ã¿ã¼ã²ããéä¾åé¨ã®
|
---|
3964 | signal_timeãå¼ã³åºãï¼
|
---|
3965 |
|
---|
3966 | target_hrt_handlerã¯ï¼æ¨æºçã«ã¯æ¬¡ã®ããã«å®ç¾©ããï¼
|
---|
3967 |
|
---|
3968 | ----------------------------------------
|
---|
3969 | void
|
---|
3970 | target_hrt_handler(void)
|
---|
3971 | {
|
---|
3972 | é«å解è½ã¿ã¤ãå²è¾¼ã¿è¦æ±ã®ã¯ãªã¢ï¼å¿
|
---|
3973 | è¦ãªãï¼
|
---|
3974 | signal_time();
|
---|
3975 | }
|
---|
3976 | ----------------------------------------
|
---|
3977 |
|
---|
3978 | ãã®é¢æ°ã¯ï¼target_timer.cfgä¸ã«è¨è¿°ããéçAPIã«ããï¼å²è¾¼ã¿ãã³ãã©ã¾
|
---|
3979 | ãã¯å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã¨ãã¦ã«ã¼ãã«ã«ç»é²ããï¼ãã®ããï¼é¢æ°åã
|
---|
3980 | å¤æ´ãã¦ãå·®ãæ¯ããªãï¼
|
---|
3981 |
|
---|
3982 | 6.13.3 é«å解è½ã¿ã¤ããã©ã¤ãã®å®è£
|
---|
3983 | ã¢ããã¼ã
|
---|
3984 |
|
---|
3985 | é«å解è½ã¿ã¤ããã©ã¤ãã¯ï¼ãã¼ãã¦ã§ã¢ã§é«æ©è½ãªã¿ã¤ããæã£ã¦ããå ´å
|
---|
3986 | ã«ã¯ï¼1ã¤ã®ã¿ã¤ãã ãã§å®è£
|
---|
3987 | ã§ããå¯è½æ§ãããï¼ã¿ã¤ãã®æ©è½ã«ããï¼ãï¼
|
---|
3988 | ããã§ãªãå ´åã«ã¯ï¼ã¿ã¤ãã2ã¤ä½¿ã£ã¦å®è£
|
---|
3989 | ãããã¨ãæ³å®ãã¦ããï¼
|
---|
3990 |
|
---|
3991 | å
|
---|
3992 | ·ä½çã«ã¯ï¼çæ¹ã®ã¿ã¤ãï¼ä»¥ä¸ï¼ãããã¿ã¤ã1ã¨å¼ã¶ï¼ã¯ï¼ç¡éã«ã«ã¦ã³ã
|
---|
3993 | ããï¼å¿
|
---|
3994 | ç¶çã«å·¡åããï¼ï¼é«å解è½ã¿ã¤ãã®ç¾å¨å¤ãè¿ãã®ã«ç¨ãï¼ããç
|
---|
3995 | æ¹ã®ã¿ã¤ãï¼ä»¥ä¸ï¼ãããã¿ã¤ã2ã¨å¼ã¶ï¼ã¯ï¼å²è¾¼ã¿ãçºçãããããã«ç¨ã
|
---|
3996 | ãï¼
|
---|
3997 |
|
---|
3998 | ãã®æï¼2ã¤ã®ã¿ã¤ããå
|
---|
3999 | ¨ãåãã¿ã¤ãã³ã°ã§ã«ã¦ã³ãã¢ããï¼ã¾ãã¯ã«ã¦ã³ã
|
---|
4000 | ãã¦ã³ï¼ãã¦ããã°åé¡ãªããï¼å®éã«ã¯ï¼2ã¤ã®ã¿ã¤ãã«å¥ã
|
---|
4001 | ã«ããªã¹ã±ã¼ã©
|
---|
4002 | ãå
|
---|
4003 | ¥ã£ã¦ããå ´åãï¼2ã¤ã®ã¿ã¤ããå¥ã®ã¯ããã¯ã§é§åããå ´åã«ã¯ï¼ã«ã¦ã³
|
---|
4004 | ãã¢ããã®ã¿ã¤ãã³ã°ãããããã¨ãèããããï¼ãã®ãããªå ´åã«ã¯ï¼ä»¥ä¸
|
---|
4005 | ã®å¶ç´ãæºããããã«å®è£
|
---|
4006 | ãããã¨ãå¿
|
---|
4007 | è¦ã§ããï¼
|
---|
4008 |
|
---|
4009 | target_hrt_get_current()ã§ã¿ã¤ãå¤ãèªã¿ï¼target_hrt_set_event(count)ã«
|
---|
4010 | ããã¿ã¤ãå²è¾¼ã¿ãçºçãããå¾ï¼target_hrt_get_current()ã§ã¿ã¤ãå¤ãèª
|
---|
4011 | ãã å ´åã«ã¯ï¼2åã®target_hrt_get_current()ã®å¼ã³åºãã®éã«ï¼ã¿ã¤ãå¤ã
|
---|
4012 | count以ä¸é²ãã§ããªããã°ãªããªãï¼
|
---|
4013 |
|
---|
4014 | ããå³å¯ã«ã¯ï¼ä»¥ä¸ã®ã·ã¼ã±ã³ã¹ã§é«å解è½ã¿ã¤ããã©ã¤ããå¼ã³åºããå ´å
|
---|
4015 | ã«ï¼(count2 - count1 >= count)ãæºãããªããã°ãªããªãï¼
|
---|
4016 |
|
---|
4017 | count1 = target_hrt_get_current();
|
---|
4018 | target_hrt_set_event(count);
|
---|
4019 | ⦠ããã§æéãçµé â¦
|
---|
4020 | å²è¾¼ã¿ãçºç
|
---|
4021 | count2 = target_hrt_get_current();
|
---|
4022 |
|
---|
4023 | ç´ ç´ã«å®è£
|
---|
4024 | ããã¨ãã®æ¡ä»¶ãæºãããªãå ´åã«ã¯ï¼target_hrt_set_eventã§å²
|
---|
4025 | è¾¼ã¿ãçºçãããã¿ã¤ãã³ã°ãé
|
---|
4026 | ãæ¹ã«èª¿æ´ããï¼
|
---|
4027 |
|
---|
4028 | 6.13.4 ã¿ã¤ã ãã£ãã¯ãç¨ããã¿ã¤ããã©ã¤ãã®å®è£
|
---|
4029 |
|
---|
4030 |
|
---|
4031 | ASP1ã«ã¼ãã«ã¨åæ§ã«ï¼ã¿ã¤ã ãã£ãã¯ã«ããæé管çãè¡ãããå ´åã«ï¼é«
|
---|
4032 | å解è½ã¿ã¤ããã©ã¤ããã¿ã¤ã ãã£ãã¯ãç¨ãã¦å®è£
|
---|
4033 | ãããã¨ã§ï¼ã¿ã¼ã²ãã
|
---|
4034 | ä¾åé¨ã®ã¿ã®ä¿®æ£ã§å¯¾å¿ãããã¨ãã§ããï¼ãã ãï¼ãã®æ¹æ³ã¯ï¼ã«ã¼ãã«ã®
|
---|
4035 | æé管çæ©è½ã«æãå ããããã§ã¯ãªãããï¼ã«ã¼ãã«ãä¸å¿
|
---|
4036 | è¦ãªä»äºããã¦
|
---|
4037 | ãã¾ããã¨ã¯è¨±å®¹ããå¿
|
---|
4038 | è¦ãããï¼
|
---|
4039 |
|
---|
4040 | ã¿ã¤ã ãã£ãã¯ãç¨ãã¦é«å解è½ã¿ã¤ããã©ã¤ããå®è£
|
---|
4041 | ããå ´åã«ã¯ï¼åãã¯
|
---|
4042 | ãããã³é¢æ°ã次ã®ããã«å®è£
|
---|
4043 | ããï¼
|
---|
4044 |
|
---|
4045 | ã»TCYC_HRTCNTï¼é«å解è½ã¿ã¤ãã®ã¿ã¤ãå¨æï¼ã¯å®ç¾©ããªãï¼ã¿ã¤ãå¨æã
|
---|
4046 | ã2^32ã®æå³ã«ãªãï¼ï¼
|
---|
4047 | ã»TSTEP_HRTCNTï¼é«å解è½ã¿ã¤ãã®ã«ã¦ã³ãå¤ã®é²ã¿å¹
|
---|
4048 | ï¼ãï¼ã¿ã¤ã ãã£ãã¯
|
---|
4049 | ãã®å¨æã«å®ç¾©ããï¼åä½ã¯ãã¤ã¯ãç§ï¼ï¼
|
---|
4050 | ã»é«å解è½ã¿ã¤ãã®ç¾æç¹ã®å¤ãä¿æããå¤æ°ï¼hrtcnt_currentï¼HRTCNTåï¼
|
---|
4051 | ããç¨æããï¼
|
---|
4052 | ã»target_hrt_initializeã§ã¯ï¼ã¿ã¤ããåæåãï¼ã¿ã¤ãå²è¾¼ã¿ãå¨æçã«çº
|
---|
4053 | ãçãããããã«ããï¼ã¾ãï¼hrtcnt_currentã0ã«åæåããï¼
|
---|
4054 | ã»target_hrt_terminateã§ã¯ï¼ã¿ã¤ãã®åä½ãåæ¢ããï¼ã¿ã¤ãå²è¾¼ã¿ãçºç
|
---|
4055 | ãããªãããã«ããï¼
|
---|
4056 | ã»target_hrt_get_currentã¯ï¼hrtcnt_currentã®å¤ãè¿ãï¼
|
---|
4057 | ã»target_hrt_set_eventã¨target_hrt_raise_eventã§ã¯ä½ãããªãï¼
|
---|
4058 | ã»HRTCNT_BOUNDã¯ï¼4000000002ã«å®ç¾©ãããã¨ãæ¨å¥¨ããï¼
|
---|
4059 | ã»target_hrt_handlerã¾ãã¯target_hrt_isrã¯ï¼ï¼å¿
|
---|
4060 | è¦ãªãï¼ã¿ã¤ãå²è¾¼ã¿è¦
|
---|
4061 | ãæ±ãã¯ãªã¢ãï¼hrtcnt_currentã«ã¿ã¤ã ãã£ãã¯ã®å¨æãå ããå¾ï¼ã¿ã¼ã²ã
|
---|
4062 | ããéä¾åé¨ã®signal_timeãå¼ã³åºãï¼
|
---|
4063 |
|
---|
4064 | 6.14 ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãï¼ãªãã·ã§ã³ï¼
|
---|
4065 |
|
---|
4066 | ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãã¯ï¼ã«ã¼ãã«ããªã¼ãã©ã³ãã³ãã©æ©è½ã®å®ç¾ã«ç¨
|
---|
4067 | ããããã®ãªã¼ãã©ã³ã¿ã¤ããæ½è±¡åããããã®ããã¤ã¹ãã©ã¤ãã§ããï¼ãªã¼
|
---|
4068 | ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ããµãã¼ãããªãå ´åã«ã¯ï¼ãªã¼ãã©ã³ã¿
|
---|
4069 | ã¤ããã©ã¤ããç¨æããå¿
|
---|
4070 | è¦ã¯ãªãï¼
|
---|
4071 |
|
---|
4072 | 6.14.1 ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãã®ãã¡ã¤ã«æ§æ
|
---|
4073 |
|
---|
4074 | ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãã¯ï¼é«å解è½ã¿ã¤ããã©ã¤ãã¨åããã¡ã¤ã«ã®ä¸ã«
|
---|
4075 | è¨è¿°ããï¼ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãã®ããã®è¨è¿°ã¯ï¼TOPPERS_SUPPORT_OVRHDR
|
---|
4076 | ããã¯ãå®ç¾©ããã¦ããå ´åã«ã®ã¿æå¹ã«ãªãããã«ããï¼
|
---|
4077 |
|
---|
4078 | å
|
---|
4079 | ·ä½çã«ã¯ï¼ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ããçµã¿è¾¼ãããã®éçAPIã¯
|
---|
4080 | target_timer.cfgã®ä¸ã«è¨è¿°ããï¼ãã®ãã¡ã¤ã«ã«ã¯ï¼ãªã¼ãã©ã³ã¿ã¤ããã©
|
---|
4081 | ã¤ããåæåããããã®åæåã«ã¼ãã³ã®è¿½å ï¼ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãã
|
---|
4082 | çµäºãããããã®çµäºå¦çã«ã¼ãã³ã®è¿½å ï¼ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ã®ããã®
|
---|
4083 | å²è¾¼ã¿ãã³ãã©ã®å®ç¾©ï¼ã¾ãã¯ï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®çæï¼ï¼ãªã¼ãã©
|
---|
4084 | ã³ã¿ã¤ãå²è¾¼ã¿ã®ããã®å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨å®ã®éçAPIãªã©ãå«ãã
|
---|
4085 | ã¨ã«ãªãï¼
|
---|
4086 |
|
---|
4087 | ã¾ãï¼ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ããå¼ã³åºãããã«å¿
|
---|
4088 | è¦ãªå®ç¾©ã¯
|
---|
4089 | target_timer.hã®ä¸ã«ï¼ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãã®å®è£
|
---|
4090 | ã¯target_timer.cã®
|
---|
4091 | ä¸ã«è¨è¿°ããï¼
|
---|
4092 |
|
---|
4093 | ãªã¼ãã©ã³ãã³ãã©ã¯ï¼ã¿ã¹ã¯ã®ãªã¼ãã©ã³ã«å¯¾ããå¦çãè¡ããã®ã§ããã
|
---|
4094 | ãï¼ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿åªå
|
---|
4095 | 度ã¯ï¼å²è¾¼ã¿ã®ä¸ã§æä½ã®åªå
|
---|
4096 | 度ã§
|
---|
4097 | ååã§ããï¼ãã ãï¼ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿åªå
|
---|
4098 | 度ãããé«ãå¤ã«
|
---|
4099 | è¨å®ãããå ´åããªãã¨ã¯è¨ããªãããï¼ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿åª
|
---|
4100 | å
|
---|
4101 | 度ãå¤æ´ããæ¹æ³ãï¼ã¿ã¼ã²ããä¾åé¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã«è¨è¼ãã¹
|
---|
4102 | ãã§ããï¼
|
---|
4103 |
|
---|
4104 | 6.14.2 ãªã¼ãã©ã³ã¿ã¤ãã®æä½ã¨å²è¾¼ã¿å¦ç
|
---|
4105 |
|
---|
4106 | (6-14-2-1) void target_ovrtimer_initialize(intptr_t exinf)
|
---|
4107 |
|
---|
4108 | ãªã¼ãã©ã³ã¿ã¤ãã®åæåå¦çãè¡ãï¼ã¿ã¤ãã®åä½éå§ã¯è¡ããªãï¼
|
---|
4109 |
|
---|
4110 | ãã®é¢æ°ã¯ï¼target_timer.cfgä¸ã«è¨è¿°ããéçAPIã«ããï¼åæåã«ã¼ãã³ã¨
|
---|
4111 | ãã¦ã«ã¼ãã«ã«ç»é²ããï¼ãã®ããï¼é¢æ°åãå¤æ´ãã¦ãå·®ãæ¯ããªãï¼
|
---|
4112 |
|
---|
4113 | (6-14-2-2) void target_ovrtimer_terminate(intptr_t exinf)
|
---|
4114 |
|
---|
4115 | ãªã¼ãã©ã³ã¿ã¤ããåæ¢ããï¼ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ãçºçããªãããã«ã
|
---|
4116 | ãï¼
|
---|
4117 |
|
---|
4118 | ãã®é¢æ°ã¯ï¼target_timer.cfgä¸ã«è¨è¿°ããéçAPIã«ããï¼çµäºå¦çã«ã¼ãã³
|
---|
4119 | ã¨ãã¦ã«ã¼ãã«ã«ç»é²ããï¼ãã®ããï¼é¢æ°åãå¤æ´ãã¦ãå·®ãæ¯ããªãï¼
|
---|
4120 |
|
---|
4121 | (6-14-2-3) void target_ovrtimer_start(PRCTIM ovrtim)
|
---|
4122 |
|
---|
4123 | ãªã¼ãã©ã³ã¿ã¤ããï¼ovrtimã§æå®ããæéãçµéãããå²è¾¼ã¿ãçºçããã
|
---|
4124 | ãã«è¨å®ãï¼åä½éå§ããï¼ovrtimã0ã®å ´åã¯ï¼ã§ããéãæ©ããªã¼ãã©ã³ã¿
|
---|
4125 | ã¤ãå²è¾¼ã¿ãçºçãããï¼ovrtimã®åä½ã¯ãã¤ã¯ãç§ã¨ããï¼
|
---|
4126 |
|
---|
4127 | (6-14-2-4) PRCTIM target_ovrtimer_stop(void)
|
---|
4128 |
|
---|
4129 | ãªã¼ãã©ã³ã¿ã¤ããåæ¢ãï¼ã¿ã¤ãã®æ®ãæéï¼å²è¾¼ã¿çºçã¾ã§ã®æéï¼ãè¿
|
---|
4130 | ãï¼æ®ãæéããªããªã£ã¦ããå ´åã«ã¯ï¼0ãè¿ãï¼ã¾ãï¼ãªã¼ãã©ã³ã¿ã¤ãã
|
---|
4131 | ãã®å²è¾¼ã¿è¦æ±ãã¯ãªã¢ããï¼ã¯ãªã¢ããªãã¨ã¹ããªã¢ã¹å²è¾¼ã¿ãçºçãããï¼
|
---|
4132 | ã¯ãªã¢ãããã¨ã¯å¿
|
---|
4133 | é ã§ã¯ãªãï¼ï¼
|
---|
4134 |
|
---|
4135 | (6-14-2-5) PRCTIM target_ovrtimer_get_current(void)
|
---|
4136 |
|
---|
4137 | ãªã¼ãã©ã³ã¿ã¤ãã®æ®ãæéï¼å²è¾¼ã¿çºçã¾ã§ã®æéï¼ãèªã¿åºãï¼æ®ãæé
|
---|
4138 | ããªããªã£ã¦ããå ´åã«ã¯ï¼0ãè¿ãï¼ãªã¼ãã©ã³ã¿ã¤ãããã®å²è¾¼ã¿ã¯ã¯ãªã¢
|
---|
4139 | ããªãï¼
|
---|
4140 |
|
---|
4141 | (6-14-2-6) void target_ovrtimer_handler(void)
|
---|
4142 | ã¾ã㯠void target_ovrtimer_isr(intptr_t exinf)
|
---|
4143 |
|
---|
4144 | ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ã«ããèµ·åãããå²è¾¼ã¿å¦çããã°ã©ã ï¼å²è¾¼ã¿ãã³
|
---|
4145 | ãã©ã¨ãã¦å®ç¾ããå ´åã«ã¯target_ovrtimer_handlerï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ã
|
---|
4146 | ã³ã¨ãã¦å®ç¾ããå ´åã«ã¯target_ovrtimer_isrã®å称ã¨ããï¼ã¿ã¼ã²ããéä¾
|
---|
4147 | åé¨ã®call_ovrhdrãå¼ã³åºãï¼
|
---|
4148 |
|
---|
4149 | target_ovrtimer_handlerã¯ï¼æ¨æºçã«ã¯æ¬¡ã®ããã«å®ç¾©ããï¼
|
---|
4150 |
|
---|
4151 | ----------------------------------------
|
---|
4152 | void
|
---|
4153 | target_ovrtimer_handler(void)
|
---|
4154 | {
|
---|
4155 | ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿è¦æ±ã®ã¯ãªã¢ï¼å¿
|
---|
4156 | è¦ãªãï¼
|
---|
4157 | call_ovrhdr();
|
---|
4158 | }
|
---|
4159 | ----------------------------------------
|
---|
4160 |
|
---|
4161 | ãã®é¢æ°ã¯ï¼target_timer.cfgä¸ã«è¨è¿°ããéçAPIã«ããï¼å²è¾¼ã¿ãã³ãã©ã¾
|
---|
4162 | ãã¯å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã¨ãã¦ã«ã¼ãã«ã«ç»é²ããï¼ãã®ããï¼é¢æ°åã
|
---|
4163 | å¤æ´ãã¦ãå·®ãæ¯ããªãï¼
|
---|
4164 |
|
---|
4165 | (6-14-2-7) OMIT_OVRTIMER_STARTï¼ãªãã·ã§ã³ï¼
|
---|
4166 | (6-14-2-8) OMIT_OVRTIMER_STOPï¼ãªãã·ã§ã³ï¼
|
---|
4167 |
|
---|
4168 | ã¿ã¼ã²ããä¾åé¨ããå¼ã³åºãovrtimer_startã¨ovrtimer_stopãï¼ã¢ã»ã³ããª
|
---|
4169 | è¨èªã®ã½ã¼ã¹ã³ã¼ãä¸ã«å±éãï¼Cè¨èªã®é¢æ°ãä¸è¦ã«ãªãå ´åã«ã¯ï¼ããããï¼
|
---|
4170 | OMIT_OVRTIMER_STARTã¨OMIT_OVRTIMER_STOPããã¯ãå®ç¾©ããï¼
|
---|
4171 |
|
---|
4172 | 6.15 åçã¡ã¢ãªç®¡çï¼ãªãã·ã§ã³ï¼
|
---|
4173 |
|
---|
4174 | åççææ©è½æ¡å¼µããã±ã¼ã¸ã使ç¨ããå ´åã«ã¯ï¼ã«ã¼ãã«å
|
---|
4175 | ã§ã®åçã¡ã¢ãª
|
---|
4176 | 管çã®æ¹æ³ã決ããå¿
|
---|
4177 | è¦ãããï¼
|
---|
4178 |
|
---|
4179 | åççææ©è½æ¡å¼µããã±ã¼ã¸ã®ã¿ã¼ã²ããéä¾åé¨ã§ã¯ï¼ã¡ã¢ãªé åãå
|
---|
4180 | é ã
|
---|
4181 | ãé ã«å²ãå½ã¦ï¼è§£æ¾ãããã¡ã¢ãªé åãåå©ç¨ããªãã¡ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«
|
---|
4182 | ã®ã¿ãå®è£
|
---|
4183 | ãã¦ããï¼ããã©ã«ãã§ã¯ï¼ãã®ã¡ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«ã使ç¨ãã
|
---|
4184 | ãï¼
|
---|
4185 |
|
---|
4186 | æ¬æ ¼çãªåçã¡ã¢ãªç®¡çãè¡ãããå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã¾ãã¯ã¦ã¼ã¶
|
---|
4187 | å´ã§ï¼ä»¥ä¸ã®é¢æ°ãå®ç¾©ããã¡ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«ãç¨æããå¿
|
---|
4188 | è¦ãããï¼
|
---|
4189 |
|
---|
4190 | (6-15-1) OMIT_KMM_ALLOCONLYï¼ãªãã·ã§ã³ï¼
|
---|
4191 |
|
---|
4192 | ã¿ã¼ã²ããéä¾åé¨ã®ã¡ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«ã使ç¨ããï¼ã¿ã¼ã²ããä¾åé¨ã¾
|
---|
4193 | ãã¯ã¦ã¼ã¶å´ã§ç¨æããå ´åã«ã¯ï¼ãã®ã·ã³ãã«ããã¯ãå®ç¾©ããï¼
|
---|
4194 |
|
---|
4195 | (6-15-2) void initialize_kmm(void)ï¼ãªãã·ã§ã³ï¼
|
---|
4196 |
|
---|
4197 | ã¡ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«ãåæåããé¢æ°ï¼ã«ã¼ãã«ã®å²ãä»ããã¡ã¢ãªé åã®
|
---|
4198 | ãµã¤ãºã¨å
|
---|
4199 | é çªå°ã¯ï¼ããããkmmszã¨kmmã«ãã£ã¦åç
|
---|
4200 | §ã§ããï¼
|
---|
4201 |
|
---|
4202 | (6-15-3) void *kernel_malloc(size_t size)ï¼ãªãã·ã§ã³ï¼
|
---|
4203 |
|
---|
4204 | sizeã§æå®ããããµã¤ãºã®ã¡ã¢ãªé åãå²ãä»ãï¼ãã®å
|
---|
4205 | é çªå°ãè¿ãé¢æ°ï¼
|
---|
4206 | å²ãä»ãããã¨ãã§ããªãå ´åã«ã¯ï¼NULLãè¿ãï¼
|
---|
4207 |
|
---|
4208 | (6-15-4) void kernel_free(void *ptr)ï¼ãªãã·ã§ã³ï¼
|
---|
4209 |
|
---|
4210 | ptrã§æå®ãããã¡ã¢ãªé åã解æ¾ããé¢æ°ï¼
|
---|
4211 |
|
---|
4212 | 6.15.1 TLSFãç¨ããã¡ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«ã®ä¾
|
---|
4213 |
|
---|
4214 | ãªã¼ãã³ã½ã¼ã¹ã®ã¡ã¢ãªå²ä»ãã©ã¤ãã©ãªã§ããTLSFãç¨ãã¦åçã¡ã¢ãªç®¡ç
|
---|
4215 | ãå®ç¾ããã«ã¯ï¼OMIT_KMM_ALLOCONLYããã¯ãå®ç¾©ãï¼ä»¥ä¸ã®é¢æ°å®ç¾©çãCè¨
|
---|
4216 | èªã½ã¼ã¹ãã¡ã¤ã«ã«å«ããã°ããï¼
|
---|
4217 |
|
---|
4218 | ----------------------------------------
|
---|
4219 | #include "tlsf.h"
|
---|
4220 |
|
---|
4221 | static bool_t tlsf_initialized = false;
|
---|
4222 |
|
---|
4223 | void
|
---|
4224 | initialize_kmm(void)
|
---|
4225 | {
|
---|
4226 | if (init_memory_pool(kmmsz, kmm) >= 0) {
|
---|
4227 | tlsf_initialized = true;
|
---|
4228 | }
|
---|
4229 | }
|
---|
4230 |
|
---|
4231 | void *
|
---|
4232 | kernel_malloc(size_t size)
|
---|
4233 | {
|
---|
4234 | if (tlsf_initialized) {
|
---|
4235 | return(malloc_ex(size, kmm));
|
---|
4236 | }
|
---|
4237 | else {
|
---|
4238 | return(NULL);
|
---|
4239 | }
|
---|
4240 | }
|
---|
4241 |
|
---|
4242 | void
|
---|
4243 | kernel_free(void *ptr)
|
---|
4244 | {
|
---|
4245 | if (tlsf_initialized) {
|
---|
4246 | free_ex(ptr, kmm);
|
---|
4247 | }
|
---|
4248 | }
|
---|
4249 | ----------------------------------------
|
---|
4250 |
|
---|
4251 |
|
---|
4252 | ï¼ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿è¨å®ãã¡ã¤ã«ã®ã¿ã¼ã²ããä¾åé¨
|
---|
4253 |
|
---|
4254 | 7.1 è¨å®ãã¡ã¤ã«ã¨ã¿ã¼ã²ããä¾åé¨ã®ä½ç½®ä»ã
|
---|
4255 |
|
---|
4256 | ASP3ã«ã¼ãã«ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¯ï¼è¨å®ãã¡ã¤ã«ã®è¨è¿°ã«å¾ã£ã¦ãã¡ã¤ã«
|
---|
4257 | ã®çæããã³ã¨ã©ã¼ãã§ãã¯ãè¡ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®è¨å®ãã¡ã¤ã«ã«ã¯ï¼
|
---|
4258 | 以ä¸ã®4ã¤ãããï¼
|
---|
4259 |
|
---|
4260 | (a) éçAPIãã¼ãã«
|
---|
4261 |
|
---|
4262 | éçAPIã®ä¸è¦§ã¨ï¼åéçAPIã®ãã©ã¡ã¼ã¿ã«ã¤ãã¦è¨è¿°ãããã¡ã¤ã«ï¼éç
|
---|
4263 | APIãæ¡å¼µããå ´å以å¤ã¯å¤æ´ããå¿
|
---|
4264 | è¦ããªãããï¼ã¿ã¼ã²ããéä¾åé¨ã§ç¨æ
|
---|
4265 | ãã¦ããï¼kernel/kernel_api.csvï¼ï¼
|
---|
4266 |
|
---|
4267 | (b) å¤åå¾ã·ã³ãã«ãã¼ãã«
|
---|
4268 |
|
---|
4269 | ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹1ã«ããã¦ï¼ãã©ã¡ã¼ã¿è¨ç®ç¨Cè¨èªãã¡ã¤ã«ã«åºå
|
---|
4270 | ãï¼å¤ãæ±ãããã·ã³ãã«ï¼ä¸è¬ã«ã¯å¼ï¼ãè¨è¿°ããããã®ãã¡ã¤ã«ï¼ã¿ã¼ã²ã
|
---|
4271 | ãéä¾åé¨ã§ã¯ï¼ã¿ã¼ã²ããã«ä¾åããã«å¿
|
---|
4272 | è¦ã¨ãªãã·ã³ãã«ãè¨è¿°ãããã¡
|
---|
4273 | ã¤ã«ãç¨æãã¦ããï¼kernel/kernel_def.csvï¼ï¼
|
---|
4274 |
|
---|
4275 | ã¿ã¼ã²ããã«ä¾åãã¦å¿
|
---|
4276 | è¦ã¨ãªãã·ã³ãã«ãããå ´åã«ã¯ï¼targetãã£ã¬ã¯ã
|
---|
4277 | ãªã«ç½®ãããtarget_def.csvä¸ã«è¨è¿°ããï¼target_def.csvä¸ã«è¨è¿°ãã¦å¤ã
|
---|
4278 | æ±ãããã¨ãã§ããã·ã³ãã«ã¯ï¼kernel/kernel_int.hããã³ããããã¤ã³ã¯ã«ã¼
|
---|
4279 | ãããããã¡ã¤ã«ã§å®ç¾©ããã¦ããªããã°ãªããªãï¼kernel_int.hããã¯ï¼
|
---|
4280 | target_stddef.hï¼target_kernel.hï¼target_kernel_impl.hãï¼éæ¥çã«ï¼ã¤
|
---|
4281 | ã³ã¯ã«ã¼ããã¦ããããï¼ãããã®ãã¡ã¤ã«ããã³ããããã¤ã³ã¯ã«ã¼ããã
|
---|
4282 | ããã¡ã¤ã«ã§å®ç¾©ãããã¿ã¼ã²ããä¾åã®ã·ã³ãã«ã¯ï¼target_def.csvä¸ã«è¨
|
---|
4283 | è¿°ãããã¨ãã§ããï¼
|
---|
4284 |
|
---|
4285 | ããã§å¤ãæ±ããã·ã³ãã«ã®å¤ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹2ããã³ãã¹3ã®
|
---|
4286 | ãã³ãã¬ã¼ããã¡ã¤ã«ä¸ã§åç
|
---|
4287 | §ãããã¨ãã§ããï¼
|
---|
4288 |
|
---|
4289 | (c) ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«
|
---|
4290 |
|
---|
4291 | ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹2ã¯ï¼ãã³ãã¬ã¼ããã¡ã¤ã«ã«å¾ã£ã¦ï¼ã«ã¼ãã«ã®æ§
|
---|
4292 | æã»åæåãã¡ã¤ã«ï¼kernel_cfg.cï¼ï¼æ§æã»åæåããããã¡ã¤ã«
|
---|
4293 | ï¼kernel_cfg.hï¼ãªã©ãçæããï¼ãã®ãã³ãã¬ã¼ããã¡ã¤ã«ã¯ï¼ã¿ã¼ã²ãã
|
---|
4294 | éä¾åé¨ã¨ã¿ã¼ã²ããä¾åé¨ã«åãåãã¦ãããï¼ä»ã®ãã¡ã¤ã«ã®ã¿ã¼ã²ãã
|
---|
4295 | ä¾åé¨ã¨ã¯éã«ï¼ã¿ã¼ã²ããä¾åé¨ããã¿ã¼ã²ããéä¾åé¨ãã¤ã³ã¯ã«ã¼ãã
|
---|
4296 | ãå½¢ã«ãªã£ã¦ããï¼
|
---|
4297 |
|
---|
4298 | å
|
---|
4299 | ·ä½çã«ã¯ï¼targetãã£ã¬ã¯ããªã«ç½®ãããtarget.tfã§ï¼å¿
|
---|
4300 | è¦ãªå¤æ°ãå®ç¾©ã
|
---|
4301 | ãå¾ï¼ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾åé¨ï¼kernel/kernel.tfï¼ãã¤
|
---|
4302 | ã³ã¯ã«ã¼ãããï¼kernel.tfã§ã¯ï¼ã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾åé¨ã§ä½¿ç¨ããå¤
|
---|
4303 | æ°å®ç¾©çãçæããï¼kernel.tfãã¤ã³ã¯ã«ã¼ãããå¾ï¼target.tfã§ã¯ï¼ã«ã¼
|
---|
4304 | ãã«ã®ã¿ã¼ã²ããä¾åé¨ã§ä½¿ç¨ããå¤æ°å®ç¾©çãçæããï¼target.tfããï¼é
|
---|
4305 | çºç°å¢ä¾åé¨ï¼ããã»ããµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ãåãåãã¦ãããï¼
|
---|
4306 |
|
---|
4307 | (d) ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«
|
---|
4308 |
|
---|
4309 | ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹3ã¯ï¼ãã³ãã¬ã¼ããã¡ã¤ã«ã«å¾ã£ã¦ï¼éçAPIã®ä¸
|
---|
4310 | è¬å®æ°å¼ãã©ã¡ã¼ã¿ã®ãã§ãã¯ãè¡ãï¼ãã®ãã³ãã¬ã¼ããã¡ã¤ã«ãï¼ã¿ã¼ã²ã
|
---|
4311 | ãéä¾åé¨ã¨ã¿ã¼ã²ããä¾åé¨ã«åãåãã¦ããï¼ã¿ã¼ã²ããä¾åé¨ããã¿ã¼
|
---|
4312 | ã²ããéä¾åé¨ãã¤ã³ã¯ã«ã¼ãããå½¢ã«ãªã£ã¦ããï¼
|
---|
4313 |
|
---|
4314 | å
|
---|
4315 | ·ä½çã«ã¯ï¼targetãã£ã¬ã¯ããªã«ç½®ãããtarget_check.tfã§ï¼å¿
|
---|
4316 | è¦ãªå¤æ°ã
|
---|
4317 | å®ç¾©ããå¾ï¼ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾åé¨
|
---|
4318 | ï¼kernel/kernel_check.tfï¼ãã¤ã³ã¯ã«ã¼ãããï¼kernel_check.tfã§ã¯ï¼ã«ã¼
|
---|
4319 | ãã«ã®ã¿ã¼ã²ããéä¾åé¨ã§åæåãããã¯ã«åºåããä¸è¬å®æ°å¼ãã©ã¡ã¼ã¿
|
---|
4320 | ã®ãã§ãã¯ãè¡ãï¼kernel_check.tfãã¤ã³ã¯ã«ã¼ãããå¾ï¼target_check.tf
|
---|
4321 | ã§ã¯ï¼ã¿ã¼ã²ããã«ä¾åãããã§ãã¯ãè¡ãï¼target_check.tfããï¼éçºç°å¢
|
---|
4322 | ä¾åé¨ï¼ããã»ããµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ãåãåãã¦ãããï¼
|
---|
4323 |
|
---|
4324 | ãªãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®è©³ç´°ä»æ§ã¨è¨å®ãã¡ã¤ã«ã®è¨è¿°æ¹æ³ã«ã¤ãã¦ã¯ï¼
|
---|
4325 | å¥éPDFãã¡ã¤ã«ã®å½¢ã§é
|
---|
4326 | å¸ãã¦ãããTOPPERSæ°ä¸ä»£ã«ã¼ãã«ç¨ã³ã³ãã£ã®ã¥
|
---|
4327 | ã¬ã¼ã¿ä»æ§ãããã³ãTOPPERSæ°ä¸ä»£ã«ã¼ãã«ç¨ã³ã³ãã£ã®ã¥ã¬ã¼ã¿å
|
---|
4328 | èµãã¯ã
|
---|
4329 | ããã»ããµä»æ§ããåç
|
---|
4330 | §ãããã¨ï¼
|
---|
4331 |
|
---|
4332 | 7.2 ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾åé¨
|
---|
4333 |
|
---|
4334 | 以ä¸ã§ã¯ï¼ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾åé¨ãè¨è¿°ããä¸ã§å¿
|
---|
4335 |
|
---|
4336 | è¦ãªäºé
|
---|
4337 | ã«ã¤ãã¦èª¬æããï¼
|
---|
4338 |
|
---|
4339 | 7.2.1 ã¿ã¼ã²ããéä¾åé¨ãã¤ã³ã¯ã«ã¼ãããåã«å®ç¾©ãã¹ãå¤æ°
|
---|
4340 |
|
---|
4341 | target.tfããkernel.tfãã¤ã³ã¯ã«ã¼ãããåã«ï¼æ¬¡ã®å¤æ°ãå®ç¾©ãã¦ãããª
|
---|
4342 | ããã°ãªããªãï¼
|
---|
4343 |
|
---|
4344 | (7-2-1-1) INTNO_VALID æå¹ãªå²è¾¼ã¿çªå·ã®ãªã¹ã
|
---|
4345 | (7-2-1-2) INHNO_VALID æå¹ãªå²è¾¼ã¿ãã³ãã©çªå·ã®ãªã¹ã
|
---|
4346 | (7-2-1-3) EXCNO_VALID æå¹ãªCPUä¾å¤ãã³ãã©çªå·ã®ãªã¹ã
|
---|
4347 |
|
---|
4348 | æå¹ãªå²è¾¼ã¿çªå·ï¼å²è¾¼ã¿ãã³ãã©çªå·ï¼CPUä¾å¤ãã³ãã©çªå·ã®ãªã¹ããï¼å
|
---|
4349 | å¤æ°ã«å®ç¾©ããï¼
|
---|
4350 |
|
---|
4351 | (7-2-1-4) INTNO_CREISR_VALIDï¼ãªãã·ã§ã³ï¼
|
---|
4352 | (7-2-1-5) INHNO_CREISR_VALIDï¼ãªãã·ã§ã³ï¼
|
---|
4353 |
|
---|
4354 | CRE_ISRã§ä½¿ç¨ã§ããå²è¾¼ã¿çªå·ã®ãªã¹ããINTNO_CREISR_VALIDã«ï¼ããã«å¯¾å¿
|
---|
4355 | ããå²è¾¼ã¿ãã³ãã©çªå·ã®ãªã¹ããINHNO_CREISR_VALIDã«å®ç¾©ããï¼ä¸¡è
|
---|
4356 | ã¯ï¼
|
---|
4357 | é åºã¾ã§å«ãã¦å¯¾å¿ãã¦ããªããã°ãªããªãï¼
|
---|
4358 |
|
---|
4359 | ãããã®å¤æ°ãå®ç¾©ããªãå ´åï¼ããããINTNO_VALIDã¨INHNO_VALIDã使ãã
|
---|
4360 | ãï¼ããã§è¯ãå ´åã«ã¯ï¼ãããã®å¤æ°ãå®ç¾©ããå¿
|
---|
4361 | è¦ã¯ãªãï¼
|
---|
4362 |
|
---|
4363 | (7-2-1-6) INTPRI_CFGINT_VALIDï¼ãªãã·ã§ã³ï¼
|
---|
4364 |
|
---|
4365 | CFG_INTã§ä½¿ç¨ã§ããå²è¾¼ã¿åªå
|
---|
4366 | 度ã®ãªã¹ããå®ç¾©ããå¤æ°ï¼æ¨æºã§ã¯ï¼
|
---|
4367 | TMIN_INTPRI以ä¸ï¼TMIN_INTPRIï¼ï¼-1ï¼ä»¥ä¸ã®å¤ãCFG_INTã«å¯¾ããå²è¾¼ã¿åªå
|
---|
4368 |
|
---|
4369 | 度ã¨ãã¦æå¹ã§ãããï¼ã¿ã¼ã²ããä¾åé¨ã§ãã®å¤æ°ãå®ç¾©ãããã¨ã§ï¼
|
---|
4370 | TMIN_INTPRIãããå°ããå¤ãæå¹ã¨ãããã¨ãã§ããï¼
|
---|
4371 |
|
---|
4372 | (7-2-1-7) INTNO_FIX_KERNELï¼ãªãã·ã§ã³ï¼ ã«ã¼ãã«ç®¡çã«åºå®ããã¦ãã
|
---|
4373 | å²è¾¼ã¿çªå·
|
---|
4374 | (7-2-1-8) INHNO_FIX_KERNELï¼ãªãã·ã§ã³ï¼ ã«ã¼ãã«ç®¡çã«åºå®ããã¦ãã
|
---|
4375 | å²è¾¼ã¿ãã³ãã©çªå·
|
---|
4376 | (7-2-1-9) INHNO_FIX_NONKERNELï¼ãªãã·ã§ã³ï¼ ã«ã¼ãã«ç®¡çå¤ã«åºå®ããã¦ãã
|
---|
4377 | å²è¾¼ã¿çªå·
|
---|
4378 | (7-2-1-10) INHNO_FIX_NONKERNELï¼ãªãã·ã§ã³ï¼ã«ã¼ãã«ç®¡çå¤ã«åºå®ããã¦ãã
|
---|
4379 | å²è¾¼ã¿ãã³ãã©çªå·
|
---|
4380 |
|
---|
4381 | ã«ã¼ãã«ç®¡çã¾ãã¯ã«ã¼ãã«ç®¡çå¤ã«åºå®ããã¦ããå²è¾¼ã¿ãããå ´åã«ã¯ï¼
|
---|
4382 | ãããã®å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ãã³ãã©çªå·ã®ãªã¹ããï¼åå¤æ°ã«å®ç¾©ããï¼
|
---|
4383 |
|
---|
4384 | (7-2-1-11) GENERATE_TSKINICTXBï¼ãªãã·ã§ã³ï¼
|
---|
4385 |
|
---|
4386 | USE_TSKINICTXBããã¯ãå®ç¾©ããå ´åï¼TSKINICTXBã®åæåæ
|
---|
4387 | å ±ãçæããã
|
---|
4388 | ããã³ãã¬ã¼ããã¡ã¤ã«é¢æ°GENERATE_TSKINICTXBãå®ç¾©ããï¼
|
---|
4389 | GENERATE_TSKINICTXBã«ã¯ï¼ã¿ã¹ã¯IDããã©ã¡ã¼ã¿ã¨ãã¦æ¸¡ãããï¼
|
---|
4390 |
|
---|
4391 | (7-2-1-12) ALLOC_STACKï¼ãªãã·ã§ã³ï¼
|
---|
4392 |
|
---|
4393 | ã¹ã¿ãã¯é åã®çææ¹æ³ãããã©ã«ãããå¤æ´ãããå ´åã«ã¯ï¼ã¹ã¿ãã¯é å
|
---|
4394 | ãçæããããã®ãã³ãã¬ã¼ããã¡ã¤ã«é¢æ°ALLOC_STACKãå®ç¾©ããï¼
|
---|
4395 | ALLOC_STACKã«ã¯ï¼ã¹ã¿ãã¯é åã®å¤æ°åã¨ä¸¸ããåã®ãµã¤ãºããã©ã¡ã¼ã¿ã¨ã
|
---|
4396 | ã¦æ¸¡ãããã®ã§ï¼ã¹ã¿ãã¯é åãçæããã³ã¼ããçæãï¼å¤§ããæ¹ã«ä¸¸ãã
|
---|
4397 | ãµã¤ãºã表ãæååãè¿ãï¼
|
---|
4398 |
|
---|
4399 | 7.2.2 ã¿ã¼ã²ããéä¾åé¨ã§å®ç¾©ãããå¤æ°
|
---|
4400 |
|
---|
4401 | kernel.tfã®ä¸ã§ã¯æ¬¡ã®å¤æ°ãå®ç¾©ãããããï¼kernel.tfãã¤ã³ã¯ã«ã¼ããã
|
---|
4402 | å¾ï¼target.tfã®ä¸ã§ããããåç
|
---|
4403 | §ãããã¨ãã§ããï¼
|
---|
4404 |
|
---|
4405 | (7-2-2-1) INTNO[inhno] inhnoã対å¿ããintnoã«å¤æããããã®é£æ³é
|
---|
4406 | å
|
---|
4407 | (7-2-2-2) INHNO[intno] intnoã対å¿ããinhnoã«å¤æããããã®é£æ³é
|
---|
4408 | å
|
---|
4409 |
|
---|
4410 | 7.3 ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾åé¨
|
---|
4411 |
|
---|
4412 | 以ä¸ã§ã¯ï¼ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾åé¨ãè¨è¿°ããä¸ã§å¿
|
---|
4413 |
|
---|
4414 | è¦ãªäºé
|
---|
4415 | ã«ã¤ãã¦èª¬æããï¼
|
---|
4416 |
|
---|
4417 | 7.3.1 ã¿ã¼ã²ããéä¾åé¨ãã¤ã³ã¯ã«ã¼ãããåã«å®ç¾©ãã¹ãå¤æ°
|
---|
4418 |
|
---|
4419 | target_check.tfããkernel_check.tfãã¤ã³ã¯ã«ã¼ãããåã«ï¼å¿
|
---|
4420 | è¦ã«å¿ãã¦ï¼
|
---|
4421 | 次ã®å¤æ°ãå®ç¾©ãã¦ãããªããã°ãªããªãï¼
|
---|
4422 |
|
---|
4423 | (7-3-1-1) GET_STK_TSKINICTXBï¼ãªãã·ã§ã³ï¼
|
---|
4424 |
|
---|
4425 | USE_TSKINICTXBããã¯ãå®ç¾©ããå ´åï¼TINIBããã¹ã¿ãã¯é åã®å
|
---|
4426 | é çªå°ãå
|
---|
4427 | ãåºãããã®ãã³ãã¬ã¼ããã¡ã¤ã«é¢æ°GET_STK_TSKINICTXBãå®ç¾©ããï¼
|
---|
4428 | GET_STK_TSKINICTXBã«ã¯ï¼ã¿ã¹ã¯åæåãããã¯ï¼TINIBï¼ã®å
|
---|
4429 | é çªå°ããã©ã¡ã¼
|
---|
4430 | ã¿ã¨ãã¦æ¸¡ãããï¼CHECK_STACK_ALIGNï¼CHECK_STACK_NONNULLã¨ãå®ç¾©ããªã
|
---|
4431 | å ´åã«ã¯ï¼GET_STK_TSKINICTXBãå®ç¾©ããå¿
|
---|
4432 | è¦ã¯ãªãï¼
|
---|
4433 |
|
---|
4434 | (7-3-1-2) LMA.ORDER_LISTï¼ãªãã·ã§ã³ï¼
|
---|
4435 | (7-3-1-3) LMA.START_DATA[lmano]ï¼ãªãã·ã§ã³ï¼
|
---|
4436 | (7-3-1-4) LMA.END_DATA[lmano]ï¼ãªãã·ã§ã³ï¼
|
---|
4437 | (7-3-1-5) LMA.START_IDATA[lmano]ï¼ãªãã·ã§ã³ï¼
|
---|
4438 |
|
---|
4439 | ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾åé¨ã§dataã»ã¯ã·ã§ã³ãããã¼ã¿
|
---|
4440 | ãåå¾ããå ´åãï¼rodataã»ã¯ã·ã§ã³ãRAMã«ç½®ãå ´åï¼ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«
|
---|
4441 | ã®ã11.8 rodataã»ã¯ã·ã§ã³ãRAMã«ç½®ãå ´åãã®ç¯ãåç
|
---|
4442 | §ï¼ã«ã¯ï¼ãããã®ã»
|
---|
4443 | ã¯ã·ã§ã³ã®å
|
---|
4444 | 容ãï¼é
|
---|
4445 | ç½®ã¢ãã¬ã¹ï¼ROMå
|
---|
4446 | ã®ã¢ãã¬ã¹ï¼LMAã¨å¼ã¶ï¼ããã¢ã¯ã»
|
---|
4447 | ã¹ã¢ãã¬ã¹ï¼RAMå
|
---|
4448 | ã®ã¢ãã¬ã¹ï¼VMAã¨å¼ã¶ï¼ã«ã³ãã¼ããå¿
|
---|
4449 | è¦ãããï¼
|
---|
4450 |
|
---|
4451 | ãã®ã³ãã¼ã¯ï¼LMA.ORDER_LISTã«ï¼ã³ãã¼ããã»ã¯ã·ã§ã³ã®çªå·ï¼lmanoï¼ã®ãª
|
---|
4452 | ã¹ãï¼çªå·ã¯ä»»æã«ä»ä¸ãã¦ããï¼ï¼LMA.START_DATA[lmano]ã«ã³ãã¼ããã»ã¯
|
---|
4453 | ã·ã§ã³ã®ã¢ã¯ã»ã¹ã¢ãã¬ã¹ã®å
|
---|
4454 | é ã®ã©ãã«ï¼LMA.END_DATA[lmano]ã«æ«å°¾ã®ã©ã
|
---|
4455 | ã«ï¼LMA.START_IDATA[lmano]ã«ãã®é
|
---|
4456 | ç½®ã¢ãã¬ã¹ã®å
|
---|
4457 | é ã®ã©ãã«ãè¨å®ããã
|
---|
4458 | ã¨ã§ï¼ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾åé¨ã§å®æ½ããï¼
|
---|
4459 |
|
---|
4460 | ä¾ãã°ï¼ã³ãã¼ããã»ã¯ã·ã§ã³ã®ã¢ã¯ã»ã¹ã¢ãã¬ã¹ã®å
|
---|
4461 | é ã®ã©ãã«ã
|
---|
4462 | "__data_start"ï¼æ«å°¾ã®ã©ãã«ã"__data_end"ï¼ãã®é
|
---|
4463 | ç½®ã¢ãã¬ã¹ã®å
|
---|
4464 | é ã®ã©
|
---|
4465 | ãã«ã"__idata_start"ã®å ´åã«ã¯ï¼ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ã
|
---|
4466 | ãä¾åé¨ã«ä»¥ä¸ã®è¨è¿°ãå«ããï¼
|
---|
4467 |
|
---|
4468 | ----------------------------------------
|
---|
4469 | $LMA.ORDER_LIST = { 1 }$
|
---|
4470 | $LMA.START_DATA[1] = "__data_start"$
|
---|
4471 | $LMA.END_DATA[1] = "__data_end"$
|
---|
4472 | $LMA.START_IDATA[1] = "__idata_start"$
|
---|
4473 | ----------------------------------------
|
---|
4474 |
|
---|
4475 | 7.3.2 ã¿ã¼ã²ããä¾åé¨ã§è¡ãã¹ãã¨ã©ã¼ãã§ãã¯
|
---|
4476 |
|
---|
4477 | 以ä¸ã®å
|
---|
4478 | é çªå°ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ã§çæãããã¼ãã«ã«åºåãããªãã
|
---|
4479 | ãï¼ãã¹3ã®ã¿ã¼ã²ããéä¾åé¨ï¼kernel_check.tfï¼ã§ã¯ï¼ããã°ã©ã ã®éå§
|
---|
4480 | çªå°ã¨ãã¦æ£ãããªãå ´åã®ã¨ã©ã¼ããã§ãã¯ããªãï¼ãã®ããï¼ã¿ã¼ã²ãã
|
---|
4481 | ä¾åé¨ã§ã¨ã©ã¼ãã§ãã¯ãè¡ãå¿
|
---|
4482 | è¦ãããï¼
|
---|
4483 |
|
---|
4484 | ã»å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®å
|
---|
4485 | é çªå°ï¼CRE_ISRã®isrï¼
|
---|
4486 | ã»å²è¾¼ã¿ãã³ãã©ã®å
|
---|
4487 | é çªå°ï¼DEF_INHã®inthdrï¼
|
---|
4488 | ã»CPUä¾å¤ãã³ãã©ã®å
|
---|
4489 | é çªå°ï¼DEF_EXCã®exchdrï¼
|
---|
4490 | ã»åæåã«ã¼ãã³ã®å
|
---|
4491 | é çªå°ï¼ATT_INIã®inirtnï¼
|
---|
4492 | ã»çµäºå¦çã«ã¼ãã³ã®å
|
---|
4493 | é çªå°ï¼ATT_TERã®terrtnï¼
|
---|
4494 |
|
---|
4495 | ãã ãï¼ã¿ã¼ã²ããä¾åé¨ã«ããã¦ãï¼ãããã®ã¨ã©ã¼ãã§ãã¯ãè¡ããã¨ã¯
|
---|
4496 | éããªãããï¼ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã®ã1.5 æ¢ç¥ã®åé¡ãã®ç¯ã«ã¯ï¼ã¿ã¼ã²ã
|
---|
4497 | ãä¾åã§ãããã®ã¨ã©ã¼ãæ¤åºãããªããã¨ãããæ¨ãè¨è¼ãã¦ããï¼
|
---|
4498 |
|
---|
4499 | 7.4 cfg1_out.cã®ãªã³ã¯ã«å¿
|
---|
4500 | è¦ãªã¹ã¿ãã®å®ç¾©ãã¡ã¤ã«
|
---|
4501 |
|
---|
4502 | ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«é¢ãã¦ã¿ã¼ã²ããä¾åã«ç¨æããå¿
|
---|
4503 | è¦ããããã¡ã¤ã«ã¨
|
---|
4504 | ãã¦ï¼è¨å®ãã¡ã¤ã«ä»¥å¤ã«ï¼cfg1_out.cããªã³ã¯ããããã«å¿
|
---|
4505 | è¦ãªã¹ã¿ãã®å®
|
---|
4506 | 義ãã¡ã¤ã«ãããï¼
|
---|
4507 |
|
---|
4508 | ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹1ã§ã¯ï¼éçAPIã®æ´æ°å®æ°å¼ãã©ã¡ã¼ã¿ã®å¤ãCã³ã³
|
---|
4509 | ãã¤ã©ãç¨ãã¦æ±ããããã«ï¼cfg1_out.cãçæããï¼ãããã³ã³ãã¤ã«ï¼ãª
|
---|
4510 | ã³ã¯ãã¦ãªãã¸ã§ã¯ããã¡ã¤ã«ãçæããéã«ï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã
|
---|
4511 | ãåç
|
---|
4512 | §ãããã·ã³ãã«ã®å®ç¾©ãä¸ããå¿
|
---|
4513 | è¦ãããï¼
|
---|
4514 |
|
---|
4515 | ãã®å®ç¾©ãä¸ããããã«ï¼cfg1_out.cããï¼ã¿ã¼ã²ããä¾åé¨ã®
|
---|
4516 | target_cfg1_out.hãã¤ã³ã¯ã«ã¼ããã¦ããï¼target_cfg1_out.hï¼ã¾ãã¯ï¼ã
|
---|
4517 | ãããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«ã¯ï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ããå
|
---|
4518 | ç
|
---|
4519 | §ãããã·ã³ãã«ã®ã¹ã¿ãã®å®ç¾©ãå«ããï¼å
|
---|
4520 | ¸åçã«ã¯ï¼ä»¥ä¸ã®ãããªå®ç¾©ã
|
---|
4521 | å«ããå¿
|
---|
4522 | è¦ãããï¼
|
---|
4523 |
|
---|
4524 | ----------------------------------------
|
---|
4525 | void sta_ker(void)
|
---|
4526 | {
|
---|
4527 | }
|
---|
4528 |
|
---|
4529 | void hardware_init_hook(void)
|
---|
4530 | {
|
---|
4531 | }
|
---|
4532 |
|
---|
4533 | void software_init_hook(void)
|
---|
4534 | {
|
---|
4535 | }
|
---|
4536 |
|
---|
4537 | const size_t _kernel_istksz = 0;
|
---|
4538 |
|
---|
4539 | STK_T *const _kernel_istk = NULL;
|
---|
4540 | ----------------------------------------
|
---|
4541 |
|
---|
4542 | ã¾ãï¼target_cfg1_out.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«
|
---|
4543 | ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãç¨ãã¦ãªãã»ãããã¡ã¤ã«ï¼offset.hï¼ãçæãã
|
---|
4544 | ããã«å¿
|
---|
4545 | è¦ãªè¨è¿°ãå«ããï¼è©³ããã¯ï¼ã2.5 ãªãã»ãããã¡ã¤ã«ã®çææ¹æ³ã
|
---|
4546 | ã®ç¯ãåç
|
---|
4547 | §ãããã¨ï¼
|
---|
4548 |
|
---|
4549 |
|
---|
4550 | ï¼ï¼ã·ã¹ãã ãµã¼ãã¹çã®ã¿ã¼ã²ããä¾åé¨
|
---|
4551 |
|
---|
4552 | 8.0 ã·ã¹ãã ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾åé¨
|
---|
4553 |
|
---|
4554 | ã·ãªã¢ã«ãã¼ãæ°ãã·ã¹ãã ãã°ã¿ã¹ã¯é¢é£ã®å®æ°ãªã©ï¼ã·ã¹ãã ãµã¼ãã¹ã®
|
---|
4555 | æ§æã決å®ããããã®å®ç¾©ãtarget_syssvc.hã¾ãã¯ããããã¤ã³ã¯ã«ã¼ããã
|
---|
4556 | ããã¡ã¤ã«ï¼éçºç°å¢ä¾åé¨ï¼ããã»ããµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ã§ç¨æã
|
---|
4557 | ããããããã¡ã¤ã«ãªã©ï¼ã«å«ããï¼
|
---|
4558 |
|
---|
4559 | ãªãï¼TOPPERSçµè¾¼ã¿ã³ã³ãã¼ãã³ãã·ã¹ãã ãå°å
|
---|
4560 | ¥ãããã¨ï¼ãã®ãã¡ã¤ã«ã®
|
---|
4561 | å
|
---|
4562 | 容ã¯ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«ã«è¨è¿°ããããã¨ã«ãªãï¼ãã®ãã¡ã¤ã«ã¯
|
---|
4563 | ç¡ããªãï¼ã¾ãã¯ï¼å¤§å¹
|
---|
4564 | ã«ç¸®å°ãããï¼è¦è¾¼ã¿ã§ããï¼
|
---|
4565 |
|
---|
4566 | 8.1 ã·ã¹ãã ãã°æ©è½ã®ã¿ã¼ã²ããä¾åå®ç¾©
|
---|
4567 |
|
---|
4568 | ã·ã¹ãã ãã°æ©è½ã使ç¨ããå ´åã§ï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã§bssã»ã¯ã·ã§
|
---|
4569 | ã³ã®ã¯ãªã¢ãçç¥ãã¦ããå ´åã«ã¯ï¼syslog_logmaskã¨syslog_lowmask_notã
|
---|
4570 | 0ã«åæåããã³ã¼ãã追å ããï¼ããã¯ï¼ã·ã¹ãã ãã°æ©è½ãåæåãããå
|
---|
4571 | ã«åºåããããã°æ
|
---|
4572 | å ±ãï¼ä½ã¬ãã«åºåæ©è½ãç¨ãã¦åºåããããã§ããï¼
|
---|
4573 |
|
---|
4574 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ãã·ã¹ãã ãã°æ©è½ã®ããã®å®ç¾©ã¯æ¬¡ã®éãã§ã
|
---|
4575 | ãï¼
|
---|
4576 |
|
---|
4577 | (8-1-1) TCNT_SYSLOG_BUFFERï¼ãªãã·ã§ã³ï¼
|
---|
4578 |
|
---|
4579 | ã·ã¹ãã ãã°æ©è½ã®ãã°ãããã¡ã®ãµã¤ãºãå®ç¾©ãããã¯ãï¼å®ç¾©ããªãå ´å
|
---|
4580 | ã®ããã©ã«ãå¤ã¯32ï¼
|
---|
4581 |
|
---|
4582 | (8-1-2) void target_fput_log(char c)
|
---|
4583 |
|
---|
4584 | ã·ã¹ãã ãã°ã®ä½ã¬ãã«åºåã®ããã®æååºåé¢æ°ï¼ã¿ã¼ã²ããä¾åã®æ¹æ³ã§ï¼
|
---|
4585 | æåcã表示/åºå/ä¿åããï¼
|
---|
4586 |
|
---|
4587 | ãã®é¢æ°ã¯ï¼ãªã¨ã³ãã©ã³ãã«å®è£
|
---|
4588 | ããªããã°ãªããªãï¼ãã®é¢æ°å
|
---|
4589 | ã§æä»å¶
|
---|
4590 | 御ãå¿
|
---|
4591 | è¦ãªå ´åã«ã¯ï¼SILãç¨ãã¦å
|
---|
4592 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
4593 | ã«ãããã¨ï¼ã¾ãï¼å
|
---|
4594 | ¨å²
|
---|
4595 | è¾¼ã¿ããã¯ç¶æ
|
---|
4596 | ã§å¼ã°ããå ´åãããããï¼å
|
---|
4597 | ¨å²è¾¼ã¿ããã¯ç¶æ
|
---|
4598 | ããå¼ã³åºã
|
---|
4599 | ãã¨ãã§ããªãé¢æ°ãå¼ã°ãªãããã«å®è£
|
---|
4600 | ããªããã°ãªããªãï¼
|
---|
4601 |
|
---|
4602 | ä½ã¬ãã«åºåãã·ãªã¢ã«ãã¼ãçµç±ã§è¡ãå ´åã§ï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ã
|
---|
4603 | ã©ã¤ãã¨ãã¼ããå
|
---|
4604 | ±ç¨ããªããã¨ãæã¾ãããï¼ãã¼ãæ°ã足ããªãããã«ã
|
---|
4605 | ããããå
|
---|
4606 | ±ç¨ããå ´åã«ã¯ï¼ä¸¡è
|
---|
4607 | ã競åããªãããã«æ³¨æãå¿
|
---|
4608 | è¦ã§ããï¼å
|
---|
4609 | ·ä½
|
---|
4610 | çã«ã¯ï¼ä¸¡è
|
---|
4611 | ãåãè¨å®ã§ã·ãªã¢ã«I/Oããã¤ã¹ã使ãããã«ãï¼ã·ãªã¢ã«ã¤ã³
|
---|
4612 | ã¿ãã§ã¼ã¹ãã©ã¤ãã®åä½ä¸ã«ä½ã¬ãã«åºåãè¡ããã¦ãå·®ãæ¯ããªãããã«
|
---|
4613 | è¨è¨ããï¼ã¾ãï¼ä½ã¬ãã«åºåãåä½éå§å¾ã«ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤
|
---|
4614 | ããã·ãªã¢ã«I/Oããã¤ã¹ãåæåããã¨ï¼æååããèµ·ããå¯è½æ§ãããï¼ã
|
---|
4615 | ããé¿ããããã«ã¯ï¼å
|
---|
4616 | ±ç¨ãããã¼ãã¯ä½ã¬ãã«åºåå´ã§åæåãï¼ã·ãªã¢ã«
|
---|
4617 | ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã§ã¯åæåããªãããã«ããã¨ããï¼
|
---|
4618 |
|
---|
4619 | ãªãï¼ãã®é¢æ°ã®æ¬ä½ãï¼ã©ã®ãã¡ã¤ã«ã«è¨è¿°ããããåé¡ã«ãªãï¼ã·ã¹ãã
|
---|
4620 | ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾åé¨ã«ã¯ï¼æ¨æºã§ã¯ï¼é¢æ°å®ç¾©ãè¨è¿°ããããã®ãã¡
|
---|
4621 | ã¤ã«ãç¨æãã¦ããªãï¼ã¿ã¼ã²ããä¾åã§ç¨æãã¦ããããï¼ä¾å¤çã«ï¼ã«ã¼
|
---|
4622 | ãã«å®è£
|
---|
4623 | ã®ã¿ã¼ã²ããä¾åã¢ã¸ã¥ã¼ã«ï¼target_kernel_impl.cï¼ã«è¨è¿°ãã¦ã
|
---|
4624 | ããï¼ãã®å ´åï¼target_fput_logãï¼ãªãã¼ã è¨è¿°ï¼target_rename.defãªã©ï¼
|
---|
4625 | ã«å«ãã¦ã¯ãªããªãï¼
|
---|
4626 |
|
---|
4627 | (8-1-3) LOGTIMï¼SYSLOG_GET_LOGTIMï¼ãªãã·ã§ã³ï¼
|
---|
4628 |
|
---|
4629 | ã·ã¹ãã ãã°æ©è½ã«ããã¦è¨é²ããæå»ï¼ãã°æå»ï¼ã®ãã¼ã¿åãLOGTIMã«ï¼
|
---|
4630 | æå»ãåå¾ããããã®å¦çãSYSLOG_GET_LOGTIMã«ãã¯ãå®ç¾©ããï¼ããããå®
|
---|
4631 | 義ããªãå ´åï¼é«å解è½ã¿ã¤ãã®ã«ã¦ã³ãå¤ããã°æå»ã«ç¨ããï¼
|
---|
4632 |
|
---|
4633 | ãªãï¼LOGTIMã®å®ç¾©ã¯ï¼target_stddef.hã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡
|
---|
4634 | ã¤ã«ã«å«ããªããã°ãªããªãï¼
|
---|
4635 |
|
---|
4636 | (8-1-4) LOGPARï¼ULOGPARï¼ãªãã·ã§ã³ï¼
|
---|
4637 |
|
---|
4638 | ã·ã¹ãã ãã°æ©è½ã«ããã¦è¨é²ãããã°ãã©ã¡ã¼ã¿ã®ãã¼ã¿åãLOGPARã«ãã¯
|
---|
4639 | ãå®ç¾©ããï¼LOGPARã«å®ç¾©ãããã¼ã¿åã¯ï¼ç¬¦å·ä»ãã®æ´æ°åã§ãªããã°ãªã
|
---|
4640 | ãªãï¼ã¾ãï¼LOGPARã¨åããµã¤ãºã®ç¬¦å·ç¡ãã®æ´æ°åãï¼ULOGPARã«ãã¯ãå®ç¾©
|
---|
4641 | ããï¼
|
---|
4642 |
|
---|
4643 | ãããã®å®ç¾©ããªãå ´åï¼ãã°ãã©ã¡ã¼ã¿ã®ãã¼ã¿åã¯intptr_tã¨ããï¼
|
---|
4644 |
|
---|
4645 | ãªãï¼LOGPARããã³ULOGPARã®å®ç¾©ã¯ï¼target_stddef.hã¾ãã¯ããããã¤ã³ã¯
|
---|
4646 | ã«ã¼ãããããã¡ã¤ã«ã«å«ããªããã°ãªããªãï¼
|
---|
4647 |
|
---|
4648 | 8.2 ã·ã¹ãã ãã°ã¿ã¹ã¯ã®ã¿ã¼ã²ããä¾åå®ç¾©
|
---|
4649 |
|
---|
4650 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ãã·ã¹ãã ãã°ã¿ã¹ã¯ã®ããã®å®ç¾©ã¯æ¬¡ã®éãã§
|
---|
4651 | ããï¼ãããã®å®ç¾©ã¯ï¼target_syssvc.hã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡
|
---|
4652 | ã¤ã«ã«å«ããï¼
|
---|
4653 |
|
---|
4654 | (8-2-1) LOGTASK_PRIORITYï¼ãªãã·ã§ã³ï¼
|
---|
4655 |
|
---|
4656 | ã·ã¹ãã ãã°ã¿ã¹ã¯ã®åªå
|
---|
4657 | 度ãå®ç¾©ãããã¯ãï¼å®ç¾©ããªãå ´åã®ããã©ã«ã
|
---|
4658 | å¤ã¯3ï¼
|
---|
4659 |
|
---|
4660 | (8-2-2) LOGTASK_STACK_SIZEï¼ãªãã·ã§ã³ï¼
|
---|
4661 |
|
---|
4662 | ã·ã¹ãã ãã°ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãå®ç¾©ãããã¯ãï¼å®ç¾©ããªãå ´åã®ã
|
---|
4663 | ãã©ã«ãå¤ã¯1024ï¼
|
---|
4664 |
|
---|
4665 | (8-2-3) LOGTASK_PORTIDï¼ãªãã·ã§ã³ï¼
|
---|
4666 |
|
---|
4667 | ã·ã¹ãã ãã°ã¿ã¹ã¯ã®åºåå
|
---|
4668 | ã®ã·ãªã¢ã«ãã¼ãçªå·ï¼å®ç¾©ããªãå ´åã®ããã©
|
---|
4669 | ã«ãå¤ã¯1ï¼
|
---|
4670 |
|
---|
4671 | (8-2-4) LOGTASK_INTERVALï¼ãªãã·ã§ã³ï¼
|
---|
4672 |
|
---|
4673 | ã·ã¹ãã ãã°ã¿ã¹ã¯ã®åä½ééï¼åä½ã¯ãã¤ã¯ãç§ï¼ï¼å®ç¾©ããªãå ´åã®ããã©
|
---|
4674 | ã«ãå¤ã¯10000ï¼
|
---|
4675 |
|
---|
4676 | (8-2-5) LOGTASK_FLUSH_WAITï¼ãªãã·ã§ã³ï¼
|
---|
4677 |
|
---|
4678 | ãã°åºåãå¾
|
---|
4679 | ã¡åãããå¦çã«ããã¦ï¼ã¿ã¹ã¯ãå¾
|
---|
4680 | ãããåä½ã¨ãªãæéï¼å
|
---|
4681 | ä½ã¯ãã¤ã¯ãç§ï¼ï¼å®ç¾©ããªãå ´åã®ããã©ã«ãå¤ã¯1000ï¼
|
---|
4682 |
|
---|
4683 | 8.3 ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ããä¾åé¨
|
---|
4684 |
|
---|
4685 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ãã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ããã®å®ç¾©
|
---|
4686 | ã¯æ¬¡ã®éãã§ããï¼ãããã®å®ç¾©ã¯ï¼å¥ã«æå®ããªãéãï¼target_serial.hã¾
|
---|
4687 | ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ã«å«ãï¼å¿
|
---|
4688 | è¦ãªã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§
|
---|
4689 | ã³æ
|
---|
4690 | å ±ãtarget_serial.cfgã«è¨è¿°ããï¼é¢æ°ã®å®ä½ãå¿
|
---|
4691 | è¦ãªå ´åã«ã¯ï¼
|
---|
4692 | target_serial.cçã®ãã¡ã¤ã«ãç¨æããï¼
|
---|
4693 |
|
---|
4694 | ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ä¸ã§ï¼ã¿ã¼ã²ããã®ã·ãªã¢ã«I/Oããã¤ã¹ã«
|
---|
4695 | ä¾åããé¨åãï¼ã·ãªã¢ã«I/Oããã¤ã¹ãã©ã¤ãã¨å¼ã¶ï¼ã·ãªã¢ã«I/Oããã¤ã¹
|
---|
4696 | ãã©ã¤ãã¯ï¼ããããï¼ITRONããã¤ã¹ãã©ã¤ãè¨è¨ã¬ã¤ãã©ã¤ã³ã®PDICã«ç¸å½
|
---|
4697 | ããï¼
|
---|
4698 |
|
---|
4699 | 8.3.1 å¤æ°ï¼ãã¼ã¿åï¼ç®¡çé¢æ°
|
---|
4700 |
|
---|
4701 | (8-3-1-1) TNUM_PORT
|
---|
4702 |
|
---|
4703 | ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãããµãã¼ãããã·ãªã¢ã«ãã¼ãæ°ãå®ç¾©ãã
|
---|
4704 | ãã¯ãï¼ãã®ãã¯ãã®å®ç¾©ã¯ï¼target_syssvc.hã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãã
|
---|
4705 | ãããã¡ã¤ã«ã«å«ããï¼
|
---|
4706 |
|
---|
4707 | (8-3-1-2) void sio_initialize(intptr_t exinf)ï¼ãªãã·ã§ã³ï¼
|
---|
4708 |
|
---|
4709 | ã·ãªã¢ã«I/Oããã¤ã¹ãã©ã¤ãã®åæåå¦çï¼target_serial.cfgã«ï¼ãã®é¢æ°
|
---|
4710 | ãåæåã«ã¼ãã³ã¨ãã¦ç»é²ããéçAPIãå«ããï¼
|
---|
4711 |
|
---|
4712 | (8-3-1-3) void sio_terminate(intptr_t exinf)ï¼ãªãã·ã§ã³ï¼
|
---|
4713 |
|
---|
4714 | ã·ãªã¢ã«I/Oããã¤ã¹ãã©ã¤ãã®çµäºå¦çï¼target_serial.cfgã«ï¼ãã®é¢æ°ã
|
---|
4715 | çµäºå¦çã«ã¼ãã³ã¨ãã¦ç»é²ããéçAPIãå«ããï¼
|
---|
4716 |
|
---|
4717 | (8-3-1-4) void sio_isr(intptr_t exinf)
|
---|
4718 |
|
---|
4719 | ã·ãªã¢ã«I/Oããã¤ã¹ã®å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ï¼target_serial.cfgã«ï¼ãã®
|
---|
4720 | é¢æ°ãå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã¨ãã¦ç»é²ããéçAPIãå«ããï¼ã¾ãï¼ãã®é
|
---|
4721 | çAPIã«å¿
|
---|
4722 | è¦ãªã·ãªã¢ã«I/Oããã¤ã¹ã®å²è¾¼ã¿çªå·ãªã©ã¯ï¼target_serial.hã§ã
|
---|
4723 | ã¯ãå®ç¾©ããï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã§ã¯ãªãï¼å²è¾¼ã¿ãã³ãã©ã¨ãããã¨
|
---|
4724 | ãã§ããï¼
|
---|
4725 |
|
---|
4726 | (8-3-1-5) SIOPCB
|
---|
4727 |
|
---|
4728 | ã·ãªã¢ã«I/Oãã¼ã管çãããã¯ã®ãã¼ã¿åï¼target_serial.hã«ã¯ï¼ãã¼ã¿å
|
---|
4729 | ã®å®£è¨ã ãå«ã¾ãã¦ããã°ããï¼ï¼
|
---|
4730 |
|
---|
4731 | (8-3-1-6) SIO_RDY_SNDã¨SIO_RDY_RCV
|
---|
4732 |
|
---|
4733 | éä¿¡å¯è½ã³ã¼ã«ããã¯ã®èå¥çªå·ãSIO_RDY_SNDã«ï¼åä¿¡éç¥ã³ã¼ã«ããã¯ã®è
|
---|
4734 | å¥çªå·ãSIO_RDY_RCVã«ãã¯ãå®ç¾©ããï¼ã³ã¼ã«ããã¯ã®ç¦æ¢ï¼è¨±å¯ãè¡ãªããµã¼
|
---|
4735 | ãã¹ã³ã¼ã«ï¼sio_ena_cbrã¨sio_dis_cbrï¼ã§ç¨ããï¼
|
---|
4736 |
|
---|
4737 | 8.3.2 ããã¤ã¹ãµã¼ãã¹ã«ã¼ãã³
|
---|
4738 |
|
---|
4739 | 以ä¸ã®ããã¤ã¹ãµã¼ãã«ã«ã¼ãã³ã¯ï¼ï¼å°ãªãã¨ãï¼ã·ãªã¢ã«I/Oãã¼ãããã®
|
---|
4740 | å²è¾¼ã¿ããã¹ã¯ãããç¶æ
|
---|
4741 | ã§å¼ã³åºãããï¼ã¾ãï¼ã¿ã¹ã¯ã³ã³ããã¹ãï¼éã¿
|
---|
4742 | ã¹ã¯ã³ã³ããã¹ãã®ãããã§å¼ã³åºãããå ´åãããï¼ãããã§å¼ã³åºããã¦
|
---|
4743 | ãåä½ããããã«ããªããã°ãªããªãï¼ï¼
|
---|
4744 |
|
---|
4745 | (8-3-2-1) SIOPCB *sio_opn_por(ID siopid, intptr_t exinf)
|
---|
4746 |
|
---|
4747 | siopidã§æå®ãããã·ãªã¢ã«I/Oãã¼ãããªã¼ãã³ããé¢æ°ï¼exinfã¯ã·ãªã¢ã«
|
---|
4748 | I/Oãã¼ãã«å¯¾ããæ¡å¼µæ
|
---|
4749 | å ±ã§ï¼ã³ã¼ã«ããã¯ãå¼ã¶æã«ãã¼ããåºå¥ããã
|
---|
4750 | ãã«æ¸¡ãï¼
|
---|
4751 |
|
---|
4752 | (8-3-2-2) void sio_cls_por(SIOPCB *siopcb)
|
---|
4753 |
|
---|
4754 | siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ããã¯ãã¼ãºããé¢æ°ï¼
|
---|
4755 |
|
---|
4756 | (8-3-2-3) bool_t sio_snd_chr(SIOPCB *siopcb, char c)
|
---|
4757 |
|
---|
4758 | siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãã«ï¼cã§ç¤ºãããæåãéä¿¡ããé¢æ°ï¼
|
---|
4759 | æåãéä¿¡ã¬ã¸ã¹ã¿ã«å
|
---|
4760 | ¥ããå ´åã«ã¯trueãï¼åã«éä¿¡ããæåã®éä¿¡ãçµãã£
|
---|
4761 | ã¦ããªãããã«ï¼æåãéä¿¡ã¬ã¸ã¹ã¿ã«å
|
---|
4762 | ¥ããããªãã£ãå ´åã«ã¯falseãè¿ãï¼
|
---|
4763 |
|
---|
4764 | (8-3-2-4) int_t sio_rcv_chr(SIOPCB *siopcb)
|
---|
4765 |
|
---|
4766 | siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãããæåãèªãé¢æ°ï¼æåãåä¿¡ãã¦ã
|
---|
4767 | ãå ´åï¼èªãã æåã®ã³ã¼ãã¯æ£ã®å¤ã¨ãã¦è¿ãï¼æåãåä¿¡ãã¦ããªãå ´å
|
---|
4768 | ã«ã¯-1ãè¿ãï¼
|
---|
4769 |
|
---|
4770 | (8-3-2-5) void sio_ena_cbr(SIOPCB *siopcb, uint_t cbrtn)
|
---|
4771 |
|
---|
4772 | siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãããã®ï¼cbrtnã§æå®ãããã³ã¼ã«ãã
|
---|
4773 | ã¯ã許å¯ããï¼cbrtnã«ã¯ï¼SIO_RDY_SNDãSIO_RDY_RCVãæå®ã§ããï¼
|
---|
4774 |
|
---|
4775 | (8-3-2-6) void sio_dis_cbr(SIOPCB *siopcb, uint_t cbrtn)
|
---|
4776 |
|
---|
4777 | siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãããã®ï¼cbrtnã§æå®ãããã³ã¼ã«ãã
|
---|
4778 | ã¯ãç¦æ¢ããï¼cbrtnã«ã¯ï¼SIO_RDY_SNDãSIO_RDY_RCVãæå®ã§ããï¼
|
---|
4779 |
|
---|
4780 | 8.3.3 ã³ã¼ã«ããã¯ã«ã¼ãã³
|
---|
4781 |
|
---|
4782 | ã¿ã¼ã²ããä¾åé¨ã¯ï¼å¿
|
---|
4783 | è¦ãªã¿ã¤ãã³ã°ã§ï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ã
|
---|
4784 | ã®ã¿ã¼ã²ããéä¾åé¨ã«å«ã¾ãã以ä¸ã®ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºã³ã ã
|
---|
4785 | ãªããã°ãªããªãï¼ãã ãï¼ããããã®ã³ã¼ã«ããã¯ãç¦æ¢ããã¦ããæã¯ï¼
|
---|
4786 | ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºãã¦ã¯ãªããªãï¼
|
---|
4787 |
|
---|
4788 | ã³ã¼ã«ããã¯ã«ã¼ãã³ã¯ï¼ï¼å°ãªãã¨ãï¼ã·ãªã¢ã«I/Oãã¼ãããã®å²è¾¼ã¿ãç¦
|
---|
4789 | æ¢ãããç¶æ
|
---|
4790 | ã§ï¼éã¿ã¹ã¯ã³ã³ããã¹ãã§å¼ã³åºãï¼exinfã«ã¯ï¼ã·ãªã¢ã«I/O
|
---|
4791 | ãã¼ãã®ãªã¼ãã³æã«æå®ãããæ¡å¼µæ
|
---|
4792 | å ±ã渡ãï¼
|
---|
4793 |
|
---|
4794 | (8-3-3-1) void sio_irdy_snd(intptr_t exinf)
|
---|
4795 |
|
---|
4796 | éä¿¡å¯è½ã³ã¼ã«ããã¯ã«ã¼ãã³ï¼ã·ãªã¢ã«I/Oãã¼ãã«å¯¾ãã¦æåãéä¿¡ã§ãã
|
---|
4797 | ç¶æ
|
---|
4798 | ã«ãªã£ãå ´åã«å¼ã³åºãï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¯ï¼ãã®ã³ã¼
|
---|
4799 | ã«ããã¯ã«ã¼ãã³ã®ä¸ã§ï¼sio_snd_chrãå¼ã³åºãã¦æ¬¡ã®æåãéä¿¡ãããï¼é
|
---|
4800 | ä¿¡ãã¹ãæåããªãå ´åã«ã¯éä¿¡å¯è½ã³ã¼ã«ããã¯ãç¦æ¢ããï¼
|
---|
4801 |
|
---|
4802 | (8-3-3-2) void sio_irdy_rcv(intptr_t exinf)
|
---|
4803 |
|
---|
4804 | åä¿¡éç¥ã³ã¼ã«ããã¯ã«ã¼ãã³ï¼ã·ãªã¢ã«I/Oãã¼ãããæåãåä¿¡ããå ´åã«
|
---|
4805 | å¼ã³åºãï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¯ï¼ãã®ã³ã¼ã«ããã¯ã«ã¼ãã³ã®
|
---|
4806 | ä¸ã§ï¼å¿
|
---|
4807 | ãsio_rcv_chrãå¼ã³åºãã¦åä¿¡ããæåãåãåºãï¼
|
---|
4808 |
|
---|
4809 | 8.4 ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåã®ã¿ã¼ã²ããä¾åå®ç¾©
|
---|
4810 |
|
---|
4811 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ãã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåã®ããã®å®ç¾©ã¯
|
---|
4812 | 次ã®éãã§ããï¼
|
---|
4813 |
|
---|
4814 | (8-4-1) TARGET_NAME
|
---|
4815 |
|
---|
4816 | ã¿ã¼ã²ããã®å称ã«å®ç¾©ããï¼
|
---|
4817 |
|
---|
4818 | (8-4-2) TARGET_COPYRIGHTï¼ãªãã·ã§ã³ï¼
|
---|
4819 |
|
---|
4820 | ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã«ï¼ã¿ã¼ã²ããä¾åé¨ã®èä½æ¨©è¡¨ç¤ºã追å ããããã®
|
---|
4821 | ãã¯ãï¼ããã©ã«ãã§ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã®èä½æ¨©è¡¨ç¤ºã追å ããªãï¼
|
---|
4822 |
|
---|
4823 | 8.5 ãµã³ãã«ããã°ã©ã ã¨ãã¹ãããã°ã©ã ã®ã¿ã¼ã²ããä¾åå®ç¾©
|
---|
4824 |
|
---|
4825 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ããµã³ãã«ããã°ã©ã ããã³ãã¹ãããã°ã©ã ã®
|
---|
4826 | ããã®å®ç¾©ã¯æ¬¡ã®éãã§ããï¼ãããã®å®ç¾©ã¯ï¼target_test.hï¼ã¾ãã¯ããã
|
---|
4827 | ããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«å«ããï¼
|
---|
4828 |
|
---|
4829 | (8-5-1) STACK_SIZEï¼ãªãã·ã§ã³ï¼
|
---|
4830 |
|
---|
4831 | ãµã³ãã«ããã°ã©ã ããã³ãã¹ãããã°ã©ã ã®ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãå®ç¾©
|
---|
4832 | ãããã¯ãï¼å®ç¾©ããªãå ´åã®ããã©ã«ãå¤ã¯4096ï¼ããã©ã«ãè¨å®ã§ã¯ã¡ã¢
|
---|
4833 | ãªãä¸è¶³ããå ´åãï¼ã·ãã¥ã¬ã¼ã·ã§ã³ç°å¢ãªã©ã§å¤§ããã¹ã¿ãã¯é åãå¿
|
---|
4834 | è¦
|
---|
4835 | ãªå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§ãã®ãã¯ããè¨å®ããã¹ã¿ãã¯ãµã¤ãºã«å®ç¾©
|
---|
4836 | ããï¼
|
---|
4837 |
|
---|
4838 | (8-5-2) CPUEXC1ï¼ãªãã·ã§ã³ï¼
|
---|
4839 |
|
---|
4840 | ãµã³ãã«ããã°ã©ã ããã³ãã¹ãããã°ã©ã ã§ç¨ããCPUä¾å¤ã®CPUä¾å¤ãã³ã
|
---|
4841 | ã©çªå·ãå®ç¾©ãããã¯ãï¼ãã®ãã¯ããå®ç¾©ããªãå ´åï¼CPUä¾å¤ãã³ãã©ã使
|
---|
4842 | ãé¨åããµã³ãã«ããã°ã©ã ããé¤å¤ãããï¼CPUä¾å¤ãã³ãã©ã®ãã¹ãããã
|
---|
4843 | ãã¹ãããã°ã©ã ã¯ã³ã³ãã¤ã«ã§ããªãï¼
|
---|
4844 |
|
---|
4845 | (8-5-3) RAISE_CPU_EXCEPTIONï¼ãªãã·ã§ã³ï¼
|
---|
4846 |
|
---|
4847 | CPUEXC1ã«å®ç¾©ããCPUä¾å¤ãçºçãããCè¨èªã®ããã°ã©ã ãå®ç¾©ãããã¯ãï¼
|
---|
4848 | CPUEXC1ãå®ç¾©ããå ´åã«ã¯å¿
|
---|
4849 | ãå®ç¾©ããªããã°ãªããªãï¼
|
---|
4850 |
|
---|
4851 | (8-5-4) PREPARE_RETURN_CPUEXCï¼ãªãã·ã§ã³ï¼
|
---|
4852 |
|
---|
4853 | CPUä¾å¤ãèµ·ãããå½ä»¤ãã¹ãããããããã«æ»ãçªå°ãä¿®æ£ãããªã©ï¼CPUä¾
|
---|
4854 | å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããããã«æºåããããã®ãã¯ãï¼æºåãå¿
|
---|
4855 | è¦ãªã
|
---|
4856 | å ´åã«ã¯ï¼ç©ºã«å®ç¾©ããï¼
|
---|
4857 |
|
---|
4858 | ã¿ã¼ã²ããã·ã¹ãã ã®å¶ç´ã«ããï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ããå¾ã«ï¼ã¿
|
---|
4859 | ã¹ã¯ã®å®è¡ãç¶ç¶ã§ããªãå ´åã«ã¯ï¼ãã®ãã¯ããå®ç¾©ããªãï¼ãã®ãã¯ãã
|
---|
4860 | å®ç¾©ããªãã¨ï¼CPUä¾å¤ãã³ãã©ã®ãã¹ãããããã¹ãããã°ã©ã ããï¼CPUä¾
|
---|
4861 | å¤ãã³ãã©ãããªã¿ã¼ã³ããå¾ã®å¦çãé¤å¤ãããï¼
|
---|
4862 |
|
---|
4863 | (8-5-5) TASK_PORTIDï¼ãªãã·ã§ã³ï¼
|
---|
4864 |
|
---|
4865 | ãµã³ãã«ããã°ã©ã ã«ããã¦ï¼ã³ãã³ãæåãèªã¿è¾¼ãã·ãªã¢ã«ãã¼ãçªå·ã
|
---|
4866 | å®ç¾©ãããã¯ãï¼å®ç¾©ããªãå ´åã®ããã©ã«ãå¤ã¯1ï¼
|
---|
4867 |
|
---|
4868 | (8-5-6) LOOP_REFï¼ãªãã·ã§ã³ï¼
|
---|
4869 |
|
---|
4870 | ãµã³ãã«ããã°ã©ã ã«ããã¦ï¼ããã»ããµã®é度ãè¨æ¸¬ããããã®ã«ã¼ãåæ°
|
---|
4871 | ãå®ç¾©ãããã¯ãï¼å®ç¾©ããªãå ´åã®ããã©ã«ãå¤ã¯1000000ï¼ããã©ã«ãè¨å®
|
---|
4872 | ã§ã¯ï¼å¤ã大ãéãã¦è¨æ¸¬ã«æéãããããããå ´åãï¼å¤ãå°ãéãã¦è¨æ¸¬
|
---|
4873 | çµæãå®å®ããªãå ´åã«ï¼ã¿ã¼ã²ããä¾åé¨ã§ãã®ãã¯ããè¨å®ããã«ã¼ãå
|
---|
4874 | æ°ã«å®ç¾©ããï¼
|
---|
4875 |
|
---|
4876 | (8-5-7) MEASURE_TWICEï¼ãªãã·ã§ã³ï¼
|
---|
4877 |
|
---|
4878 | ãµã³ãã«ããã°ã©ã ã«ããã¦ï¼ããã»ããµã®é度ã2度è¨æ¸¬ããå ´åã«å®ç¾©ãã
|
---|
4879 | ãã¯ãï¼ã·ãã¥ã¬ã¼ã·ã§ã³ç°å¢ãªã©ããã»ããµã®é度ãå¤åããç°å¢ã§ï¼1度ã®
|
---|
4880 | è¨æ¸¬ã§ã¯è¨æ¸¬çµæãå®å®ããªãå ´åã«å®ç¾©ããï¼
|
---|
4881 |
|
---|
4882 | (8-5-8) TASK_LOOPï¼ãªãã·ã§ã³ï¼
|
---|
4883 |
|
---|
4884 | ãµã³ãã«ããã°ã©ã ã«ããã¦ï¼ããã»ããµã®é度ãè¨æ¸¬ããã«ï¼ã¿ã¹ã¯å
|
---|
4885 | ã§ã®
|
---|
4886 | ã«ã¼ãåæ°ãåºå®ããå ´åã«ï¼ã«ã¼ãåæ°ãå®ç¾©ãããã¯ãï¼ã«ã¼ãå
|
---|
4887 | ¨ä½ã®å®
|
---|
4888 | è¡æéã0.4ç§ç¨åº¦ã«ãªããããªã«ã¼ãåæ°ãï¼ãã®ãã¯ãã«å®ç¾©ããï¼
|
---|
4889 |
|
---|
4890 | 8.6 å®è¡æéåå¸éè¨ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾åå®ç¾©
|
---|
4891 |
|
---|
4892 | å®è¡æéåå¸éè¨ãµã¼ãã¹ã®è¨å®ãã¿ã¼ã²ããä¾åé¨ã§å¤æ´ããå ´åã«ï¼ã¿ã¼
|
---|
4893 | ã²ããä¾åé¨ã§æä¾ãã¹ãå®è¡æéåå¸éè¨ãµã¼ãã¹ã®ããã®å®ç¾©ã¯æ¬¡ã®éã
|
---|
4894 | ã§ããï¼ãããã®å®ç¾©ã¯ï¼target_test.hï¼ã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããã
|
---|
4895 | ãã¡ã¤ã«ï¼ã«å«ããï¼ãã®ä»ã«ï¼ã¿ã¼ã²ããä¾åã§å¿
|
---|
4896 | è¦ãªåæåå¦çãããå ´
|
---|
4897 | åã«ãï¼ã¿ã¼ã²ããä¾åé¨ã«å«ããï¼
|
---|
4898 |
|
---|
4899 | (8-6-1) HISTTIMï¼ãªãã·ã§ã³ï¼
|
---|
4900 |
|
---|
4901 | å®è¡æéè¨æ¸¬ç¨ã®æå»ã®ãã¼ã¿åãå®ç¾©ãããã¯ãï¼å®ç¾©ããªãå ´åã®ããã©
|
---|
4902 | ã«ãã¯HRTCNTï¼
|
---|
4903 |
|
---|
4904 | (8-6-2) void HIST_GET_TIM(HISTTIM *p_time)ï¼ãªãã·ã§ã³ï¼
|
---|
4905 |
|
---|
4906 | å®è¡æéè¨æ¸¬ç¨ã®ç¾å¨æå»ã*p_timeã«åå¾ããå¦çã«å®ç¾©ãããã¯ãï¼å®ç¾©ã
|
---|
4907 | ãªãå ´åã®ããã©ã«ãã¯ï¼fch_hrtã®è¿å¤ã*p_timeã«åå¾ããå¦çã«ãªãï¼
|
---|
4908 |
|
---|
4909 | (8-6-3) uint_t HIST_CONV_TIM(HISTTIM time)ï¼ãªãã·ã§ã³ï¼
|
---|
4910 |
|
---|
4911 | å®è¡æéè¨æ¸¬ç¨ã®æå»ã®å·®ï¼æéï¼ãï¼å®è¡æéåå¸éè¨ç¨ã®å¤ã«å¤æããå¦
|
---|
4912 | çã«å®ç¾©ãããã¯ãï¼æå»ãéå»ã«æ»ã£ãããªã¼ãããã¼ãããã®åºå¥ãã¤ã
|
---|
4913 | ãªãå ´åã«ã¯ï¼æä¸ä½ãããã1ã®å¤ï¼INT_MAXããã大ããå¤ï¼ãè¿ãï¼å®ç¾©
|
---|
4914 | ããªãå ´åã®ããã©ã«ãã¯ï¼timeãuint_tã«ãã£ã¹ãããå¦çã«ãªãï¼
|
---|
4915 |
|
---|
4916 | (8-6-4) void HIST_BM_HOOK(void)ï¼ãªãã·ã§ã³ï¼
|
---|
4917 |
|
---|
4918 | å®è¡æéè¨æ¸¬ç´åã«è¡ãã¹ãå¦çã«å®ç¾©ãããã¯ãï¼ãã£ãã·ã¥ã®ãã¼ã¸ããã£
|
---|
4919 | ã«ï¼ã¡ã¢ãªããªã¢å¦ççãè¡ãããå ´åã«ã¯ï¼ãã®ãã¯ãã«å®ç¾©ããï¼å®ç¾©ã
|
---|
4920 | ãªãå ´åã®ããã©ã«ãã¯ï¼ç©ºã®å¦çã«ãªãï¼
|
---|
4921 |
|
---|
4922 |
|
---|
4923 | ï¼ï¼ãã®ä»
|
---|
4924 |
|
---|
4925 | 9.1 ããã¥ã¡ã³ã
|
---|
4926 |
|
---|
4927 | ã¿ã¼ã²ããä¾åé¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ãï¼target_user.txtã«ç¨æããï¼é
|
---|
4928 | çºç°å¢ä¾åé¨ï¼ããã»ããµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«
|
---|
4929 | ãåãåãã¦ããããï¼ãã¡ã¤ã«ã大ãããªãå ´åã«ã¯è¤æ°ã®ãã¡ã¤ã«ã«åå²
|
---|
4930 | ãã¦ãããï¼ãã®å ´åã«ã¯ï¼target_user.txtä¸ã«ãããã®ãã¡ã¤ã«åãè¨è¿°ã
|
---|
4931 | ããã¨ï¼
|
---|
4932 |
|
---|
4933 | ã¿ã¼ã²ããä¾åé¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã«ã¯ï¼å°ãªãã¨ã次ã®ãããªå
|
---|
4934 | 容ã
|
---|
4935 | è¨è¿°ãããã¨ãæã¾ããï¼
|
---|
4936 |
|
---|
4937 | (1) 対å¿ãã¦ããã¿ã¼ã²ããã·ã¹ãã ã®ç¨®é¡ã»æ§æï¼ãã¼ã¸ã§ã³çªå·
|
---|
4938 | ã»ã¿ã¼ã²ãããã¼ãã¦ã§ã¢ï¼ãã¼ãçï¼ã®å称ã¨å¯¾å¿ãã¦ããæ§æ
|
---|
4939 | ã»ã¿ã¼ã²ããç¥ç§°
|
---|
4940 | ã»ã¿ã¼ã²ããéä¾åé¨ã®ãã¼ã¸ã§ã³çªå·
|
---|
4941 | ã»éçºç°å¢ä¾åé¨ï¼ããã»ããµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ã®æ§æã¨ãã¼ã¸ã§
|
---|
4942 | ãã³çªå·
|
---|
4943 |
|
---|
4944 | (2) 使ç¨ããéçºç°å¢ã¨åä½æ¤è¨¼ããæ¡ä»¶ï¼ãã¼ã¸ã§ã³ï¼ãªãã·ã§ã³çï¼
|
---|
4945 | ã»è¨èªå¦çç³»ï¼ã³ã³ãã¤ã©ï¼ã¢ã»ã³ãã©ï¼ãªã³ã«çï¼
|
---|
4946 | ã»ãããã°ç°å¢
|
---|
4947 |
|
---|
4948 | (3) ã¿ã¼ã²ããå®ç¾©äºé
|
---|
4949 | ã®è¦å®
|
---|
4950 |
|
---|
4951 | (3-1) ãã¼ã¿åã«é¢ããè¦å®
|
---|
4952 | ã»int_tåï¼long_tåã®ãµã¤ãº
|
---|
4953 | ã»charåï¼int_least8_tåï¼void *åï¼intptr_tåã®ãµã¤ãº
|
---|
4954 | ã»int8_tåï¼uint8_tåï¼int64_tåï¼uint64_tåï¼int128_tåï¼
|
---|
4955 | ãuint128_tåï¼float32_tåï¼double64_tåã®ãµãã¼ãã®æç¡
|
---|
4956 |
|
---|
4957 | (3-2) å²è¾¼ã¿å¦çã«é¢ããè¦å®
|
---|
4958 | ã»å²è¾¼ã¿ãã³ãã©çªå·ã¨å²è¾¼ã¿çªå·ã®å²å½ã¦ï¼ä¸¡è
|
---|
4959 | ã®å¯¾å¿
|
---|
4960 | ã»å²è¾¼ã¿åªå
|
---|
4961 | 度ã®æ®µéæ°ï¼TMIN_INTPRIã®å¤ï¼
|
---|
4962 | ã»dis_intã¨ena_intã®ãµãã¼ãã®æç¡ï¼ãã®å¶éäºé
|
---|
4963 |
|
---|
4964 | ã»CFG_INTã®å¶éäºé
|
---|
4965 | ã¨æ¡å¼µï¼ã¿ã¼ã²ããå®ç¾©ã§ä½¿ç¨ã§ããå²è¾¼ã¿å±æ§ï¼
|
---|
4966 | ã»TOPPERSæ¨æºå²è¾¼ã¿å¦çã¢ãã«ããã®ãã®ä»ã®é¸è±
|
---|
4967 | ã»ããã©ã«ãã®å²è¾¼ã¿ãã³ãã©ï¼default_int_handlerï¼ã®æç¡ã¨å¦çå
|
---|
4968 | 容
|
---|
4969 |
|
---|
4970 | (3-3) ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã«é¢ããè¦å®
|
---|
4971 | ã»TMIN_INTPRIã¯åºå®ãè¨å®ã§ãããï¼ãã®è¨å®æ¹æ³
|
---|
4972 | ã»NMI以å¤ã«ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãè¨ãããï¼è¨ããããããã«ãããï¼
|
---|
4973 | ã»ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã®è¨å®æ¹æ³
|
---|
4974 | ã»ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã«å¯¾ãã¦DEF_INHï¼CFG_INTããµãã¼ãããã
|
---|
4975 | ã»ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãã³ãã©ãå®è¡éå§ãããæã®ã·ã¹ãã ç¶æ
|
---|
4976 | ã¨
|
---|
4977 | ãã³ã³ããã¹ã
|
---|
4978 | ã»å²è¾¼ã¿ãã³ãã©ã®çµäºæã«è¡ãããå¦ç
|
---|
4979 | ã»ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãã³ãã©ã®è¨è¿°æ¹æ³
|
---|
4980 | ã»ã«ã¼ãã«å
|
---|
4981 | ã®å²è¾¼ã¿åºå
|
---|
4982 | ¥å£å¦çã§èµ·ããå¯è½æ§ã®ããCPUä¾å¤
|
---|
4983 |
|
---|
4984 | (3-4) CPUä¾å¤å¦çã«é¢ããè¦å®
|
---|
4985 | ã»CPUä¾å¤ãã³ãã©çªå·ã®å²å½ã¦
|
---|
4986 | ã»å²è¾¼ã¿åªå
|
---|
4987 | 度ãã¹ã¯ãTMIN_INTPRIã¨åãããããããé«ãå¤ã«è¨å®ãã¦
|
---|
4988 | ãããç¶æ
|
---|
4989 | ã§çºçããCPUä¾å¤ãï¼ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ã¨æ±ãã
|
---|
4990 | ã»ã«ã¼ãã«å
|
---|
4991 | ã®CPUä¾å¤åºå
|
---|
4992 | ¥å£å¦çã§èµ·ããå¯è½æ§ã®ããCPUä¾å¤
|
---|
4993 | ã»ããã©ã«ãã®CPUä¾å¤ãã³ãã©ï¼default_exc_handlerï¼ã®æç¡ã¨å¦çå
|
---|
4994 | 容
|
---|
4995 |
|
---|
4996 | (3-5) æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®åç
|
---|
4997 | §ã«é¢ããè¦å®
|
---|
4998 | ã»get_utmã®ãµãã¼ãã®æç¡ï¼ãã®å¶éäºé
|
---|
4999 |
|
---|
5000 |
|
---|
5001 | (3-6) æ¡å¼µããã±ã¼ã¸ã«é¢ããè¦å®
|
---|
5002 | ã»åæ¡å¼µããã±ã¼ã¸ã®ãµãã¼ãã®æç¡
|
---|
5003 | - ãã¥ã¼ããã¯ã¹æ©è½æ¡å¼µããã±ã¼ã¸
|
---|
5004 | - ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸
|
---|
5005 | - ã¿ã¹ã¯åªå
|
---|
5006 | 度æ¡å¼µããã±ã¼ã¸
|
---|
5007 | - å¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸
|
---|
5008 | - åççææ©è½æ¡å¼µããã±ã¼ã¸
|
---|
5009 | ã»ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ããµãã¼ãããå ´åã«ï¼æ®ãã
|
---|
5010 | ããã»ããµæéã«æå®ã§ããå¤ã®æ大å¤ï¼TMAX_OVRTIMã®å¤ï¼
|
---|
5011 | ã»åççææ©è½æ¡å¼µããã±ã¼ã¸ããµãã¼ãããå ´åã«ï¼åçã¡ã¢ãªç®¡çã®
|
---|
5012 | ãæ¹æ³
|
---|
5013 |
|
---|
5014 | (3-7) ãã®ä»
|
---|
5015 | ã»ãã®ä»ã®å¶éäºé
|
---|
5016 |
|
---|
5017 | ã»ãã®ä»ã®æ¡å¼µæ©è½
|
---|
5018 |
|
---|
5019 | (4) ã«ã¼ãã«ã®èµ·åï¼çµäºå¦çã«é¢ããæ
|
---|
5020 | å ±
|
---|
5021 | ã»ç¨æãã¦ããã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®å¦çå
|
---|
5022 | 容
|
---|
5023 | ã»ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ããhardware_init_hookãå¼ã³åºãã¦ããå ´
|
---|
5024 | ãåã«ã¯ï¼hardware_init_hookãã¢ããªã±ã¼ã·ã§ã³ã§ç¨æããå ´åã®ä½æ
|
---|
5025 | ãæ¹æ³ãå¶éäºé
|
---|
5026 | ãªã©
|
---|
5027 | ã»ã«ã¼ãã«ãçµäºããå¾ã®æ¯èã
|
---|
5028 |
|
---|
5029 | (5) ã¡ã¢ãªããã
|
---|
5030 | ã»ããã©ã«ãã®ã¡ã¢ãªãããï¼ãã®å¤æ´æ¹æ³
|
---|
5031 |
|
---|
5032 | (6) ã¿ã¤ããã©ã¤ãé¢é£ã®æ
|
---|
5033 | å ±
|
---|
5034 | ã»é«å解è½ã¿ã¤ãã®å¨æã¨ã«ã¦ã³ãã¢ããã®é²ã¿å¹
|
---|
5035 |
|
---|
5036 | ã»ä½¿ç¨ãããªã½ã¼ã¹ï¼ã¿ã¤ãï¼
|
---|
5037 | ã»é«å解è½ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿åªå
|
---|
5038 | 度ã®å¤æ´æ¹æ³
|
---|
5039 | ã»ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿åªå
|
---|
5040 | 度ã®å¤æ´æ¹æ³
|
---|
5041 |
|
---|
5042 | (7) ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®æ
|
---|
5043 | å ±
|
---|
5044 | ã»ä½¿ç¨ãããªã½ã¼ã¹ï¼SIOã³ã³ããã¼ã©ï¼
|
---|
5045 | ã»éä¿¡ãã©ã¡ã¼ã¿ï¼ãã¼ã¬ã¼ãï¼ãããæ°ï¼ããªãã£ã®æç¡ï¼ã¹ããããããï¼
|
---|
5046 |
|
---|
5047 | (8) ã·ã¹ãã ãã°æ©è½ã®æ
|
---|
5048 | å ±
|
---|
5049 | ã»ã·ã¹ãã ãã°ã®ä½ã¬ãã«åºåã®å®ç¾æ¹æ³
|
---|
5050 | ã»éä¿¡ãã©ã¡ã¼ã¿ï¼ãã¼ã¬ã¼ãï¼ãããæ°ï¼ããªãã£ã®æç¡ï¼ã¹ããããããï¼
|
---|
5051 |
|
---|
5052 | (9) ã·ã¹ãã æ§ç¯æé
|
---|
5053 |
|
---|
5054 | (10) ã¿ã¼ã²ããã·ã¹ãã åºæã®æ³¨æäºé
|
---|
5055 |
|
---|
5056 | ã»ã¿ã¹ã¯ã³ã³ããã¹ãã«å«ã¾ããã¬ã¸ã¹ã¿ï¼å«ã¾ããªãã¬ã¸ã¹ã¿
|
---|
5057 |
|
---|
5058 | (11) é¡ä¼¼ã®ã¿ã¼ã²ããã«ãã¼ãã£ã³ã°ããéçºè
|
---|
5059 | åãã®åèæ
|
---|
5060 | å ±
|
---|
5061 |
|
---|
5062 | (12) ãã£ã¬ã¯ããªæ§æã»ãã¡ã¤ã«æ§æ
|
---|
5063 |
|
---|
5064 | (13) ãã¼ã¸ã§ã³å±¥æ´
|
---|
5065 |
|
---|
5066 | ã¾ãï¼å¿
|
---|
5067 | è¦ã«å¿ãã¦ï¼ã¿ã¼ã²ããä¾åé¨ã®è¨è¨ã¡ã¢ãï¼target_design.txtã«ç¨
|
---|
5068 | æããï¼éçºç°å¢ä¾åé¨ï¼ããã»ããµã³ã¢ä¾åé¨ï¼ãããä¾åé¨ã«é¢ããè¨è¨
|
---|
5069 | ã¡ã¢ãåãåãã¦ããããï¼ãã¡ã¤ã«ã大ãããªãå ´åã«ã¯è¤æ°ã®ãã¡ã¤ã«ã«
|
---|
5070 | åå²ãã¦ããããï¼ãã®å ´åã«ã¯ï¼target_design.txtä¸ã«ãããã®ãã¡ã¤ã«å
|
---|
5071 | ãè¨è¿°ãããã¨ï¼
|
---|
5072 |
|
---|
5073 | 9.2 ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«
|
---|
5074 |
|
---|
5075 | ãªãªã¼ã¹ããã±ã¼ã¸ï¼åå¥ããã±ã¼ã¸ããã³ç°¡æããã±ã¼ã¸ï¼ãä½æãããã
|
---|
5076 | ã«ï¼ããã±ã¼ã¸ã«å«ãããã¡ã¤ã«ãè¨è¿°ããããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ãç¨æã
|
---|
5077 | ãï¼ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ã®å称ã¯ï¼åå¥ããã±ã¼ã¸ç¨ãMANIFESTï¼ç°¡æãã
|
---|
5078 | ã±ã¼ã¸ç¨ãE_PACKAGEã¨ããï¼
|
---|
5079 |
|
---|
5080 | ä¾ãã°ï¼arch/arm_gccãã£ã¬ã¯ããªã«ç½®ãããMANIFESTãã¡ã¤ã«ãç¨ãã¦åå¥
|
---|
5081 | ããã±ã¼ã¸ãä½æããå ´åã«ã¯ï¼æ¬¡ã®ã³ãã³ããå®è¡ããï¼
|
---|
5082 |
|
---|
5083 | % utils/makerelease arch/arm_gcc/MANIFEST
|
---|
5084 |
|
---|
5085 | ãã®ã³ãã³ãã«ããï¼RELEASE/asp3_arch_arm_gcc-<ãã¼ã¸ã§ã³çªå·>.tar.gzã
|
---|
5086 | ä½æãããï¼ã¾ãï¼target/ct11mpcore_gccãã£ã¬ã¯ããªã«ç½®ãããE_PACKAGE
|
---|
5087 | ãã¡ã¤ã«ãç¨ãã¦ç°¡æããã±ã¼ã¸ãä½æããå ´åã«ã¯ï¼æ¬¡ã®ã³ãã³ããå®è¡ã
|
---|
5088 | ãï¼
|
---|
5089 |
|
---|
5090 | % utils/makerelease target/ct11mpcore_gcc/E_PACKAGE
|
---|
5091 |
|
---|
5092 | ãã®ã³ãã³ãã«ããï¼RELEASE/asp3_ct11mpcore_gcc-<ãã¼ã¸ã§ã³çªå·>.tar.gz
|
---|
5093 | ãä½æãããï¼RELEASEãã£ã¬ã¯ããªããªãå ´åã«ã¯ï¼ãã£ã¬ã¯ããªãä½ãã
|
---|
5094 | ãï¼ï¼
|
---|
5095 |
|
---|
5096 | ãªãï¼makereleaseã¦ã¼ãã£ãªãã£ã¯ï¼ASP3ã«ã¼ãã«ã®ã½ã¼ã¹ãã¡ã¤ã«ãç½®ãã
|
---|
5097 | ããã£ã¬ã¯ããªãï¼asp3ã¨ããå称ã§ãããã¨ãä»®å®ãã¦ããï¼ç°ãªãå称ã®
|
---|
5098 | å ´åã§ãããã±ã¼ã¸ã¯ä½æã§ãããï¼ããã±ã¼ã¸ãå±éããæã«å±éããããã£
|
---|
5099 | ã¬ã¯ããªãasp3ã§ãªããªãï¼ï¼ã¾ãï¼æ¨æºã®tarã³ãã³ããGNU tarã§ãããã¨
|
---|
5100 | ï¼æ£ç¢ºã«ã¯ï¼zãªãã·ã§ã³ã«å¯¾å¿ãã¦ãããã¨ï¼ãæ³å®ãã¦ããï¼
|
---|
5101 |
|
---|
5102 | ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ã«ã¯ï¼ããã±ã¼ã¸ã«å«ãããã¡ã¤ã«åãï¼ããã±ã¼ã¸
|
---|
5103 | è¨è¿°ãã¡ã¤ã«ãç½®ããããã£ã¬ã¯ããªããã®ç¸å¯¾ãã¹åã§ï¼1è¡ã«1ã¤ãã¤è¨è¿°
|
---|
5104 | ããï¼ã¾ãï¼å¿
|
---|
5105 | è¦ã«å¿ãã¦ï¼ä»¥ä¸ã®ãã£ã¬ã¯ãã£ããå«ããï¼
|
---|
5106 |
|
---|
5107 | (a) E_PACKAGE <ç°¡æããã±ã¼ã¸å>
|
---|
5108 |
|
---|
5109 | ç°¡æããã±ã¼ã¸åãæå®ããï¼ç°¡æããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ï¼E_PACKAGEï¼ã®å
|
---|
5110 |
|
---|
5111 | é ã«è¨è¿°ããï¼ç°¡æããã±ã¼ã¸åã¯ï¼asp3_<ã¿ã¼ã²ããç¥ç§°>ã¨ããï¼ä¾ãã°ï¼
|
---|
5112 | ã¿ã¼ã²ããç¥ç§°ãct11mpcore_gccã®å ´åã«ã¯ï¼asp3_ct11mpcore_gccã¨ãªãï¼å
|
---|
5113 | å¥ããã±ã¼ã¸ã¨åºå¥ããããã«ï¼ç°¡æããã±ã¼ã¸ã®ãã¡ã¤ã«åã«ã¯"target"ã
|
---|
5114 | å«ããªãï¼
|
---|
5115 |
|
---|
5116 | (b) PACKAGE <åå¥ããã±ã¼ã¸å>
|
---|
5117 |
|
---|
5118 | åå¥ããã±ã¼ã¸åãæå®ããï¼åå¥ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ï¼MANIFESTï¼ã®å
|
---|
5119 |
|
---|
5120 | é ã«è¨è¿°ããï¼ã¾ãï¼ããããã¤ã³ã¯ã«ã¼ããããåãã¡ã¤ã«ã®å
|
---|
5121 | é ã«ãè¨è¿°
|
---|
5122 | ãï¼ãããã¤ã³ã¯ã«ã¼ããã¦ããåå¥ããã±ã¼ã¸åãæå®ããï¼ã¿ã¼ã²ããä¾
|
---|
5123 | åé¨ã®åå¥ããã±ã¼ã¸åã¯ï¼åå¥ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ãç½®ããããã£ã¬ã¯
|
---|
5124 | ããªã®ç¸å¯¾ãã¹ä¸ã®"/"ã"_"ã«ç½®ãæããæååãï¼"asp3_"ã®å¾ã«ã¤ãªããã
|
---|
5125 | ã®ã¨ããï¼ä¾ãã°ï¼åå¥ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ãarch/arm_gcc/MANIFESTã®å ´
|
---|
5126 | åã«ã¯ï¼asp3_arch_arm_gccã¨ãªãï¼
|
---|
5127 |
|
---|
5128 | (c) VERSION <ãã¼ã¸ã§ã³çªå·>
|
---|
5129 |
|
---|
5130 | ããã±ã¼ã¸ã®ãã¼ã¸ã§ã³çªå·ãæå®ããï¼ç°¡æããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ããã³
|
---|
5131 | åå¥ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ã®ä¸ã«è¨è¿°ããï¼ç°¡æããã±ã¼ã¸ã«ããã¦ï¼ãã¼
|
---|
5132 | ã¸ã§ã³çªå·ãããã±ã¼ã¸åããæ¥ä»ã¨ããå ´åã«ã¯ï¼ããã±ã¼ã¸çªå·ã®ä»£ãã
|
---|
5133 | ã«%dateã¨è¨è¿°ããï¼
|
---|
5134 |
|
---|
5135 | ãã¼ã¸ã§ã³çªå·ã®ä»ä¸æ¹æ³ã«ã¤ãã¦ã¯ï¼ãTOPPERS/ASP3ã«ã¼ãã« ã¦ã¼ã¶ã¼ãºã
|
---|
5136 | ãã¥ã¢ã«ãã®ã2.2 ç°¡æããã±ã¼ã¸ãããã³ã2.3 åå¥ããã±ã¼ã¸ãã®ç¯ãå
|
---|
5137 | ç
|
---|
5138 | §ãããã¨ï¼
|
---|
5139 |
|
---|
5140 | (d) INCLUDE <ãã¡ã¤ã«å>
|
---|
5141 |
|
---|
5142 | å¥ã®ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããï¼ç°¡æããã±ã¼ã¸è¨è¿°ãã¡ã¤
|
---|
5143 | ã«ããã¯ï¼åå¥ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ã®ã¿ãã¤ã³ã¯ã«ã¼ãããã®ãååã¨ã
|
---|
5144 | ãï¼åå¥ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ä¸ã§æå®ã
|
---|
5145 | ããåå¥ããã±ã¼ã¸åã¯ï¼ãã¹ã¦ä¸è´ãã¦ããªããã°ãªããªãï¼
|
---|
5146 |
|
---|
5147 |
|
---|
5148 | ï¼ï¼ï¼ãªãã¡ã¬ã³ã¹
|
---|
5149 |
|
---|
5150 | 10.1 ã¿ã¼ã²ããä¾åé¨ã®ãã¡ã¤ã«ä¸è¦§
|
---|
5151 |
|
---|
5152 | æ¨æºçãªã¿ã¼ã²ããä¾åé¨ã®ãã¡ã¤ã«æ§æã¯æ¬¡ã®éãã§ããï¼
|
---|
5153 |
|
---|
5154 | Makefile.target Makefileã®ã¿ã¼ã²ããä¾åé¨ï¼ï¼ç« ï¼
|
---|
5155 | target_offset.tf ãªãã»ãããã¡ã¤ã«çæç¨ãã³ãã¬ã¼ããã¡ã¤ã«ï¼2.5.1ç¯ï¼
|
---|
5156 | ãªãã·ã§ã³ï¼
|
---|
5157 |
|
---|
5158 | target_stddef.h TOPPERSå
|
---|
5159 | ±éå®ç¾©ï¼t_stddef.hï¼ã®ã¿ã¼ã²ããä¾åé¨ï¼ï¼
|
---|
5160 | ç« ï¼ï¼ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ãã«ã®ä¸¡æ¹ããã¤ã³ã¯ã«ã¼
|
---|
5161 | ãããã
|
---|
5162 | target_sil.h ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ï¼sil.hï¼ã®ã¿ã¼ã²ããä¾
|
---|
5163 | åé¨ï¼ï¼ç« ï¼ï¼ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ãã«ã®ä¸¡æ¹ãã
|
---|
5164 | ã¤ã³ã¯ã«ã¼ãããã
|
---|
5165 | target_kernel.h ã«ã¼ãã«APIï¼kernel.hï¼ã®ã¿ã¼ã²ããä¾åé¨ï¼ï¼ç« ï¼ï¼
|
---|
5166 | ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ãã«ã®ä¸¡æ¹ããã¤ã³ã¯ã«ã¼ãã
|
---|
5167 | ãã
|
---|
5168 |
|
---|
5169 | target_kernel_impl.h ã«ã¼ãã«å®è£
|
---|
5170 | ã®ã¿ã¼ã²ããä¾åé¨ã®ããããã¡ã¤ã«ï¼ï¼
|
---|
5171 | ç« ï¼ï¼ã«ã¼ãã«ã®ã¿ããã¤ã³ã¯ã«ã¼ãããã
|
---|
5172 | target_kernel_impl.c ã«ã¼ãã«å®è£
|
---|
5173 | ã®ã¿ã¼ã²ããä¾åé¨ã®Cè¨èªã§è¨è¿°ããã
|
---|
5174 | é¨åï¼ï¼ç« ï¼ãªãã·ã§ã³ï¼
|
---|
5175 |
|
---|
5176 | target_support.S ã¿ã¼ã²ããä¾åé¨ã®ã¢ã»ã³ããªè¨èªã§è¨è¿°ãããé¨åï¼ï¼
|
---|
5177 | ç« ï¼ãªãã·ã§ã³ï¼
|
---|
5178 | target_rename.def ã¿ã¼ã²ããä¾åé¨ã®ããã®ãªãã¼ã è¨è¿°ï¼6.12ç¯ï¼
|
---|
5179 | target_rename.h target_rename.defããçæããããã¡ã¤ã«ï¼6.12ç¯ï¼
|
---|
5180 | target_unrename.h target_rename.defããçæããããã¡ã¤ã«ï¼6.12ç¯ï¼
|
---|
5181 | target_timer.cfg ã¿ã¤ããã©ã¤ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡
|
---|
5182 | ã¤ã«ï¼6.13ç¯ï¼
|
---|
5183 | target_timer.h ã¿ã¤ããã©ã¤ãã®ããããã¡ã¤ã«ï¼6.13ç¯ï¼ï¼ã«ã¼ãã«
|
---|
5184 | ã®ã¿ããã¤ã³ã¯ã«ã¼ãããã
|
---|
5185 | target_timer.c ã¿ã¤ããã©ã¤ãã®å®è£
|
---|
5186 | ãã¡ã¤ã«ï¼6.13ç¯ï¼ãªãã·ã§ã³ï¼
|
---|
5187 | ã·ã¹ãã ç¥ç§°.h ã¿ã¼ã²ããã®ãã¼ãã¦ã§ã¢è³æºï¼å²è¾¼ã¿ãã³ãã©çªå·ã
|
---|
5188 | CPUä¾å¤ãã³ãã©çªå·ï¼ããã¤ã¹ã¬ã¸ã¹ã¿ã®çªå°ãªã©ï¼ã®
|
---|
5189 | å®ç¾©ãå«ãããããã¡ã¤ã«ï¼ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ã
|
---|
5190 | ã«ã®ä¸¡æ¹ããã¤ã³ã¯ã«ã¼ããããï¼ï¼ç« ï¼ãªãã·ã§ã³ï¼
|
---|
5191 |
|
---|
5192 | target_def.csv ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®å¤åå¾ã·ã³ãã«ãã¼ãã«ã®ã¿ã¼ã²ã
|
---|
5193 | ãä¾åé¨ï¼ï¼ç« ï¼ãªãã·ã§ã³ï¼
|
---|
5194 | target.tf ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®
|
---|
5195 | ã¿ã¼ã²ããä¾åé¨ï¼7.2ç¯ï¼
|
---|
5196 | target_check.tf ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ï¼7.3
|
---|
5197 | ç¯ï¼
|
---|
5198 | target_cfg1_out.h cfg1_out.cã®ãªã³ã¯ã«å¿
|
---|
5199 | è¦ãªã¹ã¿ãã®å®ç¾©ãã¡ã¤ã«ï¼7.4
|
---|
5200 | ç¯ï¼
|
---|
5201 |
|
---|
5202 | target_syssvc.h ã·ã¹ãã ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾åå®ç¾©ï¼8.0ç¯ï¼
|
---|
5203 | target_serial.cfg ã·ãªã¢ã«ãã©ã¤ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡
|
---|
5204 | ã¤ã«ï¼8.3ç¯ï¼
|
---|
5205 | target_serial.h ã·ãªã¢ã«ãã©ã¤ãã®ããããã¡ã¤ã«ï¼8.3ç¯ï¼ï¼ã·ãªã¢ã«
|
---|
5206 | ãã©ã¤ãã®ã¿ããã¤ã³ã¯ã«ã¼ãããã
|
---|
5207 | target_serial.c ã·ãªã¢ã«ãã©ã¤ãã®å®è£
|
---|
5208 | ãã¡ã¤ã«ï¼8.3ç¯ï¼ãªãã·ã§ã³ï¼ï¼
|
---|
5209 | target_test.h ãã¹ãããã°ã©ã ã®ã¿ã¼ã²ããä¾åå®ç¾©ï¼8.4ç¯ï¼
|
---|
5210 |
|
---|
5211 | target_user.txt ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ï¼9.1ç¯ï¼
|
---|
5212 | target_design.txt è¨è¨ã¡ã¢ï¼9.1ç¯ï¼ãªãã·ã§ã³ï¼
|
---|
5213 | MANIFEST åå¥ããã±ã¼ã¸ã«å«ãããã¡ã¤ã«ã®ãªã¹ãï¼9.2ç¯ï¼ãªã
|
---|
5214 | ã·ã§ã³ï¼
|
---|
5215 | E_PACKAGE ç°¡æããã±ã¼ã¸ã«å«ãããã¡ã¤ã«ã®ãªã¹ãï¼9.2ç¯ï¼ãªã
|
---|
5216 | ã·ã§ã³ï¼
|
---|
5217 |
|
---|
5218 | 以ä¸
|
---|