source: UsbWattMeter/trunk/asp_dcre/kernel/kernel_impl.h@ 164

Last change on this file since 164 was 164, checked in by coas-nagasima, 8 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/x-chdr
File size: 6.3 KB
Line 
1/*
2 * TOPPERS/ASP Kernel
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Advanced Standard Profile Kernel
5 *
6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 * Copyright (C) 2004-2010 by Embedded and Real-Time Systems Laboratory
9 * Graduate School of Information Science, Nagoya Univ., JAPAN
10 *
11 * ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
12 * ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
13 * •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
14 * (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
15 * Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
16 * ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
17 * (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
18 * —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ…
19ƒƒ“ƒgi—˜—p
20 * ŽÒƒ}ƒjƒ…
21ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
22 * ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
23 * (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
24 * —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
25 * ‚ƁD
26 * (a) Ä”z•z‚É”º‚¤ƒhƒLƒ…
27ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ…
28ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
29 * ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
30 * (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
31 * •ñ‚·‚邱‚ƁD
32 * (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
33 * ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
34 * ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
35 * —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
36 * –Ɛӂ·‚邱‚ƁD
37 *
38 * –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
39 * ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
40 * ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
41 * ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
42 * ‚̐ӔC‚𕉂í‚È‚¢D
43 *
44 * @(#) $Id: kernel_impl.h 164 2016-03-07 11:33:50Z coas-nagasima $
45 */
46
47/*
48 * TOPPERS/ASPƒJ[ƒlƒ‹“à•”Œü‚¯•W€ƒwƒbƒ_ƒtƒ@ƒCƒ‹
49 *
50 * ‚±‚̃wƒbƒ_ƒtƒ@ƒCƒ‹‚́CƒJ[ƒlƒ‹‚ð\¬‚·‚éƒvƒƒOƒ‰ƒ€‚̃\[ƒXƒtƒ@ƒCƒ‹
51 * ‚Å•K‚¸ƒCƒ“ƒNƒ‹[ƒh‚·‚é‚ׂ«•W€ƒwƒbƒ_ƒtƒ@ƒCƒ‹‚Å‚ ‚éD
52 *
53 * ƒAƒZƒ“ƒuƒŠŒ¾Œê‚̃\[ƒXƒtƒ@ƒCƒ‹‚©‚炱‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚鎞
54 * ‚́CTOPPERS_MACRO_ONLY‚ð’è‹`‚µ‚Ä‚¨‚­D‚±‚ê‚É‚æ‚èCƒ}ƒNƒ’è‹`ˆÈŠO‚ð
55 * œ‚­‚悤‚É‚È‚Á‚Ä‚¢‚éD
56 */
57
58#ifndef TOPPERS_KERNEL_IMPL_H
59#define TOPPERS_KERNEL_IMPL_H
60
61/*
62 * ƒJ[ƒlƒ‹‚Ì“à•”Ž¯•Ê–¼‚̃Šƒl[ƒ€
63 */
64#include "kernel_rename.h"
65
66/*
67 * ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚Æ‹¤’ʂ̃wƒbƒ_ƒtƒ@ƒCƒ‹
68 */
69#include <kernel.h>
70
71/*
72 * ƒVƒXƒeƒ€ƒƒO‹@”\‚Ì‚½‚ß‚Ì’è‹`
73 */
74#include <t_syslog.h>
75
76/*
77 * Œ^ƒLƒƒƒXƒg‚ðs‚¤ƒ}ƒNƒ‚Ì’è‹`
78 */
79#ifndef CAST
80#define CAST(type, val) ((type)(val))
81#endif /* CAST */
82
83/*
84 * ƒ^[ƒQƒbƒgˆË‘¶î•ñ‚Ì’è‹`
85 */
86#include "target_config.h"
87
88/*
89 * ‚·‚ׂĂ̊֐”‚ðƒRƒ“ƒpƒCƒ‹‚·‚邽‚ß‚Ì’è‹`
90 */
91#ifdef ALLFUNC
92#include "allfunc.h"
93#endif /* ALLFUNC */
94
95/*
96 * ƒrƒbƒgƒtƒB[ƒ‹ƒh‚Å‚Ì•„†–³‚µ®”Œ^
97 *
98 * 8ƒrƒbƒgˆÈ‰º‚Ì•‚̃rƒbƒgƒtƒB[ƒ‹ƒh‚ŁC•„†–³‚µ®”’l‚ð•ÛŽ‚µ‚½‚¢ê‡
99 * ‚É—p‚¢‚é‚ׂ«ƒf[ƒ^Œ^DANSI C‚ł́CƒrƒbƒgƒtƒB[ƒ‹ƒh‚̃f[ƒ^Œ^‚É‚Í
100 * int‚Æunsigned int‚µ‚©‹–‚³‚ê‚È‚¢‚½‚߁CƒfƒtƒHƒ‹ƒg‚Ì’è‹`‚Íunsigned
101 * int‚Æ‚µ‚Ä‚¢‚邪Cƒ^[ƒQƒbƒg‚¨‚æ‚уc[ƒ‹ˆË‘¶‚ŁCunsigned char‚Ü‚½‚Í
102 * unsigned short‚É’è‹`‚µ‚½•û‚ªŒø—¦‚ª—Ç‚¢ê‡‚ª‚ ‚éD
103 */
104#ifndef BIT_FIELD_UINT
105#define BIT_FIELD_UINT unsigned int
106#endif /* BIT_FIELD_UINT */
107
108/*
109 * ƒrƒbƒgƒtƒB[ƒ‹ƒh‚ł̃u[ƒ‹Œ^
110 *
111 * 1ƒrƒbƒg•‚̃rƒbƒgƒtƒB[ƒ‹ƒh‚ŁCƒu[ƒ‹’l‚ð•ÛŽ‚µ‚½‚¢ê‡‚É—p‚¢‚é‚ׂ«
112 * ƒf[ƒ^Œ^DƒfƒtƒHƒ‹ƒg‚Å‚ÍBIT_FIELD_UINT‚Æ“¯ˆê‚É’è‹`‚µ‚Ä‚¢‚邪Cƒu[
113 * ƒ‹’l‚ð•ÛŽ‚·‚邱‚Ƃ𖾎¦‚·‚邽‚ß‚É•Ê‚Ì–¼Ì‚Æ‚µ‚Ä‚¢‚éD
114 */
115#ifndef BIT_FIELD_BOOL
116#define BIT_FIELD_BOOL BIT_FIELD_UINT
117#endif /* BIT_FIELD_BOOL */
118
119/*
120 * ƒIƒuƒWƒFƒNƒgID‚̍ŏ¬’l‚Ì’è‹`
121 */
122#define TMIN_TSKID 1 /* ƒ^ƒXƒNID‚̍ŏ¬’l */
123#define TMIN_SEMID 1 /* ƒZƒ}ƒtƒHID‚̍ŏ¬’l */
124#define TMIN_FLGID 1 /* ƒtƒ‰ƒOID‚̍ŏ¬’l */
125#define TMIN_DTQID 1 /* ƒf[ƒ^ƒLƒ…
126[ID‚̍ŏ¬’l */
127#define TMIN_PDQID 1 /* —Dæ“xƒf[ƒ^ƒLƒ…
128[ID‚̍ŏ¬’l */
129#define TMIN_MBXID 1 /* ƒ[ƒ‹ƒ{ƒbƒNƒXID‚̍ŏ¬’l */
130#define TMIN_MPFID 1 /* ŒÅ’è’·ƒƒ‚ƒŠƒv[ƒ‹ID‚̍ŏ¬’l */
131#define TMIN_CYCID 1 /* ŽüŠúƒnƒ“ƒhƒ‰ID‚̍ŏ¬’l */
132#define TMIN_ALMID 1 /* ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰ID‚̍ŏ¬’l */
133#define TMIN_ISRID 1 /* Š„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“ID‚̍ŏ¬’l */
134
135/*
136 * —Dæ“x‚Ì’iŠK”‚Ì’è‹`
137 */
138#define TNUM_TPRI (TMAX_TPRI - TMIN_TPRI + 1)
139#define TNUM_MPRI (TMAX_MPRI - TMIN_MPRI + 1)
140#define TNUM_INTPRI (TMAX_INTPRI - TMIN_INTPRI + 1)
141
142/*
143 * ƒJ[ƒlƒ‹“à•”‚ÅŽg—p‚·‚é‘®«‚Ì’è‹`
144 */
145#define TA_NOEXS ((ATR)(-1)) /* –¢“o˜^ó‘Ô */
146
147#ifndef TA_MEMALLOC
148#define TA_MEMALLOC UINT_C(0x8000) /* ƒƒ‚ƒŠ—̈æ‚ðƒJ[ƒlƒ‹‚ÅŠm•Û */
149#endif /* TA_MEMALLOC */
150#ifndef TA_MBALLOC
151#define TA_MBALLOC UINT_C(0x4000) /* ŠÇ——̈æ‚ðƒJ[ƒlƒ‹‚ÅŠm•Û */
152#endif /* TA_MBALLOC */
153
154/*
155 * ƒ^[ƒQƒbƒg’è‹`‚̃Gƒ‰[ƒ`ƒFƒbƒNƒ}ƒNƒ‚̃fƒtƒHƒ‹ƒg’l‚Ì’è‹`
156 */
157#ifndef TARGET_TSKATR
158#define TARGET_TSKATR 0U /* ƒ^[ƒQƒbƒg’è‹`‚̃^ƒXƒN‘®« */
159#endif /* TARGET_TSKATR */
160
161#ifndef TARGET_ISRATR
162#define TARGET_ISRATR 0U /* ƒ^[ƒQƒbƒg’è‹`‚ÌISR‘®« */
163#endif /* TARGET_ISRATR */
164
165/*
166 * ƒwƒbƒ_ƒtƒ@ƒCƒ‹‚ðŽ‚½‚È‚¢ƒ‚ƒWƒ…
167[ƒ‹‚̊֐”E•Ï”‚̐錾
168 */
169#ifndef TOPPERS_MACRO_ONLY
170
171/*
172 * Šeƒ‚ƒWƒ…
173[ƒ‹‚̏‰Šú‰»ikernel_cfg.cj
174 */
175extern void initialize_object(void);
176
177/*
178 * ‰Šú‰»ƒ‹[ƒ`ƒ“‚ÌŽÀsikernel_cfg.cj
179 */
180extern void call_inirtn(void);
181
182/*
183 * I—¹ˆ—ƒ‹[ƒ`ƒ“‚ÌŽÀsikernel_cfg.cj
184 */
185extern void call_terrtn(void);
186
187/*
188 * ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p‚̃Xƒ^ƒbƒN—̈æikernel_cfg.cj
189 */
190extern const SIZE istksz; /* ƒXƒ^ƒbƒN—̈æ‚̃TƒCƒYiŠÛ‚ß‚½’lj */
191extern STK_T *const istk; /* ƒXƒ^ƒbƒN—̈æ‚̐擪”Ô’n */
192#ifdef TOPPERS_ISTKPT
193extern STK_T *const istkpt; /* ƒXƒ^ƒbƒNƒ|ƒCƒ“ƒ^‚̏‰Šú’l */
194#endif /* TOPPERS_ISTKPT */
195
196/*
197 * ƒJ[ƒlƒ‹‚ªŠ„‚è•t‚¯‚郁ƒ‚ƒŠ—̈æikernel_cfg.cj
198 */
199extern const SIZE kmmsz; /* ƒJ[ƒlƒ‹‚ªŠ„‚è•t‚¯‚郁ƒ‚ƒŠ—̈æ‚̃TƒCƒY */
200extern MB_T *const kmm; /* ƒJ[ƒlƒ‹‚ªŠ„‚è•t‚¯‚郁ƒ‚ƒŠ—̈æ‚̐擪”Ô’n */
201
202/*
203 * ƒJ[ƒlƒ‹“®ìó‘Ôƒtƒ‰ƒOistartup.cj
204 */
205extern bool_t kerflg;
206
207/*
208 * ƒJ[ƒlƒ‹‚Ì‹N“®istartup.cj
209 */
210extern void sta_ker(void);
211
212/*
213 * ƒJ[ƒlƒ‹‚̏I—¹ˆ—istartup.cj
214 */
215extern void exit_kernel(void);
216
217/*
218 * ƒJ[ƒlƒ‹‚ÌŠ„‚è•t‚¯‚郁ƒ‚ƒŠ—̈æ‚ÌŠÇ—istartup.cj
219 */
220extern void initialize_kmm(void);
221extern void *kernel_malloc(SIZE size);
222extern void kernel_free(void *ptr);
223
224#endif /* TOPPERS_MACRO_ONLY */
225#endif /* TOPPERS_KERNEL_IMPL_H */
Note: See TracBrowser for help on using the repository browser.