1 |
|
---|
2 | TOPPERS/SSPJ[l
|
---|
3 | ^[Qbg˶ |[eBOKCh
|
---|
4 |
|
---|
5 | Îo[W: Release 1.3.0
|
---|
6 | ÅIXV: 2015N511ú
|
---|
7 |
|
---|
8 | ±ÌhL
|
---|
9 | gÍCTOPPERS/SSPJ[lðC¢T|[gÌ^[QbgVXe
|
---|
10 | É|[eBO·é½ßÉKvÆÈé^[Qbg˶ÌÀû@ðྷ
|
---|
11 | éàÌÅ éD
|
---|
12 |
|
---|
13 | ----------------------------------------------------------------------
|
---|
14 | TOPPERS/SSP Kernel
|
---|
15 | Smallest Set Profile Kernel
|
---|
16 |
|
---|
17 | Copyright (C) 2011-2012 by Meika Sugimoto
|
---|
18 | Copyright (C) 2015 by Naoki Saito
|
---|
19 | Nagoya Municipal Industrial Research Institute, JAPAN
|
---|
20 |
|
---|
21 | ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
|
---|
22 | Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü
|
---|
23 | ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD
|
---|
24 | (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
|
---|
25 | \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
|
---|
26 | XR[hÉÜÜêĢ鱯D
|
---|
27 | (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg
|
---|
28 | pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL
|
---|
29 | gip
|
---|
30 | Ò}j
|
---|
31 | AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
|
---|
32 | Ì³ÛØKèðfÚ·é±ÆD
|
---|
33 | (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg
|
---|
34 | pūȢ`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
|
---|
35 | ÆD
|
---|
36 | (a) Äzzɺ¤hL
|
---|
37 | gipÒ}j
|
---|
38 | AÈÇjÉCãLÌ
|
---|
39 | ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
|
---|
40 | (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
|
---|
41 | ñ·é±ÆD
|
---|
42 | (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹
|
---|
43 | Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
|
---|
44 | ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé
|
---|
45 | RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð
|
---|
46 | ÆÓ·é±ÆD
|
---|
47 |
|
---|
48 | {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
|
---|
49 | æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
|
---|
50 | ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF
|
---|
51 | AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»
|
---|
52 | ÌÓCðíÈ¢D
|
---|
53 |
|
---|
54 | ----------------------------------------------------------------------
|
---|
55 |
|
---|
56 | Ú
|
---|
57 |
|
---|
58 | 1. ¤Ê
|
---|
59 | 1.1 ^[Qbg˶Ì\¬
|
---|
60 | 1.2 ¼OÌÕËÌh~
|
---|
61 | 1.3 ½dCN[hÌh~
|
---|
62 | 1.4 AZu¾êÆÌwb_t@C̤p
|
---|
63 | 1.5 CN[hLqÌû@
|
---|
64 | 1.6 NeBJZNVÌoüÌÀ»ÉÖ·é§ñ
|
---|
65 | 2. VXe\z«Ì^[Qbg˶
|
---|
66 | 2.1 ^[QbgªÌÆ^[Qbg˶ÌfBNg
|
---|
67 | 2.2 MakefileÌ^[Qbg˶
|
---|
68 | 2.3 J«¼ÆR}h¼ÌÝè
|
---|
69 | 2.4 RpCIvVÆIuWFNgt@CÌÝè
|
---|
70 | 2.5 Nû@ÌÝè
|
---|
71 | 2.6 ˶ÖWÌè`
|
---|
72 | 2.7 »Ì¼ÌÝè
|
---|
73 | 3. TOPPERS¤Êè`Ì^[Qbg˶
|
---|
74 | 3.1 ^[Qbg¯Ê}N
|
---|
75 | 3.2 ®^ÌÅålEŬlErbg
|
---|
76 | 3.3 TCYÌwè³ê½®^C»ÌÅålEŬlC®èðìé}N
|
---|
77 | 3.4 TCYÌwè³ê½®¬_^C»ÌÅålEŬlÌ}N
|
---|
78 | 3.5 RpCÌg£@\̽ßÌ}Nè`
|
---|
79 | 3.6 WIÈè`Ìã«
|
---|
80 | 3.7 AT[V̽ßÌè`
|
---|
81 | 4. VXeC^tF[XCiSILjÌ^[Qbg˶
|
---|
82 | 4.1 SÝbNóÔÌÇ
|
---|
83 | 4.2 ÷ÔÒ¿
|
---|
84 | 4.3 vZbTÌGfBA
|
---|
85 | 4.4 óÔANZXÖ
|
---|
86 | 4.5 I/OóÔANZXÖ
|
---|
87 | 5. J[lAPIÌ^[Qbg˶
|
---|
88 | 5.1 ^[Qbgè`ÅT|[g·é@\
|
---|
89 | 5.2 ÝDæxÌÍÍ
|
---|
90 | 5.3 ^CeBbNÌè`
|
---|
91 | 5.4 ÌæmÛ̽ßÌ^è`
|
---|
92 | 5.5 ÌæmÛ̽ßÌ}N
|
---|
93 | 5.6 I[onh@\g£Ì½ßÌè`iIvVj
|
---|
94 | 6. J[lÀÌ^[Qbg˶
|
---|
95 | 6.1 J[lÀÌ^[Qbg˶̤Ê
|
---|
96 | 6.1.1 J[lÀÌ^[Qbg˶Ì\¬vf
|
---|
97 | 6.1.2 ^[Qbg˶ÌÖ̽¼K¥
|
---|
98 | 6.2 g[XO@\ÖÌÎ
|
---|
99 | 6.3 VXeóÔÌÇ
|
---|
100 | 6.3.1 SÝbNóÔÌÇ
|
---|
101 | 6.3.2 ReLXgÌÇ
|
---|
102 | 6.3.3 CPUbNóÔÌÇ
|
---|
103 | 6.4 ÝÉÖA·éVXeóÔÌÇ
|
---|
104 | 6.4.1 ÝDæx}XNÌÇ
|
---|
105 | 6.4.2 ÝvÖ~tOÌÇ
|
---|
106 | 6.4.3 ÝvÌNA
|
---|
107 | 6.4.4 ÝvÌv[u
|
---|
108 | 6.4.5 ÝnhÌæªÆö
|
---|
109 | 6.5 ^XNfBXpb`
|
---|
110 | 6.5.1 ^XNReLXgubNÆ^XNú»ReLXgubN
|
---|
111 | 6.5.2 fBXpb`{Ì
|
---|
112 | 6.5.3 ^XNReLXg©çÌfBXpb`
|
---|
113 | 6.5.4 fBXpb`Ì®ìJn
|
---|
114 | 6.5.5 »ÝÌReLXgðÌÄÄfBXpb`
|
---|
115 | 6.5.6 ^XNÌN®
|
---|
116 | 6.6 Ýnh
|
---|
117 | 6.6.1 ÝnhÌoüû
|
---|
118 | 6.6.2 ÝnhÌoüû̶¬
|
---|
119 | 6.6.3 ÝnhÌÝè
|
---|
120 | 6.6.4 ÝvCÌ®«ÌÝè
|
---|
121 | 6.6.5 ÝÇ@\Ìú»ÌÏX
|
---|
122 | 6.6.6 ftHgÌÝnh
|
---|
123 | 6.6.7 J[lÇOÌÝ
|
---|
124 | 6.7 CPUáOnhÆCPUáO¶ÌVXeóÔÌQÆ
|
---|
125 | 6.7.1 CPUáOnhÌoüû
|
---|
126 | 6.7.2 CPUáOnhÌoüû̶¬
|
---|
127 | 6.7.3 CPUáOnhÌÝè
|
---|
128 | 6.7.4 CPUáOÇ@\Ìú»ÌÏX
|
---|
129 | 6.7.5 ftHgÌCPUáOnh
|
---|
130 | 6.7.6 CPUáO¶ÌVXeóÔÌQÆ
|
---|
131 | 6.8 J[lÌN®EI¹ÆX^bNÌæÈÇ
|
---|
132 | 6.9 J[làÌ`
|
---|
133 | [jO
|
---|
134 | 6.9.1 rbg}bvT[`
|
---|
135 | 6.9.2 rbgtB[h
|
---|
136 | 6.10 J[lÀÉÖ·é»Ì¼Ìè`
|
---|
137 | 6.10.1 ñ^XNReLXgpÌX^bNÌæ
|
---|
138 | 6.10.2 óxÌè`
|
---|
139 | 6.11 J[lÀÌ^[Qbg˶̽ßÌl[Lq
|
---|
140 | 6.12 ^C}hCo
|
---|
141 | 6.12.1 ^C}hCoÌt@C\¬
|
---|
142 | 6.12.2 ^C}Ìú»EI¹EÝ
|
---|
143 | 6.12.3 «\]¿pVXeÌQÆÌ½ßÌ@\
|
---|
144 | 7. RtBM
|
---|
145 | [^Ýèt@CÌ^[Qbg˶
|
---|
146 | 7.1 Ýèt@CÆ^[Qbg˶ÌÊut¯
|
---|
147 | 7.2 pX2Ìev[gt@CÌ^[Qbg˶
|
---|
148 | 7.2.1 ^[Qbgñ˶ðCN[h·éOÉè`·×«Ï
|
---|
149 | 7.2.2 ^[Qbgñ˶Åè`³êéÏ
|
---|
150 | 7.3 pX3Ìev[gt@CÌ^[Qbg˶
|
---|
151 | 7.4 cfg1_out.cÌNÉKvÈX^uÌè`t@C
|
---|
152 | 8. VXeT[rXÌ^[Qbg˶
|
---|
153 | 8.1 VXeT[rXÌ^[Qbg˶
|
---|
154 | 8.2 VAC^tF[XhCoÌ^[Qbg˶
|
---|
155 | 8.2.1 ÏCf[^^CÇÖ
|
---|
156 | 8.2.2 foCXT[rX[`
|
---|
157 | 8.2.3 R[obN[`
|
---|
158 | 8.3 J[lN®bZ[WÌoÍÌ^[Qbg˶è`
|
---|
159 | 8.4 TvvOÆeXgvOÌ^[Qbg˶è`
|
---|
160 | 9. »Ì¼
|
---|
161 | 9.1 hL
|
---|
162 | g
|
---|
163 | 9.2 pbP[WLqt@C
|
---|
164 | 10. t@X
|
---|
165 | 10.1 ^[Qbg˶Ìt@Cê
|
---|
166 |
|
---|
167 |
|
---|
168 | 1. ¤Ê
|
---|
169 |
|
---|
170 | 1.1 ^[Qbg˶Ì\¬
|
---|
171 |
|
---|
172 | ^[Qbg˶ÍCtargetfBNg̺ÉC^[Qbgn[hEFAÆ
|
---|
173 | J«ÌgÝí¹ÉpÓ·éD½¾µC^[Qbg˶ÌÄp«ð
|
---|
174 | l¶µCvZbTC`bvCJ«ÌÝÉ˶·éªðCvZbTË
|
---|
175 | ¶C`bv˶CJ«˶Ƣ¤`ÅØèª¯Äàæ¢DØèª¯
|
---|
176 | ûÍC^[Qbg˶ÌÀÉC³êÄ¢éDvZbT˶C`bvË
|
---|
177 | ¶CJ«˶ÍCarchfBNg̺ÉuD
|
---|
178 |
|
---|
179 | SSPJ[lÌ^[Qbg˶ÍCVXe\z«iMakefilejÌ^[Qb
|
---|
180 | g˶CTOPPERS¤Êè`it_stddef.hjÌ^[Qbg˶CVXeC
|
---|
181 | ^tF[XCiSILCsil.hjÌ^[Qbg˶CJ[lAPIikernel.hj
|
---|
182 | Ì^[Qbg˶CJ[lÀÌ^[Qbg˶iRtBM
|
---|
183 | [^
|
---|
184 | Ýèt@CÌ^[Qbg˶ðÜÞjCVXeT[rXÌ^[QbgË
|
---|
185 | ¶C^[Qbg˶ÉÖ·éhL
|
---|
186 | gÅ\¬³êéD
|
---|
187 |
|
---|
188 | 1.2 ¼OÌÕËÌh~
|
---|
189 |
|
---|
190 | TOPPERSvWFNgªñ·é\tgEFA̽ßÉCTOPPERS_ÅnÜéV
|
---|
191 | {ð\ñµÄ¢éDwb_t@CÉLq³êCAvP[V©çQ
|
---|
192 | ÆÅ«éàV{ÍCTOPPERS_ÅnÜé¼OÆ·éD
|
---|
193 |
|
---|
194 | ܽC_kernel_ÅnÜéV{ÍCJ[làÌÏâÖ̽ßÉ\ñ
|
---|
195 | µÄ¢éDJ[làÌÏâÖ̼OÅCNÉAvP[V
|
---|
196 | ̼OÆÕË·éÂ\«ª éàÌÍCl[LqÉXgAbv·é±Æ
|
---|
197 | ÅCRpCÉ_kernel_ÅnÜé¼OÉu«·¦é±ÆÆµÄ¢éD
|
---|
198 |
|
---|
199 | 1.3 ½dCN[hÌh~
|
---|
200 |
|
---|
201 | ·×ÄÌwb_t@CÍC½dÉCN[h³êéÌðh~·é½ßÌð
|
---|
202 | RpCLqðüêé±ÆÆ·éDá¦ÎCtarget_config.hÅ êÎCt@
|
---|
203 | CÌæªÉ
|
---|
204 |
|
---|
205 | #ifndef TOPPERS_TARGET_CONFIG_H
|
---|
206 | #define TOPPERS_TARGET_CONFIG_H
|
---|
207 |
|
---|
208 | ðCt@CÌöÉ
|
---|
209 |
|
---|
210 | #endif /* TOPPERS_TARGET_CONFIG_H */
|
---|
211 |
|
---|
212 | ðLq·éD
|
---|
213 |
|
---|
214 | 1.4 AZu¾êÆÌwb_t@C̤p
|
---|
215 |
|
---|
216 | SSPJ[lÌwb_t@C̽ÍCAZu¾êÌ\[Xt@C©ç
|
---|
217 | àCN[hū鿤ɷé½ßÉCÌ[É]ÁÄLq·éàÌÆ
|
---|
218 | ·éD
|
---|
219 |
|
---|
220 | ETOPPERS_MACRO_ONLYª}Nè`³êÄ¢éêÉÍCAZu¾êÅÍ
|
---|
221 | @ðßūȢLqi}Nè`ÈOÌLqjðæ¤ÉLq·éD
|
---|
222 |
|
---|
223 | E³µ®^ÌèlÍCUINT_CâULONG_CÈÇÌ®èðìé½ßÌ}
|
---|
224 | @Nðp¢ÄLq·éD½¾µCAZu¾êÌ\[Xt@C©çàC
|
---|
225 | @N[hÅ«ét@CÅ ÁÄàCC¾êÌÝÅp¢éèð±êçÌ
|
---|
226 | @}NðgÁÄLq·éKvÍÈ¢D
|
---|
227 |
|
---|
228 | ܽCJ[lÀɨ¢ÄÍCÌ[É]¤àÌÆ·éD
|
---|
229 |
|
---|
230 | EAZu¾ê©çàp¢éèÌè`É^LXgðp¢éêÉÍC
|
---|
231 | @CAST}Nðp¢ÄLq·éD
|
---|
232 |
|
---|
233 | AZu¾ê©çwb_t@CðCN[h·éÛÉÍCKvɶÄC
|
---|
234 | TOPPERS_MACRO_ONLYCUINC_CCULONG_CCCASTð}Nè`µÄ©çCCN[
|
---|
235 | hµÈ¯êÎÈçÈ¢D
|
---|
236 |
|
---|
237 | 1.5 CN[hLqÌû@
|
---|
238 |
|
---|
239 | J«ÅpÓ³êÄ¢éWwb_t@C¨æÑincludefBNgºÌ
|
---|
240 | Wwb_t@CÍCu#include <...>vÉæèCN[h·éD
|
---|
241 |
|
---|
242 | »Ì¼Ìwb_t@CÍCu#include "..."vÉæèCN[h·éDwb
|
---|
243 | _t@CªCJgfBNgâCN[h·ét@CƯ¶fB
|
---|
244 | NgÈOÌfBNgÉu©êÄ¢éêÉÍCÌæ¤ÉpXwèð
|
---|
245 | s¤D
|
---|
246 |
|
---|
247 | E^[Qbg˶itarget/<^[Qbg¼>jÌfBNgÉu©êÄ¢é
|
---|
248 | @êÍCpXwèðsí¸Ct@C¼ÌÝðLq·éD
|
---|
249 | áj#include "target_config.h"
|
---|
250 |
|
---|
251 | EarchfBNgºÌfBNgÉu©êÄ¢éêÉÍCarchfBN
|
---|
252 | @g©çÌÎpXÅLq·éD
|
---|
253 | áj#include "m68k_gcc/prc_config.h"
|
---|
254 |
|
---|
255 | E»Ì¼ÌêÉÍC\[XvOÌ[gfBNgiconfigureªu
|
---|
256 | @©êÄ¢éfBNgj©çÌÎpXÅLq·éD
|
---|
257 | áj#include "pdic/upd72001/upd72001.h"
|
---|
258 |
|
---|
259 | EJ[lð\¬·ét@C©çCkernelfBNgºÌwb_t@C
|
---|
260 | @ðCN[h·éêÍCpXwèðsí¸Ct@C¼ÌÝðLq·éD
|
---|
261 | áj#include "kernel_impl.h"
|
---|
262 |
|
---|
263 | 1.6 NeBJZNVÌoüÌÀ»ÉÖ·é§ñ
|
---|
264 |
|
---|
265 | J[làÅp¢éNeBJZNVÌoüðÀ»·éêÉÍC
|
---|
266 | Ì2ÂÌðð½·æ¤ÉÀµÈ¯êÎÈçÈ¢D
|
---|
267 |
|
---|
268 | (1-6-1) oü©ç²¯½_ÅÍCÝÌÖ~^ª®¹µÄ¢È¯
|
---|
269 | êÎÈçÈ¢Dá¦ÎCÝÖ~^½ßðÀsµÄ©çÀÛÉݪ
|
---|
270 | Ö~^³êéÜŽ½ß©x·évZbTÌêÉÍCoüÌ
|
---|
271 | ÉNOP½ßðüêéÈÇÌû@ÅCoü𲯽_ÅÍCݪÖ~^
|
---|
272 | ³ê½óÔÉÈÁĢ鱯ðÛØµÈ¯êÎÈçÈ¢D
|
---|
273 |
|
---|
274 | (1-6-2) ãÌf[^\¢ª«ÏíéÂ\«ª 鱯ðC½ç©Ìû
|
---|
275 | @ÅRpCÉmç¹È¯êÎÈçÈ¢DGNUJ«ÅÍCÌ¢¸ê©Ì
|
---|
276 | û@ű̧ñ𽷱ƪūéD
|
---|
277 |
|
---|
278 | (a) NeBJZNVÌoüÌSÌܽÍoüÌ{¿IȪ
|
---|
279 | iïÌIÉÍCÝÖ~^·éjðiCCÅÈ¢jÊí
|
---|
280 | ÌÖÉæèÀ»·éD
|
---|
281 |
|
---|
282 | (b) NeBJZNVÌoüÌ{¿IȪðCCAZu
|
---|
283 | ÉæÁÄÀ»µÄ¢éêÉÍC»ÌCCAZuÌclobberÏ
|
---|
284 | XgÉ"memory"ðÇÁ·éD
|
---|
285 |
|
---|
286 | (c) NeBJZNVÌoüÌ{¿IȪªC}NâCC
|
---|
287 | ÖÄoµÅÀ»µÄ¢éêÉÍCNeBJZNVÉüé
|
---|
288 | ÌÅãÆoéÌæªÉCAsm("":::"memory")Æ¢¤LqðüêéD
|
---|
289 |
|
---|
290 | ±Ìæ¤È§ñðݯéRÉ¢ÄÍCuTOPPERS/ASPJ[l Ývv
|
---|
291 | ÌuJ[lÌf[^\¢Éηévolatileé¾É¢ÄvÌßðQÆ·é±
|
---|
292 | ÆD
|
---|
293 |
|
---|
294 | 2. VXe\z«Ì^[Qbg˶
|
---|
295 |
|
---|
296 | ±ÌÍÌà¾ÍCGNUJ«iGCCCGASCBINUTILSCGNU Makejðp¢é±Æ
|
---|
297 | ðzèµÄLqµÄ éD»êÈOÌJ«ðp¢éêÉÍCJ«É
|
---|
298 | í¹ÄC³·éKvª éD
|
---|
299 |
|
---|
300 | 2.1 ^[QbgªÌÆ^[Qbg˶ÌfBNg
|
---|
301 |
|
---|
302 | Vµ¢^[Qbg˶ð쬷éÍCܸC^[QbgªÌðèßéD^[
|
---|
303 | QbgªÌÍCVXeªÌÆJ«ªÌð"_"ÅAµ½àÌÆ·éDVX
|
---|
304 | eªÌÉp¢é¶Íp¬¶ÆÆ"_"ÉCJ«ªÌÉp¢é¶Í
|
---|
305 | p¬¶ÆÉÀè·éDGNUJ«ÌJ«ªÌÍC"gcc"Æ·éDá
|
---|
306 | ¦ÎCVXeªÌª"dve68k"ÅCGNUJ«ðp¢éêÉÍC^[Qbg
|
---|
307 | ªÌÍ"dve68k_gcc"ÆÈéD
|
---|
308 |
|
---|
309 | ^[Qbg˶Ìt@Cðu½ßÉCtargetfBNg̺ÉC^[
|
---|
310 | QbgªÌð¼ÌÆ·éfBNgð쬷éD±êð^[Qbg˶fB
|
---|
311 | NgÆÄÔD
|
---|
312 |
|
---|
313 | ^[Qbg˶©çvZbT˶â`bv˶ðØèª¯éêÉÍC
|
---|
314 | ˶ªÌðèßéD˶ªÌÍCvZbTâ`bvÌªÌÆJ«ª
|
---|
315 | Ìð"_"ÅAµ½àÌÆ·éDvZbTâ`bv̪ÌÉp¢é¶ÍCp
|
---|
316 | ¬¶ÆÆ"_"ÉÀè·éDá¦ÎCvZbTªÌª"m68k"ÅCGNUJ
|
---|
317 | «ðp¢éêÉÍC˶ªÌÍ"m68k_gcc"ÆÈéD
|
---|
318 |
|
---|
319 | ܽC^[Qbg˶©çJ«˶ðØèª¯éêÉÍCJ«
|
---|
320 | ªÌð˶ªÌÆ·éDá¦ÎCGNUJ«˶Ì˶ªÌÍC"gcc"
|
---|
321 | ÆÈéD
|
---|
322 |
|
---|
323 | ±êçÌ˶Ìt@Cðu½ßÉCarchfBNg̺ÉC˶ª
|
---|
324 | Ìð¼ÌÆ·éfBNgð쬷éD
|
---|
325 |
|
---|
326 | ȨCGNUJ«ÈOÌJ«ðp¢éêÉÍCRtBM
|
---|
327 | [V
|
---|
328 | XNvgiconfigurejCTvÌMakefileisample/MakefilejCêÌ
|
---|
329 | [eBeBvOiutils/genoffsetCutils/makedepjðC»ÌJ
|
---|
330 | «pÉpÓ·éKvª éêª éD»ÌêÉÍC±êçÌt@CðC
|
---|
331 | ^[Qbg˶fBNg©J«˶fBNgÉuàÌÆ·
|
---|
332 | éDܽCJ«pÌvWFNgt@CªKvÈêÉÍC^[Qbg
|
---|
333 | ˶fBNgÉuàÌÆ·éD
|
---|
334 |
|
---|
335 | 2.2 MakefileÌ^[Qbg˶
|
---|
336 |
|
---|
337 | MakefileÌ^[Qbg˶ÍC^[Qbg˶fBNgÉu¢½
|
---|
338 | Makefile.targetܽͻ±©çCN[h³êét@CivZbTE`b
|
---|
339 | vEJ«˶ÅpÓ³êét@CÈÇjÉÜßéD
|
---|
340 |
|
---|
341 | 2.3 J«¼ÆR}h¼ÌÝè
|
---|
342 |
|
---|
343 | J«¼ÆR}h¼ðÝè·é½ßÉCMakefileÌ^[Qbg˶Å
|
---|
344 | ÌÏðè`·éD
|
---|
345 |
|
---|
346 | (2-3-1) TOOL J«¼
|
---|
347 |
|
---|
348 | J«¼Éè`·éDGNUJ«ðp¢éêÉÍCgccÉè`·éD
|
---|
349 |
|
---|
350 | (2-3-2) GCC_TARGET GNUJ«Ì^[Qbg¼
|
---|
351 |
|
---|
352 | GNUJ«ðp¢éêÉCGNUJ«ðconfigure·éêÉwè·é^[
|
---|
353 | Qbg¼Éè`·éD±±Åwèµ½^[Qbg¼ÍCJ«ÌR}h¼
|
---|
354 | ÌæªÉt^³êé¶ñÆÈéDá¦ÎCGCC_TARGETðm68k-unknown-elfÉ
|
---|
355 | è`µ½êÉÍCRpCƵÄm68k-unknown-elf-gccªgíêéD±Ì
|
---|
356 | Ϫè`³êÈ¢êÉÍCPÈégccªgíêéD
|
---|
357 |
|
---|
358 | (2-3-3) CC CRpChCo̼Ì
|
---|
359 | (2-3-4) CXX C++RpChCo̼Ì
|
---|
360 | (2-3-5) AS AZu̼Ì
|
---|
361 | (2-3-6) LD J̼Ì
|
---|
362 | (2-3-7) AR A[JCo̼Ì
|
---|
363 | (2-3-8) NM nmvO̼Ì
|
---|
364 | (2-3-9) RANLIB ranlibvO̼Ì
|
---|
365 | (2-3-10) OBJCOPY objcopyvO̼Ì
|
---|
366 | (2-3-11) OBJDUMP objdumpvO̼Ì
|
---|
367 |
|
---|
368 | GNUJ«ÈOÌJ«ðp¢éêÉC»ê¼êÌR}h̼ÌÉè`
|
---|
369 | ·éDηéR}hªÈ¢êâCR}hp[^ªÙÈéêÉÍC
|
---|
370 | MakefileÅ»ÌR}hðÄÑoµÄ¢éªðÏX·éKvª éD
|
---|
371 |
|
---|
372 | GNUJ«ÅÍC±êçÍGCC_TARGETðp¢Äè`³êéÌÅCè`·éKv
|
---|
373 | ÍÈ¢D
|
---|
374 |
|
---|
375 | 2.4 RpCIvVÆIuWFNgt@CÌÝè
|
---|
376 |
|
---|
377 | MakefileÌ^[Qbg˶ÅȺÅྷéÏðè`·éÉÍC":="ð
|
---|
378 | p¢ÄC»êÜÅÌè`ÉÇÁ·é`Ås¤Dá¦ÎCRpCÉηé»
|
---|
379 | ̼ÌIvVƵÄu-Wall -g -O2vðÇÁµ½¢êÉÍCuCOPTS :=
|
---|
380 | $(COPTS) -Wall -g -O2vÆ¢¤LqðMakefileÌ^[Qbg˶ÉÜßéD
|
---|
381 |
|
---|
382 | (2-4-1) COPTS RpCÉηé»Ì¼ÌIvV
|
---|
383 | (2-4-2) CDEFS }Nè`IvVi-DIvVj
|
---|
384 | (2-4-3) INCLUDES wb_t@CÌu©ê½fBNgwèI
|
---|
385 | vVi-IIvVj
|
---|
386 | (2-4-4) LDFLAGS JÉηé»Ì¼ÌIvV
|
---|
387 | (2-4-5) LIBS CuNwè̽ßÌIvV
|
---|
388 |
|
---|
389 | ^[QbgÉ˶µÄC·×ÄÌ\[Xt@CɤʷéRpCIvV
|
---|
390 | ÌÇÁªKvÈêÉÍCIvVÌíÞÉãɦµ½ÏÉè`·éD
|
---|
391 |
|
---|
392 | ÙÆñÇÌêÉC^[Qbg˶fBNgÌMakefile.targetÉÍCÈ
|
---|
393 | ºÌLqðÜßéKvª éD
|
---|
394 |
|
---|
395 | ----------------------------------------
|
---|
396 | INCLUDES := $(INCLUDES) -I$(TARGETDIR)
|
---|
397 | ----------------------------------------
|
---|
398 |
|
---|
399 | ±±ÅTARGETDIRÍC^[Qbg˶fBNgÉè`³êÄ¢éDܽ
|
---|
400 | SRCDIRÍCMakefileɨ¢ÄC\[XvOÌ[gfBNg
|
---|
401 | iconfigureªu©êÄ¢éfBNgjÉè`³êÄ¢éD
|
---|
402 |
|
---|
403 | RpCÌâèÅCxbZ[Wªo鱯ðh°È¢óµÈOÅÍC
|
---|
404 | COPTSÉ-WerrorðÇÁ·é±Æð§·éD
|
---|
405 |
|
---|
406 | ----------------------------------------
|
---|
407 | COPTS := $(COPTS) -Werror
|
---|
408 | ----------------------------------------
|
---|
409 |
|
---|
410 | J[lÌRpCÉCdereferencing type-punned pointer will break
|
---|
411 | strict-aliasing rulesÆ¢¤xªoéêÉÍCȺðÇÁ·éÆæ¢D±
|
---|
412 | ÌxbZ[WÉÖ·éÚ×ÍCuTOPPERS/ASPJ[l ÝvvÌu^
|
---|
413 | LXgɺ¤xbZ[WvÌßðQÆ·é±ÆD
|
---|
414 |
|
---|
415 | ----------------------------------------
|
---|
416 | KERNEL_CFLAGS := $(KERNEL_CFLAGS) -fno-strict-aliasing
|
---|
417 | ----------------------------------------
|
---|
418 |
|
---|
419 | ܽCAZu¾êx̯ʼªCC¾êxÌ¯Ê¼ÌæªÉ"_"ª
|
---|
420 | t¢½àÌÉÈéêÉÍCCDEFSÉ-DTOPPERS_LABEL_ASMðÇÁ·éD
|
---|
421 |
|
---|
422 | (2-4-6) SYSSVC_DIR VXeT[rXÌ\[Xªu©ê½fBNg
|
---|
423 | (2-4-7) SYSSVC_ASMOBJS AZu¾êÅLq³ê½VXeT[rXÌ
|
---|
424 | IuWFNg
|
---|
425 | (2-4-8) SYSSVC_COBJS C¾êÅLq³ê½VXeT[rXÌIuWFNg
|
---|
426 | (2-4-9) SYSSVC_CFLAGS VXeT[rXÉηéRpCIvV
|
---|
427 | (2-4-10) SYSSVC_LIBS VXeT[rXÉηéCuNwè
|
---|
428 |
|
---|
429 | ^[QbgÉ˶µÄCVXeT[rXiVXeO^XNâfoCXh
|
---|
430 | CoÈÇjÌ\[Xªu©ê½fBNgCVXeT[rXð\¬·é
|
---|
431 | IuWFNgt@CÌXgC»êçðRpC·éÛÉKp·éRp
|
---|
432 | CIvVC»Ì\¬ÉKvÈCuNwèðÇÁ·éêÉÍC
|
---|
433 | ãɦµ½ÏÉè`·éD
|
---|
434 |
|
---|
435 | (2-4-11) KERNEL_DIR J[lÌ\[Xªu©ê½fBNg
|
---|
436 | (2-4-12) KERNEL_ASMOBJS AZu¾êÅLq³ê½J[lÌIuWFNg
|
---|
437 | (2-4-13) KERNEL_COBJS C¾êÅLq³ê½J[lÌIuWFNg
|
---|
438 | (2-4-14) KERNEL_CFLAGS J[lÉηéRpCIvV
|
---|
439 |
|
---|
440 | ^[QbgÉ˶µÄCJ[lÌ\[Xªu©ê½fBNgCJ[l
|
---|
441 | ð\¬·éIuWFNgt@CÌXgC»êçðRpC·éÛÉKp
|
---|
442 | ·éRpCIvVðÇÁ·éêÉÍCãɦµ½ÏÉè`·éD
|
---|
443 |
|
---|
444 | ÙÆñÇÌêÉC^[Qbg˶fBNgÌMakefile.targetÉÍCÈ
|
---|
445 | ºÌLqðÜßéKvª éD
|
---|
446 |
|
---|
447 | ----------------------------------------
|
---|
448 | KERNEL_DIR := $(KERNEL_DIR) $(TARGETDIR)
|
---|
449 | KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) target_support.o
|
---|
450 | KERNEL_COBJS := $(KERNEL_COBJS) target_config.o target_timer.o
|
---|
451 | ----------------------------------------
|
---|
452 |
|
---|
453 | (2-4-15) CFG_TABS RtBM
|
---|
454 | [^ÉηéIvV
|
---|
455 |
|
---|
456 | ^[QbgÉ˶µÄCRtBM
|
---|
457 | [^ÉηéIvVðÇÁ·éê
|
---|
458 | ÉÍCãɦµ½ÏÉè`·éDïÌIÉÍCRtBM
|
---|
459 | [^Ìlæ
|
---|
460 | ¾V{e[uÌ^[Qbg˶itarget_def.csvjª éêÉÍC
|
---|
461 | »êðwè·éIvVðÇÁ·éKvª éD
|
---|
462 |
|
---|
463 | ÙÆñÇÌêÉC^[Qbg˶fBNgÌMakefile.targetÉÍCÈ
|
---|
464 | ºÌLqðÜßéKvª éD
|
---|
465 |
|
---|
466 | ----------------------------------------
|
---|
467 | CFG_TABS := $(CFG_TABS) --cfg1-def-table $(TARGETDIR)/target_def.csv
|
---|
468 | ----------------------------------------
|
---|
469 |
|
---|
470 | (2-4-16) CFG1_OUT_LDFLAGS cfg1_out.cÉηéNIvV
|
---|
471 |
|
---|
472 | ^[QbgÉ˶µÄCcfg1_out.cðN·éÛÉKp·éIvVðÇ
|
---|
473 | Á·éêÉÍCãɦµ½ÏÉè`·éD
|
---|
474 |
|
---|
475 | (2-4-17) CFG_OBJS VXeRtBM
|
---|
476 | [V̽ßÌIu
|
---|
477 | WFNg
|
---|
478 |
|
---|
479 | ^[QbgÉ˶µÄCVXeRtBM
|
---|
480 | [V̽ßÌIuWFN
|
---|
481 | gt@Cðikernel_cfg.oÈOÉjÇÁ·éêÉÍCãɦµ½ÏÉè
|
---|
482 | `·éD±ÌêCÇÁµ½IuWFNgt@CÌì¬[iRpC^
|
---|
483 | AZu[ÆË¶ÖWì¬[jðCMakefileÌ^[Qbg˶É
|
---|
484 | Lq·éKvª éD
|
---|
485 |
|
---|
486 | (2-4-18) CFG2_OUT
|
---|
487 |
|
---|
488 | ^[QbgÉ˶µÄCRtBM
|
---|
489 | [^ÌpX2Åkernel_cfg.cÆ
|
---|
490 | kernel_cfg.hÈOÌt@C𶬷éêÉÍCãɦµ½ÏÉè`·éD
|
---|
491 |
|
---|
492 | (2-4-19) OMIT_WARINIG_ALL
|
---|
493 | (2-4-20) OMIT_OPTIMIZATION
|
---|
494 |
|
---|
495 | TvÌMakefileÅÍCRpCÉηéIvVÉu-Wall -g -O2v
|
---|
496 | ðÇÁ·éD-WallðÇÁµ½È¢êÉÍCMakefileÌ^[Qbg˶Å
|
---|
497 | OMIT_WARNING_ALLð"true"Éè`·éD-O2ðÇÁµ½È¢êÉÍC
|
---|
498 | MakefileÌ^[Qbg˶ÅOMIT_OPTIMIZATIONð"true"Éè`·éD
|
---|
499 |
|
---|
500 | 2.5 Nû@ÌÝè
|
---|
501 |
|
---|
502 | (2-5-1) LDSCRIPT JXNvgÌt@C¼
|
---|
503 |
|
---|
504 | J«ÉWÌJXNvgªgpūȢêÉÍC^[Qbg˶
|
---|
505 | ÅJXNvgðpÓµC»Ìt@C¼ð±ÌÏÉè`·éD
|
---|
506 |
|
---|
507 | (2-5-2) TEXT_START_ADDRESS eLXgZNVÌæªÔn
|
---|
508 | (2-5-3) DATA_START_ADDRESS f[^ZNVÌæªÔn
|
---|
509 |
|
---|
510 | eZNVÌæªÔnÌwèªKvÈêÉÍC±êçÌÏÉæªÔnð
|
---|
511 | è`·éD
|
---|
512 |
|
---|
513 | (2-5-4) START_OBJS æªÉN·×«W
|
---|
514 | [¼
|
---|
515 | (2-5-5) END_OBJS ÅãÉN·×«W
|
---|
516 | [¼
|
---|
517 |
|
---|
518 | ^[QbgÉæÁÄÍC[hW
|
---|
519 | [ÌæªÆÅãÉN·×«W
|
---|
520 | [
|
---|
521 | ðC^[Qbg˶ÅpÓ·éKvª éD½ÌêCX^[gAbv
|
---|
522 | W
|
---|
523 | [ð[hW
|
---|
524 | [ÌæªÉN·éKvª éD
|
---|
525 |
|
---|
526 | [hW
|
---|
527 | [ÌæªÉN·×«vOª éêÉÍCMakefile
|
---|
528 | Ì^[Qbg˶ɨ¢ÄC»ÌIuWFNgt@C¼ðSTART_OBJSÉè
|
---|
529 | `µC»êÉηéRpC[ÆË¶ÖWì¬[ðè`·éD[
|
---|
530 | hW
|
---|
531 | [ÌÅãÉN·×«W
|
---|
532 | [ª éêÉÍC»ÌIuWF
|
---|
533 | Ngt@C¼ðEND_OBJSÉè`µC»êÉηéRpC[ÆË¶Ö
|
---|
534 | Wì¬[ðè`·éDܽCWÌX^[gAbvW
|
---|
535 | [icrt0.oj
|
---|
536 | ðNµÈ¢æ¤ÉCLDFLAGSÉ-nostdlibðÇÁ·éKvª éD³ç
|
---|
537 | ÉC-nostdlibðÂ¯é±ÆÅWCuªN³êÈÈé½ßC
|
---|
538 | LIBSÉ-lgccðÇÁµÈ¯êÎÈçÈ¢D
|
---|
539 |
|
---|
540 | á¦ÎCX^[gAbvW
|
---|
541 | [Ì\[Xt@Cªstart.SÌêÉÍC
|
---|
542 | MakefileÌ^[Qbg˶ÉÌæ¤ÈLqðüê鯿¢D
|
---|
543 |
|
---|
544 | ----------------------------------------
|
---|
545 | # X^[gAbvW
|
---|
546 | [ÌIuWFNgt@C¼
|
---|
547 | START_OBJS = start.o
|
---|
548 |
|
---|
549 | # X^[gAbvW
|
---|
550 | [ÌRpC[
|
---|
551 | $(START_OBJS): %.o: %.S
|
---|
552 | $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
|
---|
553 |
|
---|
554 | # X^[gAbvW
|
---|
555 | [Ì˶ÖWì¬[
|
---|
556 | $(START_OBJS:.o=.d): %.d: %.S
|
---|
557 | @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
|
---|
558 | -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
|
---|
559 |
|
---|
560 | # JÉηéIvV
|
---|
561 | LDFLAGS := -nostdlib $(LDFLAGS)
|
---|
562 | LIBS := $(LIBS) -lgcc
|
---|
563 | ----------------------------------------
|
---|
564 |
|
---|
565 | ܽCGNUJ«ÅCRpCÉWÌcrtbegin.oÆcrtend.oðp¢éê
|
---|
566 | ÉÍCMakefile Ì^[Qbg˶ÉÌæ¤ÈLqðüê鯿¢D
|
---|
567 |
|
---|
568 | ----------------------------------------
|
---|
569 | # IuWFNgt@C¼
|
---|
570 | START_OBJS = $(shell $(CC) -print-file-name=crtbegin.o)
|
---|
571 | END_OBJS = $(shell $(CC) -print-file-name=crtend.o)
|
---|
572 |
|
---|
573 | # ˶ÖWì¬[
|
---|
574 | $(START_OBJS:.o=.d): %.d:
|
---|
575 | $(END_OBJS:.o=.d): %.d:
|
---|
576 |
|
---|
577 | # JÉηéIvV
|
---|
578 | LDFLAGS := -nostdlib $(LDFLAGS)
|
---|
579 | LIBS := $(LIBS) -lgcc
|
---|
580 | ----------------------------------------
|
---|
581 |
|
---|
582 | ±ÌêC±êçÌt@CðRpC·é±ÆÍÈ¢½ßCRpC[
|
---|
583 | ÍsvÅ éDܽC˶ÖWì¬[Í_~[Åæ¢i˶ÖWì¬[
|
---|
584 | ªÈ¢ÆG[ÉÈéjD
|
---|
585 |
|
---|
586 | (2-5-6) HIDDEN_OBJS wèµÈÄàN³êéW
|
---|
587 | [¼
|
---|
588 |
|
---|
589 | [hW
|
---|
590 | [ÉN·×«W
|
---|
591 | [ðCJÉηép[^Å
|
---|
592 | ÍÈCJXNvgÉiá¦ÎCGNUJ«ÌJXNvgÌ
|
---|
593 | STARTUPðgÁÄjLq·éêÉÍC»ÌIuWFNgt@C¼ðC
|
---|
594 | iSTART_OBJSܽÍEND_OBJSÅÍÈjHIDDEN_OBJSÉè`µC»êÉηéR
|
---|
595 | pC[ÆË¶ÖWì¬[ðè`·éDHIDDEN_OBJSÉè`µ½
|
---|
596 | W
|
---|
597 | [ÍCJÉηép[^©çÍO³êéDLIBSÆLDFLAGSÉÂ
|
---|
598 | ¢ÄÍCSTART_OBJSܽÍEND_OBJSðp¢éêÆ¯lÅ éD
|
---|
599 |
|
---|
600 | á¦ÎCX^[gAbvW
|
---|
601 | [Ì\[Xt@Cªstart.SÅCstart.oð
|
---|
602 | N·é±ÆðJXNvgÉLq·éêÉÍCMakefileÌ^[Qb
|
---|
603 | g˶ÉÌæ¤ÈLqðüê鯿¢D
|
---|
604 |
|
---|
605 | ----------------------------------------
|
---|
606 | # X^[gAbvW
|
---|
607 | [ÌIuWFNgt@C¼
|
---|
608 | HIDDEN_OBJS = start.o
|
---|
609 |
|
---|
610 | # X^[gAbvW
|
---|
611 | [ÌRpC[
|
---|
612 | $(HIDDEN_OBJS): %.o: %.S
|
---|
613 | $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
|
---|
614 |
|
---|
615 | # X^[gAbvW
|
---|
616 | [Ì˶ÖWì¬[
|
---|
617 | $(HIDDEN_OBJS:.o=.d): %.d: %.S
|
---|
618 | @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
|
---|
619 | -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
|
---|
620 |
|
---|
621 | # JÉηéIvV
|
---|
622 | LDFLAGS := -nostdlib $(LDFLAGS)
|
---|
623 | LIBS := $(LIBS) -lgcc
|
---|
624 | ----------------------------------------
|
---|
625 |
|
---|
626 | 2.6 ˶ÖWÌè`
|
---|
627 |
|
---|
628 | RtBM
|
---|
629 | [^ÌepXÉεÄC^[Qbg˶Ìt@CÖÌ˶Ö
|
---|
630 | Wðè`·éDïÌIÉÍCpX1CpX2CpX3ªË¶·ét@CðC»ê
|
---|
631 | ¼êcfg1_out.cCkernel_cfg.timestampC$(OBJFILE)Éηé˶ÖWÌ`Å
|
---|
632 | Lq·éD
|
---|
633 |
|
---|
634 | ÙÆñÇÌêÉC^[Qbg˶fBNgÌMakefile.targetÉÍCÈ
|
---|
635 | ºÌLqðÜßéKvª éD
|
---|
636 |
|
---|
637 | ----------------------------------------
|
---|
638 | cfg1_out.c: $(TARGETDIR)/target_def.csv
|
---|
639 | kernel_cfg.timestamp: $(TARGETDIR)/target.tf
|
---|
640 | $(OBJFILE): $(TARGETDIR)/target_check.tf
|
---|
641 | ----------------------------------------
|
---|
642 |
|
---|
643 | 2.7 »Ì¼ÌÝè
|
---|
644 |
|
---|
645 | (2-7-1) CLEAN_FILES cleanÉæèí·ét@C¼
|
---|
646 |
|
---|
647 | cleanÉæèí·ét@Cð^[Qbg˶ÅÇÁµ½¢êÉÍCt@
|
---|
648 | C¼ð±ÌÏÉÇÁè`·éD
|
---|
649 |
|
---|
650 | (2-7-2) REALCLEAN_FILES realcleanÉæèí·ét@C¼
|
---|
651 |
|
---|
652 | realcleanÉæèí·ét@Cð^[Qbg˶ÅÇÁµ½¢êÉÍC
|
---|
653 | t@C¼ð±ÌÏÉÇÁè`·éD
|
---|
654 |
|
---|
655 |
|
---|
656 | 3. TOPPERS¤Êè`Ì^[Qbg˶
|
---|
657 |
|
---|
658 | TOPPERS¤Êè`it_stddef.hjÌ^[Qbg˶ÍCtarget_stddef.hܽ
|
---|
659 | Í»±©çCN[h³êét@CivZbTE`bvEJ«˶
|
---|
660 | ÅpÓ³êéwb_t@CÈÇjÉÜßéD
|
---|
661 |
|
---|
662 | 3.1 ^[Qbg¯Ê}N
|
---|
663 |
|
---|
664 | AvP[VâVXeT[rXÅ^[Qbgð¯Ê·é½ßÉC
|
---|
665 | "TOPPERS_"ÉVXeªÌðå¶Éµ½¶ñðAµ½àÌiá¦ÎC
|
---|
666 | "TOPPERS_DVE68K"jð}Nè`·éD
|
---|
667 |
|
---|
668 | ܽC^[Qbg˶©çvZbT˶â`bv˶ðØèª¯½ê
|
---|
669 | ÉÍC"TOPPERS_"É˶ªÌðå¶Éµ½¶ñðAµ½àÌiá¦
|
---|
670 | ÎC"TOPPERS_M68K"jð}Nè`·éD
|
---|
671 |
|
---|
672 | 3.2 ®^ÌÅålEŬlErbg
|
---|
673 |
|
---|
674 | (3-2-1) INT_MAX intÉi[Å«éÅåliC90j
|
---|
675 | (3-2-2) INT_MIN intÉi[Å«éŬliC90j
|
---|
676 | (3-2-3) UINT_MAX unsigned intÉi[Å«éÅåliC90j
|
---|
677 | (3-2-4) LONG_MAX longÉi[Å«éÅåliC90j
|
---|
678 | (3-2-5) LONG_MIN longÉi[Å«éŬliC90j
|
---|
679 | (3-2-6) ULONG_MAX unsigned longÉi[Å«éÅåliC90j
|
---|
680 | (3-2-7) CHAR_BIT char^ÌrbgiC90j
|
---|
681 |
|
---|
682 | ®^ÌÅålEŬlErbgðC±êçÌV{É}NÉè`·éD
|
---|
683 |
|
---|
684 | ±êçÌ}NÍCC90ɵ½àÌÅ éDJ«ÉC90ɵ½
|
---|
685 | limits.hªpÓ³êÄ¢éêÉÍC±êçÌ}Nðè`·é±ÆÉã¦ÄC
|
---|
686 | limits.hðCN[h·êÎæ¢D
|
---|
687 |
|
---|
688 | 3.3 TCYÌwè³ê½®^C»ÌÅålEŬlC®èðìé}N
|
---|
689 |
|
---|
690 | (3-3-1) int8_t t«8rbg®iIvVCC99j
|
---|
691 | (3-3-2) uint8_t ³µ8rbg®iIvVCC99j
|
---|
692 | (3-3-3) int16_t t«16rbg®iC99j
|
---|
693 | (3-3-4) uint16_t ³µ16rbg®iC99j
|
---|
694 | (3-3-5) int32_t t«32rbg®iC99j
|
---|
695 | (3-3-6) uint32_t ³µ32rbg®iC99j
|
---|
696 | (3-3-7) int64_t t«64rbg®iIvVCC99j
|
---|
697 | (3-3-8) uint64_t ³µ64rbg®iIvVCC99j
|
---|
698 | (3-3-9) int128_t t«128rbg®iIvVCC99j
|
---|
699 | (3-3-10) uint128_t ³µ128rbg®iIvVCC99j
|
---|
700 | (3-3-11) int_least8_t 8rbgÈãÌt«®iC99j
|
---|
701 | (3-3-12) uint_least8_t 8rbgÈã̳µ®iC99j
|
---|
702 | (3-3-13) intptr_t |C^ði[Å«éTCYÌt«®iC99j
|
---|
703 | (3-3-14) uintptr_t |C^ði[Å«éTCY̳µ®iC99j
|
---|
704 | (3-3-15) INT8_MAX int8_tÉi[Å«éÅåliIvVCC99j
|
---|
705 | (3-3-16) INT8_MIN int8_tÉi[Å«éŬliIvVCC99j
|
---|
706 | (3-3-17) UINT8_MAX uint8_tÉi[Å«éÅåliIvVCC99j
|
---|
707 | (3-3-18) INT16_MAX int16_tÉi[Å«éÅåliC99j
|
---|
708 | (3-3-19) INT16_MIN int16_tÉi[Å«éŬliC99j
|
---|
709 | (3-3-20) UINT16_MAX uint16_tÉi[Å«éÅåliC99j
|
---|
710 | (3-3-21) INT32_MAX int32_tÉi[Å«éÅåliC99j
|
---|
711 | (3-3-22) INT32_MIN int32_tÉi[Å«éŬliC99j
|
---|
712 | (3-3-23) UINT32_MAX uint32_tÉi[Å«éÅåliC99j
|
---|
713 | (3-3-24) INT64_MAX int64_tÉi[Å«éÅåliIvVCC99j
|
---|
714 | (3-3-25) INT64_MIN int64_tÉi[Å«éŬliIvVCC99j
|
---|
715 | (3-3-26) UINT64_MAX uint64_tÉi[Å«éÅåliIvVCC99j
|
---|
716 | (3-3-27) INT128_MAX int128_tÉi[Å«éÅåliIvVCC99j
|
---|
717 | (3-3-28) INT128_MIN int128_tÉi[Å«éŬliIvVCC99j
|
---|
718 | (3-3-29) UINT128_MAX uint128_tÉi[Å«éÅåliIvVCC99j
|
---|
719 | (3-3-30) INT_LEAST8_MAX int_least8_tÉi[Å«éÅåliC99j
|
---|
720 | (3-3-31) INT_LEAST8_MIN int_least8_tÉi[Å«éŬliC99j
|
---|
721 | (3-3-32) UINT_LEAST8_MAX uint_least8_tÉi[Å«éÅåliC99j
|
---|
722 | (3-3-33) INT8_C(val) int_least8_t^Ìèðìé}NiC99j
|
---|
723 | (3-3-34) UINT8_C(val) uint_least8_t^Ìèðìé}NiC99j
|
---|
724 | (3-3-35) INT16_C(val) int16_t^Ìèðìé}NiC99j
|
---|
725 | (3-3-36) UINT16_C(val) uint16_t^Ìèðìé}NiC99j
|
---|
726 | (3-3-37) INT32_C(val) int32_t^Ìèðìé}NiC99j
|
---|
727 | (3-3-38) UINT32_C(val) uint32_t^Ìèðìé}NiC99j
|
---|
728 | (3-3-39) INT64_C(val) int64_t^Ìèðìé}NiIvVCC99j
|
---|
729 | (3-3-40) UINT64_C(val) uint64_t^Ìèðìé}NiIvVCC99j
|
---|
730 | (3-3-41) INT128_C(val) int128_t^Ìèðìé}NiIvVCC99j
|
---|
731 | (3-3-42) UINT128_C(val) uint128_t^Ìèðìé}NiIvVCC99j
|
---|
732 |
|
---|
733 | wè³ê½TCYÌ®^ðC±êçÌV{É^è`·éDܽCf[^
|
---|
734 | ^Éi[Å«éÅålEŬlÆC®èðìé}NðC±êçÌV{
|
---|
735 | É}Nè`·éD
|
---|
736 |
|
---|
737 | ±êçÌf[^^¨æÑ}NÍCC99ɵ½àÌÅ éDJ«ÉC99
|
---|
738 | ɵ½stdint.hªpÓ³êÄ¢éêÉÍC±êçÌf[^^¨æÑ}N
|
---|
739 | ðè`·é±ÆÉã¦ÄCstdint.hðCN[h·êÎæ¢D
|
---|
740 |
|
---|
741 | ãÅIvVÆLqµ½àÌÍCY·éf[^^ªRpCÅT|[g
|
---|
742 | ³êÄ¢éêÉÌÝè`·é±Æð¦·D
|
---|
743 |
|
---|
744 | 3.4 TCYÌwè³ê½®¬_^C»ÌÅålEŬlÌ}N
|
---|
745 |
|
---|
746 | (3-4-1) float32_t IEEE754Ì32rbgP¸x®¬_iIv
|
---|
747 | Vj
|
---|
748 | (3-4-2) double64_t IEEE754Ì64rbg{¸x®¬_iIv
|
---|
749 | Vj
|
---|
750 | (3-4-3) FLOAT32_MIN float32_tÉi[Å«éŬ̳K»³ê½³Ì
|
---|
751 | ®¬_iIvVj
|
---|
752 | (3-4-4) FLOAT32_MAX float32_tÉi[Å«é\»Â\ÈÅåÌLÀ®
|
---|
753 | ¬_iIvVj
|
---|
754 | (3-4-5) DOUBLE64_MIN double64_tÉi[Å«éŬ̳K»³ê½³Ì
|
---|
755 | ®¬_iIvVj
|
---|
756 | (3-4-6) DOUBLE64_MAX double64_tÉi[Å«é\»Â\ÈÅåÌLÀ®
|
---|
757 | ¬_iIvVj
|
---|
758 |
|
---|
759 | wè³ê½TCYE\»`®Ì®¬_^ðC±êçÌV{É^è`·
|
---|
760 | éDܽCf[^^Éi[Å«éÅålEŬlðC±êçÌV{É}N
|
---|
761 | è`·éD
|
---|
762 |
|
---|
763 | ¢¸êàCY·éf[^^ªRpCÅT|[g³êÄ¢éêÉÌÝè
|
---|
764 | `·éD
|
---|
765 |
|
---|
766 | 3.5 RpCÌg£@\̽ßÌ}Nè`
|
---|
767 |
|
---|
768 | RpCÌg£@\ðp¢é½ßÌ}NƵÄCKvɶÄCȺÌ}
|
---|
769 | NÌè`ðÜßéD
|
---|
770 |
|
---|
771 | (3-5-1) inlineiIvVCftHgꢏ`j
|
---|
772 | (3-5-2) InlineiIvVCftHgÍstatic inlinej
|
---|
773 |
|
---|
774 | CCÖŠ鱯ð¦·wèDInlineÍCRpCPÊÉ[J
|
---|
775 | ÈCCÖŠ鱯ð¦·D
|
---|
776 |
|
---|
777 | (3-5-3) asmiIvVCftHgꢏ`j
|
---|
778 | (3-5-4) AsmiIvVCftHgꢏ`j
|
---|
779 |
|
---|
780 | CCAZuðLq·é½ßÌwèDAsmÍCÅK»ÉæèíµÄÍ
|
---|
781 | ÈçÈ¢±Æð¦·D±êçÍC^[Qbg˶ÅÌÝg¤}NÅ é½
|
---|
782 | ßC^[Qbg˶ÅgíÈ¢Èçè`·éKvÍÈ¢D
|
---|
783 |
|
---|
784 | (3-5-5) offsetof(structure, field)iIvVCftHgÌè` èj
|
---|
785 |
|
---|
786 | \¢ÌstructureÌÅÌCtB[hfieldÌItZbgðßé}ND
|
---|
787 |
|
---|
788 | (3-5-6) alignof(type)iIvVCftHgÌè` èj
|
---|
789 |
|
---|
790 | f[^^typeÌACgPÊðßé}ND
|
---|
791 |
|
---|
792 | (3-5-7) NoReturniIvVCftHgꢏ`j
|
---|
793 |
|
---|
794 | ^[·é±ÆÌÈ¢ÖŠ鱯ð¦·wèD±êÍC^[Qbg˶
|
---|
795 | ÌÝg¤}NÅ é½ßC^[Qbg˶ÅgíÈ¢Èçè`·éKv
|
---|
796 | ÍÈ¢D
|
---|
797 |
|
---|
798 | 3.6 WIÈè`Ìã«
|
---|
799 |
|
---|
800 | t_stddef.hÉÜÜêéTOPPERS¤Êè`ÌWIÈè`ðã«·éêÉÍC
|
---|
801 | ȺÌ}Nðè`·éD
|
---|
802 |
|
---|
803 | (3-6-1) TOPPERS_booliIvVCftHgÍintj
|
---|
804 | (3-6-2) TOPPERS_sizeiIvVCftHgÍuintptr_tj
|
---|
805 | (3-6-3) TOPPERS_fpiIvVCftHgͼÆÝ·«ÌÈ¢Ö|C^j
|
---|
806 |
|
---|
807 | »ê¼êCbool_tCSIZECFPÉ^è`·×«f[^^D
|
---|
808 |
|
---|
809 | (3-6-4) UINT_C(val)iIvVCftHgÍUðtÁj
|
---|
810 | (3-6-5) ULONG_C(val)iIvVCftHgÍULðtÁj
|
---|
811 |
|
---|
812 | »ê¼êCunsigned uint^Cunsigned long^Ìèðìé½ßÌ}ND
|
---|
813 |
|
---|
814 | (3-6-6) NULLiIvVCftHgÍ0j
|
---|
815 |
|
---|
816 | C90ÌC¾ê«ÅÍCNULLÌè`Ístddef.hÉÜÜêÄ¢é½ßC±êð
|
---|
817 | CN[hµÄàæ¢D
|
---|
818 |
|
---|
819 | (3-6-7) ERCD(mercd, sercd)iIvVj
|
---|
820 | (3-6-8) MERCD(ercd)iIvVj
|
---|
821 | (3-6-9) SERCD(ercd)iIvVj
|
---|
822 |
|
---|
823 | ERCDCMERCDCSERCDÌWÌè`ÍCt«®ª2ÌâÅ\»³êĨèC
|
---|
824 | EVtgZqi>>jªZpVtg³ê鱯ð¼èµÄ¢éD½ÌRp
|
---|
825 | Cű̼説è§ÂªC»¤ÅÈ¢êÉÍC^[Qbg˶űê
|
---|
826 | çÌè`ðã«·éKvª éD
|
---|
827 |
|
---|
828 | (3-6-10) ALIGN_TYPE(addr, type)iIvVj
|
---|
829 |
|
---|
830 | AhXaddrªCf[^^typeÌACgPÊÉACµÄ¢é©
|
---|
831 | `FbN·é}ND
|
---|
832 |
|
---|
833 | 3.7 AT[V̽ßÌè`
|
---|
834 |
|
---|
835 | t_stddef.hÉÍCassertÌè`ªÜÜêéDassertª¸sµ½êiassertÌ
|
---|
836 | p[^ªfalseÉÈÁ½êjÌðC^[Qbg˶ÉpÓ·éKvª
|
---|
837 | éD±êçÌè`ÍCassert}Nðgp·éOÅ êÎCt_stddef.hÈ~
|
---|
838 | ÉCN[h³êét@CÉÜÜêÄ¢Äàæ¢DȨCassertð³øÉ
|
---|
839 | ·éiNDEBUGð}Nè`µÄRpC·éjêÉÍC±êçðpÓ·é
|
---|
840 | KvÍÈ¢D
|
---|
841 |
|
---|
842 | (3-7-1) TOPPERS_assert_abort(void)
|
---|
843 |
|
---|
844 | assertª¸sµ½êÉCvOðâ~³¹éÖDVXeJÍf
|
---|
845 | obKÉÆ·ÌªzIÅ éDVXeÒÉÍáOðsí¹é±
|
---|
846 | ÆÉÈéD
|
---|
847 |
|
---|
848 | {Öð³À[vÅÀ·éÛÍCȺÌ`®Æ·é±Æ(TECSÌp[TÌ
|
---|
849 | §ÀÉí¹é½ßjD
|
---|
850 |
|
---|
851 | Inline void
|
---|
852 | TOPPERS_assert_abort(void)
|
---|
853 | {
|
---|
854 | while(1)
|
---|
855 | {
|
---|
856 | }
|
---|
857 | }
|
---|
858 |
|
---|
859 | (3-7-2) TOPPERS_assert_fail(exp, file, line)
|
---|
860 |
|
---|
861 | assertª¸sµ½Ìîñð\¦/L^·é½ßÌ}NDVXeO@\ð
|
---|
862 | p¢éêÉÍCt_syslog.hÉVXeO@\ÉL^·é½ßÌè`ªÜÜ
|
---|
863 | êÄ¢éÌÅC^[Qbg˶ÅpÓ·éKvÍÈ¢D
|
---|
864 |
|
---|
865 |
|
---|
866 | 4. VXeC^tF[XCiSILjÌ^[Qbg˶
|
---|
867 |
|
---|
868 | VXeC^tF[XCiSILCsil.hjÌ^[Qbg˶Ìè`ÍC
|
---|
869 | target_sil.hܽͻ±©çCN[h³êét@CivZbTE`b
|
---|
870 | vEJ«˶ÅpÓ³êéwb_t@CÈÇjÉÜßéD
|
---|
871 |
|
---|
872 | SILÌT[rXR[ÍCCÓÌVXeóÔÅÄÑo·±ÆªÅ«éD»Ì½
|
---|
873 | ßCSILÌ^[Qbg˶ÌÖÍCCÓÌVXeóÔÅÄÑo¹éæ¤É
|
---|
874 | ÀµÈ¯êÎÈçÈ¢D
|
---|
875 |
|
---|
876 | 4.1 SÝbNóÔÌÇ
|
---|
877 |
|
---|
878 | SILÌ^[Qbg˶ÅÍCSÝbNóÔÖJÚ·é@\ÆC³ÌóÔ
|
---|
879 | Öß·@\i³ÌóÔðL¯·é½ßÉÏðg¤jðñ·éDSÝb
|
---|
880 | NóÔÅ é©ð»Ê·é@\Íñ·éKvªÈ¢D
|
---|
881 |
|
---|
882 | SILÌ@\ÍCJ[lðgpµÈ¢êÉàgpÅ«éKvª éD»Ì½ßC
|
---|
883 | SÝbNóÔÖÌJÚÆ³ÌóÔÖÌAÍCJ[lðp¢¸Cv
|
---|
884 | ZbTÌ\[Xð¼Úì·é±ÆÉæÁÄÀ»·éDܽCSÝb
|
---|
885 | NóÔÖÌJÚÆ³ÌóÔÖÌAÍCSÝbNóÔâCPUbNóÔÅ
|
---|
886 | às¦éKvª éD
|
---|
887 |
|
---|
888 | Ûì@\ðÁ½J[lÅÍC[U^XN©çvZbTÌ\[Xð¼
|
---|
889 | Úì·é±ÆªÅ«È¢½ßC[U^XN©çͱêçÌ@\ðp¢é±
|
---|
890 | ƪūȢDp¢½êÌU¢Í^[QbgvZbTÉ˶·éªCT
|
---|
891 | ^IÉÍCÁ ½ßá½ÈÇÌCPUáOª¶·é±ÆÉÈéD
|
---|
892 |
|
---|
893 | (4-1-1) SIL_PRE_LOC
|
---|
894 |
|
---|
895 | SÝbNtOÌóÔðÛ¶·é½ßÌÏðè`·é}ND^¼Ì
|
---|
896 | ãÉCϼ𱯽àÌÉè`·éDϼÍC¼Ì¼OÆÕ˵Ȣæ¤
|
---|
897 | ÉC"TOPPERS_"ÅnÜé¼OÉ·éD
|
---|
898 |
|
---|
899 | (4-1-2) SIL_LOC_INT()
|
---|
900 |
|
---|
901 | »ÝÌSÝbNtOÌóÔðSIL_PRE_LOCÅè`µ½ÏÉÛ¶µCS
|
---|
902 | ÝbNóÔÉJÚ³¹é}ND±Ì}NðÀ»·éÛÉÍCu1.6
|
---|
903 | NeBJZNVÌoüÌÀ»ÉÖ·é§ñvÌßÉLq³êÄ¢
|
---|
904 | é§ñÉ]íȯêÎÈçÈ¢D
|
---|
905 |
|
---|
906 | (4-1-3) SIL_UNL_INT()
|
---|
907 |
|
---|
908 | SIL_LOC_INT()ÉæÁÄÏÉÛ¶µ½óÔÉß·}ND±Ì}NðÀ»·
|
---|
909 | éÛÉÍCu1.6 NeBJZNVÌoüÌÀ»ÉÖ·é§ñvÌ
|
---|
910 | ßÉLq³êÄ¢é§ñÉ]íȯêÎÈçÈ¢D
|
---|
911 |
|
---|
912 | 4.2 ÷ÔÒ¿
|
---|
913 |
|
---|
914 | (4-2-1) void sil_dly_nse(ulong_t dlytim)
|
---|
915 |
|
---|
916 | dlytimÅwè³ê½ÈãÌÔiPÊÍimbjC[vÈÇÉæÁÄÒÂÖ
|
---|
917 | D
|
---|
918 |
|
---|
919 | ȺÌÖÆ¿ÈðCAZu¾êÅLq·éû@ðCWIÈÀ
|
---|
920 | û@Æ·éDAZu¾êÅLq·éÌÍCRpCÌÅK»É˶µÈ
|
---|
921 | ¢æ¤É·é½ßÅ éDܽ±ÌÖÍCLbV
|
---|
922 | Ìe¿ðó¯È¢æ
|
---|
923 | ¤ÉCÅ«éÀèANZXðsíÈ¢æ¤ÉÀ·×«Å éD
|
---|
924 |
|
---|
925 | void sil_dly_nse(ulong_t dlytim)
|
---|
926 | {
|
---|
927 | dlytim -= SIL_DLY_TIM1;
|
---|
928 | if (ʪ0æèå«¢) {
|
---|
929 | do {
|
---|
930 | dlytim -= SIL_DLY_TIM2;
|
---|
931 | } while (ʪ0æèå«¢);
|
---|
932 | }
|
---|
933 | }
|
---|
934 |
|
---|
935 | ±ÌÖÌ®ìÍÌÊèÅ éDdlytimªSIL_DLY_TIM1ȺÌêÉÍCÅ
|
---|
936 | Ìif¶Ì𪬧¹¸C·®É֩粯éDdlytimªSIL_DLY_TIM1æ
|
---|
937 | èå«C(SIL_DLY_TIM1+SIL_DLY_TIM2)ȺÌêÉÍCÅÌif¶ÌðÍ
|
---|
938 | ¬§·éªCdo[vÍ1ñàñç¸É֩粯éDdlytimª
|
---|
939 | (SIL_DLY_TIM1+SIL_DLY_TIM2)æèå«C(SIL_DLY_TIM1+SIL_DLY_TIM2*2)È
|
---|
940 | ºÌêÉÍCdo[vð1ñ¾¯ñÁÄ֩粯éD»ÌãCdlytimª
|
---|
941 | SIL_DLY_TIM2å«ÈéxÉCwhile[vðñéñª1ñ¸Â¦éD
|
---|
942 |
|
---|
943 | ȨC±ÌÖðAZu¾êiܽÍCC¾êjÅLq·éêCÇÌt@
|
---|
944 | CÉLq·é©ªâèÉÈéDSILÌ^[Qbg˶ÉÍCWÅÍCAZ
|
---|
945 | u¾êiܽÍCC¾êjÌÖè`ðLq·é½ßÌt@CðpÓµÄ
|
---|
946 | ¢È¢D^[Qbg˶ÅpÓµÄàæ¢ªCáOIÉCJ[lÀÌ^[
|
---|
947 | Qbg˶W
|
---|
948 | [itarget_support.SܽÍtarget_config.cjÉLqµÄ
|
---|
949 | àæ¢±ÆÉ·éD
|
---|
950 |
|
---|
951 | (4-2-2) SIL_DLY_TIM1iIvVj
|
---|
952 | (4-2-3) SIL_DLY_TIM2iIvVj
|
---|
953 |
|
---|
954 | sil_dly_nseðãLÌWIÈû@ÅÀ»µ½êC±Ì2ÂÌèð^[Qb
|
---|
955 | g˶Å}Nè`·éD
|
---|
956 |
|
---|
957 | SIL_DLY_TIM2ÍCãLÌÖɨ¢ÄCdo[v1ñÌÀsÔiPÊÍimbj
|
---|
958 | ÉÝè·éD^[QbgvZbT̽ßZbgÉàæéªC¨¨æ»C¸Z
|
---|
959 | ½ßÆðªò½ße1ñÌÀsÔÉÈéDSIL_DLY_TIM2ªÜêÎCÖÄ
|
---|
960 | oµàÜß½SÌÌÔªdlytimÅwè³ê½ÈãÌÔÉÈ鿤ÉC
|
---|
961 | SIL_DLY_TIM1ðßéD
|
---|
962 |
|
---|
963 | ¦ºLÌàeÍC»_ÅSSPJ[lÅÍ¢T|[gÅ éD
|
---|
964 |
|
---|
965 | ±Ì2ÂÌèlÌèðx·évOƵÄCtestfBNgÉC
|
---|
966 | test_dlynseðpӵĢéDtest_dlynseðÀs·éÆCÌæ¤Èoͪ¾
|
---|
967 | çêéD
|
---|
968 |
|
---|
969 | -- for fitting parameters --
|
---|
970 | sil_dly_nse(0): 430 OK
|
---|
971 | sil_dly_nse(420): 430 OK
|
---|
972 | sil_dly_nse(510): 520 OK
|
---|
973 | sil_dly_nse(600): 610 OK
|
---|
974 | <ª>
|
---|
975 | -- for checking boundary conditions --
|
---|
976 | sil_dly_nse(421): 520 OK
|
---|
977 | sil_dly_nse(511): 610 OK
|
---|
978 | sil_dly_nse(601): 700 OK
|
---|
979 |
|
---|
980 | "for fitting parameters"ɱoÍÍCsil_dly_nse(dlytim)ðÄÑoµ½ê
|
---|
981 | ÌÒ¿Ôðªèµ½ÊÅ éD±ÌvOðp¢ÄC":"ÌE¤Ì
|
---|
982 | lªCdlytimæèàå«¢ÍÍÅÈé×ߢlÉÈ鿤ÉC2ÂÌèlð
|
---|
983 | ²®·éD"for checking boundary conditions"ɱoÍÍCvOÌ
|
---|
984 | ëð`FbN·é½ßÌàÌÅC":"ÌE¤ÌlªCdlytimæèàå«¢
|
---|
985 | ±ÆðmF·éiߢlÉÈéKvÍÈ¢jD
|
---|
986 |
|
---|
987 | 4.3 vZbTÌGfBA
|
---|
988 |
|
---|
989 | (4-3-1) SIL_ENDIAN_BIG
|
---|
990 | (4-3-2) SIL_ENDIAN_LITTLE
|
---|
991 |
|
---|
992 | vZbTÌGfBAÉæèC¢¸ê©ÐûÌV{ð}Nè`·éD
|
---|
993 |
|
---|
994 | (4-3-3) TOPPERS_SIL_REV_ENDIAN_UINT16iIvVj
|
---|
995 | (4-3-4) TOPPERS_SIL_REV_ENDIAN_UINT32iIvVj
|
---|
996 |
|
---|
997 | »ê¼êC16rbgC32rbg̳µ®ÌGfBAð½]³¹é}
|
---|
998 | NDvZbTªGfBA½]̽ß̽ßðÂêÉÍC»Ì½ß
|
---|
999 | ðp¢ÄÀ»·éD±êçÌV{ð}Nè`µÈ¢êÉÍCftH
|
---|
1000 | gÌè`ªgíêéD
|
---|
1001 |
|
---|
1002 | 4.4 óÔANZXÖ
|
---|
1003 |
|
---|
1004 | (4-4-1) TOPPERS_OMIT_SIL_ACCESS
|
---|
1005 |
|
---|
1006 | WÌóÔANZXÖðgp¹¸C^[Qbg˶ÅpÓ·éê
|
---|
1007 | ÉÍC±ÌV{ð}Nè`·éD
|
---|
1008 |
|
---|
1009 | (4-4-2) TOPPERS_OMIT_SIL_REH_LEM
|
---|
1010 | (4-4-3) TOPPERS_OMIT_SIL_WRH_LEM
|
---|
1011 | (4-4-4) TOPPERS_OMIT_SIL_REH_BEM
|
---|
1012 | (4-4-5) TOPPERS_OMIT_SIL_WRH_BEM
|
---|
1013 | (4-4-6) TOPPERS_OMIT_SIL_REW_LEM
|
---|
1014 | (4-4-7) TOPPERS_OMIT_SIL_WRW_LEM
|
---|
1015 | (4-4-8) TOPPERS_OMIT_SIL_REW_BEM
|
---|
1016 | (4-4-9) TOPPERS_OMIT_SIL_WRW_BEM
|
---|
1017 |
|
---|
1018 | »ê¼êCWÌsil_reh_lemCsil_wrh_lemCsil_reh_bemCsil_wrh_bemC
|
---|
1019 | sil_rew_lemCsil_wrw_lemCsil_rew_bemCsil_wrw_bemðgp¹¸C^[Qb
|
---|
1020 | g˶ÅpÓ·éêÉÍC±êçÌV{ð}Nè`·éD
|
---|
1021 |
|
---|
1022 | 4.5 I/OóÔANZXÖ
|
---|
1023 |
|
---|
1024 | óÔÆÍÊÉI/OóÔðÂvZbTÅÍCI/OóÔÉ éfoCX
|
---|
1025 | WX^ðANZX·é½ßÌÖÆµÄCsil_reb_iopCsil_wrb_iopC
|
---|
1026 | sil_reh_iopCsil_wrh_iopCsil_reh_lepCsil_wrh_lepCsil_reh_bepC
|
---|
1027 | sil_wrh_bepCsil_rew_iopCsil_wrw_iopCsil_rew_lepCsil_wrw_lepC
|
---|
1028 | sil_rew_bepCsil_wrw_bepÌÅKvÈàÌðC^[Qbg˶ÅpÓ·éD
|
---|
1029 |
|
---|
1030 |
|
---|
1031 | 5. J[lAPIÌ^[Qbg˶
|
---|
1032 |
|
---|
1033 | J[lAPIikernel.hjÌ^[Qbg˶Ìè`ÍCtarget_kernel.hܽ
|
---|
1034 | Í»±©çCN[h³êét@CivZbTE`bvEJ«˶
|
---|
1035 | ÅpÓ³êéwb_t@CÈÇjÉÜßéD
|
---|
1036 |
|
---|
1037 | 5.1 ^[Qbgè`ÅT|[g·é@\
|
---|
1038 |
|
---|
1039 | (5-1-1) TOPPERS_TARGET_SUPPORT_DIS_INT dis_intðT|[g·é
|
---|
1040 | (5-1-2) TOPPERS_TARGET_SUPPORT_ENA_INT ena_intðT|[g·é
|
---|
1041 |
|
---|
1042 | dis_intCena_intCT|[g·éêÉC»ê¼êÌV{ð}N
|
---|
1043 | è`·éD
|
---|
1044 |
|
---|
1045 | 5.2 ÝDæxÌÍÍ
|
---|
1046 |
|
---|
1047 | (5-2-1) TMIN_INTPRI ÝDæxÌŬliÅlj
|
---|
1048 | (5-2-2) TMAX_INTPRI ÝDæxÌÅåliÅálj
|
---|
1049 |
|
---|
1050 | »ê¼êCJ[lÇÌÝDæxÌŬliDæxªÅjCJ[l
|
---|
1051 | ÇÌÝDæxÌÅåliDæxªÅájÉè`·éDTMAX_INTPRIÍ-1
|
---|
1052 | ÉÅè³êÄ¢éªCÎ̫̽ßÉC^[Qbg˶Åè`·é±ÆÉµ
|
---|
1053 | Ä¢éD
|
---|
1054 |
|
---|
1055 | 5.3 ^CeBbNÌè`
|
---|
1056 |
|
---|
1057 | (5-3-1) TIC_NUME ^CeBbNÌüú̪q
|
---|
1058 | (5-3-2) TIC_DENO ^CeBbNÌüú̪ê
|
---|
1059 |
|
---|
1060 | ^CeBbNÌüúisignal_timeðÄÑo·üújðC~bPÊÅC
|
---|
1061 | TIC_NUME/TIC_DENOÉè`·éDá¦ÎC^CeBbNÌüúª1/30bÌê
|
---|
1062 | ÉÍCTIC_NUMEð100ÉCTIC_DENOð3Éè`·êÎæ¢D
|
---|
1063 |
|
---|
1064 | ^CeBbNÌüúÍC1~bÆ·éiÂÜèCTIC_NUMECTIC_DENOÆà1
|
---|
1065 | Éè`·éj±Æð§·éªCV~
|
---|
1066 | [V«â«\Ìá¢vZb
|
---|
1067 | TÅ»êªKØÅÈ¢êÉÍC»êÈOÌlƵÄàæ¢D»ÌêÅàC
|
---|
1068 | Â\ÈÀèC1~bÌ{Å éiÂÜèCTIC_DENOð1Éè`·éj±Æª
|
---|
1069 | ]ܵ¢D
|
---|
1070 |
|
---|
1071 | TIC_NUMEÆTIC_DENOÌè`ðÏX·é±ÆÅC^CeBbNÌüúðÏXÅ
|
---|
1072 | «éæ¤É^C}hCoðÀ·éêÉÍC±Ì2ÂÌèÌè`ÍftH
|
---|
1073 | glð^¦Ä¢é±ÆÉÈéD»±ÅC±êçÌè`ðu#ifndef TIC_NUMEv
|
---|
1074 | u#endifvÅÍñÅLq·éD
|
---|
1075 |
|
---|
1076 | 5.4 ÌæmÛ̽ßÌ^è`
|
---|
1077 |
|
---|
1078 | (5-4-1) TOPPERS_STK_T X^bNÌæðmÛ·é½ßÌ^iIvVj
|
---|
1079 |
|
---|
1080 | X^bNÌæÍCWÅÍCintptr_t^ÌzñƵÄmÛ·éªCæèå«¢PÊÅ
|
---|
1081 | AC³¹½¢ÈÇÌRÅC»êÈOÌ^ÌzñƵÄmÛ·éêÉÍC
|
---|
1082 | »ê¼êTOPPERS_STK_TÆðCzñÌx[XÆÈéf[^^É}Nè`·éD
|
---|
1083 |
|
---|
1084 | 5.5 ÌæmÛ̽ßÌ}N
|
---|
1085 |
|
---|
1086 | (5-5-1) TOPPERS_ROUND_SZiIvVj
|
---|
1087 | (5-5-2) TOPPERS_COUNT_SZiIvVj
|
---|
1088 |
|
---|
1089 | TOPPERS_COUNT_SZ(sz, unit)ÍCsz/unitðØèã°½lðßé}NÅCT
|
---|
1090 | CYªszÌÌæðTCYªunitÌf[^^ÌzñÅmÛ·éêÌvf
|
---|
1091 | ðßé½ßÉp¢éDTOPPERS_ROUND_SZ(sz, unit)ÍCsz/unitðØèã°
|
---|
1092 | ½àÌÉunit𩯽lðßé}NÅCTCYªszÌÌæðTCY
|
---|
1093 | ªunitÌf[^^ÌzñÅmÛ·éêÌg[^TCYðßé½ßÉp¢
|
---|
1094 | éD
|
---|
1095 |
|
---|
1096 | »ê¼êCWÌTOPPERS_ROUND_SZCTOPPERS_COUNT_SZªKØÅÈC^[Qb
|
---|
1097 | g˶ÅpÓ·éêÉÍC±êçÌV{ðKØÈlÉ}Nè`·éD
|
---|
1098 |
|
---|
1099 | 6. J[lÀÌ^[Qbg˶
|
---|
1100 |
|
---|
1101 | 6.1 J[lÀÌ^[Qbg˶̤Ê
|
---|
1102 |
|
---|
1103 | 6.1.1 J[lÀÌ^[Qbg˶Ì\¬vf
|
---|
1104 |
|
---|
1105 | J[lÀÌ^[Qbg˶ÍCȺÌvfÅ\¬³êéD
|
---|
1106 |
|
---|
1107 | (a) J[lÀÌ^[Qbg˶Ìè`
|
---|
1108 |
|
---|
1109 | J[lÀÌ^[Qbgñ˶©çQƳêé^[Qbg˶Ìè`ÍC
|
---|
1110 | target_config.hܽͻ±©çCN[h³êét@CivZbTE`b
|
---|
1111 | vEJ«˶ÅpÓ³êéwb_t@CÈÇjÉÜßéD
|
---|
1112 |
|
---|
1113 | ^[QbgÌn[hEFA¹iÝnhÔâCPUáOnhÔC
|
---|
1114 | foCXWX^ÌÔnÈÇjÌè`ÍCVXeT[rXâAvP[V
|
---|
1115 | ÉàLpÅ é½ßCJ[lÀÌÝÉLpÈè`ðÜÞt@CÆÍØ
|
---|
1116 | 誯ÄCƧµ½wb_t@CÉÜßéD±Ìwb_t@CÌWIÈ
|
---|
1117 | ¼ÌðCVXeªÌ.hiܽÍC`bvªÌ.hCvZbTªÌ.hjÆ·éD
|
---|
1118 |
|
---|
1119 | (b) J[lÀÌ^[Qbg˶W
|
---|
1120 | [
|
---|
1121 |
|
---|
1122 | J[lÀÌ^[Qbg˶ÌÏè`âÖðÜÞW
|
---|
1123 | [DC¾êÅL
|
---|
1124 | q³êéªðtarget_config.cCAZu¾êÅLq³êéªð
|
---|
1125 | target_support.SÉÜßéDvZbTE`bvEJ«˶ðØèª¯
|
---|
1126 | 鱯âCt@Cªå«ÈéêÉ¡Ìt@Cɪ·é±ÆàÂ\
|
---|
1127 | Å éD
|
---|
1128 |
|
---|
1129 | (c) J[lÀÌ^[Qbg˶̽ßÌl[Lq
|
---|
1130 |
|
---|
1131 | J[lÀÌ^[Qbg˶ÌϼâÖ¼ðCæªÉ_kernel_ðt^
|
---|
1132 | µ½¼OÉl[·é½ßÌW
|
---|
1133 | [Dtarget_rename.defðpÓµCc[
|
---|
1134 | iutils/genrenamejÉæèCtarget_rename.hÆtarget_unrename.h𶬷
|
---|
1135 | éDvZbTE`bvEJ«˶ðØèª¯éêÉÍCl[L
|
---|
1136 | qàØèª¯éD
|
---|
1137 |
|
---|
1138 | ¦
|
---|
1139 | (d) ^C}hCo
|
---|
1140 |
|
---|
1141 | J[lÉ^CeBbNðÊm·éisignal_timeðüúIÉÄÑo·j½ß
|
---|
1142 | Ì^C}hCoÌwb_t@CCÀt@CCVXeRtBM
|
---|
1143 | [
|
---|
1144 | Vt@CðC»ê¼êCtarget_timer.hCtarget_timer.cC
|
---|
1145 | target_timer.cfgÉÜßéDvZbTE`bvEJ«˶ðØèª¯
|
---|
1146 | 鱯àÂ\Å éD
|
---|
1147 |
|
---|
1148 | (e) RtBM
|
---|
1149 | [^Ýèt@C
|
---|
1150 |
|
---|
1151 | RtBM
|
---|
1152 | [^ÌÝèt@CÌ^[Qbg˶ðCtarget_def.csvC
|
---|
1153 | target.tfCtarget_check.tfÉpÓ·éDRtBM
|
---|
1154 | [^Ýèt@CÌ
|
---|
1155 | Lqû@É¢ÄÍCVÍÅྷéD
|
---|
1156 |
|
---|
1157 | 6.1.2 ^[Qbg˶ÌÖ̽¼K¥
|
---|
1158 |
|
---|
1159 | J[lÀÌ^[Qbg˶ð\¬·éÖÌÅCt_ÅnÜéàÌÍ^
|
---|
1160 | XNReLXgêpCi_ÅnÜéàÌÍñ^XNReLXgêpCx_Ån
|
---|
1161 | ÜéàÌÍ¢¸êÌReLXg©çÅàÄÑo·±ÆªÅ«éÖÅ éD
|
---|
1162 |
|
---|
1163 | 6.2 g[XO@\ÖÌÎ
|
---|
1164 |
|
---|
1165 | J[lÌg[XO@\ÌÅCÝnhCCPUáOnhÌJn
|
---|
1166 | EI¹Ìg[XOæ¾ÍC^[Qbg˶ÅÀ·éKvª éDÙÆñ
|
---|
1167 | ÇÌ^[QbgVXeɨ¢ÄC»êçÌÍAZu¾êÅLq³êÄ
|
---|
1168 | ¨èC^[Qbgñ˶ü¯Ìg[XO}NƯ¶û@ig[XO
|
---|
1169 | }NðCg[XOæ¾ÌC¾êLqÉ}Nè`·éû@jÍCp¢
|
---|
1170 | 鱯ªÅ«È¢D
|
---|
1171 |
|
---|
1172 | »±ÅCAZu¾êÅLq³êÄ¢éÉg[XOæ¾ðß
|
---|
1173 | ÞêÉÍCg[XO}Nªè`³êÄ¢êÎC»êª½Éè`³êÄ
|
---|
1174 | ¢é©Í³µÄCWIÈg[XOÖªC¾êÅLq³êÄ¢éÆzè
|
---|
1175 | µÄC»êðÄÑo·æ¤ÉR[fBO·éD
|
---|
1176 |
|
---|
1177 | ïÌIÉÍCºÌ\̶¤É¦µ½g[XO}Nªè`³êÄ¢êÎC
|
---|
1178 | \ÌE¤É¦µ½C¾êLqƯÌðs¤æ¤ÉR[fBO·éD
|
---|
1179 |
|
---|
1180 | g[XO}N g[XOæ¾
|
---|
1181 | -----------------------------------------------
|
---|
1182 | LOG_INH_ENTER log_inh_enter(inhno)
|
---|
1183 | LOG_INH_LEAVE log_inh_leave(inhno)
|
---|
1184 | LOG_EXC_ENTER log_exc_enter(excno)
|
---|
1185 | LOG_EXC_LEAVE log_exc_leave(excno)
|
---|
1186 |
|
---|
1187 | 6.3 VXeóÔÌÇ
|
---|
1188 |
|
---|
1189 | SSPJ[lðV½È^[QbgVXeÉ|[eBO·éÛÉCÅàdvÈ
|
---|
1190 | ìÆÍCJ[lªè`·éVXeóÔðCn[hEFAivZbTjã
|
---|
1191 | ÅÇÌæ¤ÉÀ»·é©Å éDȺÌà¾ÍCTOPPERSV¢ãJ[lɨ¯
|
---|
1192 | éVXeóÔÌè`EÓ¡ðmÁĢ鱯ðOñÉLqµÄ¢éD
|
---|
1193 |
|
---|
1194 | 6.3.1 SÝbNóÔÌÇ
|
---|
1195 |
|
---|
1196 | SÝbNóÔÍCNMIð·×ÄÌÝð}XNµ½óÔÅ éDS
|
---|
1197 | ÝbNóÔðÇ·é@\ÍCVXeC^tF[XCiSILjÉ
|
---|
1198 | æÁÄñ³êCJ[lÍSÝbNóÔðǵȢD
|
---|
1199 |
|
---|
1200 | SÝbNóÔÅÍCsns_kerÆext_kerÈOÌJ[lÌT[rXR[
|
---|
1201 | ðÄÔ±ÆÍūȢàÌÆµÄ¨èCÄñ¾êÉͽªN±é©ÛصÄ
|
---|
1202 | ¢È¢Dsns_kerÆext_ker©çÄÑo·ÍCg[XOæ¾ÆSILÌ
|
---|
1203 | T[rXR[ðÆCcall_exit_kernelÌÝÅ éD»Ì½ßC
|
---|
1204 | call_exit_kernel©çÄÑo·àÌð¢ÄCJ[lÌ^[Qbg˶Ì
|
---|
1205 | ÖªCSÝbNóÔÅÄÑo³êéóµÍl¦éKvªÈ¢D
|
---|
1206 |
|
---|
1207 | 6.3.2 ReLXgÌÇ
|
---|
1208 |
|
---|
1209 | PʪÀs³êéReLXgÍC^XNReLXgÆñ^XNRe
|
---|
1210 | LXgɪ޳êéD
|
---|
1211 |
|
---|
1212 | ^[Qbg˶ÍCÀsÌPʪC^XNReLXgÅÀs³êÄ
|
---|
1213 | ¢é©ñ^XNReLXgÅÀs³êÄ¢é©ð»Ê·é@\ðñ·éD
|
---|
1214 | ܽCCPUáOª¶µ½ReLXgÉ¢Ļʷé@\ðñ·éD
|
---|
1215 |
|
---|
1216 | ^[Qbg˶ÅÍCÝnhÆCPUáOnhÌüûÅñ^X
|
---|
1217 | NReLXgÉØè·¦C»êçÌoûųÌReLXgÉß·DÜ
|
---|
1218 | ½CfBXpb`ÌàÅêIÉñ^XNReLXgÉØè·¦éD
|
---|
1219 |
|
---|
1220 | (6-3-2-1) bool_t sense_context(void)
|
---|
1221 |
|
---|
1222 | ÀsÌPʪC^XNReLXgÅÀs³êÄ¢éêÉÍfalseCñ
|
---|
1223 | ^XNReLXgÅÀs³êÄ¢éêÉÍtrueðÔ·ÖD±ÌÖÍC
|
---|
1224 | CPUbNóÔÅàCPUbNðóÔÅàÄÑo¹éæ¤ÉÀµÈ¯êÎÈ
|
---|
1225 | çÈ¢D
|
---|
1226 |
|
---|
1227 | 6.3.3 CPUbNóÔÌÇ
|
---|
1228 |
|
---|
1229 | ^[Qbg˶ÍCCPUbNóÔÖJÚ·é@\CCPUbNðóÔÖJ
|
---|
1230 | Ú·é@\CCPUbNóÔÅ é©ð»Ê·é@\ðñ·éD
|
---|
1231 |
|
---|
1232 | (6-3-3-1) void t_lock_cpu(void)
|
---|
1233 | (6-3-3-2) void i_lock_cpu(void)
|
---|
1234 | (6-3-3-3) void x_lock_cpu(void)
|
---|
1235 |
|
---|
1236 | CPUbNðóÔ©çCCPUbNóÔÖJÚ³¹éÖD±êçÌÖÍC
|
---|
1237 | CPUbNóÔÅÄÑo³ê鱯ÍÈCÄÑo³ê½êÌ®ìÍÛØ·é
|
---|
1238 | KvªÈ¢D
|
---|
1239 |
|
---|
1240 | ±êçÌÖðÀ»·éÛÉÍCu1.6 NeBJZNVÌoüÌ
|
---|
1241 | À»ÉÖ·é§ñvÌßÉLq³êÄ¢é§ñÉ]íȯêÎÈçÈ¢D
|
---|
1242 |
|
---|
1243 | (6-3-3-4) void t_unlock_cpu(void)
|
---|
1244 | (6-3-3-5) void i_unlock_cpu(void)
|
---|
1245 | (6-3-3-6) void x_unlock_cpu(void)
|
---|
1246 |
|
---|
1247 | CPUbNóÔ©çCCPUbNðóÔÖJÚ³¹éÖD±êçÌÖÍC
|
---|
1248 | CPUbNðóÔÅÄÑo³ê鱯ÍÈCÄÑo³ê½êÌ®ìÍÛØ
|
---|
1249 | ·éKvªÈ¢D
|
---|
1250 |
|
---|
1251 | ^XNReLXgÅCPUbNóÔÉJÚµ½êÉÍCCPUbNðóÔ
|
---|
1252 | ÉßéÌÍ^XNReLXgÉÀçêCñ^XNReLXgÅCPUbNð
|
---|
1253 | óÔÉß鱯ÍÈ¢D¾¢·¦éÆCt_unlock_cpuªÄÑo³êéÌÍC
|
---|
1254 | t_lock_cpuÉæÁÄCPUbNóÔÉÈÁÄ¢éÅ éDi_lock_cpuÉæÁÄ
|
---|
1255 | CPUbNóÔÉÈÁÄ¢éÉÍCt_unlock_cpuªÄÑo³ê鱯ÍÈ¢D
|
---|
1256 |
|
---|
1257 | ¯lÉCñ^XNReLXgÅCPUbNóÔÉJÚµ½êÉÍCCPUb
|
---|
1258 | NðóÔÉßéÌÍñ^XNReLXgÉÀçêC^XNReLXgÅ
|
---|
1259 | CPUbNðóÔÉß鱯ÍÈ¢D¾¢·¦éÆCi_unlock_cpuªÄÑo³
|
---|
1260 | êéÌÍCi_lock_cpuÉæÁÄCPUbNóÔÉÈÁÄ¢éÅ éD
|
---|
1261 | t_lock_cpuÉæÁÄCPUbNóÔÉÈÁÄ¢éÉÍCi_unlock_cpuªÄÑo
|
---|
1262 | ³ê鱯ÍÈ¢D
|
---|
1263 |
|
---|
1264 | ±êçÌÖðÀ»·éÛÉÍCu1.6 NeBJZNVÌoüÌ
|
---|
1265 | À»ÉÖ·é§ñvÌßÉLq³êÄ¢é§ñÉ]íȯêÎÈçÈ¢D
|
---|
1266 |
|
---|
1267 | (6-3-3-7) bool_t t_sense_lock(void)
|
---|
1268 | (6-3-3-8) bool_t i_sense_lock(void)
|
---|
1269 | (6-3-3-9) bool_t x_sense_lock(void)
|
---|
1270 |
|
---|
1271 | »ÝÌVXeóÔªCCPUbNóÔÌêÍtrueCCPUbNðóÔÌê
|
---|
1272 | ÉÍfalseðÔ·ÖD
|
---|
1273 |
|
---|
1274 | ±êçÌÖªSÝbNóÔÅÄÑo³êéóµÍl¦éKvªÈ¢±
|
---|
1275 | Æ©çCSÝbNóÔÆCPUbNóÔðæÊÅ«éKvÍÈ¢DNMIÈ
|
---|
1276 | OÉJ[lÌÇOÌÝðݯȢêÉÍCSÝbNóÔÆ
|
---|
1277 | CPUbNóÔªS¯êÌóÔÅà©ÜíÈ¢D
|
---|
1278 |
|
---|
1279 | 6.4 ÝÉÖA·éVXeóÔÌÇ
|
---|
1280 |
|
---|
1281 | 6.4.1 ÝDæx}XNÌÇ
|
---|
1282 |
|
---|
1283 | ^[Qbg˶ÍCÝDæx}XNðÝè·é@\ÆCÝDæx}
|
---|
1284 | XNðQÆ·é@\ðñ·éD
|
---|
1285 |
|
---|
1286 | (6-4-1-1) void x_set_ipm(PRI intpri)
|
---|
1287 | (6-4-1-2) void t_set_ipm(PRI intpri)
|
---|
1288 | (6-4-1-3) void i_set_ipm(PRI intpri)
|
---|
1289 |
|
---|
1290 | ÝDæx}XNÌlðintpriÉÝè·éÖD
|
---|
1291 |
|
---|
1292 | ±êçÌÖÍCCPUbNóÔÅàCPUbNðóÔÅàÄÑo¹éæ¤É
|
---|
1293 | À·é̪]ܵ¢D½¾µCx_set_ipmÆt_set_ipmÍC^[Qbgñ˶
|
---|
1294 | ªCPUbNðóÔÅÄÑo·±ÆÍÈ¢½ßCCPUbNðóÔÅÄÑ
|
---|
1295 | o³ê½êÌ®ìÍÛØ·éKvªÈ¢Di_set_ipmÍCCPUbNóÔÅà
|
---|
1296 | CPUbNðóÔÅàÄÑo¹éæ¤ÉÀµÈ¯êÎÈçÈ¢D
|
---|
1297 |
|
---|
1298 | ܽC±êçÌÖÍCVALID_INTPRI_CHGIPM(intpri)ªtrueðÔ·intpriÉÎ
|
---|
1299 | µÄÌÝÄÎêéDintpriÉ»¤ÅÈ¢lªn³ê½êÌ®ìÍÛØ·éK
|
---|
1300 | vªÈ¢D
|
---|
1301 |
|
---|
1302 | (6-4-1-4) PRI x_get_ipm(void)
|
---|
1303 | (6-4-1-5) PRI t_get_ipm(void)
|
---|
1304 | (6-4-1-6) PRI i_get_ipm(void)
|
---|
1305 |
|
---|
1306 | ÝDæx}XNÌlðQƵÄÔ·ÖD
|
---|
1307 |
|
---|
1308 | ±êçÌÖÍCCPUbNóÔÅàCPUbNðóÔÅàÄÑo¹éæ¤É
|
---|
1309 | À·é̪]ܵ¢D½¾µCx_get_ipmÆt_get_ipmÍC^[Qbgñ˶
|
---|
1310 | ªCPUbNðóÔÅÄÑo·±ÆÍÈ¢½ßCCPUbNðóÔÅÄÑ
|
---|
1311 | o³ê½êÌ®ìÍÛØ·éKvªÈ¢Di_get_ipmÍCCPUbNóÔÅà
|
---|
1312 | CPUbNðóÔÅàÄÑo¹éæ¤ÉÀµÈ¯êÎÈçÈ¢D
|
---|
1313 |
|
---|
1314 | ÝDæx}XNðp¢ÄJ[lÇÌÝð·×Ä}XNµ½óÔÍC
|
---|
1315 | CPUbNóÔÆæÊū鱯ªKvÅ éDïÌIÉÍCCPUbNðó
|
---|
1316 | Ôɨ¢ÄCx_set_ipmðp¢ÄJ[lÇÌÝð·×Ä}XNµ½ê
|
---|
1317 | ÅàCx_sense_lockÍfalseðÔ·D
|
---|
1318 |
|
---|
1319 | »êÉεÄCÝDæx}XNðp¢ÄNMIð·×ÄÌÝð}XN
|
---|
1320 | Å«éêC»ÌóÔÆSÝbNóÔðæÊÅ«éKvÍÈCS¯
|
---|
1321 | êÌóÔÅà©ÜíÈ¢D
|
---|
1322 |
|
---|
1323 | 6.4.2 ÝvÖ~tOÌÇ
|
---|
1324 |
|
---|
1325 | ^[Qbg˶ÍCÝvÖ~tOðZbg·é@\ÆNA·é@
|
---|
1326 | \ðñ·éD
|
---|
1327 |
|
---|
1328 | (6-4-2-1) bool_t VALID_INTNO_DISINT(INTNO intno)
|
---|
1329 |
|
---|
1330 | intnoªCdis_int^ena_intÉηéÝÔÆµÄLøÈlÅ éêÉ
|
---|
1331 | trueC»¤ÅÈ¢êÉfalseðÔ·}NDÝvÖ~tOªZbg^
|
---|
1332 | NAūȢintnoÉεÄÍC±Ì}NªfalseðÔ·æ¤É·éD
|
---|
1333 |
|
---|
1334 | (6-4-2-2) bool_t x_disable_int(INTNO intno)
|
---|
1335 | (6-4-2-3) bool_t t_disable_int(INTNO intno)
|
---|
1336 | (6-4-2-4) bool_t i_disable_int(INTNO intno)
|
---|
1337 |
|
---|
1338 | intnoÅwè³ê½ÝvCÉηéÝvÖ~tOðZbgµC
|
---|
1339 | trueðÔ·ÖDwè³ê½ÝvCÉεÄCÝ®«ªÝè³
|
---|
1340 | êĢȢêÉÍCfalseðÔ·D
|
---|
1341 |
|
---|
1342 | ±êçÌÖÍC^[Qbgñ˶ªCPUbNðóÔÅÄÑo·±ÆÍÈ
|
---|
1343 | ¢½ßCCPUbNðóÔÅÄÑo³ê½êÌ®ìÍÛØ·éKvªÈ¢D
|
---|
1344 | ½¾µC^[Qbg˶©çCPUbNðóÔÅÄÑo·êÉÍCÛØ·
|
---|
1345 | éKvª éD
|
---|
1346 |
|
---|
1347 | ܽC±êçÌÖÍCVALID_INTNO_DISINT(intno)ªtrueÆÈéintnoÉε
|
---|
1348 | ÄÌÝÄÎêéDintnoÉ»¤ÅÈ¢lªn³ê½êÌ®ìÍÛØ·éKvª
|
---|
1349 | ȢD
|
---|
1350 |
|
---|
1351 | dis_intT[rXR[ðT|[g·éêiTOPPERS_SUPPORT_DIS_INTð}N
|
---|
1352 | è`·éêjÉÍCt_disable_intªpÓ³êĢȯêÎÈçÈ¢D
|
---|
1353 |
|
---|
1354 | (6-4-2-5) bool_t x_enable_int(INTNO intno)
|
---|
1355 | (6-4-2-6) bool_t t_enable_int(INTNO intno)
|
---|
1356 | (6-4-2-7) bool_t i_enable_int(INTNO intno)
|
---|
1357 |
|
---|
1358 | intnoÅwè³ê½ÝvCÉηéÝvÖ~tOðNAµC
|
---|
1359 | trueðÔ·ÖDwè³ê½ÝvCÉεÄCÝ®«ªÝè³
|
---|
1360 | êĢȢêÉÍCfalseðÔ·D
|
---|
1361 |
|
---|
1362 | ±êçÌÖÍC^[Qbgñ˶ªCPUbNðóÔÅÄÑo·±ÆÍÈ
|
---|
1363 | ¢½ßCCPUbNðóÔÅÄÑo³ê½êÌ®ìÍÛØ·éKvªÈ¢D
|
---|
1364 | ½¾µC^[Qbg˶©çCPUbNðóÔÅÄÑo·êÉÍCÛØ·
|
---|
1365 | éKvª éD
|
---|
1366 |
|
---|
1367 | ܽC±êçÌÖÍCVALID_INTNO_DISINT(intno)ªtrueÆÈéintnoÉε
|
---|
1368 | ÄÌÝÄÎêéDintnoÉ»¤ÅÈ¢lªn³ê½êÌ®ìÍÛØ·éKvª
|
---|
1369 | ȢD
|
---|
1370 |
|
---|
1371 | ena_intT[rXR[ðT|[g·éêiTOPPERS_SUPPORT_ENA_INTð}N
|
---|
1372 | è`·éêjÉÍCt_enable_intªpÓ³êĢȯêÎÈçÈ¢D
|
---|
1373 |
|
---|
1374 | 6.4.3 ÝvÌNA
|
---|
1375 |
|
---|
1376 | (6-4-3-1) void x_clear_int(INTNO intno)
|
---|
1377 | (6-4-3-2) void t_clear_int(INTNO intno)
|
---|
1378 | (6-4-3-3) void i_clear_int(INTNO intno)
|
---|
1379 |
|
---|
1380 | intnoÅwè³ê½ÝvCªGbWgKÅ éêÉCgK³ê
|
---|
1381 | ½ÝvðNA·éÖDintnoÅwè³ê½ÝvCªx
|
---|
1382 | gKÅ éêÉͽàµÈ¢D
|
---|
1383 |
|
---|
1384 | SSPJ[lÌ^[Qbgñ˶ÅÍC±êçÌÖðÄÑoµÄ¢È¢ªC
|
---|
1385 | ^[Qbg˶âVXeT[rXÅÄÑo·Â\«ª¢½ßCpÓ·é
|
---|
1386 | ±ÆÆµÄ¢éD»Ì½ßC±êçÌÖªÇÌæ¤ÈVXeóÔÅÄÑo
|
---|
1387 | ¹é©ÍC^[Qbg˶àÅêѵĢêÎæ¢D
|
---|
1388 |
|
---|
1389 | 6.4.4 ÝvÌv[u
|
---|
1390 |
|
---|
1391 | (6-4-4-1) bool_t x_probe_int(INTNO intno)
|
---|
1392 | (6-4-4-2) bool_t t_probe_int(INTNO intno)
|
---|
1393 | (6-4-4-3) bool_t i_probe_int(INTNO intno)
|
---|
1394 |
|
---|
1395 | intnoÅwè³ê½ÝvCÉεÄCݪv³êÄ¢éêÉ
|
---|
1396 | trueC»¤ÅÈ¢êÉfalseðÔ·ÖD
|
---|
1397 |
|
---|
1398 | SSPJ[lÌ^[Qbgñ˶ÅÍC±êçÌÖðÄÑoµÄ¢È¢ªC
|
---|
1399 | ^[Qbg˶âVXeT[rXÅÄÑo·Â\«ª¢½ßCpÓ·é
|
---|
1400 | ±ÆÆµÄ¢éD»Ì½ßC±êçÌÖªÇÌæ¤ÈVXeóÔÅÄÑo
|
---|
1401 | ¹é©ÍC^[Qbg˶àÅêѵĢêÎæ¢D
|
---|
1402 |
|
---|
1403 | 6.4.5 ÝnhÌæªÆö
|
---|
1404 |
|
---|
1405 | (6-4-5-1) void i_begin_int(INTNO intno)
|
---|
1406 |
|
---|
1407 | intnoÅwè³ê½ÝvCÉηéÝnhÌæªÅs¤×«
|
---|
1408 | ðs¤ÖD±±Ås¤×«ÆµÄÍCÝvCªGbWg
|
---|
1409 | KÅ éêÌgK³ê½ÝvÌNAª°çêéD
|
---|
1410 |
|
---|
1411 | intnoÉεÄo^³ê½ÝT[rX[`ðÄÑo·ÝnhÌ
|
---|
1412 | æªÅÄÑo³êéD»Ì½ß±ÌÖÍCÝnhÌæªiÊíÍ
|
---|
1413 | CPUbNðóÔjÅÄÑo¹éæ¤ÉÀµÈ¯êÎÈçÈ¢D
|
---|
1414 |
|
---|
1415 | (6-4-5-2) void i_end_int(INTNO intno)
|
---|
1416 |
|
---|
1417 | intnoÅwè³ê½ÝvCÉηéÝnhÌöÅs¤×«
|
---|
1418 | ðs¤ÖD±±Ås¤×«ÆµÄÍCÝRg[iIRCjÉ
|
---|
1419 | ηéÝÌI¹ðÊmª°çêéD
|
---|
1420 |
|
---|
1421 | intnoÉεÄo^³ê½ÝT[rX[`ðÄÑo·ÝnhÌ
|
---|
1422 | öÅÄÑo³êéD»Ì½ß±ÌÖÍCÝnhÌöiÊíÍ
|
---|
1423 | CPUbNðóÔjÅÄÑo¹éæ¤ÉÀµÈ¯êÎÈçÈ¢D
|
---|
1424 |
|
---|
1425 | 6.5 ^XNfBXpb`
|
---|
1426 |
|
---|
1427 |
|
---|
1428 | 6.5.1 fBXpb`Ì®ìJn
|
---|
1429 |
|
---|
1430 | (6-5-1-1) void start_dispatch(void)
|
---|
1431 |
|
---|
1432 | fBXpb`Ì®ìJnistart_dispatchjÍCJ[lN®ÉCJ[l
|
---|
1433 | Ìú»©çÄÑo³êéDstart_dispatchÍC^[·é±ÆÌÈ
|
---|
1434 | ¢ÖÅ éD
|
---|
1435 |
|
---|
1436 | start_dispatchÍCñ^XNReLXgÅCNMIð·×ÄÌÝð}X
|
---|
1437 | Nµ½óÔiSÝbNóÔÆ¯ÌóÔjÅÄÑo³êéDstart_dispatch
|
---|
1438 | àÅC^XNReLXgÉØè·¦CCPUbNóÔEÝDæx}XNS
|
---|
1439 | ðóÔɵȯêÎÈçÈ¢D
|
---|
1440 |
|
---|
1441 | ReLXgðØèÖ¦½ãÍ^[Qbgñ˶ÖdispatcherðÄÑo·D
|
---|
1442 |
|
---|
1443 | start_dispatchÌàeÍÌÊèDdispatcher©çªÔ鱯ÍlÊ·éKvÍ
|
---|
1444 | ȢD
|
---|
1445 |
|
---|
1446 | ----------------------------------------
|
---|
1447 | void
|
---|
1448 | start_dispatch(void)
|
---|
1449 | {
|
---|
1450 | ^XNReLXgÉØè·¦é
|
---|
1451 | CPUbNóÔEÝDæx}XNSðóÔÉ·é
|
---|
1452 | dispatcherɪò·é
|
---|
1453 | }
|
---|
1454 | ----------------------------------------
|
---|
1455 |
|
---|
1456 | 6.6 Ýnh
|
---|
1457 |
|
---|
1458 | 6.6.1 ÝnhÌoüû
|
---|
1459 |
|
---|
1460 | J[lÇÌÝÌoüûÌû@ÍCvZbTÉæÁÄå«ÙÈ
|
---|
1461 | éªC¨¨æ»ÌàeÍÌÊèD
|
---|
1462 |
|
---|
1463 | ----------------------------------------
|
---|
1464 | void
|
---|
1465 | <ÝÌoüû>(void)
|
---|
1466 | {
|
---|
1467 | ÈÆàJ[lÇÌÝðÖ~µ½óÔÉ·é c (*f)
|
---|
1468 | XNb`WX^ðX^bNÉÛ¶·é
|
---|
1469 | if (^XNReLXgÅݶ) {
|
---|
1470 | ñ^XNReLXgÉØè·¦é
|
---|
1471 | }
|
---|
1472 |
|
---|
1473 | ±ÌÝæèàDæxÌ¢ÝÌÝðó¯t¯çê鿤ɵÄC
|
---|
1474 | CPUbNðóÔÉ·é
|
---|
1475 | #ifdef LOG_INH_ENTER
|
---|
1476 | log_inh_enter(ÝnhÔ);
|
---|
1477 | #endif /* LOG_INH_ENTER */
|
---|
1478 | ÝnhðÄÑo·
|
---|
1479 | #ifdef LOG_INH_LEAVE
|
---|
1480 | log_inh_leave(ÝnhÔ);
|
---|
1481 | #endif /* LOG_INH_LEAVE */
|
---|
1482 |
|
---|
1483 | ret_int:
|
---|
1484 | if (^XNReLXgÅݶ) {
|
---|
1485 | iÈÆàjJ[lÇÌÝðÖ~µ½óÔÉ·é c (*d)
|
---|
1486 | if (reqflg) {
|
---|
1487 | reqflg = false;
|
---|
1488 | CPUbNóÔÉ·é c (*e)
|
---|
1489 | search_schedtskðÄÑoµCÅDæÊ^XNðßé
|
---|
1490 | ÅDæÊÌ^XNIDðøÉµÄrun_taskɪò·é
|
---|
1491 | }
|
---|
1492 | }
|
---|
1493 | Ý©çÌ^[ãÉCCPUbNðóÔÉß鿤Éõ·é
|
---|
1494 | XNb`WX^ðX^bN©çA·é
|
---|
1495 | Ý©çÌ^[
|
---|
1496 | }
|
---|
1497 | ----------------------------------------
|
---|
1498 |
|
---|
1499 | ÝÌót¯Éæè·×ÄÌݪÖ~³êÈ¢vZbTÅÍC(*f)É
|
---|
1500 | ¨¢ÄCÈÆàJ[lÇÌÝðÖ~·éD±ÌRÍÌÊèÅ
|
---|
1501 | éD
|
---|
1502 |
|
---|
1503 | ÝÌüûɨ¢ÄCX^bNðñ^XNReLXgpÌX^bNÉ
|
---|
1504 | Øè·¦éOɽdݪ¶·éÆC^XNÌX^bNÌæªgp³êéD
|
---|
1505 | ãLÌæ¤ÈvZbTÅÍCX^bNÌØ·¦OÉCÅåÅÝDæxÌ
|
---|
1506 | iªÌ½dݪ¶·é±Æðh®±ÆÍÅ«¸Ce^XNÌX^bN
|
---|
1507 | ÌæðmÛ·éÛÉC»Ìªð©ñÅm۵ȯêÎÈçÈ¢De^XNÌ
|
---|
1508 | X^bNÌæðÈé׬³·é½ßÉÍCX^bNðÈé×gpµÈ¢
|
---|
1509 | àÉC½dÝðÖ~·é̪]ܵ¢D»Ì½ßCXNb`WX^ð
|
---|
1510 | X^bNÉÛ¶·éOÉCÝðÖ~·éD½¾µCÝÌÖ~ÉK
|
---|
1511 | vÈÅáÀÌWX^É¢ÄÍCÝÌÖ~Éæ§ÁÄX^bNÉÛ¶·
|
---|
1512 | éKvª éD
|
---|
1513 |
|
---|
1514 | ¯ḻÆÍCJ[lÇOÌÝÉàÄÍÜéD·Èí¿CJ[l
|
---|
1515 | ÇOÌÝÉ¢ÄàCX^bNðÈé×gpµÈ¢àÉÖ~·é̪
|
---|
1516 | ]ܵ¢D±Ì±Æ©çCJ[lÇOÌÝðgp·éêÉÍC(*f)
|
---|
1517 | ɨ¢ÄC·×ÄÌÝðÖ~µ½óÔÉ·é̪]ܵ¢±ÆÉÈéDÜ
|
---|
1518 | ½CJ[lÇOÌÝɨ¢ÄàCñ^XNReLXgpÌX^b
|
---|
1519 | NÉØè·¦é±Æª]ܵ¢ªC±êÍJ[lÌÇOÅ éD
|
---|
1520 |
|
---|
1521 | (*d)ɨ¢ÄÍCJ[lÇÌÝðÖ~·é¾¯ÅCCPUbNóÔÉ·
|
---|
1522 | éKvÍÈ¢Dá¦ÎCCPUbNóÔŠ鱯ð¦·ÏðpӵĢéê
|
---|
1523 | ÉÍC(*d)Ì_ÅÍ»ÌÏðCPUbNóÔð¦·lÉÏX·éKvÍÈ
|
---|
1524 | C(*e)ɨ¢ÄÏX·êÎæ¢D
|
---|
1525 |
|
---|
1526 | ÝÌoüûðAZu¾êÅLq·éêÉÍCg[XOæ¾
|
---|
1527 | ÍCu6.2 g[XO@\ÖÌÎvÌßÅLqµ½û@ÅR[fB
|
---|
1528 | O·é±ÆD
|
---|
1529 |
|
---|
1530 | 6.6.2 ÝnhÌoüû̶¬
|
---|
1531 |
|
---|
1532 | ÝxNgðn[hEFAÅÀ»µÄ¢éêÈÇCÝnhÉ
|
---|
1533 | oüûðpÓµ½ûªø¦ªÇ¢^[Qbg̽ßÉCÝnh
|
---|
1534 | Éoüû𶬷é@\ðpӵĢéD
|
---|
1535 |
|
---|
1536 | ȺÌ}NÍCWÌÝÇ@\Ìú»ðp¢½êÌÝC^[
|
---|
1537 | Qbgñ˶ÅgíêéDÝÇ@\Ìú»ð^[Qbg˶
|
---|
1538 | ÅpÓµC»ÌűêçÌ}NðgíÈ¢êÉÍC±êçÌ}Nðp
|
---|
1539 | Ó·éKvÍÈ¢D
|
---|
1540 |
|
---|
1541 | (6-6-2-1) INT_ENTRY(inhno, inthdr)
|
---|
1542 |
|
---|
1543 | ÝnhÔªinhnoCÝnhÌÖ¼ªinthdrÅ éÝn
|
---|
1544 | hÌoüûÌxðìé}NDINTHDR_ENTRYðp¢ÄÝn
|
---|
1545 | hÉoüû𶬷éêÉÍCÌæ¤Éè`·éD
|
---|
1546 |
|
---|
1547 | #define INT_ENTRY(inhno, inthdr) _kernel_##inthdr##_##inhno
|
---|
1548 |
|
---|
1549 | ÝnhÉoüûðìéKvªÈ¢êÉÍCÌæ¤Éè`µ
|
---|
1550 | ÄCÝnhÌÖ¼ð»ÌÜÜÔ·D
|
---|
1551 |
|
---|
1552 | #define INT_ENTRY(inhno, inthdr) inthdr
|
---|
1553 |
|
---|
1554 | (6-6-2-2) INTHDR_ENTRY(inhno, inhno_num, inthdr)
|
---|
1555 |
|
---|
1556 | ÝnhÔªinhnoCÝnhÌÖ¼ªinthdrÅ éÝn
|
---|
1557 | hÌoüû𶬷é}NDinhno_numÉÍCAZu¾êLqp
|
---|
1558 | ÉCÝnhÔªlÅn³êéDÝnhÉoüûð
|
---|
1559 | ìéKvªÈ¢êÉÍCóÉè`·éD
|
---|
1560 |
|
---|
1561 | 6.6.3 ÝnhÌÝè
|
---|
1562 |
|
---|
1563 | (6-6-3-1) bool_t VALID_INHNO_DEFINH(INHNO inhno)iIvVj
|
---|
1564 |
|
---|
1565 | inhnoªCDEF_INHÉηéÝnhÔÆµÄLøÈlÅ éêÉ
|
---|
1566 | trueC»¤ÅÈ¢êÉfalseðÔ·}ND
|
---|
1567 |
|
---|
1568 | SSPJ[lÌ^[Qbgñ˶ÅÍC±Ì}NÍgíêĢȢ½ßC^[
|
---|
1569 | Qbg˶ÅgíÈ¢ÈçCpÓ·éKvªÈ¢D
|
---|
1570 |
|
---|
1571 | (6-6-3-2) void x_define_inh(INHNO inhno, FP int_entry)
|
---|
1572 |
|
---|
1573 | inhnoÅwè³ê½ÝnhÌoüûÌÔnðint_entryÉÝè·éD
|
---|
1574 |
|
---|
1575 | ±ÌÖÍCWÌÝÇ@\Ìú»ðp¢½êÌÝC^[Qb
|
---|
1576 | gñ˶©çÄÑo³êéDÝÇ@\Ìú»ð^[Qbg˶
|
---|
1577 | ÅpÓµC»ÌűÌÖðÄÑo³È¢êÉÍC±ÌÖðpÓ·é
|
---|
1578 | KvÍÈ¢D
|
---|
1579 |
|
---|
1580 | ±ÌÖÍC^[Qbgñ˶ÌJ[lú»©çÄÑo³êé½ßC
|
---|
1581 | J[lÌú»iNMIð·×ÄÌݪ}XN³êÄ¢éj©çÄ
|
---|
1582 | Ño¹éæ¤ÉÀ·êÎæ¢D
|
---|
1583 |
|
---|
1584 | wè³ê½ÝnhÔªDEF_INHÉηéàÌÆµÄLøÈlÅÈ¢ê
|
---|
1585 | Ì®ìÍÛØ·éKvªÈ¢iassertÅG[Æ·é̪]ܵ¢jD±ê
|
---|
1586 | ÍCRtBM
|
---|
1587 | [^ªCpX2Ìev[gt@CÌ^[Qbg˶
|
---|
1588 | Åè`·éINHNO_DEFINH_VALIDðp¢ÄG[ðo·é½ßÅ éD
|
---|
1589 |
|
---|
1590 | 6.6.4 ÝvCÌ®«ÌÝè
|
---|
1591 |
|
---|
1592 | (6-6-4-1) bool_t VALID_INTNO_CFGINT(INTNO intno)iIvVj
|
---|
1593 |
|
---|
1594 | intnoªCCFG_INTÉηéÝÔÆµÄLøÈlÅ éêÉtrueC»¤
|
---|
1595 | ÅÈ¢êÉfalseðÔ·}NDÝvCÌ®«ðÝèūȢ
|
---|
1596 | intnoÉεÄÍC±Ì}NªfalseðÔ·æ¤É·éD
|
---|
1597 |
|
---|
1598 | SSPJ[lÌ^[Qbgñ˶ÅÍC±Ì}NÍgíêĢȢ½ßC^[
|
---|
1599 | Qbg˶ÅgíÈ¢ÈçCpÓ·éKvªÈ¢D
|
---|
1600 |
|
---|
1601 | (6-6-4-2) void x_config_int(INTNO intno, ATR intatr, PRI intpri)
|
---|
1602 |
|
---|
1603 | intnoÅwè³ê½ÝvCÌÝ®«ðCintatrÅwè³ê½Êè
|
---|
1604 | ÉÝè·éDܽCÝDæxðCintpriÅwè³ê½lÉÝè·éD
|
---|
1605 |
|
---|
1606 | ±ÌÖÍCWÌÝÇ@\Ìú»ðp¢½êÌÝC^[Qb
|
---|
1607 | gñ˶©çÄÑo³êéDÝÇ@\Ìú»ð^[Qbg˶
|
---|
1608 | ÅpÓµC»ÌűÌÖðÄÑo³È¢êÉÍC±ÌÖðpÓ·é
|
---|
1609 | KvÍÈ¢D
|
---|
1610 |
|
---|
1611 | ±ÌÖÍC^[Qbgñ˶ÌJ[lú»©çÄÑo³êé½ßC
|
---|
1612 | J[lÌú»iNMIð·×ÄÌݪ}XN³êÄ¢éj©çÄ
|
---|
1613 | Ño¹éæ¤ÉÀ·êÎæ¢D
|
---|
1614 |
|
---|
1615 | intatrƵÄÝèÅ«éÝ®«ÍÌÊèD
|
---|
1616 |
|
---|
1617 | TA_ENAINT 0x01 ÝvÖ~tOðNA
|
---|
1618 | TA_EDGE 0x02 GbWgK
|
---|
1619 |
|
---|
1620 | ±Ì¼ÉC^[Qbgè`ÅÝ®«ðÇÁµÄàæ¢D^[Qbgè`Å
|
---|
1621 | ÇÁ·é½ßÉCȺ̮«¼ª\ñ³êÄ¢éD
|
---|
1622 |
|
---|
1623 | TA_POSEDGE |WeBuGbWgK
|
---|
1624 | TA_NEGEDGE lKeBuGbWgK
|
---|
1625 | TA_BOTHEDGE ¼GbWgK
|
---|
1626 | TA_LOWLEVEL [xgK
|
---|
1627 | TA_HIGHLEVEL nCxgK
|
---|
1628 |
|
---|
1629 | ±êçÌ®«¼ð^[Qbgè`ÅÇÁ·éêÉÍC»Ì®«lðèµC
|
---|
1630 | è`ðtarget_kernel.hiܽÍC»±©çCN[h³êét@CjÉÜ
|
---|
1631 | ßéDܽCRtBM
|
---|
1632 | [^ev[gt@C©çQÆÅ«éæ¤ÉC
|
---|
1633 | target_def.csviܽÍC»±©çCN[h³êét@CjÉÜßCR
|
---|
1634 | tBM
|
---|
1635 | [^ev[gt@CÌ^[Qbgñ˶ÅG[ÆÈç
|
---|
1636 | È¢æ¤ÉCtarget.tfiܽÍC»±©çCN[h³êét@CjÅ
|
---|
1637 | TARGET_INTATRÉÝè·éD
|
---|
1638 |
|
---|
1639 | wè³ê½ÝÔªCFG_INTÉηéàÌÆµÄLøÈlÅÈ¢êâC»
|
---|
1640 | ÌÝvCÉεÄÝèūȢ®«ðwèµ½êCÝèūȢ
|
---|
1641 | ÝDæxðwèµ½êÌ®ìÍÛØ·éKvªÈ¢iassertÅG[Æ
|
---|
1642 | ·é̪]ܵ¢jD±Ìæ¤ÈP[XÍCRtBM
|
---|
1643 | [^ÅG[ð
|
---|
1644 | o·×«Å éDRtBM
|
---|
1645 | [^ev[gt@CÌ^[QbgñË
|
---|
1646 | ¶ÍCpX2Ìev[gt@CÌ^[Qbg˶Åè`·é
|
---|
1647 | INTNO_CFGINT_VALIDCTARGET_INTATRCINTPRI_CFGINT_VALIDðp¢ÄG[ð
|
---|
1648 | o·éªCWÌÝ®«iTA_ENAINTCTA_EDGEjªÝèūȢêâC
|
---|
1649 | ÝèūȢ®«âÝDæxªÝvCÉæÁÄÙÈéêÉÍC
|
---|
1650 | RtBM
|
---|
1651 | [^ev[gt@CÌ^[Qbg˶ÅoµÈ¯ê
|
---|
1652 | ÎÈçÈ¢D
|
---|
1653 |
|
---|
1654 | 6.6.5 ÝÇ@\Ìú»ÌÏX
|
---|
1655 |
|
---|
1656 | (6-6-5-1) OMIT_INITIALIZE_INTERRUPTiIvVj
|
---|
1657 |
|
---|
1658 | ÝÇ@\Ìú»ð^[Qbg˶ÅpÓµC^[Qbgñ˶
|
---|
1659 | ÉÜÜêéWÌÝÇ@\Ìú»ðp¢È¢êÉÍC±ÌV
|
---|
1660 | {ð}Nè`·éD
|
---|
1661 |
|
---|
1662 | ±ÌV{ð}Nè`·éÆCINHINIBCINTINIBCinitialize_interrupt
|
---|
1663 | Ìè`ªCJ[lÌ^[Qbgñ˶©çæè©êéDܽC
|
---|
1664 | TNUM_INHNOCtnum_inhnoCinhinib_tableCTNUM_INTNOCtnum_intnoC
|
---|
1665 | intinib_tableÌè`ÆCÝnhÌoüû𶬷é½ßÌLq
|
---|
1666 | iINTHDR_ENTRY}NÌXgjªCRtBM
|
---|
1667 | [^ÌpX2Ìev[
|
---|
1668 | gt@CÌ^[QbgñË¶ÉæÁÄkernel_cfg.cɶ¬³êÈÈéD
|
---|
1669 | ½¾µCRtBM
|
---|
1670 | [^ÌpX2Ìev[gt@CÌ^[Qbg˶
|
---|
1671 | ÅCUSE_INHINIB_TABLEÆUSE_INTINIB_TABLEðÝè·é±ÆÅC»Ìê
|
---|
1672 | ªðkernel_cfg.cɶ¬·é±ÆªÂ\Å éD
|
---|
1673 |
|
---|
1674 | (6-6-5-2) void initialize_interrupt(void)iIvVj
|
---|
1675 |
|
---|
1676 | OMIT_INITIALIZE_INTERRUPTð}Nè`µ½êÉÍC±ÌÖð^[Qbg
|
---|
1677 | ˶ÅpÓ·éDOMIT_INITIALIZE_INTERRUPTð}Nè`·é±ÆÉæèæ
|
---|
1678 | è©êé»Ì¼Ìf[^^CÏC}NÍC±ÌÖÅgp·éêÉÌ
|
---|
1679 | ÝpÓ·êÎæ¢D
|
---|
1680 |
|
---|
1681 | 6.6.6 ftHgÌÝnh
|
---|
1682 |
|
---|
1683 | (6-6-6-1) default_int_handler(void)iIvVj
|
---|
1684 |
|
---|
1685 | RtBM
|
---|
1686 | [^ÉæèÝnhÌe[u𶬷éêÈÇÉÍC
|
---|
1687 | Ýnhðo^µÈ©Á½ÝnhÔÉεÄCftHgÌ
|
---|
1688 | ÝnhƵÄCdefault_int_handlerðo^·éD
|
---|
1689 |
|
---|
1690 | default_int_handlerÍCWÌàÌð^[Qbg˶ÅpÓ·éªC[U
|
---|
1691 | ªpÓµ½àÌÅu«·¦çê鿤ÉCOMIT_DEFAULT_INT_HANDLERð}N
|
---|
1692 | è`µ½êÉÍC^[Qbg˶Åè`µÈ¢æ¤É·éDȨC[U
|
---|
1693 | ªpÓ·éê̼ÌÍC_kernel_default_int_handlerÆÈéD
|
---|
1694 |
|
---|
1695 | 6.6.7 J[lÇOÌÝ
|
---|
1696 |
|
---|
1697 | J[lÇOÌÝnhÍCJ[làÌÝoüûðoR¹
|
---|
1698 | ¸ÉÀs·é̪î{Å éD
|
---|
1699 |
|
---|
1700 | ½¾µC·×ÄÌÝů¶AhXɪò·évZbTÅÍCJ[l
|
---|
1701 | àÌÝoüûðSoR¹¸ÉJ[lÇOÌÝnhðÀ
|
---|
1702 | s·é±ÆªÅ«È¢½ßCÝoüûÌÈé×¢^C~OÅC
|
---|
1703 | J[lÇOÌÝÅ é©ð»ÊµCàeðª¯éKvª éDï
|
---|
1704 | ÌIÉÍCJ[lÇOÌÝÌoüûÅÍCI[onhÌ
|
---|
1705 | â~Æ®ìJnðsÁÄÍÈçÈ¢DܽCreqflgð`FbNµC^XNØ·
|
---|
1706 | ¦â^XNáO[`ÌÄoµðs¤KvªÈ¢D³çÉCNMIÌoüû
|
---|
1707 | ÅÍCg[XOæ¾ilog_inh_enter¨æÑlog_inh_leavejðÄ
|
---|
1708 | ÑoµÄÍÈçÈ¢D
|
---|
1709 |
|
---|
1710 | J[lÇOÌÝnhðÀs·éÛÉCJ[làÌÝoüû
|
---|
1711 | ÌêªðoR·éêÉÍCCPUáOªN±éÂ\«ðÉÍ¸ç·ÆÆà
|
---|
1712 | ÉCCPUáOðN±·Â\«ª éêÉÍC»ÌÂ\«ð^[Qbg˶Ì
|
---|
1713 | [U[Y}j
|
---|
1714 | AÉLڵȯêÎÈçÈ¢D
|
---|
1715 |
|
---|
1716 | ÉCJ[lÇOÌÝÌÝèû@ÉÖµÄCuTOPPERSV¢ãJ[l
|
---|
1717 | dlvÌu6.6.8 J[lÇOÌÝÌÝèû@vÌßÌ3ÂÌû@
|
---|
1718 | Ì¢¸êðÌp·é©ðè·éD
|
---|
1719 |
|
---|
1720 | (a-1)ܽÍ(a-2)ðÌpµCJ[lÇOƵ½ÝÉεÄCJ[l
|
---|
1721 | ÌAPIÉæéÝnhÌo^ÆÝvCÌ®«ÌÝèðT|[g
|
---|
1722 | µÈ¢êÉÍC»êÉãíéû@ð^[Qbg˶Ì[U[Y}j
|
---|
1723 | A
|
---|
1724 | ÉLq·éD
|
---|
1725 |
|
---|
1726 | (a-1)ܽÍ(a-2)ðÌpµÄJ[lÌAPIÉæéÝnhÌo^â
|
---|
1727 | ÝvCÌ®«ÌÝèðT|[g·éêâC(b)ðÌpµ½êÉÍC^[
|
---|
1728 | Qbg˶ɨ¢Ä»êðÀ»·éKvª éD
|
---|
1729 |
|
---|
1730 | J[lÇOÌÝÉεÄCDEF_INHÉæéÝnhÌo^ðT|[
|
---|
1731 | g·éÉÍCÌÝèªKvÉÈéD
|
---|
1732 |
|
---|
1733 | ETARGET_INHATRÉCTA_NONKERNELðÝè·éD
|
---|
1734 |
|
---|
1735 | E(a-1)ܽÍ(a-2)ðÌpµ½êÉÍCINHNO_DEFINH_VALIDÉCJ[lÇ
|
---|
1736 | @OƵ½ÝÉηéÝnhÔðÜßéDܽC
|
---|
1737 | @VALID_INHNO_DEFINHðCJ[lÇOƵ½ÝnhÔðLøÈ
|
---|
1738 | @lÆ»è·éæ¤É·éD
|
---|
1739 |
|
---|
1740 | E(a-1)ܽÍ(a-2)ðÌpµ½êÉÍCINHNO_FIX_KERNELÉJ[lÇÆ
|
---|
1741 | @µ½ÝnhÔÌXgðCINHNO_FIX_NONKERNELÉJ[lÇO
|
---|
1742 | @Ƶ½ÝnhÔÌXgÝè·éD
|
---|
1743 |
|
---|
1744 | EDEF_INHªJ[lÇOÌÝÉÎū鿤ɷéDWÌÝÇ
|
---|
1745 | @@\Ìú»ðp¢éêÉÍCx_define_inhðJ[lÇOÌ
|
---|
1746 | @ÝÉγ¹éD
|
---|
1747 |
|
---|
1748 | EKvÈêÉÍCTA_NONKERNEL®«ªÝè³ê½ÝnhðJ[l
|
---|
1749 | @ÇOƵ¤æ¤ÉCJ[làÌÝoüûðC³·éDWÌ
|
---|
1750 | @ÝÇ@\Ìú»ðp¢éêCJ[lÇOÌÝÉεÄ
|
---|
1751 | @ÍCJ[làÌÝoüû𶬹¸CAvP[Vªo^µ
|
---|
1752 | @½Ýnhð¼ÚÄÑo·æ¤ÉC^[QbgñË¶ÉæèÝè³
|
---|
1753 | @êé½ßC^[Qbg˶ÅÍηéKvªÈ¢D
|
---|
1754 |
|
---|
1755 | J[lÇOÌÝÉεÄCCFG_INTÉæéÝvCÌ®«ÌÝ
|
---|
1756 | èðT|[g·éÉÍCÌÝèªKvÉÈéD
|
---|
1757 |
|
---|
1758 | E(a-1)ܽÍ(a-2)ðÌpµ½êÉÍCINTNO_CFGINT_VALIDÉCJ[lÇ
|
---|
1759 | @OƵ½ÝÉηéÝÔðÜßéDܽCVALID_INTNO_CFGINT
|
---|
1760 | @ðCJ[lÇOƵ½ÝÔðLøÈlÆ»è·éæ¤É·éD
|
---|
1761 |
|
---|
1762 | E(a-1)ܽÍ(a-2)ðÌpµ½êÉÍCINTNO_FIX_KERNELÉJ[lÇÆ
|
---|
1763 | @µ½ÝÔÌXgðCINTNO_FIX_NONKERNELÉJ[lÇOƵ½
|
---|
1764 | @ÝÔÌXgÝè·éD
|
---|
1765 |
|
---|
1766 | EINTPRI_CFGINT_VALIDÉCJ[lÇOÌÝÆÈéDæxðÜßéD
|
---|
1767 |
|
---|
1768 | ECFG_INTªJ[lÇOÌÝÉÎū鿤ɷéDWÌÝÇ
|
---|
1769 | @@\Ìú»ðp¢éêÉÍCx_config_intðJ[lÇOÌ
|
---|
1770 | @ÝÉγ¹éD
|
---|
1771 |
|
---|
1772 | chg_ipmÉæèCiNMIÈOÌjJ[lÇOÌÝð}XNū鿤É
|
---|
1773 | ·éêÉÍCÌÝèªKvÉÈéD
|
---|
1774 |
|
---|
1775 | EVALID_INTPRI_CHGIPMðCJ[lÇOÌÝÆÈéDæxðLøÈlÆ
|
---|
1776 | @»è·éæ¤É·éD
|
---|
1777 |
|
---|
1778 | Et_set_ipmðCJ[lÇOÌÝÆÈéDæxðµ¦éæ¤É·éD
|
---|
1779 |
|
---|
1780 | 6.7 CPUáOnhÆCPUáO¶ÌVXeóÔÌQÆ
|
---|
1781 |
|
---|
1782 | 6.7.1 CPUáOnhÌoüû
|
---|
1783 |
|
---|
1784 | CPUáOÌoüûÌû@ÍvZbTÉæÁÄå«ÙÈéªC¨¨æ»Ì
|
---|
1785 | àeÍÌÊèD
|
---|
1786 |
|
---|
1787 | ----------------------------------------
|
---|
1788 | void
|
---|
1789 | <CPUáOÌoüû>(void)
|
---|
1790 | {
|
---|
1791 | XNb`WX^ðX^bNÉÛ¶·é
|
---|
1792 | if (J[lÇOÌCPUáO) {
|
---|
1793 | if (^XNReLXgÅCPUáO¶) {
|
---|
1794 | ñ^XNReLXgÉØè·¦é
|
---|
1795 | }
|
---|
1796 | VXeóÔiReLXgÍjðCCPUáO¶ÌóÔÉ·é
|
---|
1797 | CPUáOnhðCCPUáOÌîñðL¯µÄ¢éÌæÌæªÔnð
|
---|
1798 | p[^ip_excinfjƵÄÄÑo·
|
---|
1799 | if (^XNReLXgÅCPUáO¶) {
|
---|
1800 | ^XNReLXgÉØè·¦é
|
---|
1801 | }
|
---|
1802 | CPUáO©çÌ^[ãÉCCPUáO¶ÌVXeóÔÉ
|
---|
1803 | ß鿤Éõ·é
|
---|
1804 | }
|
---|
1805 | else {
|
---|
1806 | if (^XNReLXgÅCPUáO¶) {
|
---|
1807 | ñ^XNReLXgÉØè·¦é
|
---|
1808 | }
|
---|
1809 | VXeóÔiReLXgÍjðCCPUáO¶ÌóÔÉ·é
|
---|
1810 | @iCPUáO¶ÌÝDæx}XNæèàDæxÌ¢Ý
|
---|
1811 | ÌÝðó¯t¯çê鿤ɵÄCCPUbNðóÔÉ·éj
|
---|
1812 |
|
---|
1813 | #ifdef LOG_EXC_ENTER
|
---|
1814 | log_exc_enter(CPUáOnhÔ);
|
---|
1815 | #endif /* LOG_EXC_ENTER */
|
---|
1816 | CPUáOnhðCCPUáOÌîñðL¯µÄ¢éÌæÌæªÔnð
|
---|
1817 | p[^ip_excinfjƵÄÄÑo·
|
---|
1818 | #ifdef LOG_EXC_LEAVE
|
---|
1819 | log_exc_leave(CPUáOnhÔ);
|
---|
1820 | #endif /* LOG_EXC_LEAVE */
|
---|
1821 |
|
---|
1822 | ret_exc:
|
---|
1823 | if (^XNReLXgÅCPUáO¶) {
|
---|
1824 | iÈÆàjJ[lÇÌÝðÖ~µ½óÔÉ·é c (*d)
|
---|
1825 | ^XNReLXgÉØè·¦é
|
---|
1826 | if (reqflg) {
|
---|
1827 | reqflg = false;
|
---|
1828 | CPUbNóÔÉ·é c (*e)
|
---|
1829 | search_schedtskðÄÑoµCÅDæÊ^XNðßé
|
---|
1830 | ÅDæÊÌ^XNIDðøÉµÄrun_taskɪò·é
|
---|
1831 | }
|
---|
1832 | }
|
---|
1833 | CPUáO©çÌ^[ãÉCCPUbNðóÔÉß鿤Éõ·é
|
---|
1834 | }
|
---|
1835 | XNb`WX^ðX^bN©çA·é
|
---|
1836 | CPUáO©çÌ^[
|
---|
1837 | }
|
---|
1838 | ----------------------------------------
|
---|
1839 |
|
---|
1840 | CPUáOnhÍCñReLXgÉØè·¦é±Æð¢ÄÍCCPUáO
|
---|
1841 | ¶Æ¯¶VXeóÔÅÄÑo³È¯êÎÈçÈ¢Dá¦ÎCCPUáOªCPU
|
---|
1842 | bNóÔŶµ½êÉÍCPUbNóÔCCPUbNðóÔŶµ½
|
---|
1843 | êÉÍCPUbNðóÔÅCCPUáOnhðÄÑo³È¯êÎÈçÈ¢D
|
---|
1844 | CPUbNóÔŶµ½CPUáOÍCJ[lÇOÌCPUáOÆÈé½ßCJ[
|
---|
1845 | lÇÌCPUáOnhÉ¢ÄÍCCPUbNðóÔÅÄÑo·±ÆÉ
|
---|
1846 | ÈéD
|
---|
1847 |
|
---|
1848 | J[lÇOÌCPUáOŠ鱯ÍCexc_sense_unlockªfalseðÔ·ð
|
---|
1849 | ÆC^XNReLXgŠ鱯ð²×È¢¾¯Ìá¢Å èCÙÚ¯¶R[
|
---|
1850 | hÅ»è·é±ÆªÅ«éD
|
---|
1851 |
|
---|
1852 | ãÌR[hÅÍCJ[lÇOÌCPUáOÉεÄCg[XOæ¾
|
---|
1853 | ilog_exc_enter¨æÑlog_exc_leavejðÄÑoµÄ¢È¢ªCSÝb
|
---|
1854 | NóÔ©NMIÌÉCPUáOª¶µ½êðO·êÎCÄÑoµÄà©
|
---|
1855 | ÜíÈ¢DSÝbNóÔ©NMIÌɶµ½CPUáOÌêÉÍC
|
---|
1856 | g[XOæ¾ðÄÑoµÄÍÈçÈ¢D
|
---|
1857 |
|
---|
1858 | CPUáOnhðÀs·éÛÉoR·éªÅÍCCPUáOªN±éÂ\«ð
|
---|
1859 | ÉÍ¸ç·ÆÆàÉCCPUáOðN±·Â\«ª éêiá¦ÎCXNb`
|
---|
1860 | WX^ðX^bNÉÛ¶·éÉCoXG[ÈÇÌCPUáOª¶·éÂ\
|
---|
1861 | «ªl¦çêéjÉÍC»ÌÂ\«ð^[Qbg˶Ì[U[Y}j
|
---|
1862 | A
|
---|
1863 | ÉLڵȯêÎÈçÈ¢D
|
---|
1864 |
|
---|
1865 | ret_excÈ~ÌÍCÝÌoüûÌret_intÈ~ÌÆ¯¶Å é
|
---|
1866 | ½ßC^[QbgÉæÁÄÍC¤ÊÌ[`ðp¢é±ÆªÅ«éÂ\«ª
|
---|
1867 | éD
|
---|
1868 |
|
---|
1869 | CPUáOÌoüûðAZu¾êÅLq·éêÉÍCg[XOæ¾
|
---|
1870 | ÍCu6.2 g[XO@\ÖÌÎvÌßÅLqµ½û@ÅR[fB
|
---|
1871 | O·é±ÆD
|
---|
1872 |
|
---|
1873 | 6.7.2 CPUáOnhÌoüû̶¬
|
---|
1874 |
|
---|
1875 | CPUáOxNgðn[hEFAÅÀ»µÄ¢éêÈÇCCPUáOnh
|
---|
1876 | ÉoüûðpÓµ½ûªø¦ªÇ¢^[Qbg̽ßÉCCPUáOnh
|
---|
1877 | Éoüû𶬷é@\ðpӵĢéD
|
---|
1878 |
|
---|
1879 | ȺÌ}NÍCWÌCPUáOÇ@\Ìú»ðp¢½êÌÝC^[
|
---|
1880 | Qbgñ˶ÅgíêéDCPUáOÇ@\Ìú»ð^[Qbg˶
|
---|
1881 | ÅpÓµC»ÌűêçÌ}NðgíÈ¢êÉÍC±êçÌ}Nðp
|
---|
1882 | Ó·éKvÍÈ¢D
|
---|
1883 |
|
---|
1884 | (6-7-2-1) EXC_ENTRY(excno, exchdr)
|
---|
1885 |
|
---|
1886 | CPUáOnhÔªexcnoCCPUáOnhÌÖ¼ªexchdrÅ éCPUá
|
---|
1887 | OnhÌoüûÌxðìé}NDEXCHDR_ENTRYðp¢ÄCPUáO
|
---|
1888 | nhÉoüû𶬷éêÉÍCÌæ¤Éè`·éD
|
---|
1889 |
|
---|
1890 | #define EXC_ENTRY(excno, exchdr) _kernel_##exchdr##_##excno
|
---|
1891 |
|
---|
1892 | CPUáOnhÉoüûðìéKvªÈ¢êÉÍCÌæ¤Éè`µ
|
---|
1893 | ÄCCPUáOnhÌÖ¼ð»ÌÜÜÔ·D
|
---|
1894 |
|
---|
1895 | #define EXC_ENTRY(excno, exchdr) exchdr
|
---|
1896 |
|
---|
1897 | (6-7-2-2) EXCHDR_ENTRY(excno, excno_num, exchdr)
|
---|
1898 |
|
---|
1899 | CPUáOnhÔªexcnoCCPUáOnhÌÖ¼ªexchdrÅ éCPUá
|
---|
1900 | OnhÌoüû𶬷é}NDexcno_numÉÍCAZu¾êL
|
---|
1901 | qpÉCCPUáOnhÔªlÅn³êéDCPUáOnhÉoüû
|
---|
1902 | ðìéKvªÈ¢êÉÍCóÉè`·éD
|
---|
1903 |
|
---|
1904 | 6.7.3 CPUáOnhÌÝè
|
---|
1905 |
|
---|
1906 | (6-7-3-1) bool_t VALID_EXCNO_DEFEXC(EXCNO excno)iIvVj
|
---|
1907 |
|
---|
1908 | excnoªCDEF_EXCÉηéCPUáOnhÔÆµÄLøÈlÅ éêÉ
|
---|
1909 | trueC»¤ÅÈ¢êÉfalseðÔ·}ND
|
---|
1910 |
|
---|
1911 | SSPJ[lÌ^[Qbgñ˶ÅÍC±Ì}NÍgíêĢȢ½ßC^[
|
---|
1912 | Qbg˶ÅgíÈ¢ÈçCpÓ·éKvªÈ¢D
|
---|
1913 |
|
---|
1914 | (6-7-3-2) void x_define_exc(EXCNO excno, FP exc_entry)
|
---|
1915 |
|
---|
1916 | excnoÅwè³ê½CPUáOnhÌoüûÌÔnðexc_entryÉÝè·éD
|
---|
1917 |
|
---|
1918 | ±ÌÖÍCWÌCPUáOÇ@\Ìú»ðp¢½êÌÝC^[Qb
|
---|
1919 | gñ˶©çÄÑo³êéDCPUáOÇ@\Ìú»ð^[Qbg˶
|
---|
1920 | ÅpÓµC»ÌűÌÖðÄÑo³È¢êÉÍC±ÌÖðpÓ·é
|
---|
1921 | KvÍÈ¢D
|
---|
1922 |
|
---|
1923 | ±ÌÖÍC^[Qbgñ˶ÌJ[lú»©çÄÑo³êé½ßC
|
---|
1924 | J[lÌú»iNMIð·×ÄÌݪ}XN³êÄ¢éj©çÄ
|
---|
1925 | Ño¹éæ¤ÉÀ·êÎæ¢D
|
---|
1926 |
|
---|
1927 | wè³ê½CPUáOnhÔªDEF_EXCÉηéàÌÆµÄLøÈlÅÈ¢
|
---|
1928 | êÌ®ìÍÛØ·éKvªÈ¢iassertÅG[Æ·é̪]ܵ¢jD±
|
---|
1929 | êÍCRtBM
|
---|
1930 | [^ªCpX2Ìev[gt@CÌ^[Qbg˶
|
---|
1931 | Åè`·éEXCNO_DEFEXC_VALIDðp¢ÄG[ðo·é½ßÅ éD
|
---|
1932 |
|
---|
1933 | 6.7.4 CPUáOÇ@\Ìú»ÌÏX
|
---|
1934 |
|
---|
1935 | (6-7-4-1) OMIT_INITIALIZE_EXCEPTIONiIvVj
|
---|
1936 |
|
---|
1937 | CPUáOÇ@\Ìú»ð^[Qbg˶ÅpÓµC^[Qbgñ˶
|
---|
1938 | ÉÜÜêéWÌÝÇ@\Ìú»ðp¢È¢êÉÍC±ÌV
|
---|
1939 | {ð}Nè`·éD
|
---|
1940 |
|
---|
1941 | ±ÌV{ð}Nè`·éÆCEXCINIBÆinitialize_exceptionÌè`ªC
|
---|
1942 | J[lÌ^[Qbgñ˶©çæè©êéDܽCTNUM_EXCNOC
|
---|
1943 | tnum_excnoCexcinib_tableÌè`ÆCCPUáOnhÌoüûð¶¬
|
---|
1944 | ·é½ßÌLqiEXCHDR_ENTRY}NÌXgjðCRtBM
|
---|
1945 | [^Ìp
|
---|
1946 | X2Ìev[gt@CÌ^[QbgñË¶ÉæÁÄkernel_cfg.cɶ¬
|
---|
1947 | ³êÈÈéD
|
---|
1948 |
|
---|
1949 | (6-7-4-2) void initialize_exception(void)iIvVj
|
---|
1950 |
|
---|
1951 | OMIT_INITIALIZE_EXCEPTIONð}Nè`µ½êÉÍC±ÌÖð^[Qbg
|
---|
1952 | ˶ÅpÓ·éDOMIT_INITIALIZE_EXCEPTIONð}Nè`·é±ÆÉæèæ
|
---|
1953 | è©êé»Ì¼Ìf[^^CÏC}NÍC±ÌÖÅgp·éêÉÌ
|
---|
1954 | ÝpÓ·êÎæ¢D
|
---|
1955 |
|
---|
1956 | 6.7.5 ftHgÌCPUáOnh
|
---|
1957 |
|
---|
1958 | (6-7-5-1) default_exc_handler(void)iIvVj
|
---|
1959 |
|
---|
1960 | RtBM
|
---|
1961 | [^ÉæèCPUáOnhÌe[u𶬷éêÈÇÉÍC
|
---|
1962 | CPUáOnhðo^µÈ©Á½CPUáOnhÔÉεÄCftHg
|
---|
1963 | ÌCPUáOnhƵÄCdefault_exc_handlerðo^·éD
|
---|
1964 |
|
---|
1965 | default_exc_handlerÍCWÌàÌð^[Qbg˶ÅpÓ·éªC[U
|
---|
1966 | ªpÓµ½àÌÅu«·¦çê鿤ÉCOMIT_DEFAULT_EXC_HANDLERð}N
|
---|
1967 | è`µ½êÉÍC^[Qbg˶Åè`µÈ¢æ¤É·éDȨC[U
|
---|
1968 | ªpÓ·éê̼ÌÍC_kernel_default_exc_handlerÆÈéD
|
---|
1969 |
|
---|
1970 | 6.8 J[lÌN®EI¹ÆX^bNÌæÈÇ
|
---|
1971 |
|
---|
1972 | (6-8-1) X^[gAbvW
|
---|
1973 | [
|
---|
1974 |
|
---|
1975 | J[lÌX^[gAbvW
|
---|
1976 | [ÍCVXeÌZbgãÉÅÉÀs
|
---|
1977 | ³êévOÅ éDX^[gAbvW
|
---|
1978 | [ÍCWIÉÍCvZb
|
---|
1979 | T˶ܽÍ`bv˶ÅpӵȺÌðs¤ªC»êɱ¾íéK
|
---|
1980 | vÍÈ¢DïÌIÉÍCJ«ÉpÓ³êÄ¢éX^[gAbvW
|
---|
1981 | [
|
---|
1982 | ðp¢éû@i±ÌêC^[Qbg˶ÅmainÖðpÓ·éKvª éj
|
---|
1983 | âCAvP[VÅpÓ·éêªl¦çêéD
|
---|
1984 |
|
---|
1985 | (a) vZbTóÔÌú»
|
---|
1986 |
|
---|
1987 | vZbT[hCX^bN|C^Ct[|C^CvZbTÌó
|
---|
1988 | Ôðú»·éDܽCNMIð·×ÄÌÝð}XNµ½óÔiSÝ
|
---|
1989 | bNóÔÆ¯ÌóÔjÆ·éDDRAMRg[Ìú»ÈÇCð
|
---|
1990 | ANZX·é½ßÉKvÈú»ð±±ÅsÁÄàæ¢iÌ
|
---|
1991 | hardware_init_hookÅsÁÄàæ¢jD
|
---|
1992 |
|
---|
1993 | (b) hardware_init_hookðÄÑo·
|
---|
1994 |
|
---|
1995 | VXeÌZbgã·®És¤KvÌ é^[QbgVXe˶Ìú»
|
---|
1996 | ðs¤½ßÉChardware_init_hookðÄÑo·Dhardware_init_hookªp
|
---|
1997 | Ó³êĢȢêÍC½àµÈ¢DGNUJ«ÅÍCJXNvgÌ
|
---|
1998 | weak definitionÉæèChardware_init_hookªpÓ³êĢȢêÌlð0
|
---|
1999 | Æ·é±ÆÅC±êðÀ»Å«éDweak definitionÌ@\ð½È¢J«
|
---|
2000 | ÅÍChardware_init_hookðK¸ÄÑo·±ÆÉ·éD
|
---|
2001 |
|
---|
2002 | hardware_init_hookÍC^[Qbg˶ÅpÓ·é̪WÅ éªCVX
|
---|
2003 | eÌZbgã·®És¤KvÌ éú»ðÇÁ·é½ßÉCAv
|
---|
2004 | P[VÅpÓµ½àÌðp¢éêà éD
|
---|
2005 |
|
---|
2006 | ANZXÉKvÈú»ðhardware_init_hookÅs¤êÉÍC±
|
---|
2007 | êðÄÑo·_ÅÉANZX·é±ÆªÅ«È¢½ßCÖiTu[
|
---|
2008 | `jðÄÑo·½ßÉX^bNðgp·évZbTÅÍCßèÔnðÄp
|
---|
2009 | WX^ÉüêÄÄÑo·Æ¢Á½HvªKvÅ éD±ÌêC
|
---|
2010 | hardware_init_hookðC¾êÅLq·é±ÆÍÅ«ÈÈéªCâÞð¦È¢D
|
---|
2011 |
|
---|
2012 | (c) bssZNVÆdataZNVÌú»
|
---|
2013 |
|
---|
2014 | bssZNVðNAµCdataZNVÉúlðÝè·éD
|
---|
2015 |
|
---|
2016 | ½¾µCJ[l{ÌÍCkerflgªfalsei0jÉú»³ê鱯ÈOÉC
|
---|
2017 | ±êçÌZNVªú»³ê鱯É˶µÄ¢È¢½ßCX^[gAb
|
---|
2018 | vW
|
---|
2019 | [ðAvP[VÅpÓ·éêÅCVXeT[rXâAv
|
---|
2020 | P[Vª±êçÌZNVªú»³ê鱯É˶µÄ¢È¢ê
|
---|
2021 | ÉÍCVXeÌN®ÔðZk·é½ßÉCkerflgðfalseÉú»·é¾¯
|
---|
2022 | Å\ªÅ éD
|
---|
2023 |
|
---|
2024 | (d) software_init_hookðÄÑo·
|
---|
2025 |
|
---|
2026 | J«iÁÉCujÉ˶µÄKvÈú»ðs¤½ßÉC
|
---|
2027 | software_init_hookðÄÑo·Dsoftware_init_hookªpÓ³êĢȢê
|
---|
2028 | ÍC½àµÈ¢DGNUJ«ÅÍCJXNvgÌweak definitionÉ
|
---|
2029 | æèCsoftware_init_hookªpÓ³êĢȢêÌlð0Æ·é±ÆÅC±ê
|
---|
2030 | ðÀ»Å«éDweak definitionÌ@\ð½È¢J«ÅÍC
|
---|
2031 | software_init_hookðK¸ÄÑo·±ÆÉ·éD
|
---|
2032 |
|
---|
2033 | software_init_hookÍC^[Qbg˶ÅpÓ·é̪WÅ éD
|
---|
2034 |
|
---|
2035 | (e) sta_kerÖªò
|
---|
2036 |
|
---|
2037 | sta_kerðÄÑo·Dsta_kerÍCNMIð·×ÄÌÝð}XNµ½óÔ
|
---|
2038 | iSÝbNóÔÆ¯ÌóÔjÅÄÑo³È¯êÎÈçÈ¢Dsta_ker©
|
---|
2039 | çÍ^[·é±ÆªÈ¢½ßCX^[gAbvW
|
---|
2040 | [ÉßÁÄé±
|
---|
2041 | ÆÍl¦éKvªÈ¢D
|
---|
2042 |
|
---|
2043 | (6-8-2) void target_initialize(void)
|
---|
2044 |
|
---|
2045 | ^[Qbg˶Ìú»ðs¤ÖDsta_kerÌÅÅÄÑo³êéDvZb
|
---|
2046 | TE`bvEJ«˶Ìú»ðC»êçÌË¶ÉØèª¯é±Æ
|
---|
2047 | àÂ\Å éD
|
---|
2048 |
|
---|
2049 | ±ÌÖÍC ÜÅàJ[lÌ^[Qbg˶Ìú»ðs¤½ß
|
---|
2050 | ÌàÌÅ éDAvP[VÉKvÈú»ÍCú»[`Ås
|
---|
2051 | ¤Ìªî{Å éªCVXeÌZbgã·®És¤Kvª éêÉÍC
|
---|
2052 | hardware_init_hookðp¢éD
|
---|
2053 |
|
---|
2054 | (6-8-3) void call_exit_kernel(void)
|
---|
2055 |
|
---|
2056 | ñ^XNReLXgÉØè·¦ÄCexit_kernelÖªò·éÖDext_ker©
|
---|
2057 | çÄÑo³êéDexit_kernel©çÍ^[·é±ÆªÈ¢½ßC±ÌÖÉ
|
---|
2058 | ßÁÄ鱯Íl¦éKvªÈ¢D
|
---|
2059 |
|
---|
2060 | ñ^XNReLXgÉØè·¦éÌÍCI¹[`ðCñ^XNR
|
---|
2061 | eLXgpÌX^bNÅÀs·é½ßÅ éDI¹[`ð^XNpÌ
|
---|
2062 | X^bNÅÀs·éÆCe^XNÌX^bNÌæÌTCYðè·éÛÉCI
|
---|
2063 | ¹[`ªgp·éX^bNÌæðl¶µÈ¯êÎÈçÈ¢D±êÉÍC
|
---|
2064 | I¹[`ªgp·éX^bNÌæªå«¢êÉe^XNÌX^bN
|
---|
2065 | Ìæð³ÊÉ嫵ȯêÎÈçÈ¢±ÆÉÁ¦ÄCÓ}µÈ¢X^bNI[
|
---|
2066 | o[t[ª¶·éÂ\«ðß鯢¤âèª éD
|
---|
2067 |
|
---|
2068 | ±ÌÖÍCSÝbNóÔÅÄÎêé½ßCSÝbNóÔ©çÄ
|
---|
2069 | Ño·±ÆªÅ«È¢ÖðÄÎÈ¢æ¤ÉÀµÈ¯êÎÈçÈ¢D
|
---|
2070 |
|
---|
2071 | (6-8-4) void target_exit(void)
|
---|
2072 |
|
---|
2073 | ^[Qbg˶ÌI¹ðs¤ÖD±ÌÖÍCJ[lI¹ÌÅ
|
---|
2074 | ãÉÄÑo³êC^[µÄÍÈçÈ¢DvZbTE`bvEJ«Ë
|
---|
2075 | ¶ÌI¹ðC»êçÌË¶ÉØèª¯é±ÆàÂ\Å éD
|
---|
2076 |
|
---|
2077 | ±ÌÖÅÍCÅÉCatexitÉæÁÄo^³ê½ÖÆfXgN^ðÄÑ
|
---|
2078 | o·±ÆðÓ}µÄ¨èCWIÉÍCsoftware_term_hookðÄÑo·D
|
---|
2079 | software_term_hookªpÓ³êĢȢêÍC½àµÈ¢DGNUJ«ÅÍC
|
---|
2080 | JXNvgÌweak definitionÉæèCsoftware_term_hookªpÓ³ê
|
---|
2081 | ĢȢêÌlð0Æ·é±ÆÅC±êðÀ»Å«éDweak definitionÌ@
|
---|
2082 | \ð½È¢J«ÅÍCsoftware_term_hookðK¸ÄÑo·±ÆÉ·éD
|
---|
2083 |
|
---|
2084 | ±ÌÖÍCSÝbNóÔÅÄÎêé½ßCSÝbNóÔ©çÄ
|
---|
2085 | Ño·±ÆªÅ«È¢ÖðÄÎÈ¢æ¤ÉÀµÈ¯êÎÈçÈ¢D
|
---|
2086 |
|
---|
2087 | {Öð³À[vÅÀ·éÛÍCȺÌ`®Æ·é±Æ(TECSÌp[TÌ
|
---|
2088 | §ÀÉí¹é½ßjD
|
---|
2089 |
|
---|
2090 | void
|
---|
2091 | target_exit( void )
|
---|
2092 | {
|
---|
2093 |
|
---|
2094 | /*
|
---|
2095 | * ^[Qbg˶Ì
|
---|
2096 | */
|
---|
2097 |
|
---|
2098 |
|
---|
2099 | while (true)
|
---|
2100 | {
|
---|
2101 | }
|
---|
2102 | }
|
---|
2103 |
|
---|
2104 |
|
---|
2105 | 6.9 J[làÌ`
|
---|
2106 | [jO
|
---|
2107 |
|
---|
2108 | 6.9.1 rbg}bvT[`
|
---|
2109 |
|
---|
2110 | (6-9-1-1) OMIT_BITMAP_SEARCHiIvVj
|
---|
2111 | (6-9-1-2) uint_t bitmap_search(uint16_t bitmap)iIvVj
|
---|
2112 |
|
---|
2113 | ^[Qbgñ˶ÅCuint16_t^Ì®libitmapjÌ1ÌrbgÌàCÅ
|
---|
2114 | àºÊiEjÌàÌðT[`µC»ÌrbgÔðÔ·Öbitmap_searchðp
|
---|
2115 | ӵĢéD±±ÅCrbgÔÍźÊrbgð0ƵCbitmapÉ0ðwèµ
|
---|
2116 | ÄÍÈçÈ¢àÌÆµÄ¢éD
|
---|
2117 |
|
---|
2118 | rbgT[`½ßðÂvZbTÅÍCbitmap_searchðCrbgT[`½ß
|
---|
2119 | ðg¤æ¤É«¼µ½ûªø¦ªÇ¢êª éD±Ìæ¤ÈêÉÍC^[
|
---|
2120 | Qbg˶ÅrbgT[`½ßðgÁ½bitmap_searchðè`µC
|
---|
2121 | OMIT_BITMAP_SEARCHð}Nè`·éD
|
---|
2122 |
|
---|
2123 | WCuÉrbgT[`½ßðp¢½ffsª éêCbitmap_searchð
|
---|
2124 | (ffs(bitmap) - 1)Éè`·éÆæ¢D
|
---|
2125 |
|
---|
2126 | (6-9-1-3) uint16_t PRIMAP_BIT(PRI pri)iIvVj
|
---|
2127 |
|
---|
2128 | rbgT[`½ßÌT[`ûüªtÈÇÌRÅCDæxÆrbgÆÌÎð
|
---|
2129 | ÏXµ½¢êÉÍCPRIMAP_BITð}Nè`·éD
|
---|
2130 |
|
---|
2131 | 6.10 J[lÀÉÖ·é»Ì¼Ìè`
|
---|
2132 |
|
---|
2133 | 6.10.1 ñ^XNReLXgpÌX^bNÌæ
|
---|
2134 |
|
---|
2135 | (6-10-1-1) DEFAULT_ISTKSZ
|
---|
2136 |
|
---|
2137 | DEF_ICSÉæèñ^XNReLXgpÌX^bNÌæªwè³êÈ¢êÌC
|
---|
2138 | ftHgÌX^bNÌæÌTCYD
|
---|
2139 |
|
---|
2140 | ¦
|
---|
2141 | (6-10-1-2) DEFAULT_ISTKiIvVj
|
---|
2142 |
|
---|
2143 | DEF_ICSÉæèñ^XNReLXgpÌX^bNÌæªwè³êÈ¢êÌC
|
---|
2144 | ftHgÌX^bNÌæÌæªÔnD±Ì}Nªè`³êÈ¢êÉÍC
|
---|
2145 | TCYªDEFAULT_ISTKSZÌX^bNÌæªCzñÉæèmÛ³êéD
|
---|
2146 |
|
---|
2147 | (6-10-1-3) STK_T *TOPPERS_ISTKPT(STK_T *istk, SIZE istksz)iIvVj
|
---|
2148 |
|
---|
2149 | ñ^XNReLXgpÌX^bN|C^ÌúlðÛ·éÏiistkptj
|
---|
2150 | ðp¢éêÉC±ÌV{ÉCX^bNÌæÌæªÔniistkjÆX^b
|
---|
2151 | NÌæÌTCYiistkszj©çCX^bN|C^Ìúlðßé}Nð
|
---|
2152 | è`·éD
|
---|
2153 |
|
---|
2154 | 6.10.2 óxÌè`
|
---|
2155 |
|
---|
2156 | (6-10-2-1) TOPPERS_EMPTY_LABEL(type, symbol)iIvVj
|
---|
2157 |
|
---|
2158 | NG[ðh®½ßÉCf[^^typeÌzñÅ éÏsymbolÉè`ð^
|
---|
2159 | ¦é½ßÌ}ND^¦½è`ªQƳê鱯ÍÈ¢½ßCÇÌæ¤Èè`
|
---|
2160 | ð^¦Äàæ¢D
|
---|
2161 |
|
---|
2162 | ftHgÅÍCsymbolðCvf^ªtypeÅTCYª0ÌzñÉè`µÄ¢éD
|
---|
2163 | TCYª0ÌzñªG[ÆÈçÈ¢RpCiGCCͱêÉYjðp¢é
|
---|
2164 | êÉÍC^[Qbg˶Åè`·éKvÍÈ¢D
|
---|
2165 |
|
---|
2166 | 6.11 g[XO@\ÉÖ·éÝè
|
---|
2167 |
|
---|
2168 | SSPJ[lÌ\[XR[hÉÍCJ[lÌÀsg[XOðæ¾·é½ß
|
---|
2169 | Ì}NªßñÅ éDftHgÅÍC±êçÌ}NÍóÉè`³
|
---|
2170 | êÄg[XOÌæ¾ÍsíÈ¢ªC±êçÌ}NðKØÉè`·é±Æ
|
---|
2171 | Åg[XOÌæ¾ðs¤±ÆªÅ«éD
|
---|
2172 |
|
---|
2173 | 6.11.1 æ¾Å«ég[XOÌíÞÆ}N
|
---|
2174 |
|
---|
2175 | æ¾Å«ég[XOÌíÞÆC»êðæ¾·é½ßÉè`·é}NÍ
|
---|
2176 | ÌÊèÅ éD
|
---|
2177 |
|
---|
2178 | (a) J[lÌ®ìJnÆI¹
|
---|
2179 |
|
---|
2180 | Ì}Nðè`·é±ÆÅCJ[lÌ®ìJnÆI¹Ìg[XO
|
---|
2181 | ðæ¾·é±ÆªÅ«éD
|
---|
2182 |
|
---|
2183 | LOG_KER_ENTER J[lª®ìðJn·é¼Oiú»Ì®¹ãj
|
---|
2184 | LOG_KER_LEAVE J[lÌI¹iext_kerjªÄÎê½¼ãiI¹
|
---|
2185 | ÌÀsOj
|
---|
2186 |
|
---|
2187 | (b) PÊÌÀsJnÆI¹
|
---|
2188 |
|
---|
2189 | Ì}Nðè`·é±ÆÅCÝnhiINHjCÝT[rX[`
|
---|
2190 | iISRjCüúnhiCYCjCA[nhiALMjCCPUáOnh
|
---|
2191 | iEXCjC^XNáO[`iTEXjÌÀsJnOÆI¹ãÌg[X
|
---|
2192 | Oðæ¾·é±ÆªÅ«éD
|
---|
2193 |
|
---|
2194 | LOG_<Pʪ>_ENTER PÊÌÀsJn¼O
|
---|
2195 | LOG_<Pʪ>_LEAVE PÊÌI¹¼ã
|
---|
2196 |
|
---|
2197 | ÝnhÍCAvP[Vªo^µ½àÌÌÝðÎÛÆµCÝ
|
---|
2198 | T[rX[`ðÄÑo·½ßÉJ[làɶ¬³êéàÌÍÎÛÆµÈ
|
---|
2199 | ¢D^XNÌÀsJnÆI¹ÍC¼Ìû@Åæ¾Å«é½ßC±Ìû@ÍpÓ
|
---|
2200 | µÄ¢È¢D
|
---|
2201 |
|
---|
2202 | ȨCÝnhÆCPUáOnhÌÀsJnÆI¹Ìg[XOæ¾
|
---|
2203 | ÍC^[Qbg˶ÅÀ·éKvª éDÚµÍCu6.2 g[XO
|
---|
2204 | @\ÖÌÎvu6.6.1 ÝnhÌoüûvu6.7.2 CPUáOnh
|
---|
2205 | ÌoüûvÌßðQÆ·é±ÆD
|
---|
2206 |
|
---|
2207 | (c) ^XNóÔÌÏ»
|
---|
2208 |
|
---|
2209 | Ì}Nðè`·é±ÆÅC^XNóԪϻµ½Ìg[XOðæ¾
|
---|
2210 | ·é±ÆªÅ«éD½¾µCÀsóÔÆÀsÂ\óÔÌÔÌJÚÍC¼Ìû@
|
---|
2211 | Åæ¾Å«é½ßC±Ì}NÅÍæ¾Å«È¢D
|
---|
2212 |
|
---|
2213 | LOG_TSKSTAT ^XNóÔÌÏ»
|
---|
2214 |
|
---|
2215 | (d) fBXpb`ÌÀsJnÆI¹
|
---|
2216 |
|
---|
2217 | Ì}Nðè`·é±ÆÅCfBXpb`ªÀsJn·éÆCI¹·é
|
---|
2218 | Ìg[XOðæ¾·é±ÆªÅ«éD
|
---|
2219 |
|
---|
2220 | LOG_DSP_ENTER fBXpb`ÌÀsJn
|
---|
2221 | LOG_DSP_LEAVE fBXpb`ÌI¹
|
---|
2222 |
|
---|
2223 | fBXpb`ÌÀsJnÍC^XNªÀsóÔ©çÀsÂ\óÔÉJÚ·é
|
---|
2224 | ^C~OÅ é½ßCÀsÂ\óÔÖJÚ·é^XNÌTCBÖÌ|C^ðp
|
---|
2225 | [^Æ·éDtÉCfBXpb`ÌI¹ÍC^XNªÀsÂ\óÔ©ç
|
---|
2226 | ÀsóÔÉJÚ·é^C~OÅ é½ßCÀsóÔÖJÚ·é^XNÌTCBÖ
|
---|
2227 | Ì|C^ðp[^Æ·éD
|
---|
2228 |
|
---|
2229 | SSPJ[lÅÍCÀsÅ«é^XNªÈCJ[lªAChóÔÉÈéê
|
---|
2230 | ÉÍCfBXpb`ÌɯÜéD»Ì½ßCAChóÔÖÌJÚÆA
|
---|
2231 | ChóÔ©ç¼ÌóÔÖÌJÚÍC±Ì}NÅÍæ¾Å«È¢D
|
---|
2232 |
|
---|
2233 | ȨCfBXpb`ÌÀsJnÆI¹Ìg[XOæ¾ÍC^[QbgË
|
---|
2234 | ¶ÅÀ·éKvª éDÚµÍCÆu6.5.2 fBXpb`{ÌvÌßð
|
---|
2235 | QÆ·é±ÆD
|
---|
2236 |
|
---|
2237 | (e) T[rXR[ÌüûÆoû
|
---|
2238 |
|
---|
2239 | Ì}Nðè`·é±ÆÅCeT[rXR[ÌüûÆoûÌg[XO
|
---|
2240 | ðæ¾·é±ÆªÅ«éD
|
---|
2241 |
|
---|
2242 | LOG_<T[rXR[Ìå¶\L>_ENTER T[rXR[¼Ìüû
|
---|
2243 | LOG_<T[rXR[Ìå¶\L>_LEAVE T[rXR[¼Ìoû
|
---|
2244 |
|
---|
2245 | »ê¼êÌ}N̼Ìâp[^ÌÚ×É¢ÄÍCJ[lÌ\[XR[
|
---|
2246 | hðQÆ·é±ÆD
|
---|
2247 |
|
---|
2248 | 6.12 J[lÀÌ^[Qbg˶̽ßÌl[Lq
|
---|
2249 |
|
---|
2250 | J[làɶÄgíêéÖâÏÈÇ̼ÌÅCIuWFNgt@C
|
---|
2251 | ÌV{\Éo^³êÄO©çQÆÅ«é¼ÌÍCC¾êxÅCæª
|
---|
2252 | ª"_kernel_"ܽÍ"_KERNEL_"Å é¼ÌƵȯêÎÈçÈ¢ªCSSPJ[l
|
---|
2253 | ÅÍC\[XR[hðRpNgÉۿ±êðÀ»·é½ßÉCl[
|
---|
2254 | Lqt@Cð±üµÄ¢éD
|
---|
2255 |
|
---|
2256 | ïÌIÉÍCl[·×«¼ÌðXgAbvµ½xxx_rename.defðpÓµC
|
---|
2257 | ±Ìt@C©çc[iutils/genrenamejÉæèC¼Ìðl[·é½ß
|
---|
2258 | Ì}Nè`ðÜÞxxx_rename.hÆC»êçÌ}Nè`ðð·é½ßÌ
|
---|
2259 | xxx_unrename.h𶬷éDc[ÌN®û@ÍÌÊèÅ éD
|
---|
2260 |
|
---|
2261 | % genrename xxx
|
---|
2262 |
|
---|
2263 | xxx_rename.defÉÍCl[·×«¼Ìð1sÉ1ÂLq·éDxxxxÆ¢¤¼
|
---|
2264 | ̪Lq³êÄ¢éêCxxx_rename.hÉÍÌæ¤ÈLqª¶¬³êéD
|
---|
2265 |
|
---|
2266 | #define xxxx _kernel_xxxx
|
---|
2267 | #ifdef TOPPERS_LABEL_ASM
|
---|
2268 | #define _xxxx __kernel_xxxx
|
---|
2269 | #endif /* TOPPERS_LABEL_ASM */
|
---|
2270 |
|
---|
2271 | ܽCxxx_unrename.hÉÍÌæ¤ÈLqª¶¬³êéD
|
---|
2272 |
|
---|
2273 | #undef xxxx
|
---|
2274 | #ifdef TOPPERS_LABEL_ASM
|
---|
2275 | #undef _xxxx
|
---|
2276 | #endif /* TOPPERS_LABEL_ASM */
|
---|
2277 |
|
---|
2278 | xxx_rename.defÌÉÍC¼Ìl[LqðæèÞ½ßÉCuINCLUDE
|
---|
2279 | "yyy"vܽÍuINCLUDE <yyy>vÆ¢¤LqðÜß鱯ªÅ«éD±ÌLq
|
---|
2280 | ª³êÄ¢éêCxxx_rename.hÉÍu#include "yyy_rename.h"vܽÍ
|
---|
2281 | u#include <yyy_rename.h>vÆ¢¤LqªCxxx_unrename.hÉÍu#include
|
---|
2282 | "yyy_unrename.h"vܽÍu#include <yyy_unrename.h>vÆ¢¤Lqª¶¬³
|
---|
2283 | êéD
|
---|
2284 |
|
---|
2285 | xxx_rename.defÌÌ"#"ÅnÜésÍRgƵÄÇÝòγêéDܽC
|
---|
2286 | ósà³³êéD
|
---|
2287 |
|
---|
2288 | J[lÌ^[Qbgñ˶Ågíêé¼Ìðl[·é½ßÉCkernel
|
---|
2289 | fBNgÉCkernel_rename.defÆC»±©ç¶¬µ½kernel_rename.h¨
|
---|
2290 | æÑkernel_unrename.hªpÓ³êÄ¢éDkernel_rename.defÉÍC
|
---|
2291 | uINCLUDE "target"vÆ¢¤LqªÜÜêĨèC^[Qbg˶Ìl[
|
---|
2292 | LqðæèÞæ¤ÉÈÁÄ¢éD^[Qbg˶Åè`µC^[Qbg
|
---|
2293 | ñ˶ÅQƳêé¼ÌÍC^[Qbg˶Ìl[LqÉÜßéD
|
---|
2294 |
|
---|
2295 | ^[Qbg˶ÅÍC^[Qbg˶Ågíêé¼Ìðl[·é½ß
|
---|
2296 | ÉCtarget_rename.defÆC»±©ç¶¬µ½target_rename.h¨æÑ
|
---|
2297 | target_unrename.hðpÓ·éD^[Qbg˶©çvZbTE`bvEJ
|
---|
2298 | «˶ðØèª¯éêÉÍCtarget_rename.defÉINCLUDELqðüêC
|
---|
2299 | vZbTE`bvEJ«˶Ìl[LqðæèÞæ¤É·éD
|
---|
2300 |
|
---|
2301 | 6.13 ^C}hCo
|
---|
2302 |
|
---|
2303 | ^C}hCoÍCJ[lÉ^CeBbNðÊm·é½ßÌ^C}hC
|
---|
2304 | oÅ éD
|
---|
2305 |
|
---|
2306 | 6.13.1 ^C}hCoÌt@C\¬
|
---|
2307 |
|
---|
2308 | ^C}hCoðgÝÞ½ßÌÃIAPIðLqµ½VXeRtBM
|
---|
2309 | [
|
---|
2310 | Vt@CðCtarget_timer.cfgÉpÓ·éD±Ìt@CÉÍC^C}
|
---|
2311 | hCoðú»·é½ßÌú»[`ÌÇÁC^C}hCoðI¹³
|
---|
2312 | ¹é½ßÌI¹[`ÌÇÁC^C}Ý̽ßÌÝnhÌ
|
---|
2313 | è`iܽÍCÝT[rX[`ÌÇÁjC^C}Ý̽ßÌ
|
---|
2314 | ÝvCÌ®«ÌÝèÌÃIAPIÈÇðÜÞ±ÆÉÈéD
|
---|
2315 |
|
---|
2316 | ^C}hCoðÄÑo·½ßÉKvÈè`ðÜÞwb_t@CðC
|
---|
2317 | target_timer.hÉpÓ·éDܽC^C}hCoÌÀt@Cð
|
---|
2318 | target_timer.cÉpÓ·éD
|
---|
2319 |
|
---|
2320 | ^CeBbNÌÊmÉæès¤Ì½ÍC^XNÌN®âÒ¿ððs
|
---|
2321 | ¤àÌÅ é½ßC^C}ÝÌÝDæxÍCÝÌÅÅáÌDæ
|
---|
2322 | xÅ\ªÅ éD½¾µCüúnhâA[nhÌÀsJnxêª
|
---|
2323 | âèÉÈéêÉÍC^C}ÝÌÝDæxðæè¢lÉÝèµ½¢D
|
---|
2324 | »±ÅC^C}ÝÌÝDæxðÏX·éû@ðC^[Qbg˶Ì
|
---|
2325 | [U[Y}j
|
---|
2326 | AÉLڷ׫ŠéD
|
---|
2327 |
|
---|
2328 | 6.13.2 ^C}Ìú»EI¹EÝ
|
---|
2329 |
|
---|
2330 | (6-13-2-1) void target_timer_initialize(intptr_t exinf)
|
---|
2331 |
|
---|
2332 | ^C}ðú»µC^C}ÝðüúIɶ³¹éÖD^C}ÝÌ
|
---|
2333 | üúÍCTIC_NUMEÆTIC_DENOÅwè³ê½ÔÆêv³¹éiu5.3 ^C
|
---|
2334 | eBbNÌè`vÌßðQÆjD
|
---|
2335 |
|
---|
2336 | ±ÌÖÍCtarget_timer.cfgÉLq·éÃIAPIÉæèCú»[`Æ
|
---|
2337 | µÄJ[lÉo^·é±ÆðzèµÄ¢éD
|
---|
2338 |
|
---|
2339 | (6-13-2-2) void target_timer_terminate(intptr_t exinf)
|
---|
2340 |
|
---|
2341 | ^C}Ì®ìðâ~³¹C^C}Ýð¶µÈ¢æ¤É·éÖD
|
---|
2342 |
|
---|
2343 | ±ÌÖÍCtarget_timer.cfgÉLq·éÃIAPIÉæèCI¹[`
|
---|
2344 | ƵÄJ[lÉo^·é±ÆðzèµÄ¢éD
|
---|
2345 |
|
---|
2346 | (6-13-2-3) void target_timer_handler(void)
|
---|
2347 | Ü½Í void target_timer_isr(intptr_t exinf)
|
---|
2348 |
|
---|
2349 | ^C}ÝÉæèN®³êéÝvODÝnhƵÄ
|
---|
2350 | À»·éêÉÍtarget_timer_handlerCÝT[rX[`ƵÄÀ»
|
---|
2351 | ·éêÉÍtarget_timer_isrÌ¼ÌÆ·éD^[Qbgñ˶Ì
|
---|
2352 | signal_timeðÄÑo·D
|
---|
2353 |
|
---|
2354 | target_timer_handlerÍCWIÉÍÌæ¤Éè`·éD
|
---|
2355 |
|
---|
2356 | ----------------------------------------
|
---|
2357 | void
|
---|
2358 | target_timer_handler(void)
|
---|
2359 | {
|
---|
2360 | i_begin_int(<^C}ÝÌÝÔ>);
|
---|
2361 | signal_time();
|
---|
2362 | i_end_int(<^C}ÝÌÝÔ>);
|
---|
2363 | }
|
---|
2364 | ----------------------------------------
|
---|
2365 |
|
---|
2366 | ±ÌÖÍCtarget_timer.cfgÉLq·éÃIAPIÉæèCÝnhÜ
|
---|
2367 | ½ÍÝT[rX[`ƵÄJ[lÉo^·é±ÆðzèµÄ¢éD
|
---|
2368 |
|
---|
2369 | 6.13.3 «\]¿pVXeÌQÆÌ½ßÌ@\
|
---|
2370 |
|
---|
2371 | «\]¿pVXeÌQÆ@\iget_utmjðT|[g·éêÉÍC^C
|
---|
2372 | }hCoÅCȺÌf[^^âÖÈÇðpÓ·éD
|
---|
2373 |
|
---|
2374 | (6-13-3-1) CLOCK
|
---|
2375 |
|
---|
2376 | ^C}lÌà\»Ì½ßÌf[^^D
|
---|
2377 |
|
---|
2378 | (6-13-3-2) CLOCK target_timer_get_current(void)
|
---|
2379 |
|
---|
2380 | ^C}Ì»ÝlðÇÝoµCà\»ÅÔ·ÖD^C}lÍCÔÌo߯
|
---|
2381 | ÆàÉÁ·é±ÆðzèµÄ¢éDn[hEFAÌ^C}ªC^C}lª¸
|
---|
2382 | ·éàÌÅ éêÉÍC±ÌÖàÅÁ·élÆÈ鿤ÉÏ··éD
|
---|
2383 |
|
---|
2384 | (6-13-3-3) bool_t target_timer_probe_int(void)
|
---|
2385 |
|
---|
2386 | ^C}Ývð`FbN·éÖD^C}ݪv³êÄ¢éêÉ
|
---|
2387 | trueCv³êĢȢêÉfalseðÔ·D
|
---|
2388 |
|
---|
2389 | (6-13-3-4) TO_USEC(clock)
|
---|
2390 |
|
---|
2391 | ^C}lÌà\»ðC1ÊbPÊÉÏ··é½ßÌ}NiܽÍÖjD
|
---|
2392 | targettimer_get_currentÅÇÝoµ½lðC^C}ݶ©çÌoßÔ
|
---|
2393 | iPÊ: 1ÊbjÉÏ··é½ßÉp¢éD
|
---|
2394 |
|
---|
2395 | 7. RtBM
|
---|
2396 | [^Ýèt@CÌ^[Qbg˶
|
---|
2397 |
|
---|
2398 | 7.1 Ýèt@CÆ^[Qbg˶ÌÊut¯
|
---|
2399 |
|
---|
2400 | SSPJ[lÌRtBM
|
---|
2401 | [^ÍCÝèt@CÌLqÉ]ÁÄt@CÌ
|
---|
2402 | ¶¬¨æÑG[`FbNðs¤DRtBM
|
---|
2403 | [^ÌÝèt@CÉÍC
|
---|
2404 | ȺÌ4ª éD
|
---|
2405 |
|
---|
2406 | (a) ÃIAPIe[u
|
---|
2407 |
|
---|
2408 | ÃIAPIÌêÆCeÃIAPIÌp[^É¢ÄLqµ½t@CDÃI
|
---|
2409 | APIðg£·éêÈOÍÏX·éKvªÈ¢½ßC^[Qbgñ˶ÅpÓ
|
---|
2410 | µÄ¢éikernel/kernel_api.csvjD
|
---|
2411 |
|
---|
2412 | (b) læ¾V{e[u
|
---|
2413 |
|
---|
2414 | RtBM
|
---|
2415 | [^ÌpX1ɨ¢ÄCp[^vZpC¾êt@CÉoÍ
|
---|
2416 | µClðß½¢V{iêÊÉÍ®jðLq·é½ßÌt@CD^[Qb
|
---|
2417 | gñ˶ÅÍC^[QbgÉ˶¹¸ÉKvÆÈéV{ðLqµ½t@
|
---|
2418 | CðpӵĢéikernel/kernel_def.csvjD
|
---|
2419 |
|
---|
2420 | ^[QbgÉ˶µÄKvÆÈéV{ª éêÉÍCtargetfBNg
|
---|
2421 | Éu©ê½target_def.csvÉLq·éDtarget_def.csvÉLqµÄlð
|
---|
2422 | ß鱯ªÅ«éV{ÍCkernel/kernel_int.h¨æÑ»±©çCN[
|
---|
2423 | h³êét@CÅè`³êĢȯêÎÈçÈ¢Dkernel_int.h©çÍC
|
---|
2424 | target_stddef.hCtarget_kernel.hCtarget_config.hðiÔÚIÉjCN[
|
---|
2425 | hµÄ¢é½ßC±êçÌt@C¨æÑ»±©çCN[h³êét@C
|
---|
2426 | Åè`³êé^[Qbg˶ÌV{ÍCtarget_def.csvÉLq·é±
|
---|
2427 | ƪūéD
|
---|
2428 |
|
---|
2429 | ±±Ålðß½V{ÌlÍCRtBM
|
---|
2430 | [^ÌpX2¨æÑpX3Ì
|
---|
2431 | ev[gt@CÅQÆ·é±ÆªÅ«éD
|
---|
2432 |
|
---|
2433 | (c) pX2Ìev[gt@C
|
---|
2434 |
|
---|
2435 | RtBM
|
---|
2436 | [^ÌpX2ÍCev[gt@CÉ]ÁÄCJ[lÌ\
|
---|
2437 | ¬Eú»t@Cikernel_cfg.cjC\¬Eú»wb_t@C
|
---|
2438 | ikernel_cfg.hjÈÇ𶬷éD±Ìev[gt@CÍC^[Qbg
|
---|
2439 | ñ˶Æ^[QbgË¶ÉØèª¯Ä éªC¼Ìt@CÌ^[Qbg
|
---|
2440 | ˶ÆÍtÉC^[Qbg˶©ç^[Qbgñ˶ðCN[h·
|
---|
2441 | é`ÉÈÁÄ¢éD
|
---|
2442 |
|
---|
2443 | ïÌIÉÍCtargetfBNgÉu©ê½target.tfÅCKvÈÏðè`µ
|
---|
2444 | ½ãCev[gt@CÌ^[Qbgñ˶ikernel/kernel.tfjðC
|
---|
2445 | N[h·éDkernel.tfÅÍCJ[lÌ^[Qbgñ˶Ågp·éÏ
|
---|
2446 | è`𶬷éDkernel.tfðCN[hµ½ãCtarget.tfÅÍCJ[
|
---|
2447 | lÌ^[Qbg˶Ågp·éÏè`𶬷éDtarget.tf©çCv
|
---|
2448 | ZbT˶C`bv˶ðCJ«˶ðØèª¯Äàæ¢D
|
---|
2449 |
|
---|
2450 | (d) pX3Ìev[gt@C
|
---|
2451 |
|
---|
2452 | RtBM
|
---|
2453 | [^ÌpX3ÍCev[gt@CÉ]ÁÄCÃIAPIÌê
|
---|
2454 | Êè®p[^Ì`FbNðs¤D±Ìev[gt@CàC^[Qb
|
---|
2455 | gñ˶Æ^[QbgË¶ÉØèª¯Ä èC^[Qbg˶©ç^[
|
---|
2456 | Qbgñ˶ðCN[h·é`ÉÈÁÄ¢éD
|
---|
2457 |
|
---|
2458 | ïÌIÉÍCtargetfBNgÉu©ê½target_check.tfÅCKvÈÏð
|
---|
2459 | è`µ½ãCev[gt@CÌ^[Qbgñ˶
|
---|
2460 | ikernel/kernel_check.tfjðCN[h·éDkernel_check.tfÅÍCJ[
|
---|
2461 | lÌ^[Qbgñ˶Åú»ubNÉo͵½êÊè®p[^
|
---|
2462 | Ì`FbNðs¤Dkernel_check.tfðCN[hµ½ãCtarget_check.tf
|
---|
2463 | ÅÍC^[QbgÉ˶·é`FbNðs¤Dtarget_check.tf©çCvZb
|
---|
2464 | T˶C`bv˶ðCJ«˶ðØèª¯Äàæ¢D
|
---|
2465 |
|
---|
2466 | ȨCRtBM
|
---|
2467 | [^ÌÚ×dlÆÝèt@CÌLqû@É¢ÄÍC
|
---|
2468 | ÊrPDFt@CÌ`ÅzzµÄ¢éuTOPPERSV¢ãJ[lpRtBM
|
---|
2469 |
|
---|
2470 | [^dlv¨æÑuTOPPERSV¢ãJ[lpRtBM
|
---|
2471 | [^à }N
|
---|
2472 | vZbTdlvðQÆ·é±ÆD
|
---|
2473 |
|
---|
2474 | 7.2 pX2Ìev[gt@CÌ^[Qbg˶
|
---|
2475 |
|
---|
2476 | ȺÅÍCpX2Ìev[gt@CÌ^[Qbg˶ðLq·éãÅK
|
---|
2477 | vÈÉ¢ÄྷéD
|
---|
2478 |
|
---|
2479 | 7.2.1 ^[Qbgñ˶ðCN[h·éOÉè`·×«Ï
|
---|
2480 |
|
---|
2481 | target.tf©çkernel.tfðCN[h·éOÉCÌÏðè`µÄ¨©È
|
---|
2482 | ¯êÎÈçÈ¢D
|
---|
2483 |
|
---|
2484 | (7-2-1) INTNO_ATTISR_VALID ATT_ISRÅgpÅ«éÝÔ
|
---|
2485 | (7-2-2) INHNO_ATTISR_VALID INTNO_ATTISR_VALIDÉηénhÔ
|
---|
2486 | (7-2-3) INHNO_DEFINH_VALID DEF_INTÅgpÅ«éÝnhÔ
|
---|
2487 | (7-2-4) EXCNO_DEFEXC_VALID DEF_EXCÅgpÅ«éCPUáOnhÔ
|
---|
2488 | (7-2-5) INTNO_CFGINT_VALID CFG_INTÅgpÅ«éÝÔ
|
---|
2489 | (7-2-6) INTPRI_CFGINT_VALID CFG_INTÅgpÅ«éÝDæx
|
---|
2490 |
|
---|
2491 | APIÅgpÅ«éÝÔ^ÝnhÔ^CPUáOnhÔ^
|
---|
2492 | ÝDæxÌXgðCeÏÉè`·éDINHNO_ATTISR_VALIDÉÍC
|
---|
2493 | INTNO_ATTISR_VALIDÉXgAbvµ½ÝÔÉηéÝnh
|
---|
2494 | ÔÌXgðè`·éD
|
---|
2495 |
|
---|
2496 | (7-2-7) TARGET_TSKATRiIvVj ^[Qbgè`Ì^XN®«
|
---|
2497 | (7-2-8) TARGET_ISRATRiIvVj ^[Qbgè`ÌISR®«
|
---|
2498 | (7-2-9) TARGET_INHATRiIvVj ^[Qbgè`ÌÝnh®«
|
---|
2499 | (7-2-10) TARGET_INTATRiIvVj ^[Qbgè`ÌÝ®«
|
---|
2500 | (7-2-11) TARGET_EXCATRiIvVj ^[Qbgè`ÌCPUáOnh®«
|
---|
2501 |
|
---|
2502 | eIuWFNgÌ®«ðC^[Qbgè`Ég£·éêÉCY·éIuWF
|
---|
2503 | Ng®«ð¦·ÏÉCg£Égp·érbgÌ_aðè`·éD±êÉæ
|
---|
2504 | èCg£Égp·érbgªÝè³êÄ¢éêÉCG[ÉÈéÌðh®D
|
---|
2505 |
|
---|
2506 | (7-2-12) INTNO_FIX_KERNELiIvVj J[lÇÉÅè³êÄ¢é
|
---|
2507 | ÝÔ
|
---|
2508 | (7-2-13) INHNO_FIX_KERNELiIvVj J[lÇÉÅè³êÄ¢é
|
---|
2509 | ÝnhÔ
|
---|
2510 | (7-2-14) INHNO_FIX_NONKERNELiIvVj J[lÇOÉÅè³êÄ¢é
|
---|
2511 | ÝÔ
|
---|
2512 | (7-2-15) INHNO_FIX_NONKERNELiIvVj J[lÇOÉÅè³êÄ¢é
|
---|
2513 | ÝnhÔ
|
---|
2514 |
|
---|
2515 | J[lÇܽÍJ[lÇOÉÅè³êÄ¢éݪ éêÉÍC
|
---|
2516 | »êçÌÝÔÆÝnhÔÌXgðCeÏÉè`·éD
|
---|
2517 |
|
---|
2518 | (7-2-16) USE_INHINIB_TABLEiIvVj
|
---|
2519 |
|
---|
2520 | OMIT_INITIALIZE_INTERRUPTðè`µ½ªCÝnhÌú»ÉKvÈî
|
---|
2521 | ñðkernel_cfg.cɶ¬µ½¢êÉÍC±ÌÏð1ÉÝè·éDïÌIÉÍC
|
---|
2522 | TNUM_INHNOCtnum_inhnoCinhinib_tableÌè`ÆCÝnhÌoüû
|
---|
2523 | 𶬷é½ßÌLqiINTHDR_ENTRY}NÌXgjªC^[Qbgñ
|
---|
2524 | Ë¶ÉæÁͬ³êéD
|
---|
2525 |
|
---|
2526 | (7-2-17) USE_INTINIB_TABLEiIvVj
|
---|
2527 |
|
---|
2528 | OMIT_INITIALIZE_INTERRUPTðè`µ½ªCÝvCÌú»ÉKvÈ
|
---|
2529 | îñðkernel_cfg.cɶ¬µ½¢êÉÍC±ÌÏð1ÉÝè·éDïÌIÉ
|
---|
2530 | ÍCTNUM_INTNOCtnum_intnoCintinib_tableÌè`ªC^[Qbgñ˶É
|
---|
2531 | æÁͬ³êéD
|
---|
2532 |
|
---|
2533 | (7-2-18) TARGET_MIN_STKSZiIvVj
|
---|
2534 |
|
---|
2535 | ^[Qbgè`ÅC^XNÌX^bNTCYÌŬlðÝè·éêÉÍC±
|
---|
2536 | ÌÏðX^bNTCYÌŬlÉè`·éD
|
---|
2537 |
|
---|
2538 | (7-2-19) CHECK_STKSZ_ALIGNiIvVj
|
---|
2539 |
|
---|
2540 | X^bNÌæÌTCYª élÌ{ÅȯêÎÈçÈ¢êÉC±ÌÏð
|
---|
2541 | »ÌlÉè`·éD±ÌÏðè`·é±ÆÅCkernel.tfɨ¢ÄCX^bN
|
---|
2542 | ÌæÌTCYª³µÈ¢i±ÌÏÉè`µ½lÌ{ÅÈ¢jêÌG[
|
---|
2543 | ð`FbN·éæ¤ÉÈéD`FbNªKvÈ¢êÉÍC±ÌÏðè`µ
|
---|
2544 | ȢD
|
---|
2545 |
|
---|
2546 | 7.2.2 ^[Qbgñ˶Åè`³êéÏ
|
---|
2547 |
|
---|
2548 | kernel.tfÌÅÍÌϪè`³êé½ßCkernel.tfðCN[hµ½
|
---|
2549 | ãCtarget.tfÌűêçðQÆ·é±ÆªÅ«éD
|
---|
2550 |
|
---|
2551 | (7-2-1) INTNO[inhno] inhnoðηéintnoÉÏ··é½ßÌAzzñ
|
---|
2552 | (7-2-2) INHNO[intno] intnoðηéinhnoÉÏ··é½ßÌAzzñ
|
---|
2553 |
|
---|
2554 | 7.3 pX3Ìev[gt@CÌ^[Qbg˶
|
---|
2555 |
|
---|
2556 | ȺÅÍCpX3Ìev[gt@CÌ^[Qbg˶ðLq·éãÅK
|
---|
2557 | vÈÉ¢ÄྷéD
|
---|
2558 |
|
---|
2559 | target_check.tf©çkernel_check.tfðCN[h·éOÉCKvɶÄC
|
---|
2560 | ÌÏðè`µÄ¨©È¯êÎÈçÈ¢D
|
---|
2561 |
|
---|
2562 | (7-3-1) CHECK_FUNC_ALIGNiIvVj@ÖÌACPÊ
|
---|
2563 | (7-3-2) CHECK_FUNC_NONNULLiIvVjÖÌñNULL`FbN
|
---|
2564 | (7-3-3) CHECK_STACK_ALIGNiIvVj X^bNÌæÌACPÊ
|
---|
2565 | (7-3-4) CHECK_STACK_NONNULLiIvVjX^bNÌæÌñNULL`FbN
|
---|
2566 | (7-3-5) CHECK_MPF_ALIGNiIvVj Åè·v[ÌæÌACPÊ
|
---|
2567 | (7-3-6) CHECK_MPF_NONNULLiIvVj Åè·v[ÌæÌñNULL`FbN
|
---|
2568 |
|
---|
2569 | Ö^X^bNÌæ^Åè·v[ÌæÌæªÔnÌACgÌ
|
---|
2570 | `FbNðs¤êÉÍC»ê¼êCCHECK_FUNC_ALIGN^CHECK_STACK_ALIGN^
|
---|
2571 | CHECK_MPF_ALIGNðACPÊÉè`·éDÖ^X^bNÌæ^Åè·
|
---|
2572 | v[ÌæÌæªÔnªNULLÅÈ¢©Ì`FbNðs¤êÉÍC»ê¼ê
|
---|
2573 | CHECK_FUNC_NONNULL^CHECK_STACK_NONNULL^CHECK_MPF_NONNULLð1Éè`·éD
|
---|
2574 | `FbNªKvÈ¢êÉÍCY·éÏðè`µÈ¢D
|
---|
2575 |
|
---|
2576 | 7.4 cfg1_out.cÌNÉKvÈX^uÌè`t@C
|
---|
2577 |
|
---|
2578 | RtBM
|
---|
2579 | [^ÉÖµÄ^[Qbg˶ÉpÓ·éKvª ét@CÆ
|
---|
2580 | µÄCÝèt@CÈOÉCcfg1_out.cðN·é½ßÉKvÈX^uÌè
|
---|
2581 | `t@Cª éD
|
---|
2582 |
|
---|
2583 | RtBM
|
---|
2584 | [^ÌpX1ÅÍCÃIAPIÌ®è®p[^ÌlðCR
|
---|
2585 | pCðp¢Äßé½ßÉCcfg1_out.c𶬷éD±êðRpCC
|
---|
2586 | NµÄIuWFNgt@C𶬷éÛÉCX^[gAbvW
|
---|
2587 | [©
|
---|
2588 | çQƳêéV{Ìè`ð^¦éKvª éD
|
---|
2589 |
|
---|
2590 | ±Ìè`ð^¦é½ßÉCcfg1_out.c©çC^[Qbg˶Ì
|
---|
2591 | target_cfg1_out.hðCN[hµÄ¢éDtarget_cfg1_out.hiܽÍC»
|
---|
2592 | ±©çCN[h³êét@CjÉÍCX^[gAbvW
|
---|
2593 | [©çQ
|
---|
2594 | ƳêéV{ÌX^uÌè`ðÜßéDT^IÉÍCÈºÌæ¤Èè`ð
|
---|
2595 | ÜßéKvª éD
|
---|
2596 |
|
---|
2597 | ----------------------------------------
|
---|
2598 | void sta_ker(void)
|
---|
2599 | {
|
---|
2600 | }
|
---|
2601 |
|
---|
2602 | void hardware_init_hook(void)
|
---|
2603 | {
|
---|
2604 | }
|
---|
2605 |
|
---|
2606 | void software_init_hook(void)
|
---|
2607 | {
|
---|
2608 | }
|
---|
2609 |
|
---|
2610 | const SIZE _kernel_istksz = 0;
|
---|
2611 |
|
---|
2612 | STK_T *const _kernel_istk = NULL;
|
---|
2613 | ----------------------------------------
|
---|
2614 |
|
---|
2615 |
|
---|
2616 | 8. VXeT[rXÌ^[Qbg˶
|
---|
2617 |
|
---|
2618 | 8.1 VXeT[rXÌ^[Qbg˶
|
---|
2619 |
|
---|
2620 | VA|[gâVXeO^XNÖAÌèÈÇCVXeT[rXÌ
|
---|
2621 | \¬ðè·é½ßÌè`ðtarget_syssvc.hܽͻ±©çCN[h³ê
|
---|
2622 | ét@CivZbTE`bvEJ«˶ÅpÓ³êéwb_t@C
|
---|
2623 | ÈÇjÉÜßéD
|
---|
2624 |
|
---|
2625 | ȨCTOPPERSgÝR|[lgVXeª±ü³êéÆC±Ìt@CÌ
|
---|
2626 | àeÍR|[lgLqt@CÉLq³ê鱯ÉÈèC±Ìt@CÍ
|
---|
2627 | ³ÈéiܽÍCåÉk¬³êéj©ÝÅ éD
|
---|
2628 |
|
---|
2629 | 8.2 VXeO@\Ì^[Qbg˶è`
|
---|
2630 |
|
---|
2631 | VXeO@\ðgp·éêÅCX^[gAbvW
|
---|
2632 | [ÅbssZNV
|
---|
2633 | ÌNAðȪµÄ¢éêÉÍCsyslog_logmaskÆsyslog_lowmask_notð
|
---|
2634 | 0Éú»·éR[hðÇÁ·éD±êÍCVXeO@\ªú»³êéO
|
---|
2635 | Éoͳê½OîñðCáxoÍ@\ðp¢ÄoÍ·é½ßÅ éD
|
---|
2636 |
|
---|
2637 | ^[Qbg˶Åñ·×«VXeO@\̽ßÌè`ÍÌÊèÅ
|
---|
2638 | éD
|
---|
2639 |
|
---|
2640 | (8-2-1) TCNT_SYSLOG_BUFFER
|
---|
2641 |
|
---|
2642 | VXeO@\ÌOobt@ÌTCYðè`·é}NDè`µÈ¢ê
|
---|
2643 | ÌftHglÍ32D
|
---|
2644 |
|
---|
2645 | (8-2-2) void target_fput_log(char c)
|
---|
2646 |
|
---|
2647 | VXeOÌáxoÍ̽ß̶oÍÖD^[Qbg˶Ìû@ÅC
|
---|
2648 | ¶cð\¦/oÍ/Û¶·éD
|
---|
2649 |
|
---|
2650 | ±ÌÖÍCGggÉÀµÈ¯êÎÈçÈ¢D±ÌÖàÅr¼§
|
---|
2651 | äªKvÈêÉÍCSILðp¢ÄSÝbNóÔɷ鱯DܽCS
|
---|
2652 | ÝbNóÔÅÄÎêéêª é½ßCSÝbNóÔ©çÄÑo·
|
---|
2653 | ±ÆªÅ«È¢ÖðÄÎÈ¢æ¤ÉÀµÈ¯êÎÈçÈ¢D
|
---|
2654 |
|
---|
2655 | áxoÍðVA|[goRÅs¤êÅCVAC^tF[Xh
|
---|
2656 | CoÆ|[gð¤pµÈ¢±Æª]ܵ¢ªC|[gª«èÈ¢½ßÉâ
|
---|
2657 | Þ𦸤p·éêÉÍC¼Òª£µÈ¢æ¤ÉÓªKvÅ éDïÌ
|
---|
2658 | IÉÍC¼Òª¯¶ÝèÅVAI/OfoCXðg¤æ¤ÉµCVAC
|
---|
2659 | ^tF[XhCoÌ®ìÉáxoͪsíêÄà·µx¦È¢æ¤É
|
---|
2660 | Ýv·éDܽCáxoͪ®ìJnãÉVAC^tF[XhC
|
---|
2661 | oªVAI/OfoCXðú»·éÆC¶»¯ªN±éÂ\«ª é½ßC
|
---|
2662 | ¤p·é|[gÍCáxoÍ@\¤Åú»µCVAC^tF[X
|
---|
2663 | hCoÅÍú»µÈ¢æ¤É·éÆæ¢D
|
---|
2664 |
|
---|
2665 | ȨC±ÌÖÌ{ÌðCÇÌt@CÉLq·é©ªâèÉÈéDVXe
|
---|
2666 | T[rXÌ^[Qbg˶ÉÍCWÅÍCÖè`ðLq·é½ßÌt@
|
---|
2667 | CðpӵĢȢD^[Qbg˶ÅpÓµÄàæ¢ªCáOIÉCJ[
|
---|
2668 | lÀÌ^[Qbg˶W
|
---|
2669 | [itarget_config.cjÉLqµÄàæ¢D
|
---|
2670 | ±ÌêCtarget_fput_logðCl[Lqitarget_rename.defÈÇjÉÜ
|
---|
2671 | ßÄÍÈçÈ¢D
|
---|
2672 |
|
---|
2673 | 8.3 O^XNÌ^[Qbg˶è`
|
---|
2674 |
|
---|
2675 | ^[Qbg˶Åñ·×«O^XN̽ßÌè`ÍÌÊèÅ éD±
|
---|
2676 | êçÌè`ÍCtarget_syssvc.hܽͻ±©çCN[h³êét@CÉ
|
---|
2677 | ÜßéD
|
---|
2678 |
|
---|
2679 | (8-3-1) LOGTASK_PRIORITYiIvVj
|
---|
2680 |
|
---|
2681 | O^XNÌDæxðè`·é}NDè`µÈ¢êÌftHglÍ3D
|
---|
2682 |
|
---|
2683 | (8-3-2) LOGTASK_STACK_SIZEiIvVj
|
---|
2684 |
|
---|
2685 | O^XNÌX^bNTCYðè`·é}NDè`µÈ¢êÌftHg
|
---|
2686 | lÍ1024D
|
---|
2687 |
|
---|
2688 | (8-3-3) LOGTASK_PORTIDiIvVj
|
---|
2689 |
|
---|
2690 | O^XNÌoÍæÌVA|[gÔDè`µÈ¢êÌftHglÍ1D
|
---|
2691 |
|
---|
2692 | (8-3-4) LOGTASK_INTERVALiIvVj
|
---|
2693 |
|
---|
2694 | O^XNÌ®ìÔuiPÊÍ~bjDè`µÈ¢êÌftHglÍ10D
|
---|
2695 |
|
---|
2696 | (8-3-5) LOGTASK_FLUSH_WAITiIvVj
|
---|
2697 |
|
---|
2698 | OoÍðÒ¿í¹éɨ¢ÄC^XNðÒ½¹éPÊÆÈéÔiP
|
---|
2699 | ÊÍ~bjDè`µÈ¢êÌftHglÍ1D
|
---|
2700 |
|
---|
2701 | 8.4 VAC^tF[XhCoÌ^[Qbg˶
|
---|
2702 |
|
---|
2703 | ^[Qbg˶Åñ·×«VAC^tF[XhCo̽ßÌè`
|
---|
2704 | ÍÌÊèÅ éD±êçÌè`ÍCÊÉwèªÈ¢ÀèCtarget_serial.hÜ
|
---|
2705 | ½Í»±©çCN[h³êét@CÉÜßCKvÈRtBM
|
---|
2706 | [V
|
---|
2707 | îñðtarget_serial.cfgÉLq·éDÖÌÀ̪KvÈêÉÍC
|
---|
2708 | target_serial.cÌt@CðpÓ·éD
|
---|
2709 |
|
---|
2710 | VAC^tF[XhCoÌÅC^[QbgÌVAI/OfoCXÉ
|
---|
2711 | ˶·éªðCVAI/OfoCXhCoÆÄÔDVAI/OfoCX
|
---|
2712 | hCoÍC¨¨æ»CITRONfoCXhCoÝvKChCÌPDICÉ
|
---|
2713 | ·éDPDICÉ·ét@CÅC¼ÌVXeÉà¤ÊÉg¦éÂ\«ª
|
---|
2714 | éêÉÍCpdicfBNgÉuD
|
---|
2715 |
|
---|
2716 | 8.4.1 ÏCf[^^CÇÖ
|
---|
2717 |
|
---|
2718 | (8-4-1) TNUM_PORT
|
---|
2719 |
|
---|
2720 | VAC^tF[XhCoªT|[g·éVA|[gðè`·é
|
---|
2721 | }ND±Ì}NÌè`ÍCtarget_syssvc.hܽͻ±©çCN[h³
|
---|
2722 | êét@CÉÜßéD
|
---|
2723 |
|
---|
2724 | (8-4-2) void sio_initialize(intptr_t exinf)iIvVj
|
---|
2725 |
|
---|
2726 | VAI/OfoCXhCoÌú»Dtarget_serial.cfgÉC±ÌÖ
|
---|
2727 | ðú»[`ƵÄo^·éÃIAPIðÜßéD
|
---|
2728 |
|
---|
2729 | (8-4-3) void sio_terminate(intptr_t exinf)iIvVj
|
---|
2730 |
|
---|
2731 | VAI/OfoCXhCoÌI¹Dtarget_serial.cfgÉC±ÌÖð
|
---|
2732 | I¹[`ƵÄo^·éÃIAPIðÜßéD
|
---|
2733 |
|
---|
2734 | (8-4-4) void sio_isr(intptr_t exinf)
|
---|
2735 |
|
---|
2736 | VAI/OfoCXÌÝT[rX[`Dtarget_serial.cfgÉC±Ì
|
---|
2737 | ÖðÝT[rX[`ƵÄo^·éÃIAPIðÜßéDܽC»ÌÃ
|
---|
2738 | IAPIÉKvÈVAI/OfoCXÌÝÔÈÇÍCtarget_serial.hÅ}
|
---|
2739 | Nè`·éDÝT[rX[`ÅÍÈCÝnhÆ·é±Æ
|
---|
2740 | àÅ«éD
|
---|
2741 |
|
---|
2742 | (8-4-5) SIOPCB
|
---|
2743 |
|
---|
2744 | VAI/O|[gÇubNÌf[^^itarget_serial.hÉÍCf[^^
|
---|
2745 | Ìé¾¾¯ÜÜêÄ¢êÎæ¢jD
|
---|
2746 |
|
---|
2747 | (8-4-6) SIO_RDY_SNDÆSIO_RDY_RCV
|
---|
2748 |
|
---|
2749 | MÂ\R[obN̯ÊÔðSIO_RDY_SNDÉCóMÊmR[obN̯
|
---|
2750 | ÊÔðSIO_RDY_RCVÉ}Nè`·éDR[obNÌÖ~^ÂðsȤT[
|
---|
2751 | rXR[isio_ena_cbrÆsio_dis_cbrjÅp¢éD
|
---|
2752 |
|
---|
2753 | 8.4.2 foCXT[rX[`
|
---|
2754 |
|
---|
2755 | ȺÌfoCXT[r[`ÍCiÈÆàjVAI/O|[g©çÌ
|
---|
2756 | ݪ}XN³ê½óÔÅÄÑo³êéDܽC^XNReLXgCñ^
|
---|
2757 | XNReLXgÌ¢¸êÅÄÑo³êéêà éi¢¸êÅÄÑo³êÄ
|
---|
2758 | à®ì·éæ¤ÉµÈ¯êÎÈçÈ¢jD
|
---|
2759 |
|
---|
2760 | (8-4-2-1) SIOPCB *sio_opn_por(ID siopid, intptr_t exinf)
|
---|
2761 |
|
---|
2762 | siopidÅwè³êéVAI/O|[gðI[v·éÖDexinfÍVA
|
---|
2763 | I/O|[gÉηég£îñÅCR[obNðÄÔÉ|[gðæÊ·é½
|
---|
2764 | ßÉn·D
|
---|
2765 |
|
---|
2766 | (8-4-2-2) void sio_cls_por(SIOPCB *siopcb)
|
---|
2767 |
|
---|
2768 | siopcbÅwè³êéVAI/O|[gðN[Y·éÖD
|
---|
2769 |
|
---|
2770 | (8-4-2-3) bool_t sio_snd_chr(SIOPCB *siopcb, char c)
|
---|
2771 |
|
---|
2772 | siopcbÅwè³êéVAI/O|[gÉCcŦ³êé¶ðM·éÖD
|
---|
2773 | ¶ðMWX^Éüê½êÉÍtrueðCOÉMµ½¶ÌMªIíÁ
|
---|
2774 | ĢȢ½ßÉC¶ðMWX^ÉüêçêÈ©Á½êÉÍfalseðÔ·D
|
---|
2775 |
|
---|
2776 | (8-4-2-4) int_t sio_rcv_chr(SIOPCB *siopcb)
|
---|
2777 |
|
---|
2778 | siopcbÅwè³êéVAI/O|[g©ç¶ðÇÞÖD¶ðóMµÄ¢
|
---|
2779 | ½êCÇñ¾¶ÌR[hͳÌlƵÄÔµC¶ðóMµÄ¢È¢ê
|
---|
2780 | ÉÍ-1ðÔ·D
|
---|
2781 |
|
---|
2782 | (8-4-2-5) void sio_ena_cbr(SIOPCB *siopcb, uint_t cbrtn)
|
---|
2783 |
|
---|
2784 | siopcbÅwè³êéVAI/O|[g©çÌCcbrtnÅwè³êéR[ob
|
---|
2785 | Nð·éDcbrtnÉÍCSIO_RDY_SND©SIO_RDY_RCVðwèÅ«éD
|
---|
2786 |
|
---|
2787 | (8-4-2-6) void sio_dis_cbr(SIOPCB *siopcb, uint_t cbrtn)
|
---|
2788 |
|
---|
2789 | siopcbÅwè³êéVAI/O|[g©çÌCcbrtnÅwè³êéR[ob
|
---|
2790 | NðÖ~·éDcbrtnÉÍCSIO_RDY_SND©SIO_RDY_RCVðwèÅ«éD
|
---|
2791 |
|
---|
2792 | 8.4.3 R[obN[`
|
---|
2793 |
|
---|
2794 | ^[Qbg˶ÍCKvÈ^C~OÅCVAC^tF[XhCo
|
---|
2795 | Ì^[Qbgñ˶ÉÜÜêéȺÌR[obN[`ðÄÑoѾ³
|
---|
2796 | ȯêÎÈçÈ¢D½¾µC»ê¼êÌR[obNªÖ~³êÄ¢éÍC
|
---|
2797 | R[obN[`ðÄÑoµÄÍÈçÈ¢D
|
---|
2798 |
|
---|
2799 | R[obN[`ÍCiÈÆàjVAI/O|[g©çÌݪÖ
|
---|
2800 | ~³ê½óÔÅCñ^XNReLXgÅÄÑo·DexinfÉÍCVAI/O
|
---|
2801 | |[gÌI[vÉwè³ê½g£îñðn·D
|
---|
2802 |
|
---|
2803 | (8-4-3-1) void sio_irdy_snd(intptr_t exinf)
|
---|
2804 |
|
---|
2805 | MÂ\R[obN[`DVAI/O|[gÉεĶªMÅ«é
|
---|
2806 | óÔÉÈÁ½êÉÄÑo·DVAC^tF[XhCoÍC±ÌR[
|
---|
2807 | obN[`ÌÅCsio_snd_chrðÄÑoµÄ̶ðM·é©C
|
---|
2808 | M·×«¶ªÈ¢êÉÍMÂ\R[obNðÖ~·éD
|
---|
2809 |
|
---|
2810 | (8-4-3-2) void sio_irdy_rcv(intptr_t exinf)
|
---|
2811 |
|
---|
2812 | óMÊmR[obN[`DVAI/O|[g©ç¶ðóMµ½êÉ
|
---|
2813 | ÄÑo·DVAC^tF[XhCoÍC±ÌR[obN[`Ì
|
---|
2814 | ÅCK¸sio_rcv_chrðÄÑoµÄóMµ½¶ðæèo·D
|
---|
2815 |
|
---|
2816 | 8.5 J[lN®bZ[WÌoÍÌ^[Qbg˶è`
|
---|
2817 |
|
---|
2818 | ^[Qbg˶Åñ·×«J[lN®bZ[WÌoÍ̽ßÌè`Í
|
---|
2819 | ÌÊèÅ éD
|
---|
2820 |
|
---|
2821 | (8-5-1) TARGET_NAME
|
---|
2822 |
|
---|
2823 | ^[Qbg̼ÌÉè`·éD
|
---|
2824 |
|
---|
2825 | (8-5-2) TARGET_COPYRIGHTiIvVj
|
---|
2826 |
|
---|
2827 | J[lN®bZ[WÉC^[Qbg˶Ìì \¦ðÇÁ·é½ßÌ
|
---|
2828 | }NDftHgÅÍC^[Qbg˶Ìì \¦ðÇÁµÈ¢D
|
---|
2829 |
|
---|
2830 | 8.6 TvvOÆeXgvOÌ^[Qbg˶è`
|
---|
2831 |
|
---|
2832 | ^[Qbg˶Åñ·×«TvvO¨æÑeXgvOÌ
|
---|
2833 | ½ßÌè`ÍÌÊèÅ éD±êçÌè`ÍCtarget_test.hiܽͻêç
|
---|
2834 | ©çCN[h³êét@CjÉÜßéD
|
---|
2835 |
|
---|
2836 | (8-6-1) STACK_SIZEiIvVj
|
---|
2837 |
|
---|
2838 | TvvO¨æÑeXgvOÌ^XNÌX^bNTCYðè`
|
---|
2839 | ·é}NDè`µÈ¢êÌftHglÍ4096DftHgÝèÅÍ
|
---|
2840 | ªs«·éêâCV~
|
---|
2841 | [V«ÈÇÅå«¢X^bNÌæªKv
|
---|
2842 | ÈêÉÍC^[Qbg˶űÌ}NðÝè·éX^bNTCYÉè`
|
---|
2843 | ·éD
|
---|
2844 |
|
---|
2845 | (8-6-2) CPUEXC1iIvVj
|
---|
2846 |
|
---|
2847 | TvvO¨æÑeXgvOÅp¢éCPUáOÌCPUáOnh
|
---|
2848 | Ôðè`·é}ND±Ì}Nðè`µÈ¢êCCPUáOnhðg
|
---|
2849 | ¤ªªTvvO©çO³êéDCPUáOnhÌeXgð·é
|
---|
2850 | eXgvOÍRpCūȢD
|
---|
2851 |
|
---|
2852 | (8-6-3) RAISE_CPU_EXCEPTIONiIvVj
|
---|
2853 |
|
---|
2854 | CPUEXC1Éè`µ½CPUáOð¶³¹éC¾êÌvOðè`·é}ND
|
---|
2855 | CPUEXC1ðè`µ½êÉÍK¸è`µÈ¯êÎÈçÈ¢D
|
---|
2856 |
|
---|
2857 | (8-6-4) CANNOT_RETURN_CPUEXCiIvVj
|
---|
2858 |
|
---|
2859 | ^[QbgVXȩñÉæèCCPUáOnh©ç^[µ½ãÉC^
|
---|
2860 | XNÌÀsðp±Å«È¢êÉè`·é}ND±Ì}Nðè`·éÆC
|
---|
2861 | CPUáOnhÌeXgð·éeXgvO©çCCPUáOnh©ç
|
---|
2862 | ^[µ½ã̪O³êéDTvvOÌYªÍ³µ
|
---|
2863 | ®ìµÈ¢D
|
---|
2864 |
|
---|
2865 | (8-6-5) TASK_PORTIDiIvVj
|
---|
2866 |
|
---|
2867 | TvvOɨ¢ÄCR}h¶ðÇÝÞVA|[gÔð
|
---|
2868 | è`·é}NDè`µÈ¢êÌftHglÍ1D
|
---|
2869 |
|
---|
2870 | (8-6-6) LOOP_REFiIvVj
|
---|
2871 |
|
---|
2872 | TvvOɨ¢ÄCvZbT̬xðvª·é½ßÌ[vñ
|
---|
2873 | ðè`·é}NDè`µÈ¢êÌftHglÍ1000000DftHgÝè
|
---|
2874 | ÅÍClªå«ß¬ÄvªÉÔª©©è·¬éêâClª¬³ß¬Ävª
|
---|
2875 | ʪÀèµÈ¢êÉC^[Qbg˶űÌ}NðÝè·é[vñ
|
---|
2876 | Éè`·éD
|
---|
2877 |
|
---|
2878 | (8-6-7) MEASURE_TWICEiIvVj
|
---|
2879 |
|
---|
2880 | TvvOɨ¢ÄCvZbT̬xð2xvª·éêÉè`·é
|
---|
2881 | }NDV~
|
---|
2882 | [V«ÈÇvZbT̬xªÏ®·é«ÅC1xÌ
|
---|
2883 | vªÅÍvªÊªÀèµÈ¢êÉè`·éD
|
---|
2884 |
|
---|
2885 | (8-6-8) TASK_LOOPiIvVj
|
---|
2886 |
|
---|
2887 | TvvOɨ¢ÄCvZbT̬xðvª¹¸ÉC^XNàÅÌ
|
---|
2888 | [vñðÅè·éêÉC[vñðè`·é}ND[vSÌÌÀ
|
---|
2889 | sÔª0.4böxÉÈ鿤È[vñðC±Ì}NÉè`·éD
|
---|
2890 |
|
---|
2891 | 9. »Ì¼
|
---|
2892 |
|
---|
2893 | 9.1 hL
|
---|
2894 | g
|
---|
2895 |
|
---|
2896 | ^[Qbg˶Ì[U[Y}j
|
---|
2897 | AðCtarget_user.txtÉpÓ·éDv
|
---|
2898 | ZbTE`bvEJ«˶Ì[U[Y}j
|
---|
2899 | AðØèª¯Äàæ
|
---|
2900 | ¢µCt@Cªå«ÈéêÉÍ¡Ìt@CɪµÄ梪C»Ì
|
---|
2901 | êÉÍCtarget_user.txtÉ»êçÌt@C¼ðLq·é±ÆD
|
---|
2902 |
|
---|
2903 | ^[Qbg˶Ì[U[Y}j
|
---|
2904 | AÉÍCÈÆàÌæ¤Èàeð
|
---|
2905 | Lq·é±Æª]ܵ¢D
|
---|
2906 |
|
---|
2907 | (1) εĢé^[QbgVXeÌíÞE\¬Co[WÔ
|
---|
2908 | E^[Qbgn[hEFAi{[hjÌ¼ÌÆÎµÄ¢é\¬
|
---|
2909 | E^[QbgªÌ
|
---|
2910 | E^[Qbgñ˶Ìo[WÔ
|
---|
2911 | EvZbTC`bvCJ«˶Ì\¬Æo[WÔ
|
---|
2912 | Egp·éPDICÆo[WÔ
|
---|
2913 |
|
---|
2914 | (2) gp·éJÂ«Æ®ìØµ½ðio[WCIvVj
|
---|
2915 | E¾êniRpCCAZuCJj
|
---|
2916 | EfobO«
|
---|
2917 |
|
---|
2918 | (3) ^[Qbgè`ÌKè
|
---|
2919 |
|
---|
2920 | (3-1) f[^^ÉÖ·éKè
|
---|
2921 | Eint_t^Clong_t^ÌTCY
|
---|
2922 | Echar^Cint_least8_t^Cvoid *^Cintptr_t^ÌTCY
|
---|
2923 | Eint8_t^Cuint8_t^Cint64_t^Cuint64_t^Cint128_t^C
|
---|
2924 | @uint128_t^Cfloat32_t^Cdouble64_t^ÌT|[gÌL³
|
---|
2925 |
|
---|
2926 | (3-2) ÝÉÖ·éKè
|
---|
2927 | EÝnhÔÆÝÔÌÄC¼ÒÌÎ
|
---|
2928 | EÝDæxÌiKiTMIN_INTPRIÌlj
|
---|
2929 | Edis_intÆena_intÌT|[gÌL³C»Ì§À
|
---|
2930 | ECFG_INŢÀÆg£i^[Qbgè`ÅgpÅ«éÝ®«j
|
---|
2931 | ETOPPERSWÝf©ç̻̼ÌíE
|
---|
2932 |
|
---|
2933 | (3-3) J[lÇOÌÝÉÖ·éKè
|
---|
2934 | ETMIN_INTPRIÍÅè©ÝèÅ«é©C»ÌÝèû@
|
---|
2935 | ENMIÈOÉJ[lÇOÌÝðݯé©iݯçê鿤ɷé©j
|
---|
2936 | EJ[lÇOÌÝÌÝèû@
|
---|
2937 | EJ[lÇOÌÝÉεÄDEF_INHCCFG_INTðT|[g·é©
|
---|
2938 | EJ[lÇOÌÝnhªÀsJn³êéÌVXeóÔÆ
|
---|
2939 | @ReLXg
|
---|
2940 | EÝnhÌI¹Ésíêé
|
---|
2941 | EJ[lÇOÌÝnhÌLqû@
|
---|
2942 | EJ[làÌÝoüûÅN±éÂ\«Ì éCPUáO
|
---|
2943 |
|
---|
2944 | (3-4) CPUáOÉÖ·éKè
|
---|
2945 | ECPUáOnhÔÌÄ
|
---|
2946 | EÝDæx}XNðTMIN_INTPRIƯ¶©»êæèà¢lÉÝèµÄ
|
---|
2947 | @¢éóÔŶµ½CPUáOðCJ[lÇOÌCPUáOƵ¤©
|
---|
2948 | EJ[làÌCPUáOoüûÅN±éÂ\«Ì éCPUáO
|
---|
2949 |
|
---|
2950 | (3-5) «\]¿pVXeÌQÆÉÖ·éKè
|
---|
2951 | Eget_utmÌT|[gÌL³C»Ì§À
|
---|
2952 |
|
---|
2953 | (3-6) »Ì¼
|
---|
2954 | E»Ì¼Ì§À
|
---|
2955 | E»Ì¼Ìg£@\
|
---|
2956 |
|
---|
2957 | (4) J[lÌN®^I¹ÉÖ·éîñ
|
---|
2958 | EpӵĢéX^[gAbvW
|
---|
2959 | [Ìàe
|
---|
2960 | EX^[gAbvW
|
---|
2961 | [©çhardware_init_hookðÄÑoµÄ¢éê
|
---|
2962 | @ÉÍChardware_init_hookðAvP[VÅpÓ·éêÌì¬
|
---|
2963 | @û@â§ÀÈÇ
|
---|
2964 | EJ[lðI¹µ½ãÌU¢
|
---|
2965 |
|
---|
2966 | (5) }bv
|
---|
2967 | EftHgÌ}bvC»ÌÏXû@
|
---|
2968 |
|
---|
2969 | (6) ^C}hCoÖAÌîñ
|
---|
2970 | E^CeBbNÌüúC»ÌÏXû@
|
---|
2971 | Egp·é\[Xi^C}j
|
---|
2972 | E^C}ÝÌÝDæxÌÏXû@
|
---|
2973 | EI[o^C}ÝÌÝDæxÌÏXû@
|
---|
2974 |
|
---|
2975 | (7) VAC^tF[XhCoÌîñ
|
---|
2976 | Egp·é\[XiSIORg[j
|
---|
2977 | EÊMp[^i{[[gCrbgCpeBÌL³CXgbvrbgj
|
---|
2978 |
|
---|
2979 | (8) VXe\zè
|
---|
2980 |
|
---|
2981 | (9) ^[QbgVXeÅLÌÓ
|
---|
2982 | E^XNReLXgÉÜÜêéWX^CÜÜêÈ¢WX^
|
---|
2983 |
|
---|
2984 | (10) ÞÌ^[QbgÉ|[eBO·éJÒü¯ÌQlîñ
|
---|
2985 |
|
---|
2986 | (11) fBNg\¬Et@C\¬
|
---|
2987 |
|
---|
2988 | (12) o[Wð
|
---|
2989 |
|
---|
2990 | ܽCKvɶÄC^[Qbg˶ÌÝvðCtarget_design.txtÉp
|
---|
2991 | Ó·éDvZbTE`bvEJ«˶ÉÖ·éÝvðØèª¯Ä
|
---|
2992 | àæ¢µCt@Cªå«ÈéêÉÍ¡Ìt@CɪµÄàæ¢ªC
|
---|
2993 | »ÌêÉÍCtarget_design.txtÉ»êçÌt@C¼ðLq·é±ÆD
|
---|
2994 |
|
---|
2995 | 9.2 pbP[WLqt@C
|
---|
2996 |
|
---|
2997 | [XpbP[WiÂÊpbP[W¨æÑÈÕpbP[Wjð쬷é½ß
|
---|
2998 | ÉCpbP[WÉÜßét@CðLqµ½pbP[WLqt@CðpÓ·
|
---|
2999 | éDpbP[WLqt@C̼ÌÍCÂÊpbP[WpðMANIFESTCÈÕpb
|
---|
3000 | P[WpðE_PACKAGEÆ·éD
|
---|
3001 |
|
---|
3002 | á¦ÎCarch/arm_gccfBNgÉu©ê½MANIFESTt@Cðp¢ÄÂÊ
|
---|
3003 | pbP[Wð쬷éêÉÍCÌR}hðÀs·éD
|
---|
3004 |
|
---|
3005 | % utils/makerelease arch/arm_gcc/MANIFEST
|
---|
3006 |
|
---|
3007 | ±ÌR}hÉæèCRELEASE/ssp_arch_arm_gcc-<o[WÔ>.tar.gzª
|
---|
3008 | 쬳êéDܽCtarget/at91skyeye_gccfBNgÉu©ê½E_PACKAGE
|
---|
3009 | t@Cðp¢ÄÈÕpbP[Wð쬷éêÉÍCÌR}hðÀs·
|
---|
3010 | éD
|
---|
3011 |
|
---|
3012 | % utils/makerelease target/cq_starm_gcc/E_PACKAGE
|
---|
3013 |
|
---|
3014 | ±ÌR}hÉæèCRELEASE/ssp_cq_starm_gcc_gcc-<o[WÔ>.tar.gz
|
---|
3015 | ªì¬³êéiRELEASEfBNgªÈ¢êÉÍCfBNgªìçê
|
---|
3016 | éjD
|
---|
3017 |
|
---|
3018 | ȨCmakerelease[eBeBÍCSSPJ[lÌ\[Xt@Cªu©ê
|
---|
3019 | ½fBNgªCsspÆ¢¤¼ÌŠ鱯ð¼èµÄ¢éiÙÈé¼ÌÌê
|
---|
3020 | ÅàpbP[WÍì¬Å«éªCpbP[WðWJµ½ÉWJ³êéfB
|
---|
3021 | NgªsspÅÈÈéjDܽCWÌtarR}hªGNU tarŠ鱯
|
---|
3022 | i³mÉÍCzIvVÉÎµÄ¢é±ÆjðzèµÄ¢éD
|
---|
3023 |
|
---|
3024 | pbP[WLqt@CÉÍCpbP[WÉÜßét@C¼ðCpbP[W
|
---|
3025 | Lqt@Cªu©ê½fBNg©çÌÎpX¼ÅC1sÉ1¸ÂLq
|
---|
3026 | ·éDܽCKvɶÄCȺÌfBNeBuðÜßéD
|
---|
3027 |
|
---|
3028 | (a) E_PACKAGE <ÈÕpbP[W¼>
|
---|
3029 |
|
---|
3030 | ÈÕpbP[W¼ðwè·éDÈÕpbP[WLqt@CiE_PACKAGEjÌæ
|
---|
3031 | ªÉLq·éDÈÕpbP[W¼ÍCssp_<^[QbgªÌ>Æ·éDá¦ÎC
|
---|
3032 | ^[QbgªÌªcq_starm_gccÌêÉÍCssp_cq_starm_gccÆÈéDÂ
|
---|
3033 | ÊpbP[WÆæÊ·é½ßÉCÈÕpbP[WÌt@C¼ÉÍ"target"ð
|
---|
3034 | ÜßÈ¢D
|
---|
3035 |
|
---|
3036 | (b) PACKAGE <ÂÊpbP[W¼>
|
---|
3037 |
|
---|
3038 | ÂÊpbP[W¼ðwè·éDÂÊpbP[WLqt@CiMANIFESTjÌæ
|
---|
3039 | ªÉLq·éDܽC»±©çCN[h³êéet@CÌæªÉàLq
|
---|
3040 | µC»êðCN[hµÄ¢éÂÊpbP[W¼ðwè·éD^[QbgË
|
---|
3041 | ¶ÌÂÊpbP[W¼ÍCÂÊpbP[WLqt@Cªu©ê½fBN
|
---|
3042 | gÌÎpXÌ"/"ð"_"Éu«·¦½¶ñðC"ssp_"ÌãÉÂȰ½à
|
---|
3043 | ÌÆ·éDá¦ÎCÂÊpbP[WLqt@Cªarch/arm_gcc/MANIFESTÌê
|
---|
3044 | ÉÍCssp_arch_arm_gccÆÈéD
|
---|
3045 |
|
---|
3046 | (c) VERSION <o[WÔ>
|
---|
3047 |
|
---|
3048 | pbP[WÌo[WÔðwè·éDÈÕpbP[WLqt@C¨æÑ
|
---|
3049 | ÂÊpbP[WLqt@CÌÉLq·éDÈÕpbP[Wɨ¢ÄCo[
|
---|
3050 | WÔðpbP[W»µ½útÆ·éêÉÍCpbP[WÔÌãíè
|
---|
3051 | É%dateÆLq·éD
|
---|
3052 |
|
---|
3053 | o[WÔÌt^û@É¢ÄÍCuTOPPERS/SSPJ[l [U[Y}
|
---|
3054 | j
|
---|
3055 | AvÌu2.2 ÈÕpbP[Wv¨æÑu2.3 ÂÊpbP[WvÌßðQ
|
---|
3056 | Æ·é±ÆD
|
---|
3057 |
|
---|
3058 | (d) INCLUDE <t@C¼>
|
---|
3059 |
|
---|
3060 | ÊÌpbP[WLqt@CðCN[h·éDÈÕpbP[WLqt@C
|
---|
3061 | ©çÍCÂÊpbP[WLqt@CÌÝðCN[h·éÌð´¥Æ·
|
---|
3062 | éDÂÊpbP[WLqt@C©çCN[h³êét@CÅwè³
|
---|
3063 | êéÂÊpbP[W¼ÍC·×ÄêvµÄ¢È¯êÎÈçÈ¢D
|
---|
3064 |
|
---|
3065 |
|
---|
3066 | 10. t@X
|
---|
3067 |
|
---|
3068 | 10.1 ^[Qbg˶Ìt@Cê
|
---|
3069 |
|
---|
3070 | WIÈ^[Qbg˶Ìt@C\¬ÍÌÊèÅ éD
|
---|
3071 |
|
---|
3072 | Makefile.target MakefileÌ^[Qbg˶iQÍjD
|
---|
3073 |
|
---|
3074 | target_stddef.h TOPPERS¤Êè`it_stddef.hjÌ^[Qbg˶iR
|
---|
3075 | ÍjDAvP[VÆJ[l̼û©çCN[
|
---|
3076 | h³êéD
|
---|
3077 | target_sil.h VXeC^tF[XCisil.hjÌ^[QbgË
|
---|
3078 | ¶iSÍjDAvP[VÆJ[l̼û©ç
|
---|
3079 | CN[h³êéD
|
---|
3080 | target_kernel.h J[lAPIikernel.hjÌ^[Qbg˶iTÍjD
|
---|
3081 | AvP[VÆJ[l̼û©çCN[h³
|
---|
3082 | êéD
|
---|
3083 |
|
---|
3084 | target_config.h J[lÀÌ^[Qbg˶Ìwb_t@CiU
|
---|
3085 | ÍjDJ[lÌÝ©çCN[h³êéD
|
---|
3086 | target_config.c J[lÀÌ^[Qbg˶ÌC¾êÅLq³êé
|
---|
3087 | ªiUÍCIvVjD
|
---|
3088 | target_support.S J[lÀÌ^[Qbg˶ÌAZu¾êÅL
|
---|
3089 | q³êéªiUÍCIvVjD
|
---|
3090 | target_rename.def J[lÀÌ^[Qbg˶̽ßÌl[Lq
|
---|
3091 | i6.12ßjD
|
---|
3092 | target_rename.h target_rename.def©ç¶¬³êét@Ci6.12ßjD
|
---|
3093 | target_unrename.h target_rename.def©ç¶¬³êét@Ci6.12ßjD
|
---|
3094 | target_timer.cfg ^C}hCoÌVXeRtBM
|
---|
3095 | [Vt@
|
---|
3096 | Ci6.13ßjD
|
---|
3097 | target_timer.h ^C}hCoÌwb_t@Ci6.13ßjDJ[l
|
---|
3098 | ÌÝ©çCN[h³êéD
|
---|
3099 | target_timer.c ^C}hCoÌÀt@Ci6.13ßCIvVjD
|
---|
3100 | VXeªÌ.h ^[QbgÌn[hEFA¹iÝnhÔâ
|
---|
3101 | CPUáOnhÔCfoCXWX^ÌÔnÈÇjÌ
|
---|
3102 | è`ðÜÞwb_t@CDAvP[VÆJ[l
|
---|
3103 | ̼û©çCN[h³êéiUÍCIvVjD
|
---|
3104 |
|
---|
3105 | target_def.csv RtBM
|
---|
3106 | [^Ìlæ¾V{e[uÌ^[Qb
|
---|
3107 | g˶iVÍCIvVjD
|
---|
3108 | target.tf RtBM
|
---|
3109 | [^ÌpX2Ìev[gt@CÌ
|
---|
3110 | ^[Qbg˶i7.2ßjD
|
---|
3111 | target_check.tf RtBM
|
---|
3112 | [^ÌpX3Ìev[gt@Ci7.3
|
---|
3113 | ßjD
|
---|
3114 | target_cfg1_out.h cfg1_out.cÌNÉKvÈX^uÌè`t@Ci7.4
|
---|
3115 | ßjD
|
---|
3116 |
|
---|
3117 | target_syssvc.h VXeT[rXÌ^[Qbg˶è`i8.0ßjD
|
---|
3118 | target_serial.cfg VAhCoÌVXeRtBM
|
---|
3119 | [Vt@
|
---|
3120 | Ci8.3ßjD
|
---|
3121 | target_serial.h VAhCoÌwb_t@Ci8.3ßjDVA
|
---|
3122 | hCoÌÝ©çCN[h³êéD
|
---|
3123 | target_serial.c VAhCoÌÀt@Ci8.3ßCIvVjD
|
---|
3124 | target_test.h eXgvOÌ^[Qbg˶è`i8.4ßjD
|
---|
3125 |
|
---|
3126 | target_user.txt [U[Y}j
|
---|
3127 | Ai9.1ßj
|
---|
3128 | target_design.txt Ývi9.1ßCIvVj
|
---|
3129 | MANIFEST ÂÊpbP[WÉÜßét@CÌXgi9.2ßCIv
|
---|
3130 | Vj
|
---|
3131 | E_PACKAGE ÈÕpbP[WÉÜßét@CÌXgi9.2ßCIv
|
---|
3132 | Vj
|
---|
3133 |
|
---|
3134 | Èã
|
---|