source: UsbWattMeter/trunk/asp_dcre/kernel/kernel_check.tf@ 164

Last change on this file since 164 was 164, checked in by coas-nagasima, 6 years ago

TOPPERS/ECNLサンプルアプリ「USB充電器電力計」を追加

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/plain
File size: 7.8 KB
Line 
1$ ======================================================================
2$
3$ TOPPERS/ASP Kernel
4$ Toyohashi Open Platform for Embedded Real-Time Systems/
5$ Advanced Standard Profile Kernel
6$
7$ Copyright (C) 2008-2010 by Embedded and Real-Time Systems Laboratory
8$ Graduate School of Information Science, Nagoya Univ., JAPAN
9$
10$ ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
11$ ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
12$ •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
13$ (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
14$ Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
15$ ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
16$ (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
17$ —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ…
18ƒƒ“ƒgi—˜—p
19$ ŽÒƒ}ƒjƒ…
20ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
21$ ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
22$ (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
23$ —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
24$ ‚ƁD
25$ (a) Ä”z•z‚É”º‚¤ƒhƒLƒ…
26ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ…
27ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
28$ ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
29$ (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
30$ •ñ‚·‚邱‚ƁD
31$ (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
32$ ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
33$ ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
34$ —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
35$ –Ɛӂ·‚邱‚ƁD
36$
37$ –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
38$ ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
39$ ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
40$ ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
41$ ‚̐ӔC‚𕉂í‚È‚¢D
42$
43$ @(#) $Id: kernel_check.tf 164 2016-03-07 11:33:50Z coas-nagasima $
44$
45$ =====================================================================
46
47$
48$ ƒf[ƒ^ƒZƒNƒVƒ‡ƒ“‚ÌLMA‚©‚çVMA‚ւ̃Rƒs[
49$
50$FOREACH lma LMA.ORDER_LIST$
51 $start_data = SYMBOL(LMA.START_DATA[lma])$
52 $end_data = SYMBOL(LMA.END_DATA[lma])$
53 $start_idata = SYMBOL(LMA.START_IDATA[lma])$
54 $IF !LENGTH(start_data)$
55 $ERROR$$FORMAT(_("symbol '%1%' not found"), LMA.START_DATA[lma])$$END$
56 $ELIF !LENGTH(end_data)$
57 $ERROR$$FORMAT(_("symbol '%1%' not found"), LMA.END_DATA[lma])$$END$
58 $ELIF !LENGTH(start_idata)$
59 $ERROR$$FORMAT(_("symbol '%1%' not found"), LMA.START_IDATA[lma])$$END$
60 $ELSE$
61 $BCOPY(start_idata, start_data, end_data - start_data)$
62 $END$
63$END$
64
65$
66$ ŠÖ”‚̐擪”Ô’n‚̃`ƒFƒbƒN
67$
68$IF CHECK_FUNC_ALIGN || CHECK_FUNC_NONNULL$
69$ // ƒ^ƒXƒN‚ƃ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚̐擪”Ô’n‚̃`ƒFƒbƒN
70 $tinib = SYMBOL("_kernel_tinib_table")$
71 $FOREACH tskid TSK.ID_LIST$
72 $task = PEEK(tinib + offsetof_TINIB_task, sizeof_FP)$
73 $IF CHECK_FUNC_ALIGN && (task & (CHECK_FUNC_ALIGN - 1)) != 0$
74 $ERROR TSK.TEXT_LINE[tskid]$E_PAR:
75 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
76 "task", TSK.TASK[tskid], tskid, "CRE_TSK")$$END$
77 $END$
78 $IF CHECK_FUNC_NONNULL && task == 0$
79 $ERROR TSK.TEXT_LINE[tskid]$E_PAR:
80 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is null"),
81 "task", TSK.TASK[tskid], tskid, "CRE_TSK")$$END$
82 $END$
83 $texrtn = PEEK(tinib + offsetof_TINIB_texrtn, sizeof_FP)$
84 $IF CHECK_FUNC_ALIGN && (texrtn & (CHECK_FUNC_ALIGN - 1)) != 0$
85 $ERROR DEF_TEX.TEXT_LINE[tskid]$E_PAR:
86 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
87 "texrtn", TSK.TEXRTN[tskid], tskid, "DEF_TEX")$$END$
88 $END$
89 $tinib = tinib + sizeof_TINIB$
90 $END$
91
92$ // ŽüŠúƒnƒ“ƒhƒ‰‚̐擪”Ô’n‚̃`ƒFƒbƒN
93 $cycinib = SYMBOL("_kernel_cycinib_table")$
94 $FOREACH cycid CYC.ID_LIST$
95 $cychdr = PEEK(cycinib + offsetof_CYCINIB_cychdr, sizeof_FP)$
96 $IF CHECK_FUNC_ALIGN && (cychdr & (CHECK_FUNC_ALIGN - 1)) != 0$
97 $ERROR CYC.TEXT_LINE[cycid]$E_PAR:
98 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
99 "cychdr", CYC.CYCHDR[cycid], cycid, "CRE_CYC")$$END$
100 $END$
101 $IF CHECK_FUNC_NONNULL && cychdr == 0$
102 $ERROR CYC.TEXT_LINE[cycid]$E_PAR:
103 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is null"),
104 "cychdr", CYC.CYCHDR[cycid], cycid, "CRE_CYC")$$END$
105 $END$
106 $cycinib = cycinib + sizeof_CYCINIB$
107 $END$
108
109$ // ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚̐擪”Ô’n‚̃`ƒFƒbƒN
110 $alminib = SYMBOL("_kernel_alminib_table")$
111 $FOREACH almid ALM.ID_LIST$
112 $almhdr = PEEK(alminib + offsetof_ALMINIB_almhdr, sizeof_FP)$
113 $IF CHECK_FUNC_ALIGN && (almhdr & (CHECK_FUNC_ALIGN - 1)) != 0$
114 $ERROR ALM.TEXT_LINE[almid]$E_PAR:
115 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
116 "almhdr", ALM.ALMHDR[almid], almid, "CRE_ALM")$$END$
117 $END$
118 $IF CHECK_FUNC_NONNULL && almhdr == 0$
119 $ERROR ALM.TEXT_LINE[almid]$E_PAR:
120 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is null"),
121 "almhdr", ALM.ALMHDR[almid], almid, "CRE_ALM")$$END$
122 $END$
123 $alminib = alminib + sizeof_ALMINIB$
124 $END$
125
126$ // Š„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“‚̐擪”Ô’n‚̃`ƒFƒbƒN
127 $isrinib = SYMBOL("_kernel_sisrinib_table")$
128 $FOREACH order ISR.ORDER_LIST$
129 $isr = PEEK(isrinib + offsetof_ISRINIB_isr, sizeof_FP)$
130 $IF CHECK_FUNC_ALIGN && (isr & (CHECK_FUNC_ALIGN - 1)) != 0$
131 $ERROR ISR.TEXT_LINE[order]$E_PAR:
132 $FORMAT(_("%1% `%2%\' in %4% is not aligned"),
133 "isr", ISR.ISR[order], "ATT_ISR")$$END$
134 $END$
135 $IF CHECK_FUNC_NONNULL && isr == 0$
136 $ERROR ISR.TEXT_LINE[order]$E_PAR:
137 $FORMAT(_("%1% `%2%\' in %4% is null"),
138 "isr", ISR.ISR[order], "ATT_ISR")$$END$
139 $END$
140 $isrinib = isrinib + sizeof_ISRINIB$
141 $END$
142$END$
143
144$
145$ ƒXƒ^ƒbƒN—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
146$
147$IF CHECK_STACK_ALIGN || CHECK_STACK_NONNULL$
148$ // ƒ^ƒXƒN‚̃Xƒ^ƒbƒN—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
149 $tinib = SYMBOL("_kernel_tinib_table")$
150 $FOREACH tskid TSK.ID_LIST$
151 $IF USE_TSKINICTXB$
152 $stk = GET_STK_TSKINICTXB(tinib)$
153 $ELSE$
154 $stk = PEEK(tinib + offsetof_TINIB_stk, sizeof_void_ptr)$
155 $END$
156 $IF CHECK_STACK_ALIGN && (stk & (CHECK_STACK_ALIGN - 1)) != 0$
157 $ERROR TSK.TEXT_LINE[tskid]$E_PAR:
158 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
159 "stk", TSK.STK[tskid], tskid, "CRE_TSK")$$END$
160 $END$
161 $IF CHECK_STACK_NONNULL && stk == 0$
162 $ERROR TSK.TEXT_LINE[tskid]$E_PAR:
163 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is null"),
164 "stk", TSK.STK[tskid], tskid, "CRE_TSK")$$END$
165 $END$
166 $tinib = tinib + sizeof_TINIB$
167 $END$
168
169$ // ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p‚̃Xƒ^ƒbƒN—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
170 $istk = PEEK(SYMBOL("_kernel_istk"), sizeof_void_ptr)$
171 $IF CHECK_STACK_ALIGN && (istk & (CHECK_STACK_ALIGN - 1)) != 0$
172 $ERROR ICS.TEXT_LINE[1]$E_PAR:
173 $FORMAT(_("%1% `%2%\' in %3% is not aligned"),
174 "istk", ICS.ISTK[1], "DEF_ICS")$$END$
175 $END$
176 $IF CHECK_STACK_NONNULL && istk == 0$
177 $ERROR ICS.TEXT_LINE[1]$E_PAR:
178 $FORMAT(_("%1% `%2%\' in %3% is null"),
179 "istk", ICS.ISTK[1], "DEF_ICS")$$END$
180 $END$
181$END$
182
183$
184$ ŒÅ’è’·ƒƒ‚ƒŠƒv[ƒ‹—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
185$
186$IF CHECK_MPF_ALIGN || CHECK_MPF_NONNULL$
187$ // ŒÅ’è’·ƒƒ‚ƒŠƒv[ƒ‹—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
188 $mpfinib = SYMBOL("_kernel_mpfinib_table")$
189 $FOREACH mpfid MPF.ID_LIST$
190 $mpf = PEEK(mpfinib + offsetof_MPFINIB_mpf, sizeof_void_ptr)$
191 $IF CHECK_MPF_ALIGN && (mpf & (CHECK_MPF_ALIGN - 1)) != 0$
192 $ERROR MPF.TEXT_LINE[mpfid]$E_PAR:
193 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
194 "mpf", MPF.MPF[mpfid], mpfid, "CRE_MPF")$$END$
195 $END$
196 $IF CHECK_MPF_NONNULL && mpf == 0$
197 $ERROR MPF.TEXT_LINE[mpfid]$E_PAR:
198 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is null"),
199 "mpf", MPF.MPF[mpfid], mpfid, "CRE_MPF")$$END$
200 $END$
201 $mpfinib = mpfinib + sizeof_MPFINIB$
202 $END$
203$END$
204
205$
206$ ƒJ[ƒlƒ‹‚ªŠ„‚è•t‚¯‚郁ƒ‚ƒŠ—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
207$
208$IF CHECK_MB_ALIGN$
209$ // ƒJ[ƒlƒ‹‚ªŠ„‚è•t‚¯‚郁ƒ‚ƒŠ—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
210 $kmm = PEEK(SYMBOL("_kernel_kmm"), sizeof_void_ptr)$
211 $IF CHECK_MB_ALIGN && (kmm & (CHECK_MB_ALIGN - 1)) != 0$
212 $ERROR KMM.TEXT_LINE[1]$E_PAR:
213 $FORMAT(_("%1% `%2%\' in %3% is not aligned"),
214 "kmm", KMM.KMM[1], "DEF_KMM")$$END$
215 $END$
216$END$
Note: See TracBrowser for help on using the repository browser.