source: ssp_qb_r5f100le_cs/trunk/doc/configurator.txt@ 93

Last change on this file since 93 was 93, checked in by nmir-saito, 9 years ago

add Combined package of SSP kernel for QB-R5F100LE-TB(RL78 processor)

File size: 50.6 KB
Line 
1
2 TOPPERS/SSPƒJ[ƒlƒ‹
3 ƒRƒ“ƒtƒBƒMƒ…
4ƒŒ[ƒ^Žd—l
5
6 ‘Ήžƒo[ƒWƒ‡ƒ“: Release 1.3.0
7 ÅIXV: 2014”N 5ŒŽ 19“ú
8
9‚±‚̃hƒLƒ…
10ƒƒ“ƒg‚́CTOPPERS/SSPƒJ[ƒlƒ‹‚̃Rƒ“ƒtƒBƒMƒ…
11ƒŒ[ƒ^‚ª•W€“I‚ɐ¶
12¬‚·‚ׂ«ƒtƒ@ƒCƒ‹‚Ì“à—e‚ɂ‚¢‚ĉðà‚µ‚½‚à‚Ì‚Å‚ ‚éDƒ^[ƒQƒbƒgˆË‘¶‚ɐ¶¬
13‚·‚é“à—e‚ɂ‚¢‚ẮC‚±‚̃hƒLƒ…
14ƒƒ“ƒg‚͈̔͊O‚Å‚ ‚éD
15
16----------------------------------------------------------------------
17 TOPPERS/SSP Kernel
18 Toyohashi Open Platform for Embedded Real-Time Systems/
19 Smallet Set Profile Kernel
20
21 Copyright (C) 2005-2010 by Embedded and Real-Time Systems Laboratory
22 Graduate School of Information Science, Nagoya Univ., JAPAN
23 Copyright (C) 2012-2015 by Naoki Saito
24 Nagoya Municipal Industrial Research Institute, JAPAN
25
26 ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
27 ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
28 •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
29 (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
30 Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
31 ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
32 (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
33 —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ…
34ƒƒ“ƒgi—˜—p
35 ŽÒƒ}ƒjƒ…
36ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
37 ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
38 (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
39 —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
40 ‚ƁD
41 (a) Ä”z•z‚É”º‚¤ƒhƒLƒ…
42ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ…
43ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
44 ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
45 (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
46 •ñ‚·‚邱‚ƁD
47 (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
48 ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
49 ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
50 —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
51 –Ɛӂ·‚邱‚ƁD
52
53 –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
54 ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
55 ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
56 ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
57 ‚̐ӔC‚𕉂í‚È‚¢D
58
59 $Id: configurator.txt 659 2015-05-19 09:45:26Z nmir-saito $
60----------------------------------------------------------------------
61
62›–ÚŽŸ
63
64E¶¬‚·‚éƒtƒ@ƒCƒ‹‚ÌŽí—Þ
65EÃ“IAPIˆê——
66EƒJ[ƒlƒ‹\¬E‰Šú‰»ƒwƒbƒ_ƒtƒ@ƒCƒ‹ikernel_cfg.hj
67 (1) ŒÅ’萶¬•”•ª
68 (2) ƒIƒuƒWƒFƒNƒg”‚Ì’è‹`
69 (3) ƒIƒuƒWƒFƒNƒg‚ÌID”ԍ†‚Ì’è‹`
70EƒJ[ƒlƒ‹\¬E‰Šú‰»ƒtƒ@ƒCƒ‹ikernel_cfg.cj
71 (1) ŒÅ’萶¬•”•ª
72 (2) ƒCƒ“ƒNƒ‹[ƒhƒfƒBƒŒƒNƒeƒBƒui#includej‚̏ˆ—
73 (3) ƒIƒuƒWƒFƒNƒg‚ÌID”ԍ†‚ð•ÛŽ‚·‚é•Ï”‚Ì’è‹`
74 (4) ƒgƒŒ[ƒXƒƒOƒ}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`
75 (5) ŠeƒJ[ƒlƒ‹ƒIƒuƒWƒFƒNƒg‚ÉŠÖ‚·‚é’è‹`
76 (5-1) ƒ^ƒXƒN‚ÉŠÖ‚·‚é’è‹`
77 (5-2) ƒCƒxƒ“ƒgƒtƒ‰ƒO‚ÉŠÖ‚·‚é’è‹`
78 (5-3) ƒf[ƒ^ƒLƒ…
79[‚ÉŠÖ‚·‚é’è‹`
80 (5-4) ŽüŠúƒnƒ“ƒhƒ‰‚ÉŠÖ‚·‚é’è‹`
81 (5-5) ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚ÉŠÖ‚·‚é’è‹`
82 (6) Š„ž‚Ý‚ÉŠÖ‚·‚é’è‹`
83 (6-1) Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚ÉŠÖ‚·‚é’è‹`
84 (6-2) Š„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“‚ÉŠÖ‚·‚é’è‹`
85 (6-3) Š„ž‚݃nƒ“ƒhƒ‰‚ÉŠÖ‚·‚é’è‹`
86 (7) CPU—áŠO‚ÉŠÖ‚·‚é’è‹`
87 (8) ‹¤—LƒXƒ^ƒbƒN—̈æ‚ÉŠÖ‚·‚é’è‹`
88 (9) ƒ^ƒCƒ€ƒCƒxƒ“ƒgŠÇ—‚ÉŠÖ‚·‚é’è‹`
89 (10)Šeƒ‚ƒWƒ…
90[ƒ‹‚̏‰Šú‰»ŠÖ”‚Ì’è‹`
91 (11)‰Šú‰»ƒ‹[ƒ`ƒ“‚ÌŽÀsŠÖ”‚Ì’è‹`
92 (12)I—¹ˆ—ƒ‹[ƒ`ƒ“‚ÌŽÀsŠÖ”‚Ì’è‹`
93
94›¶¬‚·‚éƒtƒ@ƒCƒ‹‚ÌŽí—Þ
95
96SSPƒJ[ƒlƒ‹‚̃Rƒ“ƒtƒBƒMƒ…
97ƒŒ[ƒ^‚́CƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
98ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒC
99ƒ‹‚ðˆ—‚µ‚āCƒJ[ƒlƒ‹\¬E‰Šú‰»ƒtƒ@ƒCƒ‹ikernel_cfg.cj‚ƍ\¬E‰Šú
100‰»ƒwƒbƒ_ƒtƒ@ƒCƒ‹ikernel_cfg.hj‚𐶐¬‚·‚éD‚Ü‚½CƒRƒ“ƒtƒBƒMƒ…
101ƒŒ[ƒ^‚Ì
102ˆ—‚Ì“r’†‚ɁC•K—v‚È’†ŠÔƒtƒ@ƒCƒ‹‚𐶐¬‚·‚éD
103
104
105›Ã“IAPIˆê——
106
107SSPƒJ[ƒlƒ‹‚̃Rƒ“ƒtƒBƒMƒ…
108ƒŒ[ƒ^‚ªˆ—‚·‚éÃ“IAPI‚ÍŽŸ‚Ì’Ê‚èD
109
110(1) ƒ^ƒXƒNŠÇ—‹@”\
111 CRE_TSK(ID tskid, { ATR tskatr, intptr_t exinf, TASK task,
112 PRI itskpri, SIZE stksz, STK_T *stk })
113 DEF_EPR (ID tskid, { PRI exepri })
114
115(2) “¯ŠúE’ʐM‹@”\
116 CRE_FLG(ID flgid, { ATR flgatr, FLGPTN iflgptn })
117 CRE_DTQ(ID dtqid, { ATR dtqatr, uint_t dtqcnt, void *dtqmb })
118
119¦ dtqmb ‚ª NULL ‚Å‚È‚¢ê‡‚̓Tƒ|[ƒg‚µ‚È‚¢D
120
121(3) ŽžŠÔŠÇ—‹@”\
122 CRE_CYC(ID cycid, { ATR cycatr, intptr_t exinf, CYCHDR cychdr,
123 RELTIM cyctim, RELTIM cycphs })
124 CRE_ALM(ID almid, { ATR almatr, intptr_t exinf, ALMHDR almhdr })
125
126(4) Š„ž‚ÝŠÇ—‹@”\
127 CFG_INT(INTNO intno, { ATR intatr, PRI intpri })
128 ATT_ISR({ ATR isratr, intptr_t exinf, INTNO intno, ISR isr, PRI isrpri })
129 DEF_INH(INHNO inhno, { ATR inhatr, INTHDR inthdr })
130
131(5) CPU—áŠOŠÇ—‹@”\
132 DEF_EXC(EXCNO excno, { ATR excatr, EXCHDR exchdr })
133
134(6) ƒVƒXƒeƒ€\¬ŠÇ—‹@”\
135 DEF_ICS({ SIZE istksz, STK_T *istk })
136 DEF_STK({ SIZE stksz, STK_T *stk })
137 ATT_INI({ ATR iniatr, intptr_t exinf, INIRTN inirtn })
138 ATT_TER({ ATR teratr, intptr_t exinf, TERRTN terrtn })
139
140‚±‚ê‚ç‚̐ÓIAPI‚̃pƒ‰ƒ[ƒ^‚Ì“àCIDŒ^‚̃pƒ‰ƒ[ƒ^‚̓IƒuƒWƒFƒNƒgŽ¯•Ê–¼C
141ƒ|ƒCƒ“ƒ^Œ^iTASKCCYCHDRCALMHDRCISRCINTHDRCEXCHDRCINIRTNCTERRTNC
142STK_T *j‚¨‚æ‚Ñ intptr_t Œ^‚̃pƒ‰ƒ[ƒ^‚͈ê”ʒ萔Ž®ƒpƒ‰ƒ[ƒ^‚Æ‚·‚éD
143‚»‚Ì‘¼‚̃pƒ‰ƒ[ƒ^‚́C®”’萔Ž®ƒpƒ‰ƒ[ƒ^‚Æ‚·‚éD
144
145
146›ƒJ[ƒlƒ‹\¬E‰Šú‰»ƒwƒbƒ_ƒtƒ@ƒCƒ‹ikernel_cfg.hj
147
148ƒJ[ƒlƒ‹\¬E‰Šú‰»ƒwƒbƒ_ƒtƒ@ƒCƒ‹ikernel_cfg.hj‚ɂ́CŽŸ‚Ì’è‹`‚𐶐¬‚·‚éD
149
150(1) ŒÅ’萶¬•”•ª
151
152kernel_cfg.h‚ª•¡”‰ñƒCƒ“ƒNƒ‹[ƒh‚³‚ê‚é‚Ì‚ð–h‚®‚½‚ß‚Ì‹Lq‚𐶐¬‚·‚éD‹ï
153‘Ì“I‚ɂ́Cƒtƒ@ƒCƒ‹‚̐擪‚ÉŽŸ‚̍s‚𐶐¬‚·‚éD
154
155#ifndef TOPPERS_KERNEL_CFG_H
156#define TOPPERS_KERNEL_CFG_H
157
158‚Ü‚½Cƒtƒ@ƒCƒ‹‚Ì––”ö‚ÉŽŸ‚̍s‚𐶐¬‚·‚éD
159
160#endif /* TOPPERS_KERNEL_CFG_H */
161
162(2) ƒIƒuƒWƒFƒNƒg”‚Ì’è‹`
163
164ƒJ[ƒlƒ‹‚ªƒTƒ|[ƒg‚·‚éƒIƒuƒWƒFƒNƒg‚̐”‚ðƒ}ƒNƒ’è‹`‚·‚éƒvƒŠƒvƒƒZƒbƒTƒfƒB
165ƒŒƒNƒeƒBƒui#definej‚𐶐¬‚·‚éD‹ï‘Ì“I‚ɂ́CŽŸ‚̂悤‚È‹Lq‚𐶐¬‚·‚éD
166
167#define TNUM_TSKID <ƒ^ƒXƒN‚̐”>
168#define TNUM_FLGID <ƒCƒxƒ“ƒgƒtƒ‰ƒO‚̐”>
169#define TNUM_DTQID <ƒf[ƒ^ƒLƒ…
170[‚̐”>
171#define TNUM_CYCID <ŽüŠúƒnƒ“ƒhƒ‰‚̐”>
172#define TNUM_ALMID <ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚̐”>
173
174(3) ƒIƒuƒWƒFƒNƒg‚ÌID”ԍ†‚Ì’è‹`
175
176ƒRƒ“ƒtƒBƒMƒ…
177ƒŒ[ƒ^‚ªID”ԍ†‚ðŠ„‚è•t‚¯‚½ƒIƒuƒWƒFƒNƒg‚Ì–¼‘O‚ðCŠ„‚è•t‚¯‚½
178ID”ԍ†‚Ƀ}ƒNƒ’è‹`‚·‚éƒvƒŠƒvƒƒZƒbƒTƒfƒBƒŒƒNƒeƒBƒui#definej‚𐶐¬‚·‚éD
179—Ⴆ‚΁CŽŸ‚̂悤‚È‹Lq‚𐶐¬‚·‚éD
180
181#define TASK1 1
182#define TASK2 2
183#define ALM1 1
184
185**************************************************************************
186SSPƒJ[ƒlƒ‹‚̏ꍇCCRE_TSK ‚É‚¨‚¯‚é‹N“®Žž—Dæ“x‚̍‚‚¢i’l‚Æ‚µ‚Ă͏¬‚³‚¢j
187‡”ԂɁC1‚©‚ç˜A‘±‚µ‚½’l‚ªID”ԍ†‚Æ‚µ‚Ä‚»‚ꂼ‚ê‚̃^ƒXƒN‚ÉŠ„‚è“–‚Ä‚ç‚ê‚éD
188**************************************************************************
189
190
191›ƒJ[ƒlƒ‹\¬E‰Šú‰»ƒtƒ@ƒCƒ‹ikernel_cfg.cj
192
193(1) ŒÅ’萶¬•”•ª
194
195kernel_cfg.c—p‚̃wƒbƒ_ƒtƒ@ƒCƒ‹‚ÆIDŽ©“®Š„•t‚¯Œ‹‰Êƒtƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh
196‚·‚éƒvƒŠƒvƒƒZƒbƒTƒfƒBƒŒƒNƒeƒBƒui#includej‚𐶐¬‚·‚éD‹ï‘Ì“I‚ɂ́CŽŸ
197‚̍s‚𐶐¬‚·‚éD
198
199#include "kernel/kernel_int.h"
200#include "kernel_cfg.h"
201
202(2) ƒCƒ“ƒNƒ‹[ƒhƒfƒBƒŒƒNƒeƒBƒui#includej‚̏ˆ—
203
204ƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
205ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹‚ÉŠÜ‚Ü‚ê‚éCŒ¾ŒêƒvƒŠƒvƒƒZƒbƒT‚̃C
206ƒ“ƒNƒ‹[ƒhƒfƒBƒŒƒNƒeƒBƒui#includej‚Æ“¯ˆê‚̃fƒBƒŒƒNƒeƒBƒui#includej
207‚𐶐¬‚·‚éD—Ⴆ‚΁C
208
209#include "sample1.h"
210
211‚Æ‚¢‚¤ƒCƒ“ƒNƒ‹[ƒhƒfƒBƒŒƒNƒeƒBƒu‚ɑ΂µ‚āC
212
213#include "sample1.h"
214
215‚Æ‚¢‚¤ƒfƒBƒŒƒNƒeƒBƒu‚𐶐¬‚·‚éD¶¬‚·‚éƒfƒBƒŒƒNƒeƒBƒu‚̏‡˜‚́CƒVƒXƒe
216ƒ€ƒRƒ“ƒtƒBƒMƒ…
217ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹’†‚ł̃Cƒ“ƒNƒ‹[ƒhƒfƒBƒŒƒNƒeƒBƒu‚̏‡˜
218‚Ɉê’v‚³‚¹‚éD
219
220(3) ƒIƒuƒWƒFƒNƒg‚ÌID”ԍ†‚ð•ÛŽ‚·‚é•Ï”‚Ì’è‹`
221
222ƒRƒ“ƒtƒBƒMƒ…
223ƒŒ[ƒ^‚ɑ΂·‚éƒIƒvƒVƒ‡ƒ“Žw’èi--external-idj‚É‚æ‚èCƒRƒ“ƒtƒB
224ƒMƒ…
225ƒŒ[ƒ^‚͕ϐ”‚𐶐¬‚·‚éD•Ï”–¼‚Í ID ”ԍ†‚ðŠ„‚è•t‚¯‚½ƒIƒuƒWƒFƒNƒg–¼
226‚Ì––”ö‚É "_id" ‚ð•t‰Á‚µ‚½–¼Ì‚Æ‚·‚éD•Ï”‚ÌŒ^‚́Cconst‘®«‚ð•t‰Á‚µ‚½IDŒ^
227‚Æ‚µC•Ï”‚Ì’l‚ÍŠ„‚è•t‚¯‚½ID”ԍ†‚Æ‚·‚éD—Ⴆ‚΁CŽŸ‚̂悤‚È‹Lq‚𐶐¬‚·‚éD
228
229const ID TASK1_id = 1;
230const ID TASK2_id = 2;
231const ID ALM1_id = 1;
232
233(4) ƒgƒŒ[ƒXƒƒOƒ}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`
234
235kernel_cfg.c‚Ì’†‚ÅŽg—p‚·‚éƒgƒŒ[ƒXƒƒOƒ}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`‚𐶐¬‚·‚éD
236‹ï‘Ì“I‚ɂ́CŽŸ‚̍s‚𐶐¬‚·‚éD
237
238#ifndef LOG_ISR_ENTER
239#define LOG_ISR_ENTER(intno)
240#endif /* LOG_ISR_ENTER */
241
242#ifndef LOG_ISR_LEAVE
243#define LOG_ISR_LEAVE(intno)
244#endif /* LOG_ISR_LEAVE */
245
246
247(5) ŠeƒJ[ƒlƒ‹ƒIƒuƒWƒFƒNƒg‚ÉŠÖ‚·‚é’è‹`
248
249ƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
250ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹’†‚ɁCƒIƒuƒWƒFƒNƒg‚𐶐¬‚·‚éÃ“I
251APIuCRE_XXXv‚ªŠÜ‚Ü‚ê‚éŠeƒJ[ƒlƒ‹ƒIƒuƒWƒFƒNƒg‚ÉŠÖ‚µ‚āCƒIƒuƒWƒFƒNƒg¶
252¬‚Ì‚½‚ß‚Ì’è‹`‚𐶐¬‚·‚éD
253
254ƒRƒ“ƒtƒBƒMƒ…
255ƒŒ[ƒ^‚́C“¯‚¶Ží—ނ̃IƒuƒWƒFƒNƒg‚𐶐¬‚·‚éÃ“IAPI‚ðW‚߁CŠe
256ƒIƒuƒWƒFƒNƒg‚ÉID”ԍ†‚ðŠ„‚è•t‚¯‚éDID”ԍ†‚́C‘¼‚̃IƒuƒWƒFƒNƒg‚ÌID”ԍ†‚Æ
257d•¡‚ª‚È‚­CID”ԍ†‚ª˜A‘±‚·‚é‚悤‚ÉŠ„‚è•t‚¯‚éD
258
259ƒRƒ“ƒtƒBƒMƒ…
260ƒŒ[ƒ^‚́CƒIƒuƒWƒFƒNƒg‚ÉŠ„‚è•t‚¯‚éID”ԍ†‚ðŽw’è‚·‚邽‚ß‚Ì
261ƒIƒvƒVƒ‡ƒ“i--id-input-filej•À‚Ñ‚É ID”ԍ†‚ðŠ„‚è•t‚¯‚½ƒIƒuƒWƒFƒNƒg‚Ì–¼‘O
262‚¨‚æ‚ÑŠ„‚è•t‚¯‚½ID”ԍ†‚Ì‘g‚ðƒtƒ@ƒCƒ‹‚ɏo—Í‚·‚邽‚߂̃IƒvƒVƒ‡ƒ“
263i--id-output-filej‚ðŽ‚ÂD‚µ‚©‚µCSSPƒJ[ƒlƒ‹‚Å‚Í‚±‚ê‚ç‚̃IƒvƒVƒ‡ƒ“‚Ì
264Žg—p‚ðŒ´‘¥‚Æ‚µ‚Ä ***‹ÖŽ~*** ‚·‚éi——R‚ÍŒãqjD
265
266**************************************************************************
267y——Rz
268SSPƒJ[ƒlƒ‹‚̏ꍇCuƒ^ƒXƒNID‚̏ꍇ‚ÉŒÀ‚èvƒRƒ“ƒtƒBƒMƒ…
269ƒŒ[ƒ^‚Í
270--id-input-file ‚ÌŽw’è“à—e‚𖳎‹‚·‚éD‚»‚ê‚́CCRE_TSK‚ÅŽw’肵‚½‹N“®Žž—Dæ
271“x‚̐ݒè’l‚ª—Dæ‚³‚ê‚邽‚ß‚Å‚ ‚éD‚Ü‚½C--id-output-file ‚ÅŽw’肵‚½ƒtƒ@ƒC
272ƒ‹‚ւ̏o—Í“à—e‚à --id-input-file ‚ÅŽw’肵‚½ƒ^ƒXƒNID‚Ì’l‚ª‚»‚̂܂܏o—Í‚³‚ê
273‚éD‚»‚̏o—Í“à—e‚Í kernel_cfg.h ‚֏o—Í‚³‚ê‚éƒ^ƒXƒNID‚Ì’l‚Æ‚Í–³ŠÖŒW‚Å‚ ‚éD
274]‚Á‚āC¬—‚ª¶‚¶‚é‹°‚ꂪ‚ ‚邱‚Æ‚©‚çCSSPƒJ[ƒlƒ‹‚Å‚Í --id-input-file
275‚¨‚æ‚Ñ --id-output-file ƒIƒvƒVƒ‡ƒ“‚ðŽw’肵‚Ä‚Í‚È‚ç‚È‚¢D
276
277–{—ˆ‚È‚ç‚΁C--kernel=ssp ‚¨‚æ‚Ñ --id-input-file ‚𓯎ž‚ÉŽw’肵‚½ê‡‚É
278ƒRƒ“ƒtƒBƒMƒ…
279ƒŒ[ƒVƒ‡ƒ“ƒGƒ‰[‚Æ‚·‚ׂ«‚Æ‚±‚ë‚Å‚ ‚éD‚µ‚©‚µC‚±‚ê‚ç‚̃IƒvƒVƒ‡
280ƒ“‚ɑ΂·‚鏈—‚Í‘S‚ăRƒ“ƒtƒBƒMƒ…
281ƒŒ[ƒ^“à•”‚ÅŽÀŽ{‚³‚êCƒeƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹
282(kernel.tf)‚ł͏ˆ—‚·‚邱‚Æ‚ª‚Å‚«‚È‚¢DŒ»Žž“_‚ł̓Rƒ“ƒtƒBƒMƒ…
283ƒŒ[ƒ^‚̑Ήž
284‚ɂ‚¢‚Ä–¢’è‚Å‚ ‚邽‚ߎb’è“I‚É‚±‚̂悤‚Ȉµ‚¢‚Æ‚µ‚Ä‚¢‚éD
285**************************************************************************
286
287ŠeƒJ[ƒlƒ‹ƒIƒuƒWƒFƒNƒg‚ÉŠÖ‚·‚é’è‹`‚Ì•W€“I‚ȍ\¬‚́CŽŸ‚Ì’Ê‚è‚Å‚ ‚éDƒI
288ƒuƒWƒFƒNƒg‚É‚æ‚Á‚Ä—áŠO‚ª‚ ‚éê‡‚ɂ́CƒIƒuƒWƒFƒNƒg–ˆ‚̍€‚Åà–¾‚·‚éD
289
290(a) Å‘å‚̃IƒuƒWƒFƒNƒgID‚̕ϐ”‚Ì’è‹`
291
292Å‘å‚̃IƒuƒWƒFƒNƒgID‚ðŽ‚Â•Ï”‚Ì’è‹`‚𐶐¬‚·‚éD‹ï‘Ì“I‚ɂ́CƒIƒuƒWƒFƒN
293ƒg‚̏ȗª‹L†‚ðuXXX^xxxv‚Æ‚·‚é‚ƁCŽŸ‚̂悤‚ȍs‚𐶐¬‚·‚éD
294
295const ID _kernel_tmax_xxxid = (TMIN_XXXID + TNUM_XXXID - 1);
296
297(b) ƒIƒuƒWƒFƒNƒg‚É•K—v‚ȃƒ‚ƒŠ—̈æ‚Ì’è‹`
298
299ƒIƒuƒWƒFƒNƒg‚É‚æ‚Á‚ẮCƒIƒuƒWƒFƒNƒg‚É•K—v‚ȃƒ‚ƒŠ—̈æ‚Ì’è‹`‚𐶐¬‚·‚éD
300‹ï‘Ì“I‚ɂ́CƒIƒuƒWƒFƒNƒg–ˆ‚̍€‚Åà–¾‚·‚éD
301
302(c) ƒIƒuƒWƒFƒNƒg‚̏‰Šú‰»ƒuƒƒbƒN‚Ì’è‹`
303
304ƒIƒuƒWƒFƒNƒg‚̏‰Šú‰»ƒuƒƒbƒN‚Ì’è‹`‚𐶐¬‚·‚éD‹ï‘Ì“I‚ɂ́C
305 EƒIƒuƒWƒFƒNƒg‚̏ȗª‹L†‚ðuXXX^xxxv
306 E‘®«€–ڂ̃f[ƒ^Œ^‚ðuYYYv
307 E‘®«€–Ú‚Ì–¼Ì‚ðuzzzv
308‚Æ‚·‚é‚ƁCƒIƒuƒWƒFƒNƒg‚Ì‘®«€–Ú–ˆ‚ÉŽŸ‚̂悤‚ȍs‚𐶐¬‚·‚éD
309
310const YYY _kernel_xxxinib_zzz[TNUM_XXXID] = {
311 <ƒIƒuƒWƒFƒNƒgID‚ª1‚̃IƒuƒWƒFƒNƒg‚ɑ΂·‚é zzz ‚̏‰Šú‰»î•ñ>,
312 <ƒIƒuƒWƒFƒNƒgID‚ª2‚̃IƒuƒWƒFƒNƒg‚ɑ΂·‚é zzz ‚̏‰Šú‰»î•ñ>,
313 cc
314 <ƒIƒuƒWƒFƒNƒgID‚ªTNUM_XXXID‚̃IƒuƒWƒFƒNƒg‚ɑ΂·‚é zzz ‚̏‰Šú‰»î•ñ>,
315};
316
317ƒIƒuƒWƒFƒNƒg‚̏‰Šú‰»î•ñ‚ÌŒ`Ž®‚́CƒIƒuƒWƒFƒNƒg‚¨‚æ‚Ñ‘®«€–Ú–ˆ‚ɈقȂéD
318‹ï‘Ì“I‚ɂ̓IƒuƒWƒFƒNƒg–ˆ‚̍€‚Åà–¾‚·‚éD
319
320(d) ƒIƒuƒWƒFƒNƒg‚̃Rƒ“ƒgƒ[ƒ‹ƒuƒƒbƒN‚Ì’è‹`
321
322ƒIƒuƒWƒFƒNƒg‚̃Rƒ“ƒgƒ[ƒ‹ƒuƒƒbƒN‚Ì’è‹`‚𐶐¬‚·‚éD‹ï‘Ì“I‚ɂ́C
323 EƒIƒuƒWƒFƒNƒg‚̏ȗª‹L†‚ðuXXX^xxxv
324 E‘®«€–ڂ̃f[ƒ^Œ^‚ðuYYYv
325 E‘®«€–Ú‚Ì–¼Ì‚ðuzzzv
326‚Æ‚·‚é‚ƁCƒIƒuƒWƒFƒNƒg‚Ì‘®«€–Ú–ˆ‚ÉŽŸ‚̂悤‚ȍs‚𐶐¬‚·‚éD
327
328YYY _kernel_xxxcb_zzz[TNUM_XXXID];
329
330ƒIƒuƒWƒFƒNƒg‚̃Rƒ“ƒgƒ[ƒ‹ƒuƒƒbƒN‚ÌŒ`Ž®‚́CƒIƒuƒWƒFƒNƒg‚¨‚æ‚Ñ‘®«€–Ú–ˆ‚ɈقȂéD
331‹ï‘Ì“I‚ɂ̓IƒuƒWƒFƒNƒg–ˆ‚̍€‚Åà–¾‚·‚éD
332
333
334(5-1) ƒ^ƒXƒN‚ÉŠÖ‚·‚é’è‹`
335
336SSPƒJ[ƒlƒ‹‚́Cƒ^ƒXƒN‚ªˆê‚‚à‚È‚¢ƒP[ƒX‚ɑΉž‚µ‚Ä‚¢‚È‚¢‚½‚߁Cƒ^ƒXƒN‚ÉŠÖ‚·‚é
337’è‹`‚Í•K‚¸¶¬‚µ‚È‚¯‚ê‚΂Ȃç‚È‚¢D
338
339ƒ^ƒXƒN‚̏ȗª‹L†‚́uTSKvutskv‚Å‚ ‚éD
340‚½‚¾‚µCƒ^ƒXƒN‰Šú‰»ƒuƒƒbƒN‚̕ϐ”–¼‚Í _kernel_tinib_<‘®«€–Ú–¼> ‚Å‚ ‚éD
341iuTSK^tskv‚ɑウ‚āuT^tv‚ð—p‚¢‚Ä‚¢‚éjD
342ƒ^ƒXƒNƒRƒ“ƒgƒ[ƒ‹ƒuƒƒbƒN‚Í‘¶Ý‚µ‚È‚¢D
343
344ƒ^ƒXƒN‰Šú‰»ƒuƒƒbƒN‚ɂ́CuCRE_TSKvÃ“IAPI‚ÅŽw’肳‚ê‚éî•ñ‚ɉÁ‚¦‚āC
345uDEF_EPRvÃ“IAPI‚ÅŽw’肳‚ê‚éî•ñ‚ðŠÜ‚ß‚éD
346
347ˆÈ‰º‚ł́CƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
348ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹‚ÉŽŸ‚̐ÓIAPI‚ªŠÜ‚Ü‚ê‚Ä
349‚¢‚鎞‚ɐ¶¬‚·‚ׂ«î•ñ‚ɂ‚¢‚ďq‚ׂéD
350
351CRE_TSK(tskid, { tskatr, exinf, task, itskpri, stksz, stk });
352DEF_EPR(tskid, { exepri });
353
354¦ ˆÈ~‚̏‰Šú‰»î•ñ‚Ì”z—ñ‚ÉŠi”[‚³‚ê‚鏇˜‚́C‹N“®Žž—Dæ“x‚̍‚‚¢‡‚Æ‚È‚éD
355¦ ‚È‚º‚È‚çCƒ^ƒXƒNID ‚ª‹N“®Žž—Dæ“x‚̍‚‚¢‡”Ô‚ÅŠ„‚è“–‚Ä‚ç‚ê‚é‚©‚ç‚Å‚ ‚éD
356
357(5-1-1) ƒ^ƒXƒN‚̏‰Šú‰»î•ñiƒ^ƒXƒN‘®«j
358
359ƒ^ƒXƒN‘®«‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
360
361const ATR _kernel_tinib_tskatr[TNUM_TSKID] = {(tskatr)};
362
363(5-1-2) ƒ^ƒXƒN‚̏‰Šú‰»î•ñiŠg’£î•ñj
364
365ƒ^ƒXƒN‚ÌŠg’£î•ñ‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
366
367const intptr_t _kernel_tinib_exinf[TNUM_TSKID] = {(intptr_t)(exinf)};
368
369(5-1-3) ƒ^ƒXƒN‚̏‰Šú‰»î•ñi‹N“®”Ô’nj
370
371ƒ^ƒXƒN‚Ì‹N“®”Ô’n‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
372
373const TASK _kernel_tinib_task[TNUM_TSKID] = {(task)};
374
375(5-1-4) ƒ^ƒXƒN‚̏‰Šú‰»î•ñiŽÀsŽž—Dæ“xj
376
377ƒ^ƒXƒN‚ÌŽÀsŽž—Dæ“x‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
378iŽÀÛ‚ɂ͉üs‚³‚ꂸC1s‚ŏo—Í‚³‚ê‚éj
379
380const TASK _kernel_tinib_epriority[TNUM_TSKID] = {
381 INT_PRIORITY(ŽÀsŽž—Dæ“x)};
382
383ŽÀsŽž—Dæ“x‚Ì’l‚Í CRE_TSK ‚Ì‹N“®Žž—Dæ“x(itskpri) ‚¨‚æ‚Ñ
384DEF_EPR ‚ÌŽÀsŽž—Dæ“x(exepri) ‚̐ݒè’l‚ðŒ³‚ÉŽZo‚³‚ê‚éD
385ŽZo•û–@‚ɂ‚¢‚Ä‚Í(5-1-6)‚ÉŒãq‚·‚éD
386
387(5-1-5) ready_primap ‚̏‰Šú’l‚Ì’è‹`
388
389ƒ^ƒXƒN‚ɑ΂µ‚ẮCƒrƒbƒgƒ}ƒbƒv ready_primap ‚̏‰Šú’lî•ñ‚𐶐¬‚·‚éD
390ƒ^ƒXƒN‘®«‚̐ݒè’l‚©‚çˆêˆÓ‚É’è‚߂邱‚Æ‚ª‚Å‚«‚é‚©‚ç‚Å‚ ‚éD
391
392‹ï‘Ì“I‚ɂ͈ȉº‚̂悤‚È’è‹`‚𐶐¬‚·‚éD
393
394const uint_t _kernel_init_rdypri = <ready_primap‚̏‰Šú’l>;
395
396‚±‚±‚Å ready_primap ‚̏‰Šú’l‚́Cƒ^ƒXƒN‘®«(tskatr)‚Ì’l‚©‚çŽZo‚³‚ê‚éD
397
398•Ï” _kernel_init_rdypri ‚ÌŠeƒrƒbƒg‚Í‚»‚ꂼ‚ê‚̃^ƒXƒN‚ɑΉž‚·‚éD
399ƒ^ƒXƒNID‚ª1‚̃^ƒXƒN‚͍ʼnºˆÊƒrƒbƒg(LSB)‚ɑΉž‚¯‚ç‚ê‚Ä‚¨‚èC
400ƒ^ƒXƒNID‚Ì’l‚ª1‚‘‚¦‚é–ˆ‚É1‚‚ˆÊ‚̃rƒbƒg‚ª‚»‚ꂼ‚ê‘Ήž‚¯‚ç‚ê‚éD
401—Ⴆ‚΁Cƒ^ƒXƒNID‚ª4‚̃^ƒXƒN‚͍ʼnºˆÊ‚©‚琔‚¦‚Ä4”Ԗڂ̃rƒbƒg‚ª‘Ήž‚·‚éD
402
403ƒ^ƒXƒN‘®«‚Æ‚µ‚Ä TA_ACT ‚ðŽ‚Âƒ^ƒXƒN‚́C‚»‚̃^ƒXƒN‚ɑΉž‚·‚éƒrƒbƒg‚ª
4041‚É‚È‚éDTA_ACT ‚ðŽ‚½‚È‚¢ê‡‚͑Ήž‚·‚éƒrƒbƒg‚ª0‚É‚È‚éD
405
406(5-1-6) —Dæ“x‚Ì•\Œ»
407
408—Dæ“x‚Ì’l‚́CƒRƒ“ƒtƒBƒMƒ…
409ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹‚Ì CRE_TSK ‹y‚Ñ DEF_EPR ‚É‚Ä
410Žw’肵‚½’l‚ðŒ³‚ÉCƒRƒ“ƒtƒBƒMƒ…
411ƒŒ[ƒ^‚ªŽ©“®“I‚ÉŠ„‚è“–‚Ä‚éD
412’l‚Ì”ÍˆÍ‚Í TMIN_TPRI(=1) ‚©‚ç TMAX_TPRI ‚͈̔͂̒l‚ð‚Æ‚éD
413
414‚Ü‚½CƒRƒ“ƒtƒBƒMƒ…
415ƒŒ[ƒ^‚É‚æ‚芄‚è“–‚Ä‚ç‚ê‚é—Dæ“x‚Ì’l‚Ƃ͕ʂɁCˆ—Œø—¦‚Ì
416ŠÏ“_‚©‚çƒvƒƒOƒ‰ƒ€’†‚ÅŽg—p‚³‚ê‚é—Dæ“x‚Ì“à•”•\Œ»‚ª‚ ‚éD
417“à•”•\Œ»‚Ì’l‚Í 0 ‚©‚ç (TMAX_TPRI-TMIN_TPRI) ‚͈̔͂̒l‚ð‚Æ‚éD
418—Dæ“x‚Æ‚»‚Ì“à•”•\Œ»‚Æ‚ÌŠÔ‚É‚Í (“à•”•\Œ» = —Dæ“x - TMIN_TPRI)‚ÌŠÖŒW‚ª‚ ‚éD
419
420ƒ^ƒXƒN‚Ì‹N“®Žž—Dæ“x‚́CCRE_TSK ‚ÅŽw’肵‚½‹N“®Žž—Dæ“x‚̍‚‚¢‡‚Ɂi’l‚Æ‚µ‚Ä‚Í
421¬‚³‚¢‡‚ɁjCTMIN_TPRI(=1) ‚©‚ç‚Í‚¶‚Ü‚é˜A‘±‚µ‚½’l‚ªŠ„‚è“–‚Ä‚ç‚ê‚éD
422‚‚܂èCƒ^ƒXƒN‚Ì‹N“®Žž—Dæ“x‚Ì’l‚̓^ƒXƒNID ‚É“™‚µ‚¢D
423
424ƒ^ƒXƒN‚ÌŽÀsŽž—Dæ“x‚Ì’l‚́CˆÈ‰º‚Ì•û–@‚ÅŽZo‚³‚ê‚éD
425
426i‚Pj“–ŠYƒ^ƒXƒN‚ɑ΂µ DEF_EPR ‚ÅŽÀsŽž—Dæ“x‚ð’è‹`‚µ‚È‚¢ê‡
427
428“–ŠYƒ^ƒXƒN‚ɑ΂µ DEF_EPR ‚ÅŽÀsŽž—Dæ“x‚ð’è‹`‚µ‚È‚¢ê‡C
429‹N“®Žž—Dæ“x‚Ì’l‚Æ“¯‚¶’l‚ðŽÀsŽž—Dæ“x‚Ì’l‚Æ‚·‚éD
430
431i‚Qj“–ŠYƒ^ƒXƒN‚ɑ΂µ DEF_EPR ‚ÅŽÀsŽž—Dæ“x‚ð’è‹`‚·‚éê‡
432
433“–ŠYƒ^ƒXƒN‚ɑ΂µ DEF_EPR ‚ÅŽÀsŽž—Dæ“x‚ð’è‹`‚µ‚½ê‡C
434DEF_EPR ‚ÅŽw’肵‚½ŽÀsŽž—Dæ“x‚̐ݒè’lC•À‚тɁC‘S‚Ẵ^ƒXƒN‚ɑ΂·‚é
435‹N“®Žž—Dæ“x‚̐ݒè’l‚¨‚æ‚уRƒ“ƒtƒBƒMƒ…
436ƒŒ[ƒVƒ‡ƒ“Œ‹‰Ê‚Æ‚µ‚Ä“¾‚ç‚ê‚é‹N“®Žž—Dæ“x
437‚Ì’l‚ð‚à‚ƂɁCŽÀsŽž—Dæ“x‚Ì’l‚ðŽZo‚·‚éD
438
439ŽÀsŽž—Dæ“x‚Ì’l‚ðŽZo‚·‚é•û–@‚́CuŽÀs’†‚̃^ƒXƒN‚ªƒvƒŠƒGƒ“ƒvƒg‚³‚ê‚é/‚³‚ê‚È‚¢v
440‚Æ‚¢‚¤ŠÖŒW‚ª•Û‘¶‚³‚ê‚é”͈͂œKØ‚È’l‚ªŽZo‚³‚ê‚邱‚Æ‚ðˆÓ}‚µ‚½‚à‚̂ŁC
441‹ï‘Ì“I‚Ȏ菇‚ÍŽŸ‚̂悤‚É‚È‚éD
442
443yŽÀsŽž—Dæ“x‚ÌŽZoŽè‡ ¦‚±‚ê‚ð‘S‚Ẵ^ƒXƒN‚ɑ΂µ‚čs‚¤z
444
445(1) ‚ ‚éƒ^ƒXƒN‚ð‘I‚Ô(T1‚Æ‚·‚é)
446(2) T1 ‚ÌŽÀsŽž—Dæ“x‚̐ݒè’l‚Æ“¯‚¶C‚Ü‚½‚́C‚»‚ê‚æ‚è‚à’á‚¢(’l‚Æ‚µ‚Ä‚Í
447‘å‚«‚¢)‹N“®Žž—Dæ“x‚̐ݒè’l‚ðŽ‚Âƒ^ƒXƒN‚̏W‡‚Ì’†‚ŁC‹N“®Žž—Dæ“x‚Ì
448Ý’è’l‚ªÅ‚à‚‚¢i’l‚Æ‚µ‚Ä‚ÍÅ‚à¬‚³‚¢jƒ^ƒXƒN‚ð’T‚·(T2)
449(3) T2 ‚Ì‹N“®Žž—Dæ“x‚Ì’l‚ð T1 ‚ÌŽÀsŽž—Dæ“x‚Ì’l‚Æ‚·‚éD
450
451—áj
452CRE_TSK(TASK1, { TA_NULL, 1, task1, 2, 10, NULL });
453CRE_TSK(TASK2, { TA_NULL, 3, task2, 6, 30, NULL });
454CRE_TSK(TASK3, { TA_NULL, 5, task3, 4, 50, NULL });
455CRE_TSK(TASK4, { TA_ACT, 7, task4, 8, 100, NULL });
456
457DEF_IPR(TASK1, { 1 } );
458DEF_IPR(TASK2, { 5 } );
459DEF_IPR(TASK3, { 3 } );
460DEF_IPR(TASK4, { 4 } );
461
462Œ‹‰Ê‚ÍŽŸ‚̂悤‚É‚È‚éF
463
464y‹N“®Žž—Dæ“xz
465 TASK1FÝ’è’l=2 ¨ (Š„‚è“–‚Ä‚ç‚ê‚é)‹N“®Žž—Dæ“x=1
466 TASK2FÝ’è’l=6 ¨ (Š„‚è“–‚Ä‚ç‚ê‚é)‹N“®Žž—Dæ“x=3
467 TASK3FÝ’è’l=4 ¨ (Š„‚è“–‚Ä‚ç‚ê‚é)‹N“®Žž—Dæ“x=2
468 TASK4FÝ’è’l=8 ¨ (Š„‚è“–‚Ä‚ç‚ê‚é)‹N“®Žž—Dæ“x=4
469
470 ‹N“®Žž—Dæ“x‚̍‚‚¢‡‚É•À‚Ñ‘Ö‚¦‚é‚Æ
471 TASK1FÝ’è’l=2 ¨ ‹N“®Žž—Dæ“x=1
472 TASK3FÝ’è’l=4 ¨ ‹N“®Žž—Dæ“x=2
473 TASK2FÝ’è’l=6 ¨ ‹N“®Žž—Dæ“x=3
474 TASK4FÝ’è’l=8 ¨ ‹N“®Žž—Dæ“x=4
475
476yŽÀsŽž—Dæ“xz
477 TASK1FÝ’è’l=1
478 TASK3FÝ’è’l=3
479 TASK2FÝ’è’l=5
480 TASK4FÝ’è’l=4
481
482E‚½‚ß‚µ‚É TASK4 ‚̏ꍇ‚ÌŽÀsŽž—Dæ“x‚Ì’l‚ðŽZo‚µ‚Ä‚Ý‚éD
483 ETASK4 ‚ÌŽÀsŽž—Dæ“x‚̐ݒè’l(4)‚Æ“¯‚¶‚Ü‚½‚Í‚»‚ê‚æ‚è‚à’á‚¢‹N“®Žž
484 @—Dæ“x‚̐ݒè’l‚ð‚à‚ƒ^ƒXƒN‚̏W‡ = {TASK2,TASK3,TASK4}
485 Eã‹Lƒ^ƒXƒN‚̏W‡‚Ì’†‚ōłà‹N“®Žž—Dæ“x‚̐ݒè’l‚ª‚‚¢‚à‚Ì = TASK3
486 Eã‹Lƒ^ƒXƒN‚Ì‹N“®Žž—Dæ“x‚Ì’l = 2
487 E]‚Á‚ÄTASK4 ‚ÌŽÀsŽž—Dæ“x‚Ì’l‚Í 2
488
489E“¯—l‚ɁCTASK3 ‚̏ꍇ‚́D
490 ETASK3 ‚ÌŽÀsŽž—Dæ“x‚̐ݒè’l(3)‚Æ“¯‚¶‚Ü‚½‚Í‚»‚ê‚æ‚è‚à’á‚¢‹N“®Žž
491 @—Dæ“x‚̐ݒè’l‚ð‚à‚ƒ^ƒXƒN‚̏W‡ = {TASK2,TASK3,TASK4}
492 Eã‹Lƒ^ƒXƒN‚̏W‡‚Ì’†‚ōłà‹N“®Žž—Dæ“x‚̐ݒè’l‚ª‚‚¢‚à‚Ì = TASK3
493 Eã‹Lƒ^ƒXƒN‚Ì‹N“®Žž—Dæ“x‚Ì’l = 2
494 E]‚Á‚ÄTASK3 ‚ÌŽÀsŽž—Dæ“x‚Ì’l‚Í 2
495
496ŽÀsŽž—Dæ“x‚ɑ΂·‚鏉Šú‰»î•ñ‚Ì kernel_cfg.c ‚Ö‚ÌŒ‹‰Ê‚ÍŽŸ‚̂悤‚É‚È‚éD
497ŽÀÛ‚Í1s‚Å•\Œ»‚³‚ê‚éD‚Ü‚½C”z—ñ‚Ö‚ÌŠi”[‡˜‚Í TASK1, TASK3, TASK2,
498TASK4 ‚̏‡˜‚ÅŠi”[‚³‚ê‚邱‚Æ‚É’ˆÓ‚·‚éD
499‚¿‚Ȃ݂ɁCINT_PRIORITY ƒ}ƒNƒ‚Í—Dæ“x‚Ì’l‚ð‚»‚Ì“à•”•\Œ»‚É•ÏŠ·‚·‚éƒ}ƒNƒ‚Å
500‚ ‚èCtask.h ‚Å’è‹`‚³‚ê‚Ä‚¢‚éD
501
502const uint_t _kernel_tinib_epriority[TNUM_TSKID] =
503 {INT_PRIORITY(1),INT_PRIORITY(2),INT_PRIORITY(3),INT_PRIORITY(2)};
504
505(5-1-7) ƒXƒ^ƒbƒN—̈æÝ’è
506
507SSPƒJ[ƒlƒ‹‚ł́Cƒ^ƒXƒN‚ðŠÜ‚Þ‘S‚Ă̏ˆ—’PˆÊ‚ª“¯‚¶ƒXƒ^ƒbƒN—̈æ‚ð‹¤—p‚·‚é
508‚悤‚ɐ݌v‚³‚ê‚Ä‚¢‚éD
509‹¤—p‚³‚ê‚éƒXƒ^ƒbƒN—̈æ‚Ì‚±‚Æ‚ðu‹¤—LƒXƒ^ƒbƒN—̈æv‚ƌĂԁD
510‹¤—LƒXƒ^ƒbƒN—̈æ‚Ì’è‹`‚Í DEF_STK ‚ð—p‚¢‚čs‚¤DÚ‚µ‚­‚Í(9)‚ðŽQÆ‚Ì‚±‚ƁD
511
512ƒRƒ“ƒtƒBƒMƒ…
513ƒŒ[ƒ^‚Í‹¤—LƒXƒ^ƒbƒN—̈æ‚Ì‚ÝŠm•Û‚µCƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒgê—p‚Ì
514ƒXƒ^ƒbƒN—̈æ‚ÍŠm•Û‚µ‚È‚¢D
515‚±‚Ì‚½‚߁CCRE_TSK ‚ł͐擪”Ô’n stk ‚Æ‚µ‚Ä NULL ‚̂ݎ󂯕t‚¯‚éD
516NULL ˆÈŠO‚Ì’l‚ðŽw’肵‚½ê‡CƒGƒ‰[‚Æ‚È‚éD
517
518‚Ü‚½CCRE_TSK ‚ÅŽw’è‚·‚éƒ^ƒXƒN‚̃Xƒ^ƒbƒNƒTƒCƒY stksz ‚Ì’l‚́C
519DEF_STK ‚ð—p‚¢‚È‚¢ê‡‚É‚Í‹¤—LƒXƒ^ƒbƒN—̈æ‚̃TƒCƒY‚ðŒˆ’è‚·‚邽‚ß‚É—p‚¢‚ç‚êC
520DEF_STK ‚ð—p‚¢‚éê‡‚É‚Í DEF_STK ‚ÅŽw’肵‚½‹¤—LƒXƒ^ƒbƒN—̈æ‚̃TƒCƒY‚ð
521ƒ`ƒFƒbƒN‚·‚邽‚ß‚É—p‚¢‚ç‚ê‚éD¦ (9-4) ‚àŽQÆ‚Ì‚±‚ƁD
522
523‘Sƒ^ƒXƒN‚É‚æ‚éƒXƒ^ƒbƒNŽg—p—ʁi‚̐„’è’lj‚́CCRE_TSK ‚ÅŽw’è‚·‚é
524ƒXƒ^ƒbƒNƒTƒCƒY stksz, ‚¨‚æ‚Ñ‹N“®Žž—Dæ“x itskpriC‚È‚ç‚Ñ‚É DEF_EPR ‚Å
525Žw’è‚·‚éŽÀsŽž—Dæ“x exepri ‚©‚çŽZo‚³‚ê‚éDŽZoŽè‡‚ɂ‚¢‚Ä‚ÍŽŸß‚Åà–¾‚·‚éD
526
527(5-1-8) ‘Sƒ^ƒXƒN‚É‚æ‚éƒXƒ^ƒbƒNŽg—p—Ê‚ÌŽZo•û–@
528
529‘Sƒ^ƒXƒN‚̃Xƒ^ƒbƒNŽg—p—ʂɑ΂·‚éŒvŽZ‚ÌŠî–{“I‚ȍl‚¦•û‚́C‚»‚ꂼ‚ê‚Ì—Dæ“x‚²‚ƂɁC
530“¯‚¶—Dæ“x‚ð‚à‚ƒ^ƒXƒN‚Ì’†‚ōłàƒXƒ^ƒbƒNŽg—p—Ê‚ª‘å‚«‚¢‚à‚Ì‚ð‘I‚сC‚»‚ê‚ç‚Ì
531ƒXƒ^ƒbƒNŽg—p—Ê‚ð‚·‚×‚Ä‰ÁŽZ‚µ‚½‚à‚̂ƍl‚¦‚邱‚Æ‚Å‚ ‚éDŽÀÛ‚ɂ̓vƒƒOƒ‰ƒ€‚É‚æ‚è
532‚»‚ê‚æ‚菭‚È‚­‚È‚éƒP[ƒX‚à‘¶Ý‚µ“¾‚邪CŒ»Ý‚ÌŽÀ‘•‚ł͍l‚¦•û‚ð’Pƒ‰»‚µ‚Ä‚¢‚éD
533
534SSPƒJ[ƒlƒ‹‚ÌŽd—l‚ł́C‚ЂƂ‚̋N“®Žž—Dæ“x‚ɂ‚«“o˜^‰Â”\‚ȃ^ƒXƒN‚Í
535‚Xˆê‚‚ł ‚éD‚»‚Ì‚½‚߁CDEF_EPR ‚É‚æ‚èŽÀsŽž—Dæ“x‚ðÝ’肵‚È‚¢ê‡C
536‚·‚È‚í‚¿C‘S‚Ẵ^ƒXƒN‚ÌŽÀsŽž—Dæ“x‚ª‚»‚ꂼ‚ê‚Ì‹N“®Žž—Dæ“x‚É“™‚µ‚¢
537ê‡CŠeƒ^ƒXƒN‚̃Xƒ^ƒbƒNŽg—p—Ê‚ð’Pƒ‚ɉÁŽZ‚µ‚½‚à‚Ì‚ªC‘Sƒ^ƒXƒN‚É‚æ‚é
538ƒXƒ^ƒbƒNŽg—p—Ê‚Æ‚È‚éD
539
540‚»‚ê‚ɑ΂µCDEF_EPR ‚ð—p‚¢‚Ä“Á’è‚̃^ƒXƒN‚ɑ΂·‚éŽÀsŽž—Dæ“x‚ðŽw’肵C
541“–ŠYƒ^ƒXƒNŽÀs’†‚Ì—Dæ“x‚ðˆø‚«ã‚°‚é‚悤‚ɐݒ肵‚½ê‡C–{—ˆ‚È‚ç‚΃vƒŠ
542ƒGƒ“ƒvƒg‚³‚ê‚é‚Í‚¸‚Ì‚à‚Ì‚ª‚³‚ê‚È‚­‚È‚éƒP[ƒX‚ª¶‚¶CŒ‹‰Ê‚Æ‚µ‚Ä‘Sƒ^ƒXƒN‚Ì
543ƒXƒ^ƒbƒNŽg—p—Ê‚ð­‚È‚­‚Å‚«‚éê‡‚ª‚ ‚éD
544
545ŽÀsŽž—Dæ“x‚ðl—¶‚µ‚½u‘Sƒ^ƒXƒN‚É‚æ‚éƒXƒ^ƒbƒNŽg—p—ʁv‚ÌŽZoŽè‡‚Í
546ŽŸ‚̂悤‚É‚È‚éi¦j
547(a) ‚ ‚éƒ^ƒXƒN‚©‚çŽÀsŠJŽn‚µC‘¼‚̂ǂ̂悤‚ȃ^ƒXƒN‚ɃvƒŠƒGƒ“ƒvƒg‚³‚ê‚é‚©C
548 ‚»‚µ‚ÄŒ‹‰Ê“I‚É‚Ç‚¤‚¢‚¤ƒvƒƒOƒ‰ƒ€‚ÌŽÀsŒo˜H‚ª‘¶Ý‚µ“¾‚é‚©‚ð‘S‚Ä—ñ‹“‚·‚éD
549(b) ‚»‚ꂼ‚ê‚̏ꍇ‚́u‘Sƒ^ƒXƒN‚É‚æ‚éƒXƒ^ƒbƒNŽg—p—ʁv‚ð‹‚ß‚éD
550(c) ‹‚ß‚½’l‚Ì’†‚̍őå’l‚ð‘I‚ԁD
551
552¦ ŽÀ‘•‚ł́C•s—v‚ȏˆ—‚̏ȗª“™‚às‚Á‚Ä‚¢‚邪C‚±‚±‚Å‚ÍŠî–{“I‚ȍl‚¦•û
553 ‚Ì‚Ý‚ðŽ¦‚·D
554
555ŽZoŽè‡‚ð‹ï‘Ì“I‚È—á‚ð—p‚¢‚Äà–¾‚·‚éD
556—á‚Æ‚µ‚Đæ‚Ì (5-1-6) ‚Ì—á‚ð—p‚¢‚éD
557‰º‚̎菇 (a), (b), (c) ‚͏ã‚É‹“‚°‚½Še€–ڂɑΉž‚µ‚Ä‚¢‚éD
558
559CRE_TSK(TASK1, { TA_NULL, 1, task1, 2, 10, NULL });
560CRE_TSK(TASK2, { TA_NULL, 3, task2, 6, 30, NULL });
561CRE_TSK(TASK3, { TA_NULL, 5, task3, 4, 50, NULL });
562CRE_TSK(TASK4, { TA_ACT, 7, task4, 8, 100, NULL });
563
564DEF_IPR(TASK1, { 1 } );
565DEF_IPR(TASK2, { 5 } );
566DEF_IPR(TASK3, { 3 } );
567DEF_IPR(TASK4, { 4 } );
568
569(a) ‚ ‚éƒ^ƒXƒN(TASKn, n = 1,2,3,4)‚ð‘I‘ð‚·‚é.
570 TASKn ‚ÌŽÀsŽž—Dæ“x‚æ‚è‚à‚‚¢‹N“®Žž—Dæ“x(’l‚Æ‚µ‚Ă͏¬‚³‚¢)‚ð‚à‚Â
571 ƒ^ƒXƒN‚̏W‡‚ð’T‚·D
572 ‚»‚µ‚āuƒvƒŠƒGƒ“ƒvƒg‚³‚ê‚éƒ^ƒXƒN¨ƒvƒŠƒGƒ“ƒvƒg‚·‚éƒ^ƒXƒNv‚Ì‘g‚ð—ñ‹“‚·‚éD
573
574ETASK1 ‚É’…
575–Ú‚·‚é‚ƁC‚±‚ê‚ðƒvƒŠƒGƒ“ƒvƒg‰Â”\‚ȃ^ƒXƒN‚Í‘¶Ý‚µ‚È‚¢D
576ETASK2 ‚É’…
577–Ú‚·‚é‚ƁCŽÀs’†‚Í—Dæ“x 5 ‚É‚È‚èC‚±‚ê‚ðƒvƒŠƒGƒ“ƒvƒg‰Â”\‚È
578@ƒ^ƒXƒN‚Í TASK1 ‚¨‚æ‚Ñ TASK3D
579ETASK3 ‚É’…
580–Ú‚·‚é‚ƁCŽÀs’†‚Í—Dæ“x 3 ‚É‚È‚èC‚±‚ê‚ðƒvƒŠƒGƒ“ƒvƒg‰Â”\‚È
581@ƒ^ƒXƒN‚Í TASK1 ‚¾‚¯D
582ETASK4 ‚É’…
583–Ú‚·‚é‚ƁCŽÀs’†‚Í—Dæ“x 4 ‚É‚È‚èC‚±‚ê‚ðƒvƒŠƒGƒ“ƒvƒg‰Â”\‚È
584@ƒ^ƒXƒN‚Í TASK1 ‚¾‚¯D
585
586‚µ‚½‚ª‚Á‚Ä‚±‚±‚ł́CŽŸ‚Ì‘g‚ª“¾‚ç‚ê‚éD
587 TASK2 ¨ TASK1
588 TASK2 ¨ TASK3
589 TASK3 ¨ TASK1
590 TASK4 ¨ TASK1
591
592‘S‚­ƒvƒŠƒGƒ“ƒvƒg‚³‚ê‚È‚¢ƒP[ƒXC‚¨‚æ‚сCƒvƒŠƒGƒ“ƒvƒg‚µ‚½ƒ^ƒXƒN‚ª‚³‚ç‚É
593•Ê‚̃^ƒXƒN‚ɃvƒŠƒGƒ“ƒvƒg‚³‚ê‚éƒP[ƒX‚܂ōl—¶‚·‚é‚ƁCŒ‹‰Ê“I‚ɃvƒƒOƒ‰ƒ€‚Ì
594ŽÀsŒo˜H‚ÍŽŸ‚̂悤‚É‚È‚é‚ƍl‚¦‚ç‚ê‚éD
595
596ETASK1 ‚©‚çŽn‚Ü‚éƒP[ƒXF
597 TASK1 (ƒvƒŠƒGƒ“ƒvƒg‚³‚ꂸ‚ɏI—¹)
598
599ETASK2 ‚©‚çŽn‚Ü‚éƒP[ƒXF
600 TASK2
601 TASK2 ¨ TASK1 (TASK2‚©‚çŽÀsŠJŽn‚µ‚āCTASK1‚ɃvƒŠƒGƒ“ƒvƒg‚³‚ꂽ)
602 TASK2 ¨ TASK3
603 TASK2 ¨ TASK3 ¨ TASK1
604
605ETASK3 ‚©‚çŽn‚Ü‚éƒP[ƒXF
606 TASK3
607 TASK3 ¨ TASK1
608
609ETASK4 ‚©‚çŽn‚Ü‚éƒP[ƒXF
610 TASK4
611 TASK4 ¨ TASK1
612
613(b) ‚»‚ꂼ‚ê‚̃P[ƒX‚ŃXƒ^ƒbƒNŽg—p—Ê‚ðŒvŽZ‚·‚éD
614
615ETASK1 ‚©‚çŽn‚Ü‚éƒP[ƒXF
616 TASK1F10
617
618ETASK2 ‚©‚çŽn‚Ü‚éƒP[ƒXF
619 TASK2F30
620 TASK2 ¨ TASK1F30+10
621 TASK2 ¨ TASK3F30+50
622 TASK2 ¨ TASK3 ¨ TASK1F30+50+10
623
624ETASK3 ‚©‚çŽn‚Ü‚éƒP[ƒXF
625 TASK3F50
626 TASK3 ¨ TASK1F50+10
627
628ETASK4 ‚©‚çŽn‚Ü‚éƒP[ƒXF
629 TASK4F100
630 TASK4 ¨ TASK1F100+10
631
632(c) Å‚à’l‚ª‘å‚«‚­‚È‚éŒo˜H‚ð‘I‚ԁD
633
634‚±‚±‚Å‚Í TASK4 ¨ TASK1 ‚̏ꍇ‚ªÅ‘å‚ŁCŒ©Ï‚à‚è’l‚Í 110
635
636
637(5-1-9) ‘Sƒ^ƒXƒN‚É‚æ‚éƒXƒ^ƒbƒNŽg—p—Ê‚Ì’è‹`
638
639ƒRƒ“ƒtƒBƒMƒ…
640ƒŒ[ƒ^‚́C‘Sƒ^ƒXƒN‚É‚æ‚éƒXƒ^ƒbƒNŽg—p—Ê‚ÌŒ©Ï‚à‚è‰ß’ö‚ð
641kernel_cfg.c ‚ɃRƒƒ“ƒg‚Æ‚µ‚ďo—Í‚·‚éD
642
643/*
644 * Task Stack Size Estimation:
645 *
646 i‚±‚±‚ÉŽZo‚̉ߒö‚ªo—Í‚³‚ê‚éj
647 */
648
649‚»‚µ‚āCŽŸ‚̂悤‚ȍs‚𐶐¬‚·‚éD
650
651#define TOPPERS_TSTKSZ <‘Sƒ^ƒXƒN‚É‚æ‚éƒXƒ^ƒbƒNŽg—p—Ê‚ÌŒvŽZ’l>
652
653
654(5-1-10) ƒGƒ‰[ðŒ
655
656ƒ^ƒXƒN‚ÉŠÖ‚·‚éƒGƒ‰[ðŒ‚ÍŽŸ‚Ì’Ê‚è‚Å‚ ‚éD
657
658–ƒRƒ“ƒtƒBƒMƒ…
659ƒŒ[ƒ^–{‘Ì‚ªŒŸo‚·‚é‚à‚Ì
660Eƒ^ƒXƒN‚ªˆê‚Â‚à‘¶Ý‚µ‚È‚¢ê‡D
661E“¯‚¶tskid‚ɑ΂·‚éCRE_TSK‚ª•¡”‚ ‚éê‡iE_OBJj
662EDEF_EPR‚ɑΉž‚·‚éCRE_TSK‚ª‚È‚¢ê‡iE_NOEXSj
663E“¯‚¶tskid‚ɑ΂·‚éDEF_EPR‚ª•¡”‚ ‚éê‡iE_OBJj
664
665–ƒpƒX2‚ÅŒŸo‚·‚é‚à‚Ì
666Etskatr‚ªi[[TA_ACT]|[TA_RSTR]j‚Å‚È‚¢ê‡iE_RSATRj
667 ¦ ƒ^[ƒQƒbƒgˆË‘¶•”‚Ń^ƒXƒN‘®«‚ð’ljÁ‰ÂiTARGET_TSKATRj
668E(TMIN_TPRI <= itskpri && itskpri <= TMAX_TPRI)‚Å‚È‚¢ê‡iE_PARj
669E“¯‚¶ itskpri ‚ɑ΂·‚é CRE_TSK ‚ª•¡”‚ ‚éê‡ (E_PAR)
670Estksz‚ª0‚©Cƒ^[ƒQƒbƒg’è‹`‚̍ŏ¬’liTARGET_MIN_STKSZj‚æ‚è‚à¬‚³‚¢ê
671@‡iE_PARj
672Estk ‚ª NULL ‚Å‚È‚¢ê‡iE_PARj
673E(TMIN_TPRI <= exepri && exepri <= TMAX_TPRI) ‚Å‚È‚¢ê‡FE_PAR ƒGƒ‰[
674E(itskpri < exepri && exepri <= TMAX_TPRI) ‚Å‚ ‚éê‡FE_ILUSEƒGƒ‰[
675
676–ƒpƒX3‚ÅŒŸo‚·‚é‚à‚Ì
677Etask ‚ªƒvƒƒOƒ‰ƒ€‚ÌŠJŽn”Ô’n‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
678 - ƒ^[ƒQƒbƒgˆË‘¶‚Ì’liCHECK_FUNC_ALIGNj‚Ì”{”‚Å‚È‚¢ê‡
679 - NULL‚̏ꍇiƒ^[ƒQƒbƒgˆË‘¶CCHECK_FUNC_NONNULLj
680
681
682(5-2) ƒCƒxƒ“ƒgƒtƒ‰ƒO‚ÉŠÖ‚·‚é’è‹`
683
684ƒCƒxƒ“ƒgƒtƒ‰ƒO‚̏ȗª‹L†‚́uFLG^flgv‚Å‚ ‚éDˆÈ‰º‚ł́CƒVƒXƒeƒ€ƒRƒ“ƒtƒB
685ƒMƒ…
686ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹‚ÉŽŸ‚̐ÓIAPI‚ªŠÜ‚Ü‚ê‚Ä‚¢‚鎞‚ɐ¶¬‚·‚ׂ«î•ñ‚É‚Â
687‚¢‚ďq‚ׂéD
688
689CRE_FLG(flgid, { flgatr, iflgptn });
690
691(5-2-1) ƒCƒxƒ“ƒgƒtƒ‰ƒO‚̏‰Šú‰»î•ñiƒCƒxƒ“ƒgƒtƒ‰ƒO‘®«j
692
693ƒCƒxƒ“ƒgƒtƒ‰ƒO‚Ì‘®«î•ñ‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
694
695const ATR _kernel_flginib_atr[TNUM_FLGID] = {(flgatr)};
696
697(5-2-2) ƒCƒxƒ“ƒgƒtƒ‰ƒO‚̏‰Šú‰»î•ñiƒtƒ‰ƒOƒpƒ^[ƒ“‰Šú’lj
698
699ƒCƒxƒ“ƒgƒtƒ‰ƒO‚̃tƒ‰ƒOƒpƒ^[ƒ“‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
700
701const FLGPTN _kernel_flginib_iflgptn[TNUM_FLGID] = {(iflgptn)};
702
703(5-2-3) ƒCƒxƒ“ƒgƒtƒ‰ƒO‚̃tƒ‰ƒOƒpƒ^[ƒ“
704
705ƒCƒxƒ“ƒgƒtƒ‰ƒO‚̃tƒ‰ƒOƒpƒ^[ƒ“‚ðŠi”[‚·‚é”z—ñ‚́CˆÈ‰º‚ÌŒ`Ž®‚Æ‚·‚éD
706
707FLGPTN _kernel_flgcb_flgptn[TNUM_FLGID];
708
709(5-2-4) ƒGƒ‰[ðŒ
710
711ƒCƒxƒ“ƒgƒtƒ‰ƒO‚ÉŠÖ‚·‚éƒGƒ‰[ðŒ‚ÍŽŸ‚Ì’Ê‚è‚Å‚ ‚éD
712
713–ƒRƒ“ƒtƒBƒMƒ…
714ƒŒ[ƒ^–{‘Ì‚ªŒŸo‚·‚é‚à‚Ì
715E“¯‚¶flgid‚ɑ΂·‚éCRE_FLG‚ª•¡”‚ ‚éê‡iE_OBJj
716
717–ƒpƒX2‚ÅŒŸo‚·‚é‚à‚Ì
718Etskatr‚ªi[[TA_CLR]|[TA_NULL]j‚Å‚È‚¢ê‡iE_RSATRj
719 ¦ TA_CLR ‚Æ TA_NULL ‚𓯎ž‚ÉŽw’肵‚½ê‡CTA_CLR ‚Ì‚Ý‚ðŽw’肵‚½ê‡‚Æ“¯—l‚ɐU‚é•‘‚¤
720Eiflgptn ‚ªFLGPTN ‚ÉŠi”[‚Å‚«‚È‚¢(iflgptn‚Ì’l‚ªFLGPTNŒ^‚̍őå’l‚æ‚è‚à‘å‚«‚¢)ê‡iE_PARj
721
722
723(5-3) ƒf[ƒ^ƒLƒ…
724[‚ÉŠÖ‚·‚é’è‹`
725
726ƒf[ƒ^ƒLƒ…
727[‚̏ȗª‹L†‚́uDTQ^dtqv‚Å‚ ‚éDˆÈ‰º‚ł́CƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
728
729ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹‚ÉŽŸ‚̐ÓIAPI‚ªŠÜ‚Ü‚ê‚Ä‚¢‚鎞‚ɐ¶¬‚·‚ׂ«î•ñ‚ɂ‚¢‚Ä
730q‚ׂéD
731
732CRE_DTQ(dtqid, { dtqatr, dtqcnt, dtqmb });
733
734(5-3-1) ƒf[ƒ^ƒLƒ…
735[‚É•K—v‚ȃƒ‚ƒŠ—̈æ‚Ì’è‹`
736
737ƒf[ƒ^ƒLƒ…
738[‚É•K—v‚ȃƒ‚ƒŠ—̈æ‚Æ‚µ‚āCƒf[ƒ^ƒLƒ…
739[ŠÇ——̈悪‚ ‚éD¶¬
740‚·‚éƒf[ƒ^ƒLƒ…
741[–ˆ‚ɁC•K—v‚ȃTƒCƒY‚̃f[ƒ^ƒLƒ…
742[ŠÇ——̈æ‚ð’è‹`‚·‚éD‹ï
743‘Ì“I‚ɂ́Cã‹L‚̐ÓIAPI‚ɑ΂µ‚āCŽŸ‚Ì’è‹`‚𐶐¬‚·‚éD
744
745–dtqcnt‚ª0‚Å‚È‚¢ê‡‚̂ݐ¶¬
746static intptr_t _kernel_dtqmb_<ƒf[ƒ^ƒLƒ…
747[–¼>[dtqcnt];
748
749(5-3-2) ƒf[ƒ^ƒLƒ…
750[‚̏‰Šú‰»î•ñ(ƒf[ƒ^ƒLƒ…
751[‘®«)
752
753ƒf[ƒ^ƒLƒ…
754[‚Ì‘®«î•ñ‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
755
756const ATR _kernel_dtqinib_atr[TNUM_DTQID] = {(dtqatr)};
757
758(5-3-3) ƒf[ƒ^ƒLƒ…
759[‚̏‰Šú‰»î•ñ(ƒf[ƒ^ƒLƒ…
760[ŠÇ——̈æ)
761
762ƒf[ƒ^ƒLƒ…
763[‚̃f[ƒ^ƒLƒ…
764[ŠÇ——̈æ‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
765
766intptr_t * const _kernel_dtqinib_data[TNUM_DTQID] = {(_kernel_dtqmb_<ƒf[ƒ^ƒLƒ…
767[–¼>)};
768
769¦ SSPƒJ[ƒlƒ‹‚Å‚Í‘Ò‚¿ó‘Ô‚ðƒTƒ|[ƒg‚µ‚È‚¢‚½‚߁C“¯ŠúŒÄo‚µ‚ªŽÀŒ»‚Å‚«‚È‚¢D
770@‚»‚Ì‚½‚ß dtqcnt ‚ª 0 ‚̏ꍇCƒRƒ“ƒtƒBƒMƒ…
771ƒŒ[ƒVƒ‡ƒ“ƒGƒ‰[(E_PAR)‚Æ‚È‚éD
772
773(5-3-4) ƒf[ƒ^ƒLƒ…
774[‚̏‰Šú‰»î•ñ(ƒf[ƒ^ƒLƒ…
775[‚̃TƒCƒY)
776
777ƒf[ƒ^ƒLƒ…
778[‚̃TƒCƒY‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
779
780const uint8_t _kernel_dtqinib_size[TNUM_DTQID] = {(dtqcnt)};
781
782(5-3-5) ƒf[ƒ^ƒLƒ…
783[‚ÉŠi”[‚³‚ê‚Ä‚¢‚é—v‘f”
784
785ƒf[ƒ^ƒLƒ…
786[‚ÉŠi”[‚³‚ê‚Ä‚¢‚é—v‘f”‚Ì”z—ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
787
788uint8_t _kernel_dtqcb_count[TNUM_DTQID];
789
790(5-3-6) ƒf[ƒ^ƒLƒ…
791[‚̐擪E––”ö—v‘f
792
793ƒf[ƒ^ƒLƒ…
794[‚ÉŠi”[‚³‚ê‚Ä‚¢‚éæ“ª—v‘fE––”ö—v‘f‚ðŠi”[‚·‚é”z—ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
795
796uint8_t _kernel_dtqcb_head[TNUM_DTQID];
797uint8_t _kernel_dtqcb_tail[TNUM_DTQID];
798
799(5-3-7) ƒGƒ‰[ðŒ
800
801ƒf[ƒ^ƒLƒ…
802[‚ÉŠÖ‚·‚éƒGƒ‰[ðŒ‚ÍŽŸ‚Ì’Ê‚è‚Å‚ ‚éD
803
804–ƒRƒ“ƒtƒBƒMƒ…
805ƒŒ[ƒ^–{‘Ì‚ªŒŸo‚·‚é‚à‚Ì
806E“¯‚¶dtqid‚ɑ΂·‚éCRE_DTQ‚ª•¡”‚ ‚éê‡iE_OBJj
807
808–ƒpƒX2‚ÅŒŸo‚·‚é‚à‚Ì
809Edtqatr‚ªimTA_NULLnj‚Å‚È‚¢ê‡iE_RSATRj
810Edtqcnt‚ª 0 ‚̏ꍇ (E_PAR)
811Edtqmb ‚ª NULL ‚Å‚È‚¢ê‡iE_NOSPTj
812
813
814(5-4) ŽüŠúƒnƒ“ƒhƒ‰‚ÉŠÖ‚·‚é’è‹`
815
816ŽüŠúƒnƒ“ƒhƒ‰‚̏ȗª‹L†‚́uCYC^cycv‚Å‚ ‚éDˆÈ‰º‚ł́CƒVƒXƒeƒ€ƒRƒ“ƒtƒB
817ƒMƒ…
818ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹‚ÉŽŸ‚̐ÓIAPI‚ªŠÜ‚Ü‚ê‚Ä‚¢‚鎞‚ɐ¶¬‚·‚ׂ«î•ñ‚É‚Â
819‚¢‚ďq‚ׂéD
820
821CRE_CYC(cycid, { cycatr, exinf, cychdr, cyctim, cycphs });
822
823(5-4-1) ŽüŠúƒnƒ“ƒhƒ‰‚̏‰Šú‰»î•ñiŠg’£î•ñj
824
825ŽüŠúƒnƒ“ƒhƒ‰‚ÌŠg’£î•ñ‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
826
827const intptr_t _kernel_cycinib_exinf[TNUM_CYCID] = {(intptr_t)(exinf)};
828
829(5-4-2) ŽüŠúƒnƒ“ƒhƒ‰‚̏‰Šú‰»î•ñi‹N“®”Ô’nj
830
831ŽüŠúƒnƒ“ƒhƒ‰‚̃AƒhƒŒƒX‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
832
833const CYCHDR _kernel_cycinib_cychdr[TNUM_CYCID] = {(cycdhr)};
834
835(5-4-3) ŽüŠúƒnƒ“ƒhƒ‰‚̏‰Šú‰»î•ñi‹N“®ŽüŠúj
836
837ŽüŠúƒnƒ“ƒhƒ‰‚Ì‹N“®ŽüŠú‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
838
839const RELTIM _kernel_cycinib_cyctim[TNUM_CYCID] = {(cyctim)};
840
841(5-4-4) ŽüŠúƒnƒ“ƒhƒ‰‚̏‰Šú‰»î•ñiˆÊ‘Šj
842
843ŽüŠúƒnƒ“ƒhƒ‰‚̈ʑŠ‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
844
845const RELTIM _kernel_cycinib_cycphs[TNUM_CYCID] = {(cycphs)};
846
847(5-4-5) ŽüŠúƒnƒ“ƒhƒ‰‚Ì“®ìó‘Ô
848
849ŽüŠúƒnƒ“ƒhƒ‰‚Ì“®ìó‘Ô‚ðŠi”[‚·‚é•Ï”‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
850
851uint_t _kernel_cyccb_cycact;
852
853•Ï” _kernel_cyccb_cycact ‚ÌŠeƒrƒbƒg‚Í‚»‚ꂼ‚ê‚ÌŽüŠúƒnƒ“ƒhƒ‰‚ɑΉž‚·‚éD
854ŽüŠúƒnƒ“ƒhƒ‰ID‚ª1‚̃^ƒXƒN‚͍ʼnºˆÊƒrƒbƒg(LSB)‚ɑΉž‚¯‚ç‚ê‚Ä‚¨‚èC
855ID‚Ì’l‚ª1‚‘‚¦‚é–ˆ‚É1‚‚ˆÊ‚̃rƒbƒg‚ª‚»‚ꂼ‚ê‘Ήž‚¯‚ç‚ê‚éD
856—Ⴆ‚΁Cƒnƒ“ƒhƒ‰ID‚ª4‚ÌŽüŠúƒnƒ“ƒhƒ‰‚͍ʼnºˆÊ‚©‚琔‚¦‚Ä4”Ԗڂ̃rƒbƒg‚ª
857‘Ήž‚·‚éD
858
859“®ì‚µ‚Ä‚¢‚éó‘Ô‚ÌŽüŠúƒnƒ“ƒhƒ‰‚́C‚»‚ÌŽüŠúƒnƒ“ƒhƒ‰‚ɑΉž‚·‚éƒrƒbƒg‚ª
8601‚Æ‚È‚éD“®ì‚µ‚Ä‚¢‚È‚¢ó‘Ô‚ÌŽüŠúƒnƒ“ƒhƒ‰‚͑Ήž‚·‚éƒrƒbƒg‚ª0‚É‚È‚éD
861
862(5-4-6) ŽüŠúƒnƒ“ƒhƒ‰‚ÌŽŸ‰ñ‹N“®Žž‚Ì’è‹`
863
864ŽüŠúƒnƒ“ƒhƒ‰‚ÌŽŸ‰ñ‹N“®Žž‚ðŠi”[‚·‚é•Ï”‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
865
866EVTTIM _kernel_cyccb_evttim[TNUM_CYCID];
867
868(5-4-7) ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒLƒ…
869[‚Ì’†‚̃IƒtƒZƒbƒgî•ñ‚Ì’è‹`
870
871ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒLƒ…
872[‚Ì’†‚ÅŽüŠúƒnƒ“ƒhƒ‰—p‚ÉŠ„‚è“–‚Ä‚ç‚ꂽ—̈æ‚̐擪ˆÊ’u‚ð
873Ž¦‚·î•ñ‚ð•Ï”‚É•ÛŽ‚·‚éDƒ^ƒCƒ€ƒCƒxƒ“ƒgƒLƒ…
874[‚Í”z—ñ‚Å•\Œ»‚³‚ê‚Ä‚¨‚èC
875æ“ªˆÊ’u‚Í”z—ñ‚̐擪‚©‚ç‚̃IƒtƒZƒbƒgi‚‚܂è”z—ñ‚̃Cƒ“ƒfƒbƒNƒXj‚Æ‚µ‚Ä
876•\Œ»‚³‚ê‚éDŽüŠúƒnƒ“ƒhƒ‰‚ɑ΂µ‚Ă̓^ƒCƒ€ƒCƒxƒ“ƒgƒLƒ…
877[”z—ñ‚̐擪‚©‚犄‚è
878“–‚Ä‚ç‚ê‚邽‚߁C‚±‚Ì’l‚͏í‚É 0 ‚Æ‚È‚éD]‚Á‚ĕϐ”’è‹`‚́CŽŸ‚ÌŒ`Ž®‚Æ‚È‚éD
879
880const uint_t _kernel_cycevtid_offset = 0;
881
882ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒLƒ…
883[‚ɂ‚¢‚Ä‚Í(9-3)‚ðŽQÆ‚Ì‚±‚ƁD
884
885(5-4-8) ƒGƒ‰[ðŒ
886
887ŽüŠúƒnƒ“ƒhƒ‰‚ÉŠÖ‚·‚éƒGƒ‰[ðŒ‚ÍŽŸ‚Ì’Ê‚è‚Å‚ ‚éD
888
889–ƒRƒ“ƒtƒBƒMƒ…
890ƒŒ[ƒ^–{‘Ì‚ªŒŸo‚·‚é‚à‚Ì
891E“¯‚¶cycid‚ɑ΂·‚éCRE_CYC‚ª•¡”‚ ‚éê‡iE_OBJj
892
893–ƒpƒX2‚ÅŒŸo‚·‚é‚à‚Ì
894Ecycatr‚ªimTA_STAnj‚Å‚È‚¢ê‡iE_RSATRj
895E(0 < cyctim && cyctim <= TMAX_RELTIM)‚Å‚È‚¢ê‡iE_PARj
896E(0 <= cycphs && cycphs <= TMAX_RELTIM)‚Å‚È‚¢ê‡iE_PARj
897EŒxFcycatr‚ÉTA_STA‚ªÝ’肳‚ê‚Ä‚¢‚āC(cycphs == 0)‚̏ꍇ
898ECRE_CYC ‚̃Gƒ“ƒgƒŠ‚ª16ŒÂ‚æ‚葽‚¢ ¦SSPŽÀ‘•’è‹`Ž–€
899
900–ƒpƒX3‚ÅŒŸo‚·‚é‚à‚Ì
901Ecychdr‚ªƒvƒƒOƒ‰ƒ€‚ÌŠJŽn”Ô’n‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
902 - ƒ^[ƒQƒbƒgˆË‘¶‚Ì’liCHECK_FUNC_ALIGNj‚Ì”{”‚Å‚È‚¢ê‡
903 - NULL‚̏ꍇiƒ^[ƒQƒbƒgˆË‘¶CCHECK_FUNC_NONNULLj
904
905(5-5) ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚ÉŠÖ‚·‚é’è‹`
906
907ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚̏ȗª‹L†‚́uALM^almv‚Å‚ ‚éDˆÈ‰º‚ł́CƒVƒXƒeƒ€ƒRƒ“
908ƒtƒBƒMƒ…
909ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹‚ÉŽŸ‚̐ÓIAPI‚ªŠÜ‚Ü‚ê‚Ä‚¢‚鎞‚ɐ¶¬‚·‚ׂ«î•ñ
910‚ɂ‚¢‚ďq‚ׂéD
911
912CRE_ALM(ID almid, { almatr, (intptr_t)(exinf), almhdr });
913
914(5-5-1) ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚̏‰Šú‰»î•ñiŠg’£î•ñj
915
916ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚ÌŠg’£î•ñ‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
917
918const intptr_t _kernel_alminib_exinf[TNUM_ALMID] = {(intptr_t)(exinf)};
919
920(5-5-2) ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚̏‰Šú‰»î•ñi‹N“®”Ô’nj
921
922ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚Ì‹N“®”Ô’n‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
923
924const ALMHDR _kernel_alminib_almhdr[TNUM_ALMID] = {(almhdr)};
925
926(5-5-3) ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚Ì“®ìó‘Ô
927
928ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚Ì“®ìó‘Ô‚ðŠi”[‚·‚é•Ï”‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
929
930uint_t _kernel_almcb_almact;
931
932•Ï” _kernel_almcb_almact ‚ÌŠeƒrƒbƒg‚͌X‚̃Aƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚ɑΉž‚·‚éD
933ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰ID‚ª1‚̃^ƒXƒN‚͍ʼnºˆÊƒrƒbƒg(LSB)‚ɑΉž‚¯‚ç‚ê‚Ä‚¨‚èC
934ID‚Ì’l‚ª1‚‘‚¦‚é–ˆ‚É1‚‚ˆÊ‚̃rƒbƒg‚ª‚»‚ꂼ‚ê‘Ήž‚¯‚ç‚ê‚éD
935—Ⴆ‚΁Cƒnƒ“ƒhƒ‰ID‚ª4‚̃Aƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚͍ʼnºˆÊ‚©‚琔‚¦‚Ä4”Ԗڂ̃rƒbƒg‚ª
936‘Ήž‚·‚éD
937
938“®ì‚µ‚Ä‚¢‚éó‘Ԃ̃Aƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚́C‚»‚ÌŽüŠúƒnƒ“ƒhƒ‰‚ɑΉž‚·‚éƒrƒbƒg‚ª
9391‚Æ‚È‚éD“®ì‚µ‚Ä‚¢‚È‚¢ó‘Ô‚ÌŽüŠúƒnƒ“ƒhƒ‰‚͑Ήž‚·‚éƒrƒbƒg‚ª0‚É‚È‚éD
940
941(5-5-4) ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒLƒ…
942[‚Ì’†‚̃IƒtƒZƒbƒgî•ñ‚Ì’è‹`
943
944ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒLƒ…
945[‚Ì’†‚ŃAƒ‰[ƒ€ƒnƒ“ƒhƒ‰—p‚ÉŠ„‚è“–‚Ä‚ç‚ꂽ—̈æ‚̐擪
946ˆÊ’u‚ðŽ¦‚·î•ñ‚ð•Ï”‚É•ÛŽ‚·‚éDƒ^ƒCƒ€ƒCƒxƒ“ƒgƒLƒ…
947[‚Í”z—ñ‚Å•\Œ»‚³‚ê‚Ä‚¨‚èC
948æ“ªˆÊ’u‚Í”z—ñ‚̐擪‚©‚ç‚̃IƒtƒZƒbƒgi‚‚܂è”z—ñ‚̃Cƒ“ƒfƒbƒNƒXj‚Æ‚µ‚Ä
949•\Œ»‚³‚ê‚éDƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚ɑ΂µ‚Ä‚ÍŽüŠúƒnƒ“ƒhƒ‰—p—̈æ‚ÌŽŸ‚Ì—v‘f‚©‚ç
950Š„‚è“–‚Ä‚ç‚ê‚邽‚߁C‚±‚Ì’l‚͏í‚ÉŽüŠúƒnƒ“ƒhƒ‰‚̌”‚É“™‚µ‚¢D
951•Ï”’è‹`‚́CŽŸ‚ÌŒ`Ž®‚Æ‚È‚éD
952
953const uint_t _kernel_almevtid_offset = <ŽüŠúƒnƒ“ƒhƒ‰‚̌”>;
954
955ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒLƒ…
956[‚ɂ‚¢‚Ä‚Í(9-3)‚ðŽQÆ‚Ì‚±‚ƁD
957
958(5-5-5) ƒGƒ‰[ðŒ
959
960ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚ÉŠÖ‚·‚éƒGƒ‰[ðŒ‚ÍŽŸ‚Ì’Ê‚è‚Å‚ ‚éD
961
962–ƒRƒ“ƒtƒBƒMƒ…
963ƒŒ[ƒ^–{‘Ì‚ªŒŸo‚·‚é‚à‚Ì
964E“¯‚¶almid‚ɑ΂·‚éCRE_ALM‚ª•¡”‚ ‚éê‡iE_OBJj
965
966–ƒpƒX2‚ÅŒŸo‚·‚é‚à‚Ì
967Ealmatr‚ªiTA_NULLj‚Å‚È‚¢ê‡iE_RSATRj
968ECRE_ALM ‚̃Gƒ“ƒgƒŠ‚ª16ŒÂ‚æ‚葽‚¢ ¦SSPŽÀ‘•’è‹`Ž–€
969
970–ƒpƒX3‚ÅŒŸo‚·‚é‚à‚Ì
971Ealmhdr‚ªƒvƒƒOƒ‰ƒ€‚ÌŠJŽn”Ô’n‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
972 - ƒ^[ƒQƒbƒgˆË‘¶‚Ì’liCHECK_FUNC_ALIGNj‚Ì”{”‚Å‚È‚¢ê‡
973 - NULL‚̏ꍇiƒ^[ƒQƒbƒgˆË‘¶CCHECK_FUNC_NONNULLj
974
975(6) Š„ž‚Ý‚ÉŠÖ‚·‚é’è‹`
976
977Š„ž‚Ý‚ÉŠÖ‚µ‚ж¬‚·‚éî•ñ‚́Cƒ^[ƒQƒbƒg–ˆ‚É’è‚߂邱‚Æ‚ª‚Å‚«‚éD
978ƒ^[ƒQƒbƒg–ˆ‚É’è‚ß‚È‚¢ê‡‚ɂ́CˆÈ‰º‚ŏq‚ׂéƒ^[ƒQƒbƒg‚Ɉˑ¶‚µ‚È‚¢•W€“I‚È
979î•ñ‚𐶐¬‚·‚éDƒ^[ƒQƒbƒg–ˆ‚É’è‚ß‚éê‡‚ɂ́C(6-1)‚Æ(6-3)‚ɏq‚ׂéî•ñ‚͐¶
980¬‚µ‚È‚¢i(6-2)‚ɏq‚ׂéî•ñ‚͐¶¬‚·‚éjD
981
982(6-1) Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚ÉŠÖ‚·‚é’è‹`
983
984Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚Ì‘®«‚ðÝ’è‚·‚éÃ“IAPIuCFG_INTv‚Őݒ肵‚½Š„ž‚Ý—v‹
985ƒ‰ƒCƒ“‚ÉŠÖ‚·‚é’è‹`‚𐶐¬‚·‚éD‹ï‘Ì“I‚É‚ÍŽŸ‚Ì’Ê‚èD
986
987ˆÈ‰º‚ł́CƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
988ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹‚ÉŽŸ‚̐ÓIAPI‚ªŠÜ‚Ü‚ê
989‚Ä‚¢‚鎞‚ɐ¶¬‚·‚ׂ«î•ñ‚ɂ‚¢‚ďq‚ׂéD
990
991CFG_INT(INTNO intno, { intatr, intpri });
992
993(6-1-1) Ý’è‚·‚銄ž‚Ý—v‹ƒ‰ƒCƒ“‚̐”
994
995Ý’è‚·‚銄ž‚Ý—v‹ƒ‰ƒCƒ“‚̐”‚ðƒ}ƒNƒ’è‹`‚·‚éƒvƒŠƒvƒƒZƒbƒTƒfƒBƒŒƒNƒeƒB
996ƒui#definej‚𐶐¬‚·‚éD‚Ü‚½C‚»‚Ì’l‚ðŽ‚Â•Ï”‚Ì’è‹`‚𐶐¬‚·‚éD‹ï‘Ì“I
997‚ɂ́CŽŸ‚̂悤‚ȍs‚𐶐¬‚·‚éD
998
999#define TNUM_INTNO <Ý’è‚·‚銄ž‚Ý—v‹ƒ‰ƒCƒ“‚̐”>
1000const uint_t _kernel_tnum_intno = TNUM_INTNO;
1001
1002(6-1-2) Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚̏‰Šú‰»î•ñiŠ„ž‚ݔԍ†j
1003
1004Š„ž‚ݔԍ†‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
1005
1006const INTNO _kernel_intinib_intno[TNUM_INTNO] = {(intno)};
1007
1008(6-1-3) Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚̏‰Šú‰»î•ñiŠ„ž‚Ý—v‹ƒ‰ƒCƒ“‘®«j
1009
1010Š„ž‚Ý—v‹ƒ‰ƒCƒ“‘®«‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
1011
1012const ATR _kernel_intinib_intatr[TNUM_INTNO] = {(intatr)};
1013
1014(6-1-4) Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚̏‰Šú‰»î•ñiŠ„ž‚Ý—v‹ƒ‰ƒCƒ“‘®«j
1015
1016Š„ž‚Ý—Dæ“x‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
1017
1018const PRI _kernel_intinib_intpri[TNUM_INTNO] = {(intpri)};
1019
1020(6-1-5) ƒGƒ‰[ðŒ
1021
1022Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚ÉŠÖ‚·‚éƒGƒ‰[ðŒ‚ÍŽŸ‚Ì’Ê‚è‚Å‚ ‚éD
1023
1024–ƒpƒX2‚ÅŒŸo‚·‚é‚à‚Ì
1025Eintno ‚ª CFG_INT‚ɑ΂·‚銄ž‚ݔԍ†‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
1026Eintno ‚ª CFG_INT‚É‚æ‚Á‚ĐݒèÏ‚݂̏ꍇiE_OBJj
1027Eintatr‚ªimTA_ENAINTnbmTA_EDGEnj‚Å‚È‚¢ê‡iE_RSATRj
1028 ¦ ƒ^[ƒQƒbƒgˆË‘¶•”‚ÅŠ„ž‚Ý‘®«‚ð’ljÁ‰ÂiTARGET_INTATRj
1029EƒJ[ƒlƒ‹ŠÇ—‚ɌŒ肳‚ê‚Ä‚¢‚é intno ‚ɑ΂µ‚āCintpri‚ÉTMIN_INTPRI
1030@‚æ‚è‚à¬‚³‚¢’li‚‚܂èC—Dæ“x‚Æ‚µ‚Ă͍‚‚¢’lj‚ªŽw’肳‚ꂽê‡iE_OBJj
1031EƒJ[ƒlƒ‹ŠÇ—ŠO‚ɌŒ肳‚ê‚Ä‚¢‚é intno ‚ɑ΂µ‚āCintpri ‚É TMIN_INTPRI
1032@‚Æ“¯‚¶‚©‚Ü‚½‚Í‚»‚ê‚æ‚è‚à‘å‚«‚¢’li‚‚܂èC—Dæ“x‚Æ‚µ‚Ä‚Í“¯‚¶‚©‚Ü‚½‚Í
1033@‚»‚ê‚æ‚è’á‚¢’lj‚ªŽw’肳‚ꂽê‡iE_OBJj
1034Eintpri ‚ª CFG_INT ‚ɑ΂·‚銄ž‚Ý—Dæ“x‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
1035
1036–•K—v‚ɉž‚¶‚ă^[ƒQƒbƒgˆË‘¶•”‚ÅŒŸo‚·‚é‚à‚Ì
1037Eintatr ‚ªŠ„ž‚Ý‘®«‚Æ‚µ‚Đݒè‚Å‚«‚È‚¢’l‚̏ꍇiE_RSATRj
1038Eintpri ‚ªŠ„ž‚Ý—Dæ“x‚Æ‚µ‚Đݒè‚Å‚«‚È‚¢’l‚̏ꍇiE_PARj
1039E“¯ˆê‚ÌŠ„ž‚Ý—Dæ“x‚µ‚©Ý’è‚Å‚«‚È‚¢Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚ɑ΂µ‚āCˆÙ‚Ȃ銄
1040@ž‚Ý—Dæ“x‚ðÝ’肵‚½ê‡iE_PARj
1041
1042(6-2) Š„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“‚ÉŠÖ‚·‚é’è‹`
1043
1044(6-2-1) Š„ž‚݃nƒ“ƒhƒ‰‚̐¶¬
1045
1046ƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
1047ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹’†‚ÉŠÜ‚Ü‚ê‚銄ž‚݃T[ƒrƒXƒ‹[ƒ`
1048ƒ“‚ð’ljÁ‚·‚éÃ“IAPIuATT_ISRv‚ÉŠî‚«C“¯ˆê‚ÌŠ„ž‚ݔԍ†‚ɑ΂µ‚ĒljÁ‚³
1049‚ꂽŠ„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“‚ð‡‚ÉŒÄ‚Ño‚·ŠÖ”‚𐶐¬‚·‚éD
1050
1051‹ï‘Ì“I‚ɂ́C“¯ˆê‚ÌŠ„ž‚ݔԍ†‚ɑ΂µ‚ÄŠ„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“‚ð’ljÁ‚·‚é
1052
1053ATT_ISR({ isratr_1, exinf_1, intno, isr_1, isrpri_1 });
1054ATT_ISR({ isratr_2, exinf_2, intno, isr_2, isrpri_2 });
1055 cc
1056ATT_ISR({ isratr_n, exinf_n, intno, isr_n, isrpri_n });
1057
1058‚Æ‚¢‚¤Ã“IAPI‚ɑ΂µ‚āCŽŸ‚̂悤‚Ȋ֐”‚𐶐¬‚·‚éD‚±‚±‚ŁCisrpri_1C
1059isrpri_2CccCisrpri_n‚́C’l‚̏¬‚³‚¢‡‚É•À‚בւ¦‚ç‚ê‚Ä‚¢‚é‚à‚Ì‚Æ‚·‚éD
1060’l‚ª“¯‚¶‚à‚̂̊Ԃł́CƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
1061ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹’†‚ł̐ÓI
1062API‚̏‡˜‚Ì’Ê‚è‚É•À‚ñ‚Å‚¢‚é‚à‚Ì‚Æ‚·‚éD
1063
1064static void
1065_kernel_inthdr_<intno>(void)
1066{
1067 PRI saved_ipm;
1068
1069 i_begin_int(intno);
1070 saved_ipm = i_get_ipm();
1071
1072 LOG_ISR_ENTER(<intno>); /* ISR1‚̌ďo‚µ */
1073 isr_1((intptr_t)(exinf_1));
1074 LOG_ISR_LEAVE(intno);
1075
1076 if (i_sense_lock()) { /* ISR‚̌ďo‚µ‘O‚̏ó‘Ô‚É–ß‚· */
1077 i_unlock_cpu();
1078 }
1079 i_set_ipm(saved_ipm);
1080
1081 LOG_ISR_ENTER(<intno>); /* ISR2‚̌ďo‚µ */
1082 isr_2((intptr_t)(exinf_2));
1083 LOG_ISR_LEAVE(intno);
1084
1085 if (i_sense_lock()) { /* ISR‚̌ďo‚µ‘O‚̏ó‘Ô‚É–ß‚· */
1086 i_unlock_cpu();
1087 }
1088 i_set_ipm(saved_ipm);
1089
1090 cc
1091
1092 LOG_ISR_ENTER(<intno>); /* ISRn‚̌ďo‚µ */
1093 isr_n((intptr_t)(exinf_n));
1094 LOG_ISR_LEAVE(intno);
1095
1096 i_end_int(intno);
1097}
1098
1099‚±‚±‚ŁCISRn‚̌ďo‚µ‚ÌŒã‚Ɍďo‚µ‘O‚̏ó‘Ô‚É–ß‚³‚È‚¢‚̂́CŠ„ž‚݃nƒ“ƒhƒ‰
1100‚©‚ç‚̃Šƒ^[ƒ“‚É‚æ‚èCƒJ[ƒlƒ‹‚ªŒ³‚̏ó‘Ô‚É–ß‚·‚½‚ß‚Å‚ ‚éD
1101
1102“¯ˆê‚ÌŠ„ž‚ݔԍ†‚ɑ΂µ‚ĒljÁ‚³‚ꂽŠ„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“‚ª1‚‚݂̂̏ꍇ
1103‚ɂ́CŽŸ‚̂悤‚Ȋ֐”‚𐶐¬‚·‚éD
1104
1105static void
1106_kernel_inthdr_<intno>(void)
1107{
1108 i_begin_int(intno);
1109 LOG_ISR_ENTER(intno);
1110 isr_1((intptr_t)(exinf_1));
1111 LOG_ISR_LEAVE(intno);
1112 i_end_int(intno);
1113}
1114
1115y‰Û‘èz‚±‚±‚ŁCLOG_ISR_ENTERCLOG_ISR_LEAVE‚̈ø”‚ð‚Ç‚¤‚·‚é‚©‚ª‰Û‘è‚Æ
1116‚µ‚ÄŽc‚Á‚Ä‚¢‚éDATT_ISR‚Å“o˜^‚³‚ꂽISR‚ɑ΂µ‚Ä‚ÍISR ID‚ª•t—^‚³‚ê‚È‚¢‚½
1117‚߁CID‚ÅISR‚ð‹æ•Ê‚·‚邱‚Æ‚ª‚Å‚«‚È‚¢D‚â‚Þ‚È‚­Š„ž‚ݔԍ†‚ð“n‚µ‚Ä‚¢‚邪C
1118Šg’£î•ñiexinfj‚à“n‚·‚ׂ«‚©‚à‚µ‚ê‚È‚¢D
1119
1120(6-2-2) Š„ž‚݃nƒ“ƒhƒ‰‚Ì’è‹`‚É‘Š“–‚·‚鏈—
1121
1122ã‚̂悤‚ÉŠ„ž‚݃nƒ“ƒhƒ‰‚𐶐¬‚µ‚½ê‡‚ɂ́CŽŸ‚Éà–¾‚·‚銄ž‚݃nƒ“ƒhƒ‰
1123‚ÉŠÖ‚·‚é’è‹`‚É‚¨‚¢‚āCƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
1124ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹’†‚ÉŽŸ‚̐Ã
1125“IAPI‚ªŠÜ‚Ü‚ê‚Ä‚¢‚é‚Ì‚Æ“¯—l‚ɏˆ—‚·‚éD
1126
1127DEF_INH(inhno, { TA_NULL, _kernel_inthdr_<intno> });
1128
1129‚±‚±‚Åinhno‚́Cintno‚ɑΉž‚·‚銄ž‚݃nƒ“ƒhƒ‰”ԍ†‚Å‚ ‚éD
1130
1131(6-2-3) ƒGƒ‰[ðŒ
1132
1133Š„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“‚ÉŠÖ‚·‚éƒGƒ‰[ðŒ‚ÍŽŸ‚Ì’Ê‚è‚Å‚ ‚éD
1134
1135–ƒpƒX2‚ÅŒŸo‚·‚é‚à‚Ì
1136Eisratr ‚ªiTA_NULLj‚Å‚È‚¢ê‡iE_RSATRj
1137 ¦ ƒ^[ƒQƒbƒgˆË‘¶•”‚ÅŠ„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“‘®«‚ð’ljÁ‰ÂiTARGET_ISRATRj
1138Eintno ‚ª ATT_ISR ‚ɑ΂·‚銄ž‚ݔԍ†‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
1139 ¦ intno ‚ɑΉž‚·‚é inhno ‚ª‚È‚¢ê‡‚ðŠÜ‚Þ
1140E(TMIN_ISRPRI <= isrpri && isrpri <= TMAX_ISRPRI)‚Å‚È‚¢ê‡iE_PARj
1141Eintno ‚ɑΉž‚·‚é inhno ‚ɑ΂µ‚Ä DEF_INH ‚ª‚ ‚éê‡iE_OBJj
1142Eintno ‚ɑ΂·‚é CFG_INT ‚ª‚È‚¢ê‡iE_OBJj
1143Eintno ‚ɑ΂µ‚Ä CFG_INT ‚ª‘¶Ý‚µC‚©‚CCFG_INT ‚Őݒ肳‚ꂽŠ„ž‚Ý—Dæ“x‚ª
1144@TMIN_INTPRI ‚æ‚è‚à¬‚³‚¢i‚‚܂èC—Dæ“x‚Æ‚µ‚Ă͍‚‚¢jê‡iE_OBJj
1145 ¦ ƒJ[ƒlƒ‹ŠÇ—ŠO‚ÌISR‚̓Tƒ|[ƒg‚µ‚È‚¢‚½‚ß
1146
1147–•K—v‚ɉž‚¶‚ă^[ƒQƒbƒgˆË‘¶•”‚ÅŒŸo‚·‚é‚à‚Ì
1148Eisr‚ªƒvƒƒOƒ‰ƒ€‚ÌŠJŽn”Ô’n‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
1149
1150(6-3) Š„ž‚݃nƒ“ƒhƒ‰‚ÉŠÖ‚·‚é’è‹`
1151
1152Š„ž‚݃nƒ“ƒhƒ‰‚ð’è‹`‚·‚éÃ“IAPIuDEF_INHv‚Å’è‹`‚µ‚½Š„ž‚݃nƒ“ƒhƒ‰
1153iãq‚ÌŠ„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“‚̒ljÁ‚É‚æ‚èƒRƒ“ƒtƒBƒMƒ…
1154ƒŒ[ƒ^‚ª¶¬‚µ‚½
1155Š„ž‚݃nƒ“ƒhƒ‰‚ðŠÜ‚ށj‚ÉŠÖ‚·‚é’è‹`‚𐶐¬‚·‚éD‹ï‘Ì“I‚É‚ÍŽŸ‚Ì’Ê‚èD
1156
1157ˆÈ‰º‚ł́CƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
1158ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹‚ÉŽŸ‚̐ÓIAPI‚ªŠÜ‚Ü‚ê
1159‚Ä‚¢‚鎞‚ɐ¶¬‚·‚ׂ«î•ñ‚ɂ‚¢‚ďq‚ׂéD
1160
1161DEF_INH(inhno, { inhatr, inthdr });
1162
1163(6-3-1) ’è‹`‚·‚銄ž‚݃nƒ“ƒhƒ‰‚̐”
1164
1165’è‹`‚·‚銄ž‚݃nƒ“ƒhƒ‰‚̐”‚ðƒ}ƒNƒ’è‹`‚·‚éƒvƒŠƒvƒƒZƒbƒTƒfƒBƒŒƒNƒeƒBƒu
1166i#definej‚𐶐¬‚·‚éD‚Ü‚½C‚»‚Ì’l‚ðŽ‚Â•Ï”‚Ì’è‹`‚𐶐¬‚·‚éD‹ï‘Ì“I
1167‚ɂ́CŽŸ‚̂悤‚ȍs‚𐶐¬‚·‚éD
1168
1169#define TNUM_INHNO <’è‹`‚·‚銄ž‚݃nƒ“ƒhƒ‰‚̐”>
1170const uint_t _kernel_tnum_inhno = TNUM_INHNO;
1171
1172(6-3-2) Š„ž‚݃nƒ“ƒhƒ‰‚̏o“üŒûˆ—
1173
1174’è‹`‚·‚銄ž‚݃nƒ“ƒhƒ‰–ˆ‚ɁCŠ„ž‚݃nƒ“ƒhƒ‰‚̏o“üŒûˆ—ƒ‹[ƒ`ƒ“‚𐶐¬‚·
1175‚éD‹ï‘Ì“I‚ɂ́CŽŸ‚̂悤‚ȍs‚𐶐¬‚·‚éD
1176
1177INTHDR_ENTRY(inhno, inhno_num, inthdr)
1178
1179‚±‚±‚Åinhno_num‚́CinhnoiŠ„ž‚݃nƒ“ƒhƒ‰”ԍ†j‚𐔒l‚Å•\Œ»‚µ‚½‚à‚̂ŁC
1180ƒAƒZƒ“ƒuƒŠŒ¾Œê‹Lq‚ÉŽg—p‚·‚邽‚ß‚Ì‚à‚Ì‚Å‚ ‚éD
1181
1182(6-3-3) Š„ž‚݃nƒ“ƒhƒ‰‚̏‰Šú‰»î•ñiŠ„ž‚݃nƒ“ƒhƒ‰”ԍ†j
1183
1184Š„ž‚݃nƒ“ƒhƒ‰”ԍ†‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
1185
1186const INHNO _kernel_inhinib_inhno[TNUM_INHNO] = {(inhno)};
1187
1188(6-3-4) Š„ž‚݃nƒ“ƒhƒ‰‚̏‰Šú‰»î•ñiŠ„ž‚݃nƒ“ƒhƒ‰‘®«j
1189
1190Š„ž‚݃nƒ“ƒhƒ‰‘®«‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
1191
1192const ATR _kernel_inhinib_inhatr[TNUM_INHNO] = {(inhatr)};
1193
1194(6-3-5) Š„ž‚݃nƒ“ƒhƒ‰‚̏‰Šú‰»î•ñiŠ„ž‚݃nƒ“ƒhƒ‰ƒAƒhƒŒƒXj
1195
1196Š„ž‚݃nƒ“ƒhƒ‰‚̃AƒhƒŒƒX‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
1197
1198const FP _kernel_inhinib_entry[TNUM_INHNO] = {(inthdr)};
1199
1200(6-3-6) ƒGƒ‰[ðŒ
1201
1202Š„ž‚݃nƒ“ƒhƒ‰‚ÉŠÖ‚·‚éƒGƒ‰[ðŒ‚ÍŽŸ‚Ì’Ê‚è‚Å‚ ‚éD
1203
1204–ƒpƒX2‚ÅŒŸo‚·‚é‚à‚Ì
1205Einhno ‚ª DEF_INH ‚ɑ΂·‚銄ž‚݃nƒ“ƒhƒ‰”ԍ†‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
1206Einhno ‚ª DEF_INH ‚É‚æ‚Á‚ĐݒèÏ‚݂̏ꍇiE_OBJj
1207#Einhno ‚ɑΉž‚·‚é intno ‚ɑ΂µ‚Ä ATT_ISR ‚ª‚ ‚éê‡iE_OBJj
1208# ¦ inhno ‚ɑΉž‚·‚é intno ‚ª‚È‚¢ê‡‚ɂ́C‚±‚̃`ƒFƒbƒN‚ðs‚í‚È‚¢
1209# ¨ ‚±‚̃`ƒFƒbƒN‚́CŠ„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“‘¤‚ōs‚¤
1210Einhatr ‚ªiTA_NULLj‚Å‚È‚¢ê‡iE_RSATRj
1211 ¦ ƒ^[ƒQƒbƒgˆË‘¶•”‚ÅŠ„ž‚݃nƒ“ƒhƒ‰‘®«‚ð’ljÁ‰ÂiTARGET_INHATRj
1212 ¦ TA_NONKERNEL ‚ðŽg‚¤ê‡‚ɂ́CTARGET_INHATR ‚ɐݒ肷‚é
1213EƒJ[ƒlƒ‹ŠÇ—‚ɌŒ肳‚ê‚Ä‚¢‚é inhno ‚ɑ΂µ‚āCinhatr ‚É TA_NONKERNEL ‚ª
1214@Žw’肳‚ê‚Ä‚¢‚éê‡iE_RSATRj
1215EƒJ[ƒlƒ‹ŠÇ—ŠO‚ɌŒ肳‚ê‚Ä‚¢‚é inhno ‚ɑ΂µ‚āCinhatr ‚É TA_NONKERNEL ‚ª
1216@Žw’肳‚ê‚Ä‚¢‚È‚¢ê‡iE_RSATRj
1217Einhno ‚ɑΉž‚·‚é intno ‚ɑ΂·‚é CFG_INT ‚ª‚È‚¢ê‡iE_OBJj
1218 ¦ inhno ‚ɑΉž‚·‚é intno ‚ª‚È‚¢ê‡‚ɂ́C‚±‚̃`ƒFƒbƒN‚ðs‚í‚È‚¢
1219Einhatr ‚É TA_NONKERNEL ‚ªŽw’肳‚ê‚Ä‚¨‚炸Cinhno ‚ɑΉž‚·‚é intno ‚ɑ΂µ‚Ä
1220@CFG_INT ‚Őݒ肳‚ꂽŠ„ž‚Ý—Dæ“x‚ª TMIN_INTPRI ‚æ‚è‚à¬‚³‚¢ê‡iE_OBJj
1221 ¦ inhno ‚ɑΉž‚·‚é intno ‚ª‚È‚¢ê‡‚ɂ́C‚±‚̃`ƒFƒbƒN‚ðs‚í‚È‚¢
1222Einhatr ‚É TA_NONKERNEL ‚ªŽw’肳‚ê‚Ä‚¨‚èCinhno ‚ɑΉž‚·‚é intno ‚ɑ΂µ‚Ä
1223@CFG_INT ‚Őݒ肳‚ꂽŠ„ž‚Ý—Dæ“x‚ª TMIN_INTPRI ˆÈã‚Å‚ ‚éê‡iE_OBJj
1224 ¦ inhno ‚ɑΉž‚·‚é intno ‚ª‚È‚¢ê‡‚ɂ́C‚±‚̃`ƒFƒbƒN‚ðs‚í‚È‚¢
1225
1226–•K—v‚ɉž‚¶‚ă^[ƒQƒbƒgˆË‘¶•”‚ÅŒŸo‚·‚é‚à‚Ì
1227Einthdr‚ªƒvƒƒOƒ‰ƒ€‚ÌŠJŽn”Ô’n‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
1228
1229(7) CPU—áŠO‚ÉŠÖ‚·‚é’è‹`
1230
1231CPU—áŠO‚ÉŠÖ‚µ‚ж¬‚·‚éî•ñ‚́Cƒ^[ƒQƒbƒg–ˆ‚É’è‚߂邱‚Æ‚ª‚Å‚«‚éD
1232ƒ^[ƒQƒbƒg–ˆ‚É’è‚ß‚È‚¢ê‡‚ɂ́CˆÈ‰º‚ŏq‚ׂéƒ^[ƒQƒbƒg‚Ɉˑ¶‚µ‚È‚¢•W€“I‚È
1233î•ñ‚𐶐¬‚·‚éDƒ^[ƒQƒbƒg–ˆ‚É’è‚ß‚éê‡‚ɂ́C‚±‚ê‚ç‚̏î•ñ‚͐¶¬‚³‚ê‚È‚¢D
1234
1235ƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
1236ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹’†‚ɁCCPU—áŠOƒnƒ“ƒhƒ‰‚ð’è‹`‚·‚é
1237Ã“IAPIuDEF_EXCv‚ªŠÜ‚Ü‚ê‚Ä‚¢‚éê‡‚ɁCCPU—áŠOƒnƒ“ƒhƒ‰‚ÉŠÖ‚·‚é’è‹`‚ð
1238¶¬‚·‚éD
1239
1240ˆÈ‰º‚ł́CƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
1241ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹‚ÉŽŸ‚̐ÓIAPI‚ªŠÜ‚Ü‚ê
1242‚Ä‚¢‚鎞‚ɐ¶¬‚·‚ׂ«î•ñ‚ɂ‚¢‚ďq‚ׂéD
1243
1244DEF_EXC(excno, { excatr, exchdr });
1245
1246(7-1) ’è‹`‚·‚éCPU—áŠOƒnƒ“ƒhƒ‰‚̐”
1247
1248’è‹`‚·‚éCPU—áŠOƒnƒ“ƒhƒ‰‚̐”‚ðƒ}ƒNƒ’è‹`‚·‚éƒvƒŠƒvƒƒZƒbƒTƒfƒBƒŒƒNƒeƒB
1249ƒui#definej‚𐶐¬‚·‚éD‚Ü‚½C‚»‚Ì’l‚ðŽ‚Â•Ï”‚Ì’è‹`‚𐶐¬‚·‚éD‹ï‘Ì
1250“I‚ɂ́CŽŸ‚̂悤‚ȍs‚𐶐¬‚·‚éD
1251
1252#define TNUM_EXCNO <’è‹`‚·‚éCPU—áŠOƒnƒ“ƒhƒ‰‚̐”>
1253const uint_t _kernel_tnum_excno = TNUM_EXCNO;
1254
1255(7-2) CPU—áŠOƒnƒ“ƒhƒ‰‚̏o“üŒûˆ—
1256
1257’è‹`‚·‚éCPU—áŠOƒnƒ“ƒhƒ‰–ˆ‚ɁCCPU—áŠOƒnƒ“ƒhƒ‰‚̏o“üŒûˆ—ƒ‹[ƒ`ƒ“‚𐶐¬
1258‚·‚éD‹ï‘Ì“I‚ɂ́CŽŸ‚̂悤‚ȍs‚𐶐¬‚·‚éD
1259
1260EXCHDR_ENTRY(excno, excno_num, exchdr)
1261
1262‚±‚±‚Åexcno_num‚́CexcnoiCPU—áŠOƒnƒ“ƒhƒ‰”ԍ†j‚𐔒l‚Å•\Œ»‚µ‚½‚à‚̂ŁC
1263ƒAƒZƒ“ƒuƒŠŒ¾Œê‹Lq‚ÉŽg—p‚·‚邽‚ß‚Ì‚à‚Ì‚Å‚ ‚éD
1264
1265(7-3) CPU—áŠOƒnƒ“ƒhƒ‰”ԍ†‚̏‰Šú‰»î•ñiCPU—áŠO”ԍ†j
1266
1267CPU—áŠOƒnƒ“ƒhƒ‰”ԍ†‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
1268
1269const EXCNO _kernel_excinib_excno[TNUM_EXCNO] = {(excno)};
1270
1271(7-4) CPU—áŠOƒnƒ“ƒhƒ‰”ԍ†‚̏‰Šú‰»î•ñiCPU—áŠOƒnƒ“ƒhƒ‰‘®«j
1272
1273CPU—áŠOƒnƒ“ƒhƒ‰‘®«‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
1274
1275const ATR _kernel_excinib_excatr[TNUM_EXCNO] = {(excatr)};
1276
1277(7-5) CPU—áŠOƒnƒ“ƒhƒ‰”ԍ†‚̏‰Šú‰»î•ñiCPU—áŠOƒnƒ“ƒhƒ‰‚̐擪”Ô’nj
1278
1279CPU—áŠOƒnƒ“ƒhƒ‰‚̐擪”Ô’n‚̏‰Šú‰»î•ñ‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
1280
1281const FP _kernel_excinib_entry[TNUM_EXCNO] = {(FP)(EXC_ENTRY(excno, exchdr))};
1282
1283‚±‚±‚Å EXC_ENTRY ‚ÍCPU—áŠOƒnƒ“ƒhƒ‰”ԍ†‚ÆCPU—áŠOƒnƒ“ƒhƒ‰‚̐擪”Ô’n‚ðŒ³‚É
1284CPU—áŠOƒnƒ“ƒhƒ‰‚Ì“ü‚èŒûˆ—‚Ì–¼Ì‚𐶐¬‚·‚éƒ}ƒNƒ‚ŁCƒ^[ƒQƒbƒgˆË‘¶•”‚Å
1285’è‹`‚³‚ê‚Ä‚¢‚éD
1286
1287(7-6) ƒGƒ‰[ðŒ
1288
1289CPU—áŠOƒnƒ“ƒhƒ‰‚ÉŠÖ‚·‚éƒGƒ‰[ðŒ‚ÍŽŸ‚Ì’Ê‚è‚Å‚ ‚éD
1290
1291–ƒpƒX2‚ÅŒŸo‚·‚é‚à‚Ì
1292Eexcno ‚ª DEF_EXC ‚ɑ΂·‚é CPU —áŠOƒnƒ“ƒhƒ‰”ԍ†‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
1293Eexcno ‚ª DEF_EXC ‚É‚æ‚Á‚ĐݒèÏ‚݂̏ꍇiE_OBJj
1294Eexcatr ‚ªiTA_NULLj‚Å‚È‚¢ê‡iE_RSATRj
1295 ¦ ƒ^[ƒQƒbƒgˆË‘¶•”‚ÅCPU—áŠOƒnƒ“ƒhƒ‰‘®«‚ð’ljÁ‰ÂiTARGET_EXCATRj
1296
1297–•K—v‚ɉž‚¶‚ă^[ƒQƒbƒgˆË‘¶•”‚ÅŒŸo‚·‚é‚à‚Ì
1298Eexchdr‚ªƒvƒƒOƒ‰ƒ€‚ÌŠJŽn”Ô’n‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
1299
1300(8) ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p‚̃Xƒ^ƒbƒN—̈æ‚ÉŠÖ‚·‚é’è‹`
1301
1302æ‚Ì (5-1-7) ‚Å‚àà–¾‚µ‚½‚悤‚ɁCSSPƒJ[ƒlƒ‹‚ł́CƒRƒ“ƒtƒBƒMƒ…
1303ƒŒ[ƒ^‚Í
1304‹¤—LƒXƒ^ƒbƒN—̈æ‚Ì‚ÝŠm•Û‚·‚éD‚µ‚½‚ª‚Á‚āC”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒgê—p‚̃Xƒ^ƒbƒN—̈æ‚Í
1305Šm•Û‚µ‚È‚¢D‚±‚Ì‚½‚߁CDEF_ICS ‚Ì–ðŠ„‚ÍC”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg‚ª—p‚¢‚éƒXƒ^ƒbƒN—̈æ‚Ì
1306ƒTƒCƒY‚ðŽw’è‚·‚邱‚Æ‚Ì‚Ý‚Æ‚È‚éD‚Ü‚½CDEF_ICS ‚ł͐擪”Ô’n istk ‚Æ‚µ‚Ä NULL ‚Ì‚Ý
1307Žó‚¯•t‚¯‚éDNULL ˆÈŠO‚Ì’l‚ðŽw’肵‚½ê‡‚̓Gƒ‰[‚Æ‚È‚éD
1308
1309¦ ‹¤—LƒXƒ^ƒbƒN—̈æ‚ÉŠÖ‚·‚é’è‹`‚Í (9) ‚ðŽQÆ‚·‚邱‚ƁD
1310
1311‚È‚¨C”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p‚̃Xƒ^ƒbƒNƒTƒCƒY‚ÉŠÖ‚·‚é’è‹`‚́CˆÈ‰º‚̂悤‚É
1312DEF_ICS ‚Ì—L–³‚É‚©‚©‚í‚炸í‚ɐ¶¬‚³‚ê‚éD
1313
1314(8-1) DEF_ICS ‚ª‚È‚¢ê‡
1315
1316ƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
1317ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹‚ɁCÃ“IAPIuDEF_ICSv‚ªŠÜ‚Ü‚ê‚Ä
1318‚¢‚È‚¢ê‡‚ɂ́CŽŸ‚̍s‚𐶐¬‚·‚éD
1319
1320#define TOPPERS_ISTKSZ DEFAULT_ISTKSZ
1321
1322(8-2) DEF_ICS ‚ª‚ ‚éê‡
1323
1324ˆÈ‰º‚ł́CƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
1325ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹‚ÉŽŸ‚̐ÓIAPI‚ªŠÜ‚Ü‚ê‚Ä
1326‚¢‚鎞‚ɐ¶¬‚·‚ׂ«î•ñ‚ɂ‚¢‚ďq‚ׂéD
1327
1328DEF_ICS({ istksz, istk });
1329
1330DEF_ICS ‚Å‚Í istk ‚Æ‚µ‚ÄNULL‚Ì‚ÝŽw’è‰Â”\‚Å‚ ‚èCo—͂ɂ͉e‹¿‚µ‚È‚¢D
1331”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—pƒXƒ^ƒbƒN—̈æ‚̃TƒCƒY istksz ‚É‚æ‚莟‚̍s‚𐶐¬‚·‚éD
1332
1333#define TOPPERS_ISTKSZ (istksz)
1334
1335¦‹¤—LƒXƒ^ƒbƒN—̈æ‚Ì’è‹`‚ɂ‚¢‚Ä‚Í (9) ‚ðŽQÆ‚Ì‚±‚ƁD
1336
1337(8-3) ƒGƒ‰[ðŒ
1338
1339”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p‚̃Xƒ^ƒbƒN—̈æ‚ÉŠÖ‚·‚éƒGƒ‰[ðŒ‚ÍŽŸ‚Ì’Ê‚è‚Å‚ ‚éD
1340
1341–ƒpƒX2‚ÅŒŸo‚·‚é‚à‚Ì
1342EÃ“IAPIuDEF_ICSv‚ª•¡”‚ ‚éiE_OBJj
1343Eistksz‚ªƒXƒ^ƒbƒN—̈æ‚̃TƒCƒY‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
1344 - istksz ‚ª 0 ‚̏ꍇ
1345Eistk‚ªƒXƒ^ƒbƒN—̈æ‚̐擪”Ô’n‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
1346 - NULLˆÈŠO‚Ì’l‚̏ꍇ
1347
1348–•K—v‚ɉž‚¶‚ă^[ƒQƒbƒgˆË‘¶•”‚ÅŒŸo‚·‚é‚à‚Ì
1349Eistksz‚ª¬‚³‚·‚¬‚éê‡iE_PARj
1350
1351
1352(9) ‹¤—LƒXƒ^ƒbƒN—̈æ‚ÉŠÖ‚·‚é’è‹`
1353
1354æ‚Ì (5-1-7) ‚É‚Äà–¾‚µ‚½‚悤‚ɁCSSPƒJ[ƒlƒ‹‚ł̓^ƒXƒN‚ðŠÜ‚Þ‘S‚Ă̏ˆ—’PˆÊ‚ª
1355“¯‚¶ƒXƒ^ƒbƒN—̈æ‚ð‹¤—p‚·‚é‚悤‚ɐ݌v‚³‚ê‚Ä‚¢‚éD‚»‚µ‚Ä‹¤—p‚³‚ê‚éƒXƒ^ƒbƒN—̈æ‚Ì
1356‚±‚Æ‚ðu‹¤—LƒXƒ^ƒbƒN—̈æv‚ƌĂԁD
1357
1358‹¤—LƒXƒ^ƒbƒN—̈æ‚Ì’è‹`‚Í DEF_STK ‚ð—p‚¢‚čs‚¤D‚»‚µ‚āCƒRƒ“ƒtƒBƒMƒ…
1359ƒŒ[ƒVƒ‡ƒ“‚Å‚Í
1360‹¤—LƒXƒ^ƒbƒN—̈æ‚ÉŠÖ‚·‚é’è‹`‚́CDEF_STK ‚Ì—L–³‚ÉŠÖ‚í‚炸í‚ɐ¶¬‚³‚ê‚éD
1361
1362ˆÈ‰º‚ł́CDEF_STK ‚Ì—L–³‚¨‚æ‚Ñ—^‚¦‚ç‚ê‚éˆø”‚Ì“à—e‚É‚æ‚èC
1363‚ǂ̂悤‚É‹¤—LƒXƒ^ƒbƒN—̈æ‚Ì’è‹`‚ª¶¬‚³‚ê‚é‚©‚ɂ‚¢‚Äà–¾‚·‚éD
1364
1365(9-1) DEF_STK ‚ª‚È‚¢ê‡‚ɐ¶¬‚³‚ê‚é’è‹`
1366
1367ƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
1368ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹‚ɁCÃ“IAPIuDEF_STKv‚ªŠÜ‚Ü‚ê‚Ä
1369‚¢‚È‚¢ê‡‚ɂ́CŽŸ‚̍s‚𐶐¬‚·‚éD
1370
1371static STK_T _kernel_stack[COUNT_STK_T(TOPPERS_TSTKSZ+TOPPERS_ISTKSZ)];
1372#define TOPPERS_STK _kernel_stack
1373#define TOPPERS_STKSZ ROUND_STK_T(TOPPERS_TSTKSZ+TOPPERS_ISTKSZ)
1374
1375(9-2) DEF_STK‚ª‚ ‚éê‡‚ɂ̂ݐ¶¬‚³‚ê‚é’è‹`
1376
1377ˆÈ‰º‚ł́CƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
1378ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹‚ÉŽŸ‚̐ÓIAPI‚ªŠÜ‚Ü‚ê‚Ä
1379‚¢‚鎞‚ɐ¶¬‚·‚ׂ«î•ñ‚ɂ‚¢‚ďq‚ׂéD
1380
1381DEF_STK({ stksz, stk });
1382
1383(9-2-1) stk ‚ª NULL ‚̏ꍇ
1384
1385stk ‚ª NULL ‚̏ꍇ‚ɂ́CŽw’肳‚ꂽƒTƒCƒY‚Ì‹¤—LƒXƒ^ƒbƒN—̈æ‚ðŠm•Û‚µC
1386‹¤—LƒXƒ^ƒbƒN—̈æ‚̏‰Šú‰»î•ñ‚𐶐¬‚·‚éD
1387‹ï‘Ì“I‚ɂ́Cã‹L‚̐ÓIAPI‚ɑ΂µ‚āCŽŸ‚̍s‚𐶐¬‚·‚éD
1388
1389static STK_T _kernel_stack[COUNT_STK_T(stksz)];
1390#define TOPPERS_STK _kernel_stack
1391#define TOPPERS_STKSZ ROUND_STK_T(stksz)
1392
1393(9-2-2) stk ‚ª NULL ˆÈŠO‚̏ꍇ
1394
1395stk ‚ª NULL ‚Å‚È‚¢ê‡‚ɂ́C‹¤—LƒXƒ^ƒbƒN—̈æ‚̏‰Šú‰»î•ñ‚ðCŽŸ‚ÌŒ`Ž®‚Ő¶¬‚·‚éD
1396
1397#define TOPPERS_STK (stk)
1398#define TOPPERS_STKSZ (stksz)
1399
1400(9-3) DEF_STK ‚Ì—L–³‚ÉŠÖŒW‚È‚­Cí‚ɐ¶¬‚³‚ê‚é’è‹`
1401
1402DEF_STK‚Ì—L–³‚É‚æ‚炸CŽŸ‚Ì’è‹`‚𐶐¬‚·‚éD
1403
1404const SIZE _kernel_stksz = TOPPERS_STKSZ;
1405STK_T *const _kernel_stk = TOPPERS_STK;
1406
1407#ifdef TOPPERS_ISTKPT
1408STK_T *const _kernel_istkpt = TOPPERS_ISTKPT(TOPPERS_STK, TOPPERS_STKSZ);
1409#endif /* TOPPERS_ISTKPT */
1410
1411(9-4) ƒGƒ‰[ðŒ
1412
1413‹¤—LƒXƒ^ƒbƒN—̈æ‚ÉŠÖ‚·‚éƒGƒ‰[ðŒ‚ÍŽŸ‚Ì’Ê‚è‚Å‚ ‚éD
1414
1415–ƒpƒX2‚ÅŒŸo‚·‚é‚à‚Ì
1416EÃ“IAPIuDEF_STKv‚ª•¡”‚ ‚éiE_OBJj
1417Estksz‚ªƒXƒ^ƒbƒN—̈æ‚̃TƒCƒY‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
1418 - stksz ‚Æ‚µ‚Ä 0 ‚ðŽw’肵‚½ê‡
1419 - ƒ^[ƒQƒbƒgˆË‘¶‚Ì’liCHECK_STKSZ_ALIGNj‚Ì”{”‚Å‚È‚¢ê‡
1420 ¦ ‚±‚̃Gƒ‰[ƒ`ƒFƒbƒN‚́Cstk ‚ª NULL ‚Å‚È‚¢ê‡‚ɂ̂ݍs‚¤
1421EŒxFstksz ‚ªC(TOPPERS_TSTKSZ+TOPPERS_ISTKSZ) ‚æ‚è‚à¬‚³‚¢ê‡
1422 ¦ DEF_STK ‚ª‘¶Ý‚µCstk ‚ª”ñNULL‚̏ꍇD
1423 ¦ ƒ}ƒNƒ‚Ì’l‚ɂ‚¢‚Ä‚Í (5-1-9), (8-1), (8-2) ‚ðŽQÆ‚Ì‚±‚Æ
1424
1425–ƒpƒX3‚ÅŒŸo‚·‚é‚à‚Ì
1426Estk‚ªƒXƒ^ƒbƒN—̈æ‚̐擪”Ô’n‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
1427 - ƒ^[ƒQƒbƒgˆË‘¶‚Ì’liCHECK_STACK_ALIGNj‚Ì”{”‚Å‚È‚¢ê‡
1428 - NULL‚̏ꍇiƒ^[ƒQƒbƒgˆË‘¶CCHECK_STACK_NONNULLj
1429
1430(10) ƒ^ƒCƒ€ƒCƒxƒ“ƒgŠÇ—‚ÉŠÖ‚·‚é’è‹`
1431
1432ƒ^ƒCƒ€ƒCƒxƒ“ƒgŠÇ—‚ÉŠÖ˜A‚µ‚āCŽŸ‚Ì’è‹`‚𐶐¬‚·‚éD
1433
1434(10-1) ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰‚̐”
1435
1436¶¬‚³‚ꂽƒ^ƒCƒ€ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰‚̐”‚ðƒ}ƒNƒ’è‹`‚·‚éƒvƒŠƒvƒƒZƒbƒT
1437ƒfƒBƒŒƒNƒeƒCƒu(#define) ‚𐶐¬‚·‚éD
1438
1439SSPƒJ[ƒlƒ‹‚ł̓^ƒCƒ€ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰‚Æ‚µ‚ÄŽüŠúƒnƒ“ƒhƒ‰‚¨‚æ‚уAƒ‰[ƒ€
1440ƒnƒ“ƒhƒ‰‚Ì‚Ý‚ðƒTƒ|[ƒg‚·‚éD‚»‚Ì‚½‚߁CCRE_CYC ‚¨‚æ‚Ñ CRE_ALM ‚̍‡Œv‚ª
1441ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰”‚Æ‚È‚éD
1442
1443‹ï‘Ì“I‚ɂ́CŽŸ‚̂悤‚È‹Lq‚𐶐¬‚·‚éD
1444
1445#define TNUM_TMEVT <ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰‚̌”>
1446
1447(10-2) ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN‚̃TƒCƒY‚Ì’è‹`
1448
1449ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN‚Ì—v‘f”‚ð’è‹`‚·‚é•Ï”‚𐶐¬‚·‚éD
1450ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN‚Ì—v‘f”‚̓^ƒCƒ€ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰‚̐”‚É“™‚µ‚¢D
1451
1452‹ï‘Ì“I‚ɂ́CŽŸ‚̂悤‚È‹Lq‚𐶐¬‚·‚éD
1453
1454const uint_t _kernel_tmevt_queue = <ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰‚̌”>;
1455
1456(10-3) ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒLƒ…
1457[‚Ì’è‹`
1458
1459ƒ^ƒCƒ€ƒCƒxƒ“ƒgŠÇ—‚Ì‚½‚߂̃Lƒ…
1460[‚𐶐¬‚·‚éDƒLƒ…
1461[‚Í”z—ñ‚Æ‚µ‚ÄŽÀ‘•‚³‚ê‚Ä
1462‚¢‚éDƒLƒ…
1463[‚̐擪‚ð•\Œ»‚·‚邽‚ß‚Ì”z—ñ—v‘f‚ðŠm•Û‚·‚邽‚߁C”z—ñ‚Ì—v‘f”‚Í
1464uƒ^ƒCƒ€ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰‚̌”{1v‚Æ‚È‚éD
1465
1466‹ï‘Ì“I‚ɂ́CŽŸ‚̂悤‚È‹Lq‚𐶐¬‚·‚éD
1467
1468extern QUEUE tmevt_queue[TNUM_TMEVT+1];
1469
1470(10-4) ƒ^ƒCƒ€ƒCƒxƒ“ƒgŽžŠÔ‚Ì’è‹`
1471
1472ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰‚Ì‹N“®Žž‚ðŠi”[‚·‚é•Ï”‚́CŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
1473
1474extern EVTTIM tmevt_time[TNUM_TMEVT];
1475
1476(10-5) ƒ^ƒCƒ€ƒCƒxƒ“ƒg‚̃R[ƒ‹ƒoƒbƒN‚Ì’è‹`
1477
1478ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰‚̃R[ƒ‹ƒoƒbƒNŠÖ”‚ðŠi”[‚·‚é•Ï”‚́C
1479ŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
1480
1481extern CBACK tmevt_callback[TNUM_TMEVT];
1482
1483(10-6) ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒR[ƒ‹ƒoƒbƒN‚̈ø”‚Ì’è‹`
1484
1485ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰‚̃R[ƒ‹ƒoƒbƒNŠÖ”‚̈ø”‚ðŠi”[‚·‚é•Ï”‚́C
1486ŽŸ‚ÌŒ`Ž®‚Æ‚·‚éD
1487
1488extern uintptr_t tmevt_arg[TNUM_TMEVT];
1489
1490(11) Šeƒ‚ƒWƒ…
1491[ƒ‹‚̏‰Šú‰»ŠÖ”‚Ì’è‹`
1492
1493ŠeƒJ[ƒlƒ‹ƒIƒuƒWƒFƒNƒg‚ÌŠÇ—CŠ„ž‚ÝŠÇ—CCPU—áŠOƒnƒ“ƒhƒ‰ŠÇ—‚ÌŠe‹@”\‚ð
1494‰Šú‰»ŠÖ”‚ð‡‚ÉŒÄ‚Ño‚·ŠÖ”i_kernel_initialize_objectj‚𐶐¬‚·‚éDŽŸ
1495‚Ì3‚‚̏‰Šú‰»ŠÖ”‚ðœ‚¢‚ẮCŽg—p‚µ‚È‚¢‹@”\‚̏‰Šú‰»ŠÖ”‚͌Ăяo‚³‚È‚¢D
1496
1497_kernel_initialize_task();
1498_kernel_initialize_interrupt
1499_kernel_initialize_exception
1500
1501‚Ü‚½ŽŸ‚̏‰Šú‰»ŠÖ”‚ɂ‚¢‚ẮCŽüŠúƒnƒ“ƒhƒ‰‚Ü‚½‚̓Aƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚ðŽg—p‚·‚é
1502ê‡‚ɂ̂݌Ăяo‚³‚ê‚éD
1503_kernel_initialize_time_event();
1504
1505‚·‚ׂĂ̋@”\‚ðŽg‚Á‚½ê‡‚ɐ¶¬‚³‚ê‚éŠÖ”‚ÍŽŸ‚Ì’Ê‚è‚Å‚ ‚éD
1506
1507void
1508_kernel_initialize_object(void)
1509{
1510 _kernel_initialize_time_event();
1511 _kernel_initialize_task();
1512 _kernel_initialize_interrupt();
1513 _kernel_initialize_exception();
1514 _kernel_initialize_cyclic();
1515 _kernel_initialize_alarm();
1516 _kernel_initialize_eventflag();
1517}
1518
1519
1520(12) ‰Šú‰»ƒ‹[ƒ`ƒ“‚ÌŽÀsŠÖ”‚Ì’è‹`
1521
1522ƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
1523ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹’†‚ÉŠÜ‚Ü‚ê‚鏉Šú‰»ƒ‹[ƒ`ƒ“‚ð’ljÁ
1524‚·‚éÃ“IAPIuATT_INIv‚ɑ΂µ‚āC’ljÁ‚µ‚½‰Šú‰»ƒ‹[ƒ`ƒ“‚ð‡‚ÉŒÄ‚Ño‚·ŠÖ
1525”‚𐶐¬‚·‚éD‹ï‘Ì“I‚ɂ́C
1526
1527ATT_INI({ iniatr, exinf, inirtn });
1528
1529‚Æ‚¢‚¤Ã“IAPI‚ɑ΂µ‚āC
1530
1531(inirtn)((intptr_t)(exinf));
1532
1533‚ðŒÄ‚яo‚·ŠÖ”‚ðC_kernel_call_inirtn‚Æ‚¢‚¤–¼‘O‚Ő¶¬‚·‚éD‰Šú‰»ƒ‹[ƒ`
1534ƒ“‚ðŒÄ‚яo‚·‡˜‚́CƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
1535ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹’†‚ł̐ÓI
1536API‚̏‡˜‚Ɉê’v‚³‚¹‚éD
1537
1538—Ⴆ‚΁C
1539
1540ATT_INI({ TA_NULL, 0, timer_initialize });
1541ATT_INI({ TA_NULL, CONSOLE_PORTID, serial_initialize });
1542
1543‚Æ‚¢‚¤2‚‚̐ÓIAPI‚ª‚±‚̏‡˜‚Å‹Lq‚³‚ꂽŽž‚ɐ¶¬‚·‚éŠÖ”‚ÍŽŸ‚Ì’Ê‚è‚Å‚ 
1544‚éD
1545
1546void
1547_kernel_call_inirtn(void)
1548{
1549 ((INIRTN)(timer_initialize))((intptr_t)(0));
1550 ((INIRTN)(serial_initialize))((intptr_t)(CONSOLE_PORTID));
1551}
1552
1553(12-1) ƒGƒ‰[ðŒ
1554
1555‰Šú‰»ƒ‹[ƒ`ƒ“‚ÉŠÖ‚·‚éƒGƒ‰[ðŒ‚ÍŽŸ‚Ì’Ê‚è‚Å‚ ‚éD
1556
1557–ƒpƒX2‚ÅŒŸo‚·‚é‚à‚Ì
1558Einiatr‚ªiTA_NULLj‚Å‚È‚¢ê‡iE_RSATRj
1559
1560–•K—v‚ɉž‚¶‚ă^[ƒQƒbƒgˆË‘¶•”‚ÅŒŸo‚·‚é‚à‚Ì
1561Einirtn‚ªƒvƒƒOƒ‰ƒ€‚ÌŠJŽn”Ô’n‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
1562
1563(13) I—¹ˆ—ƒ‹[ƒ`ƒ“‚ÌŽÀsŠÖ”‚Ì’è‹`
1564
1565ƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
1566ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹’†‚ÉŠÜ‚Ü‚ê‚éI—¹ˆ—ƒ‹[ƒ`ƒ“‚ð’Ç
1567‰Á‚·‚éÃ“IAPIuATT_TERv‚ɑ΂µ‚āC’ljÁ‚µ‚½I—¹ˆ—ƒ‹[ƒ`ƒ“‚ð‡‚ÉŒÄ‚Ño
1568‚·ŠÖ”‚𐶐¬‚·‚éD‹ï‘Ì“I‚ɂ́C
1569
1570ATT_TER({ teratr, exinf, terrtn });
1571
1572‚Æ‚¢‚¤Ã“IAPI‚ɑ΂µ‚āC
1573
1574(terrtn)((intptr_t)(exinf));
1575
1576‚ðŒÄ‚яo‚·ŠÖ”‚ðC_kernel_call_terrtn‚Æ‚¢‚¤–¼‘O‚Ő¶¬‚·‚éDI—¹ˆ—ƒ‹[
1577ƒ`ƒ“‚ðŒÄ‚яo‚·‡˜‚́CƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ…
1578ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹’†‚ł̐ÓI
1579API‚Ì‹t‡‚Ɉê’v‚³‚¹‚éD
1580
1581—Ⴆ‚΁C
1582
1583ATT_TER({ TA_NULL, 0, timer_terminate });
1584ATT_TER({ TA_NULL, CONSOLE_PORTID, serial_terminate });
1585
1586‚Æ‚¢‚¤2‚‚̐ÓIAPI‚ª‚±‚̏‡˜‚Å‹Lq‚³‚ꂽŽž‚ɐ¶¬‚·‚éŠÖ”‚ÍŽŸ‚Ì’Ê‚è‚Å‚ 
1587‚éD
1588
1589void
1590_kernel_call_terrtn(void)
1591{
1592 ((TERRTN)(serial_terminate))((intptr_t)(CONSOLE_PORTID));
1593 ((TERRTN)(timer_terminate))((intptr_t)(0));
1594}
1595
1596(13-1) ƒGƒ‰[ðŒ
1597
1598I—¹ˆ—ƒ‹[ƒ`ƒ“‚ÉŠÖ‚·‚éƒGƒ‰[ðŒ‚ÍŽŸ‚Ì’Ê‚è‚Å‚ ‚éD
1599
1600–ƒpƒX2‚ÅŒŸo‚·‚é‚à‚Ì
1601Eteratr‚ªiTA_NULLj‚Å‚È‚¢ê‡iE_RSATRj
1602
1603–•K—v‚ɉž‚¶‚ă^[ƒQƒbƒgˆË‘¶•”‚ÅŒŸo‚·‚é‚à‚Ì
1604Eterrtn‚ªƒvƒƒOƒ‰ƒ€‚ÌŠJŽn”Ô’n‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
1605
1606ˆÈã
Note: See TracBrowser for help on using the repository browser.