1 | ï¼ TOPPERS/JSPã«ã¼ãã« ã¦ã¼ã¶ãºããã¥ã¢ã« ï¼
|
---|
2 | ï¼TLCS900 ã¿ã¼ã²ããä¾åé¨ï¼
|
---|
3 |
|
---|
4 | ï¼Release 1.4.4対å¿ï¼æçµæ´æ°: 19-May-2011ï¼
|
---|
5 |
|
---|
6 | ------------------------------------------------------------------------
|
---|
7 | TOPPERS/JSP Kernel
|
---|
8 |
|
---|
9 | Toyohashi Open Platform for Embedded Real-Time Systems/
|
---|
10 | Just Standard Profile Kernel
|
---|
11 |
|
---|
12 | Copyright (C) 2006-2010 by Witz Corporation, JAPAN
|
---|
13 |
|
---|
14 | The above copyright holders grant permission gratis to use,
|
---|
15 | duplicate, modify, or redistribute (hereafter called use) this
|
---|
16 | software (including the one made by modifying this software),
|
---|
17 | provided that the following four conditions (1) through (4) are
|
---|
18 | satisfied.
|
---|
19 |
|
---|
20 | (1) When this software is used in the form of source code, the above
|
---|
21 | copyright notice, this use conditions, and the disclaimer shown
|
---|
22 | below must be retained in the source code without modification.
|
---|
23 |
|
---|
24 | (2) When this software is redistributed in the forms usable for the
|
---|
25 | development of other software, such as in library form, the above
|
---|
26 | copyright notice, this use conditions, and the disclaimer shown
|
---|
27 | below must be shown without modification in the document provided
|
---|
28 | with the redistributed software, such as the user manual.
|
---|
29 |
|
---|
30 | (3) When this software is redistributed in the forms unusable for the
|
---|
31 | development of other software, such as the case when the software
|
---|
32 | is embedded in a piece of equipment, either of the following two
|
---|
33 | conditions must be satisfied:
|
---|
34 |
|
---|
35 | (a) The above copyright notice, this use conditions, and the
|
---|
36 | disclaimer shown below must be shown without modification in
|
---|
37 | the document provided with the redistributed software, such as
|
---|
38 | the user manual.
|
---|
39 |
|
---|
40 | (b) How the software is to be redistributed must be reported to the
|
---|
41 | TOPPERS Project according to the procedure described
|
---|
42 | separately.
|
---|
43 |
|
---|
44 | (4) The above copyright holders and the TOPPERS Project are exempt
|
---|
45 | from responsibility for any type of damage directly or indirectly
|
---|
46 | caused from the use of this software and are indemnified by any
|
---|
47 | users or end users of this software from any and all causes of
|
---|
48 | action whatsoever.
|
---|
49 |
|
---|
50 | THIS SOFTWARE IS PROVIDED "AS IS." THE ABOVE COPYRIGHT HOLDERS AND
|
---|
51 | THE TOPPERS PROJECT DISCLAIM ANY EXPRESS OR IMPLIED WARRANTIES,
|
---|
52 | INCLUDING, BUT NOT LIMITED TO, ITS APPLICABILITY TO A PARTICULAR
|
---|
53 | PURPOSE. IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS AND THE
|
---|
54 | TOPPERS PROJECT BE LIABLE FOR ANY TYPE OF DAMAGE DIRECTLY OR
|
---|
55 | INDIRECTLY CAUSED FROM THE USE OF THIS SOFTWARE.
|
---|
56 |
|
---|
57 | ä¸è¨èä½æ¨©è
|
---|
58 | ã¯ï¼ä»¥ä¸ã® (1)ã(4) ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
|
---|
59 | ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»
|
---|
60 | åé
|
---|
61 | å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
|
---|
62 | (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½æ¨©
|
---|
63 | 表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ã¹
|
---|
64 | ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼
|
---|
65 | (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ç¨
|
---|
66 | ã§ããå½¢ã§åé
|
---|
67 | å¸ããå ´åã«ã¯ï¼åé
|
---|
68 | å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è
|
---|
69 | ã
|
---|
70 | ãã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿
|
---|
71 | 証è¦å®ãæ²è¼ãããã¨ï¼
|
---|
72 | (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ç¨
|
---|
73 | ã§ããªãå½¢ã§åé
|
---|
74 | å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºãããã¨ï¼
|
---|
75 | (a) åé
|
---|
76 | å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è
|
---|
77 | ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½
|
---|
78 | 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
|
---|
79 | (b) åé
|
---|
80 | å¸ã®å½¢æ
|
---|
81 | ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã«å ±
|
---|
82 | åãããã¨ï¼
|
---|
83 | (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害
|
---|
84 | ãããï¼ä¸è¨èä½æ¨©è
|
---|
85 | ããã³TOPPERSããã¸ã§ã¯ããå
|
---|
86 | 責ãããã¨ï¼ã¾ãï¼
|
---|
87 | æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãçç±ã«åºã¥
|
---|
88 | ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
|
---|
89 | ããã³TOPPERSããã¸ã§ã¯ããå
|
---|
90 | 責ãããã¨ï¼
|
---|
91 |
|
---|
92 | æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
|
---|
93 | ãã
|
---|
94 | ã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®çã«å¯¾ã
|
---|
95 | ãé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨
|
---|
96 | ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè²
|
---|
97 | ããªãï¼
|
---|
98 |
|
---|
99 | @(#) $Id: tlcs900.txt,v 1.3 2007/05/21 01:21:47 honda Exp $
|
---|
100 | ------------------------------------------------------------------------
|
---|
101 |
|
---|
102 | 1 TLCS900 ã¿ã¼ã²ããä¾åé¨ã®æ¦è¦
|
---|
103 |
|
---|
104 | 1.1 ã¿ã¼ã²ããã·ã¹ãã ã¨éçºç°å¢
|
---|
105 |
|
---|
106 | TLCS900ããã»ããµã®ã¿ã¼ã²ããã·ã¹ãã ã¯ï¼ã¿ããã³å·¥æ¥æ ªå¼ä¼ç¤¾ã®Zup-F16
|
---|
107 | æ¡å¼µãã¼ãã¨ããµãã¼ããã¦ããï¼Zup-F16æ¡å¼µãã¼ãã¯TMP91CY22-CPUãæè¼
|
---|
108 | ãã¦ããï¼
|
---|
109 |
|
---|
110 | 1.2 éçºç°å¢ã¨å®è¡ç°å¢
|
---|
111 |
|
---|
112 | Zup-F16æ¡å¼µãã¼ããããã«å梱ããã¦ããCD-ROMä¸ã®æ±èã»ãã³ã³ãã¯ã¿ç¤¾è£½
|
---|
113 | ã®éçºç°å¢(TOSHIBA IDE)ã使ç¨ãã¦éçºãè¡ãï¼
|
---|
114 | JSP1.4.4ã®Windowsç(æåã³ã¼ãSJIS æ¹è¡ã³ã¼ãCRLF)å®è¡ãå¯è½ã§ã·ãªã¢ã«
|
---|
115 | ãã¼ãããã¤ãã½ã³ã³ãããã°ï¼æ§ç¯ï¼ãã¼ãä¸å®è¡ãå¯è½ã§ããï¼
|
---|
116 |
|
---|
117 | 1.3 ãµãã¼ãããæ©è½ã®æ¦è¦
|
---|
118 |
|
---|
119 | å²è¾¼ã¿ãã¹ã¯ã®å¤æ´ã»åç
|
---|
120 | § (chg_ixxï¼ get_ixx)ã¯ãµãã¼ããã¦ãããï¼æ§è½
|
---|
121 | è©ä¾¡ç¨ã·ã¹ãã æå»åç
|
---|
122 | §æ©è½ (vxget_tim) ï¼å²ãè¾¼ã¿ã®ç¦æ¢ã¨è¨±å¯
|
---|
123 | (dis_intï¼ena_int) ã¯ãµãã¼ããã¦ããªãï¼
|
---|
124 |
|
---|
125 | 1.4 ä»ã®ã¿ã¼ã²ããã¸ã®ãã¼ãã£ã³ã°
|
---|
126 |
|
---|
127 | TLCS900ã·ãªã¼ãºã§ããã°ã·ã¹ãã ä¾åé¨ã®ä¿®æ£ã®ã¿ã§ãã¼ãã£ã³ã°ãå¯è½ã¨
|
---|
128 | æãããï¼ã¾ãï¼ä»ã®ã·ãªã¼ãºã®CPUã§ãæ§é ã大ããéã£ã¦ããªããã°ï¼å®¹
|
---|
129 | æã«ãã¼ãã£ã³ã°ã¯å¯è½ã§ããï¼ãªãï¼ãã¹ãç°å¢ã®é½åä¸ï¼Zup-F16æ¡å¼µã
|
---|
130 | ã¼ã以å¤ã§ã®åä½ç¢ºèªã¯è¡ã£ã¦ããªãï¼
|
---|
131 |
|
---|
132 | 1.5 ã·ãªã¢ã«ãã¼ã (SIO)
|
---|
133 |
|
---|
134 | ãã¼ãä¸ã¯UART1ãå®è£
|
---|
135 | ããã¦ããï¼ãã¼ãã£ã³ã°ã«ããã¦ã¯ï¼UART0/1両æ¹
|
---|
136 | ã¨ãåä½å¯è½ãªããã«é
|
---|
137 | æ
|
---|
138 | ®ãã¦ãããï¼åä½ç¢ºèªã¯UART1ã®ã¿è¡ã£ã¦ããï¼
|
---|
139 | ã·ãªã¢ã«ãã¼ãã®è¨å®ã¯ä»¥ä¸ã®éãã§ããï¼
|
---|
140 |
|
---|
141 | ã»ãã¼ã¬ã¤ãï¼19200bps
|
---|
142 | ã»ãã¼ã¿é·ï¼8 ãããï¼
|
---|
143 | ã»ã¹ããããããï¼1 ããã
|
---|
144 | ã»ããªãã£ï¼ãªã
|
---|
145 |
|
---|
146 | 1.6 対象ã¨ããæåã³ã¼ãã¨æ¹è¡ã³ã¼ã
|
---|
147 |
|
---|
148 | Windowsç(æåã³ã¼ãSJIS æ¹è¡ã³ã¼ãCRLF)ã対象ã¨ãã¦ããï¼ãªãï¼ã³ã³
|
---|
149 | ãã£ã®ã¥ã¬ã¼ã¿ cfg.exe ãå¾è¿°ã®MinGWã§ãã«ãããå ´åã¯ï¼æåã³ã¼ãEUC
|
---|
150 | æ¹è¡ã³ã¼ãLFã§ãããã¨ãã®ãã¾ããï¼ãã®ããï¼cfg以ä¸ã®ã½ã¼ã¹ã³ã¼ããï¼
|
---|
151 | æåã³ã¼ãEUCæ¹è¡ã³ã¼ãLFã«å¤æãããï¼æ¨æºç(æåã³ã¼ãECU æ¹è¡ã³ã¼ã
|
---|
152 | LF)ã®cfg以ä¸ã§ãã«ããã cfg.exeãã³ãã¼ãã¦å©ç¨ãããã¨ãæ¨å¥¨ããï¼
|
---|
153 |
|
---|
154 | 2 TLCS900 ããã»ããµä¾åé¨ã®æ©è½
|
---|
155 |
|
---|
156 | ãã®ç¯ã§ã¯ï¼ã«ã¼ãã«ããã³ã·ã¹ãã ãµã¼ãã¹ã®æ©è½ã®ä¸ã§ï¼TLCS900ä¾åã®
|
---|
157 | é¨åã«ã¤ãã¦è§£èª¬ããï¼
|
---|
158 |
|
---|
159 | 2.1 ãã¼ã¿å
|
---|
160 |
|
---|
161 | int å㨠unsigned int åã®ãµã¤ãºã¯ 16ãããã§ããï¼ã¾ãï¼_int64_ã¯å¯¾å¿
|
---|
162 | ãã¦ããªãï¼ãã¤ã³ã¿åã®ãµã¤ãºã¯ 32ãããã§ããï¼
|
---|
163 |
|
---|
164 | 2.2 å²è¾¼ã¿ç®¡çæ©è½ã¨å²è¾¼ã¿ãã³ãã©
|
---|
165 |
|
---|
166 | ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã¯ NMI ã®ã¿ã§ããï¼CPUããã¯ç¶æ
|
---|
167 | ãåæåã«ã¼ãã³
|
---|
168 | å
|
---|
169 | ã§ã¯ NMI 以å¤ã®å²è¾¼ã¿ã¯å
|
---|
170 | ¨ã¦ç¦æ¢ãããï¼å
|
---|
171 | ·ä½çã«ã¯ï¼å²è¾¼ã¿ãã¹ã¯ãï¼
|
---|
172 | ã«è¨å®ãããï¼
|
---|
173 |
|
---|
174 | å²è¾¼ã¿ãã³ãã©ã¯CPUã®è¨å®ä½ç½®ã«éçã«é
|
---|
175 | ç½®ãããï¼æ¬éçºç°å¢ã§ã¯ã³ã³ãã£
|
---|
176 | ã®ã¥ã¬ã¼ã·ã§ã³ããçæãããkernel_cfg.cã®å
|
---|
177 | 容ãèå¥ãï¼èªåçã«éçãª
|
---|
178 | å²è¾¼ã¿ãã³ãã©ãçæããã¦ã¼ãã£ãªãã£ãç¨æãã¦ããï¼ãã®ã¦ã¼ãã£ãªã
|
---|
179 | ã£ã¯utils/tlcs900-toshibaãã¬ã¯ããªã£ä¸ã®tlcs900vec.exeã³ãã³ãã§ï¼ããª
|
---|
180 | ã³ã³ãã¤ã«ãããkernel_cfg.cã®å
|
---|
181 | 容ã解æãå²è¾¼ã¿ãã¯ã¿ãã¼ãã«ãã¡ã¤ã«
|
---|
182 | ã§ããtlcs900vec.incãçæããï¼tlcs900vec.incã¯CPUã®ã¹ã¿ã¼ãã¢ããã¢
|
---|
183 | ã¸ã¥ã¼ã«ã§ããstart.appã«ã¤ã³ã¯ã«ã¼ãããã¦ããï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
|
---|
184 | ãã¡ã¤ã«ã®å²è¾¼ã¿ãã³ãã©è¨å®ãROMä¸ã«éçã«é
|
---|
185 | ç½®ããï¼
|
---|
186 | ãªãï¼å²è¾¼ã¿ãã³ãã©ãç»é²ãããªãã£ãå²è¾¼ã¿è¦å ã«ã¯ï¼æªä½¿ç¨å²è¾¼ã¿å¦ç
|
---|
187 | _unused_interrupt ãç»é²ãããï¼ã¾ãï¼å²è¾¼ã¿è¦å çªå·ï¼ã¯ã¹ã¿ã¼ãã¢ãã
|
---|
188 | å¦ç _start ãç»é²ãããï¼
|
---|
189 | DEF_INH ã§æå®ããå²è¾¼ã¿ãã³ãã©çªå·ï¼inhnoï¼ã¯ï¼TMP91CY22 ã§ã®ãã¯ã¿å¤
|
---|
190 | ã表ãï¼ãã®ãã¼ã¿åï¼INHNOï¼ã¯unsigned intåã«å®ç¾©ããã¦ããï¼
|
---|
191 | DEF_INH ã§ï¼ãã¯ã¿å¤ã¨ãã¦æå¹ã§ãªãå¤ãï¼å¤é¨å²è¾¼ã¿ã«å¯¾å¿ããªãå¤ãæ
|
---|
192 | å®ããå ´åã®åä½ã¯ä¿è¨¼ãããªãï¼
|
---|
193 |
|
---|
194 | chg_ipm ããµãã¼ãããããã«ï¼å²è¾¼ã¿ãã³ãã©ã®åºå
|
---|
195 | ¥å£å¦çãªã©ã«ãªã¼ããã
|
---|
196 | ããçãã¦ããï¼ããã§ï¼SUPPORT_CHG_IPM ã¨ãããã¯ãã«ããï¼ãããã®ãµã¼
|
---|
197 | ãã¹ã³ã¼ã«ããµãã¼ããããã©ãããåãæ¿ããããããã«ãã¦ããï¼
|
---|
198 | SUPPORT_CHG_IPM ã¯ï¼cpu_config.h ã®ä¸ã§ãã¯ãå®ç¾©ããã¦ããï¼
|
---|
199 |
|
---|
200 | TLCS900 ä¾åã®å²è¾¼ã¿ãã¹ã¯ã®å¤æ´ã»åå¾ã®ããã®ãµã¼ãã¹ã³ã¼ã«ã®ä»æ§ã¯ä»¥
|
---|
201 | ä¸ã®éãã§ããï¼
|
---|
202 |
|
---|
203 | (1) chg_ipm å²è¾¼ã¿ãã¹ã¯ã®å¤æ´
|
---|
204 |
|
---|
205 | ãCè¨èªAPIã
|
---|
206 | ER ercd = chg_ipm(IPM ipm);
|
---|
207 |
|
---|
208 | ããã©ã¡ã¼ã¿ã
|
---|
209 | IPM ipm è¨å®ãã¹ã IPM ã®å¤
|
---|
210 |
|
---|
211 | ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
|
---|
212 | ER ercd ã¨ã©ã¼ã³ã¼ã
|
---|
213 |
|
---|
214 | ãã¨ã©ã¼ã³ã¼ãã
|
---|
215 | E_CTX ã³ã³ããã¹ãã¨ã©ã¼
|
---|
216 | E_PAR ãã©ã¡ã¼ã¿ã¨ã©ã¼ï¼ipm ãä¸æ£ï¼
|
---|
217 |
|
---|
218 | ãæ©è½ã
|
---|
219 |
|
---|
220 | IPMï¼Interrupt Priority Maskï¼ã ipm ã§æå®ãããå¤ã«è¨å®ããï¼æå®ã
|
---|
221 | ãå¤ã 0ã6 以å¤ã®å ´åï¼E_PARã¨ã©ã¼ã¨ãªãï¼IPM ã 0ã6 ã«è¨å®ããå ´å
|
---|
222 | ã§ãï¼ãã£ã¹ãããã¯ç¦æ¢ãããªãï¼ã¾ãï¼è¨å®ãã IPM ã®å¤ã¯ï¼ãã£ã¹ãã
|
---|
223 | ãå¾ãå¼ãç¶ãããï¼ãã£ã¹ããããç¦æ¢ãããå ´åã«ã¯ï¼dis_dsp ã¨ä½µç¨ã
|
---|
224 | ãã°ããï¼
|
---|
225 |
|
---|
226 | ãªãï¼ãã®ãµã¼ãã¹ã³ã¼ã«ãç¨ãã¦ï¼IPM ã 7 ï¼ãã¹ã¦ã®å²è¾¼ã¿ãç¦æ¢ï¼ã«
|
---|
227 | è¨å®ãããã¨ã¯ã§ããªãï¼IPM ã 7 ã«ãããå ´åã«ã¯ï¼loc_cpu ã使ãã¹ã
|
---|
228 | ã§ããï¼
|
---|
229 |
|
---|
230 | ãã®ãµã¼ãã¹ã³ã¼ã«ã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ã㧠CPUããã¯è§£é¤ç¶æ
|
---|
231 | ã®æã®ã¿å¼
|
---|
232 | ã³åºããã¨ãã§ããï¼éã¿ã¹ã¯ã³ã³ããã¹ãã CPUããã¯ç¶æ
|
---|
233 | ã§å¼ã³åºããå ´
|
---|
234 | åã«ã¯ï¼E_CTXã¨ã©ã¼ã¨ãªãï¼
|
---|
235 |
|
---|
236 | (2) get_ipm å²è¾¼ã¿ãã¹ã¯ã®åå¾
|
---|
237 |
|
---|
238 | ãCè¨èªAPIã
|
---|
239 | ER ercd = get_ipm(IPM *p_ipm);
|
---|
240 |
|
---|
241 | ããã©ã¡ã¼ã¿ã
|
---|
242 | ãªã
|
---|
243 |
|
---|
244 | ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
|
---|
245 | ER ercd ã¨ã©ã¼ã³ã¼ã
|
---|
246 | IPM ipm ç¾å¨ã® IPM ã®å¤
|
---|
247 |
|
---|
248 | ãã¨ã©ã¼ã³ã¼ãã
|
---|
249 | E_CTX ã³ã³ããã¹ãã¨ã©ã¼
|
---|
250 |
|
---|
251 | ãæ©è½ã
|
---|
252 |
|
---|
253 | ç¾å¨ã® IPMï¼Interrupt Priority Maskï¼ã®å¤ãèªã¿åºãï¼ipm ã«è¿ãï¼
|
---|
254 |
|
---|
255 | ãã®ãµã¼ãã¹ã³ã¼ã«ã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ã㧠CPUããã¯è§£é¤ç¶æ
|
---|
256 | ã®æã®ã¿å¼
|
---|
257 | ã³åºããã¨ãã§ããï¼éã¿ã¹ã¯ã³ã³ããã¹ãã CPUããã¯ç¶æ
|
---|
258 | ã§å¼ã³åºããå ´
|
---|
259 | åã«ã¯ï¼E_CTXã¨ã©ã¼ã¨ãªãï¼
|
---|
260 |
|
---|
261 | 2.3 CPU ä¾å¤ç®¡çæ©è½ã¨ CPU ä¾å¤ãã³ãã©
|
---|
262 |
|
---|
263 | CPUä¾å¤ã¨ãã¦ï¼ãã¼ãã¦ã§ã¢ãã³ãã¹ã«ãã«å²è¾¼ã¿ã¨ã½ããã¦ã§ã¢ãã³ãã¹ã«
|
---|
264 | ãã«å²è¾¼ã¿ãããï¼ãã¼ãã¦ã§ã¢ãã³ãã¹ã«ãã«å²è¾¼ã¿ä¸ã®ãªã»ãããé¤ãã¦
|
---|
265 | ãã³ãã©ã®è¨å®ãå¯è½ã§ããï¼
|
---|
266 | CPUä¾å¤ãã³ãã©ã¯å²è¾¼ã¿ãã³ãã©ã¨åæ§ã«CPUã®è¨å®ä½ç½®ã«éçã«é
|
---|
267 | ç½®ããã
|
---|
268 | ï¼CPUä¾å¤ãã³ãã©ã«é¢ãã¦ãå²è¾¼ã¿ãã³ãã©ã¨åæ§ã«tlcs900vec.exeãç¨ãã¦ï¼
|
---|
269 | èªåçã«éçãªCPUä¾å¤ãã³ãã©ãçæãããã¨ãã§ããï¼ãã®ãã¼ã¿ã¯å²è¾¼ã¿
|
---|
270 | ãã³ãã©ã¨åæ§ã«tlcs900vec.incã«è¨å®ãããï¼
|
---|
271 | DEF_EXC ã§æå®ããå²è¾¼ã¿ãã³ãã©çªå·ï¼excnoï¼ã¯ï¼M16Cã§ã®ä¾å¤ãã¯ã¿
|
---|
272 | çªå·ã表ãï¼ãã®ãã¼ã¿åï¼EXCNOï¼ã¯ unsigned intåã«å®ç¾©ããã¦ããï¼
|
---|
273 | DEF_EXC ã§æå®ããCPUä¾å¤ãã³ãã©çªå·ï¼excnoï¼ã¯ï¼TMP91CY22 ã§ã®ãã¯ã¿
|
---|
274 | å¤ã表ãï¼ãã®ãã¼ã¿åï¼EXCNOï¼ã¯unsigned intåã«å®ç¾©ããã¦ããï¼
|
---|
275 | DEF_EXC ã§ï¼ãã¯ã¿å¤ã¨ãã¦æå¹ã§ãªãå¤ãæå®ããå ´åã®åä½ã¯ä¿è¨¼ãããª
|
---|
276 | ãï¼
|
---|
277 |
|
---|
278 | 2.4 ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«
|
---|
279 |
|
---|
280 | TLCS900 ä¾åã®ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã« (start.app) ã¯æ¬¡ã«ç¤ºãåæåã
|
---|
281 | å®è¡ããå¾ï¼ã«ã¼ãã« (kernel_start) ãèµ·åããï¼ãã ãï¼ kernel_start
|
---|
282 | ããæ»ã£ã¦ãããã¨ã¯æ³å®ãã¦ããªãï¼
|
---|
283 |
|
---|
284 | (1) å²è¾¼ã¿ã®ç¦æ¢
|
---|
285 |
|
---|
286 | (2) ã¹ã¿ãã¯ãã¤ã³ã¿ã®è¨å®
|
---|
287 |
|
---|
288 | (3) å²è¾¼ã¿ãã¹ãã¬ã¸ã¹ã¿ã®åæå
|
---|
289 |
|
---|
290 | (4) hardware_init_hook ã®å¼åºã
|
---|
291 |
|
---|
292 | hardware_init_hook ã 0 ã§ãªãå ´åã«ã¯ï¼hardware_init_hook ãå¼ã³åºãï¼
|
---|
293 | hardware_init_hook ã¯ï¼ã«ã¼ãã«ãèµ·åãããåã«è¡ãå¿
|
---|
294 | è¦ãããã¿ã¼ã²ã
|
---|
295 | ãä¾åã®åæåãè¡ãããã«ç¨æãã¦ããï¼hardware_init_hook ãã©ãã§ã
|
---|
296 | å®ç¾©ããã¦ããªãå ´åï¼ãªã³ã«ã§ãã®ã·ã³ãã«ã 0 ã«å®ç¾©ããï¼ãªã³ã«ã¹ã¯
|
---|
297 | ãªããå
|
---|
298 | ã«è¨è¿°ããï¼ï¼
|
---|
299 |
|
---|
300 | (5) areaã»ã¯ã·ã§ã³ã¨ dataã»ã¯ã·ã§ã³ã®åæå
|
---|
301 |
|
---|
302 | areaã»ã¯ã·ã§ã³ãã¼ãã¯ãªã¢ããï¼ã¾ãï¼dataã»ã¯ã·ã§ã³ãåæåããï¼
|
---|
303 |
|
---|
304 | (6) software_init_hook ã®å¼åºã
|
---|
305 |
|
---|
306 | software_init_hook ã 0 ã§ãªãå ´åã«ã¯ï¼software_init_hook ãå¼ã³åºãï¼
|
---|
307 | software_init_hook ã¯ï¼ã«ã¼ãã«ãèµ·åãããåã«è¡ãå¿
|
---|
308 | è¦ãããã½ããã¦ã§
|
---|
309 | ã¢ç°å¢ï¼å
|
---|
310 | ·ä½çã«ã¯ï¼ã©ã¤ãã©ãªï¼ä¾åã®åæåãè¡ãããã«ç¨æãã¦ããï¼
|
---|
311 | software_init_hook ãã©ãã§ãå®ç¾©ããã¦ããªãå ´åï¼ãªã³ã«ã§ãã®ã·ã³ã
|
---|
312 | ã«ã 0 ã«å®ç¾©ããï¼ãªã³ã«ã¹ã¯ãªããå
|
---|
313 | ã«è¨è¿°ããï¼ï¼
|
---|
314 |
|
---|
315 | (7) ã«ã¼ãã«ã®èµ·å
|
---|
316 |
|
---|
317 | kernel_start ã¸åå²ãï¼ã«ã¼ãã«ãèµ·åããï¼kernel_start ãããªã¿ã¼ã³ã
|
---|
318 | ã¦ãããã¨ã¯æ³å®ãã¦ããªãï¼
|
---|
319 |
|
---|
320 | 3 Zup-F16-ex ã·ã¹ãã ä¾åé¨ã®æ©è½
|
---|
321 |
|
---|
322 | 3.1 ã·ã¹ãã ã¯ããã¯ãã©ã¤ã
|
---|
323 |
|
---|
324 | ã·ã¹ãã ã¯ããã¯ãã©ã¤ããisig_timãå¼ã³åºãå¨æã¯ï¼sys_defs.hä¸ã®
|
---|
325 | TIC_NUMEã¨TIC_DENOã§å®ç¾©ããã¦ããï¼æ¨æºã¯ 1ããªç§å¨æï¼ï¼ãã®å®ç¾©ãå¤
|
---|
326 | æ´ãããã¨ã§ï¼isig_timãå¼ã³åºãå¨æãå¤æ´ãããã¨ãã§ããï¼ãã ãï¼ã¿
|
---|
327 | ã¤ãã®ç²¾åº¦ã50μç§ç¨åº¦ã§ããããï¼50μç§åä½ã§ç«¯æ°ã«ãªãå¤ãè¨å®ããå ´
|
---|
328 | åã«ã¯ï¼isig_timã®å¼åºãå¨æã«èª¤å·®ãçãããã¨ã«ãªãï¼
|
---|
329 |
|
---|
330 | 3.2 ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ã
|
---|
331 |
|
---|
332 | Zup-F16æ¡å¼µãã¼ãã§ã¯UART1ã®ã·ãªã¢ã«ãã¼ãããã¼ãä¸ã«å®è£
|
---|
333 | ããã¦ããï¼
|
---|
334 | ãã®ããUART1ããã°åºåç¨ã«ä½¿ç¨ãã¦ããï¼
|
---|
335 |
|
---|
336 | 3.3 ã¡ã¢ãªããã
|
---|
337 |
|
---|
338 | 0x000000 - 0x0003ff å
|
---|
339 | é¨IO(SFR)é å
|
---|
340 | 0x001000 - 0x004bff å
|
---|
341 | èµ RAM area data
|
---|
342 | 0x004c00 - 0x004fff å
|
---|
343 | èµ RAM stack
|
---|
344 | 0x100000 - 0x200000 å¤é¨ RAM æªä½¿ç¨
|
---|
345 | 0xfc0000 - 0xfffeff å
|
---|
346 | èµ ROM code const
|
---|
347 | 0xffff00 - 0xffffff å
|
---|
348 | èµ ROM vecter
|
---|
349 |
|
---|
350 | 4 éçº
|
---|
351 |
|
---|
352 | 4.1 éçºç°å¢ã®æ§ç¯
|
---|
353 |
|
---|
354 | éçºç°å¢ã¯ï¼Windows XPãç¨ããï¼Zup-F16æ¡å¼µãã¼ããããã«å梱ããã¦ãã
|
---|
355 | CD-ROMä¸ã®æ±èã»ãã³ã³ãã¯ã¿ç¤¾è£½ã®éçºç°å¢(TOSHIBA IDE)ã使ç¨ãã¦éçºã
|
---|
356 | è¡ãï¼ãªãï¼ã«ã¼ãã«é¨ã®ã©ã¤ãã©ãªåã¯è¡ã£ã¦ããªãï¼
|
---|
357 |
|
---|
358 | 使ç¨ããéçºç°å¢ã®ãã¼ã¸ã§ã³
|
---|
359 | TIDE 2.3.1.1
|
---|
360 |
|
---|
361 | 4.1.1 ãã¼ã«ã®æ§ç¯
|
---|
362 |
|
---|
363 | utils/tlcs900-toshiba ä¸ã®ãã¼ã« tlcs900offset.exe 㨠tlcs900vec.exe ã
|
---|
364 | æ§ç¯ãã¾ã.
|
---|
365 | utils/tlcs900-toshiba å
|
---|
366 | ã® Microsoft Visual Studio 2010 ã¯ã¼ã¯ã¹ãã¼ã¹
|
---|
367 | ãã¡ã¤ã«tlcs900_toshiba.sln ãéãã¾ãï¼ãã«ãã¡ãã¥ã¼ã«ã¦ããããã®ã
|
---|
368 | ãã¸ã§ã¯ãããã«ããï¼tlcs900offset.exe 㨠tlcs900vec.exe ãçæãã¾ãï¼
|
---|
369 | å¿
|
---|
370 | è¦ã«å¿ãã¦ãã«ãã¡ãã¥ã¼ã®ããããã«ãã使ç¨ãããï¼ã¢ã¯ãã£ããªãã
|
---|
371 | ã¸ã§ã¯ãã®æ§æã使ç¨ãã¦ããã¸ã§ã¯ããå¤æ´ãï¼ãªãã«ããè¡ã£ã¦ãã ããï¼
|
---|
372 |
|
---|
373 | ãªããã«ã¼ãã«æ§ç¯ã«ããã£ã¦ã¯ãã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã使ç¨ãã¾ãï¼
|
---|
374 | ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ã®æ§ç¯æ¹æ³ã¯ user.txt ãåç
|
---|
375 | §ãã¦ãã ããï¼
|
---|
376 |
|
---|
377 | 4.1.2 ãµã³ãã«ããã¸ã§ã¯ãã®ãã«ã
|
---|
378 |
|
---|
379 | Zup-F16æ¡å¼µãã¼ããããã«å梱ããã¦ããCD-ROMä¸ã®æ±èã»ãã³ã³ãã¯ã¿ç¤¾
|
---|
380 | 製ã®éçºç°å¢(TOSHIBA IDE)ãã¤ã³ã¹ãã¼ã«ããï¼TOSHIBA IDE èµ·åãï¼
|
---|
381 | tools/TLCS900-TOSHIBAå
|
---|
382 | ã®TOSHIBA IDEã¯ã¼ã¯ã¹ãã¼ã¹ãã¡ã¤ã«
|
---|
383 | TLCS900-TOSHIBA.tws ãéãã¾ãï¼ãã«ãã¡ãã¥ã¼ãããªãã«ããè¡ãã¾ãï¼
|
---|
384 | ã¢ã¯ãã£ããªããã¸ã§ã¯ãã®æ§æã«ããtools/TLCS900-TOSHIBA/Zup-F16-ex
|
---|
385 | å
|
---|
386 | ã® release ã¾ã㯠debug é層ã«ï¼ãã¼ãã¢ã¸ã¥ã¼ã«ãã¡ã¤ã«
|
---|
387 | Zup-F16-ex.h20 ãçæããã¾ãï¼
|
---|
388 |
|
---|
389 | 4.1.3 ãã©ãã·ã¥ROMã¸ã®æ¸è¾¼ã¿
|
---|
390 |
|
---|
391 | Zup-F16æ¡å¼µãã¼ããããã«å梱ããã¦ããCD-ROMä¸ã®ã¿ããã³å·¥æ¥æ ªå¼ä¼ç¤¾
|
---|
392 | 製ã®ãã¼ãããã°ã©ã ãä»»æã®é層ã«ã³ãã¼ããï¼ãã¼ãããã°ã©ã ãèµ·å
|
---|
393 | ããï¼ãã®æ使ç¨ããCOMãã¼ãã®è¨å®ãªã©ããã¼ãããã°ã©ã ã¨åãé層ã«
|
---|
394 | ããè¨å®ãã¡ã¤ã« FROMLoad.ini ã«è¨å®ããå¿
|
---|
395 | è¦ãããï¼ãã½ã³ã³ã¨Zup-F16
|
---|
396 | æ¡å¼µãã¼ããã·ãªã¢ã«ã¯ãã¹ã±ã¼ãã«ã§æ¥ç¶ãï¼Zup-F16æ¡å¼µãã¼ãã® sw1 ã
|
---|
397 | B å´ã«è¨å®ãã¦ï¼Zup-F16æ¡å¼µãã¼ãã®é»æºãONã«ããï¼ãã¼ãããã°ã©ã ã®
|
---|
398 | ãã¡ã¤ã«ã¡ãã¥ã¼ã«ã¦ï¼åç« ã§çæãããã¼ãã¢ã¸ã¥ã¼ã«ãã¡ã¤ã«ãæå®ãï¼
|
---|
399 | æ¸è¾¼ã¿ãã¿ã³ã«ã¦ãã©ãã·ã¥ROMã¸ã®æ¸è¾¼ã¿ãè¡ãï¼
|
---|
400 |
|
---|
401 | 4.1.4 sample1ã®å®è¡
|
---|
402 |
|
---|
403 | ãã½ã³ã³ã«ã·ãªã¢ã«ã¿ã¼ããã«ãç«ã¡ä¸ãã¦ãã ããï¼
|
---|
404 | è¨å®ã¯ä»¥ä¸ã®éãã§ãï¼
|
---|
405 |
|
---|
406 | ã»ãã¼ã¬ã¤ãï¼19200bps
|
---|
407 | ã»ãã¼ã¿é·ï¼8 ãããï¼
|
---|
408 | ã»ã¹ããããããï¼1 ããã
|
---|
409 | ã»ããªãã£ï¼ãªã
|
---|
410 |
|
---|
411 | Zup-F16æ¡å¼µãã¼ãã® sw1 ã B ã®å対å´ã«è¨å®ãã¦ï¼Zup-F16æ¡å¼µãã¼ãã®
|
---|
412 | é»æºãONã«ãã㨠sample1 ãå®è¡ããã¾ãï¼sample1 ã®è©³ç´°ã¯ sample1.c
|
---|
413 | ãã¡ã¤ã«ã®ãããé¨åãåç
|
---|
414 | §ãã¦ãã ããï¼
|
---|
415 |
|
---|
416 | 4.2 ãããã«
|
---|
417 |
|
---|
418 | éçºç°å¢(TOSHIBA IDE)ã«ã¯ã·ãã¥ã¬ã¼ã¿ãããã¬ãä»å±ãã¦ãããï¼ã·ãªã¢
|
---|
419 | ã«éä¿¡ã®ã·ãã¥ã¬ã¼ã·ã§ã³è¨å®ãªã©ã工夫ããªãéãï¼ã«ã¼ãã«èµ·åæã®ãã°
|
---|
420 | åºåå¦çã«ã¦éä¿¡å®äºå¾
|
---|
421 | ã¡ç¶æ
|
---|
422 | ã®ã¾ã¾ç¡éã«ã¼ããã¦ãã¾ãï¼ãã®ããï¼ã·ãª
|
---|
423 | ã¢ã«éä¿¡æ©è½ãåæ¢ï¼å°ãªãã¨ã sys_config.c ã«å®è£
|
---|
424 | ããã¦ãã sys_putc
|
---|
425 | ã®å¦çå®æ
|
---|
426 | ã¯ç¡å¹ï¼ã«ãã¦åä½ããããã¨ã§ï¼åä½ãå¯è½ã§ããï¼ãªãï¼ãã
|
---|
427 | ã¯ã·ãã¥ã¬ã¼ã¿ãããã¬ã§ã®åä½ãä¿éãããã®ã§ã¯ãªãï¼
|
---|
428 |
|
---|
429 | 5 ãã®ä»
|
---|
430 |
|
---|
431 | 5.1 ãã£ã¬ã¯ããªã»ãã¡ã¤ã«æ§æ
|
---|
432 |
|
---|
433 | (1) config/tlcs900-toshiba
|
---|
434 |
|
---|
435 | api.h éã©ã¤ãã©ãªã£åã®ããã®å®ç¾©
|
---|
436 | cpu_config.c TLCAS900 CPUä¾åé¨ã® C é¢æ°
|
---|
437 | cpu_config.h TLCAS900 CPUä¾åé¨ã®ã«ã¼ãã«ç¨å®ç¾©
|
---|
438 | cpu_context.h TLCAS900 CPUä¾åé¨ã®ã³ã³ããã¹ãæä½
|
---|
439 | cpu_defs.h TLCAS900 CPUä¾åé¨ã®ã¢ããªã±ã¼ã·ã§ã³ç¨å®ç¾©
|
---|
440 | cpu_insn.h TLCAS900 CPUä¾åé¨ã®ä½ã¬ãã«é¢æ°
|
---|
441 | cpu_rename.def ã«ã¼ãã«ã®å
|
---|
442 | é¨èå¥åã®ãªãã¼ã ã¨ãã®è§£é¤ã®å®ç¾©ãªã¹ã
|
---|
443 | cpu_rename.h ã«ã¼ãã«ã®å
|
---|
444 | é¨èå¥åã®ãªãã¼ã ã®å®ç¾©
|
---|
445 | cpu_support.app TLCAS900 CPUä¾åé¨ã®ã¢ã»ã³ãã©é¢æ°
|
---|
446 | cpu_unrename.h ã«ã¼ãã«ã®å
|
---|
447 | é¨èå¥åã®ãªãã¼ã 解é¤ã®å®ç¾©
|
---|
448 | kernel_inline_defs.h ã«ã¼ãã«å
|
---|
449 | é¨ã® inline é¢æ°å®ç¾©
|
---|
450 | makeoffset.c offset.inc çææ
|
---|
451 | å ±é¢æ°
|
---|
452 | start.app ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«
|
---|
453 | tool_config.h éçºç°å¢ä¾åé¨ã®ã«ã¼ãã«ç¨å®ç¾©
|
---|
454 | tool_defs.h éçºç°å¢ä¾åé¨ã®ã¢ããªã±ã¼ã·ã§ã³ç¨å®ç¾©
|
---|
455 |
|
---|
456 | (2) config/tlcs900-toshiba/zup_f16_ex
|
---|
457 |
|
---|
458 | hw_serial.cfg Zup-F16-exç¨SIOãã©ã¤ãã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
|
---|
459 | hw_serial.h Zup-F16-exç¨SIOãã©ã¤ã
|
---|
460 | hw_timer.h Zup-F16-exç¨ã¿ã¤ãæä½ã«ã¼ãã³
|
---|
461 | sys_config.c Zup-F16-exã·ã¹ãã ä¾åé¨ã® C é¢æ°
|
---|
462 | sys_config.h Zup-F16-exã·ã¹ãã ä¾åé¨ã®ã«ã¼ãã«ç¨å®ç¾©
|
---|
463 | sys_defs.h Zup-F16-exã·ã¹ãã ä¾åé¨ã®ã¢ããªã±ã¼ã·ã§ã³ç¨å®ç¾©
|
---|
464 | sys_rename.def ã«ã¼ãã«ã®å
|
---|
465 | é¨èå¥åã®ãªãã¼ã ã¨ãã®è§£é¤ã®å®ç¾©ãªã¹ã
|
---|
466 | sys_rename.h ã«ã¼ãã«ã®å
|
---|
467 | é¨èå¥åã®ãªãã¼ã ã®å®ç¾©
|
---|
468 | sys_support.app Zup-F16-exã·ã¹ãã ä¾åé¨ã®ã¢ã»ã³ãã©é¢æ°
|
---|
469 | sys_unrename.h ã«ã¼ãã«ã®å
|
---|
470 | é¨èå¥åã®ãªãã¼ã 解é¤ã®å®ç¾©
|
---|
471 | tmp91cy22.h å
|
---|
472 | èµIO(SFR)ããã³é¢é£ããå®ç¾©
|
---|
473 | uart.c Zup-F16-exç¨SIOãã©ã¤ãå®æ
|
---|
474 | ã® C é¢æ°
|
---|
475 | uart.h Zup-F16-exç¨SIOãã©ã¤ãå®æ
|
---|
476 | ã®å®ç¾©
|
---|
477 | zup_f16_ex.lcf Zup-F16-exç¨ãªã³ã«ã³ãã³ããã¡ã¤ã«
|
---|
478 |
|
---|
479 | (3) tools/TLCS900-TOSHIBA
|
---|
480 |
|
---|
481 | TLCS900-TOSHIBA.tws éçºç°å¢ç¨ã¯ã¼ã¯ã¹ãã¼ã¹ãã¡ã¤ã«
|
---|
482 |
|
---|
483 | (4) utils/tlcs900-toshiba
|
---|
484 |
|
---|
485 | tlcs900_toshiba.dsw ã¦ã¼ãã£ãªãã£éçºç¨ã¯ã¼ã¯ã¹ãã¼ã¹ãã¡ã¤ã«
|
---|
486 | æ¬é層ã®è©³ç´°ã¯ utils/tlcs900-toshiba ã«ãã readme.txt ãåç
|
---|
487 | §ï¼
|
---|
488 |
|
---|
489 | 以ä¸
|
---|
490 |
|
---|