1 | ï¼ TOPPERS/JSPã«ã¼ãã« ã¦ã¼ã¶ãºããã¥ã¢ã« ï¼
|
---|
2 | ï¼s1c33 ã¿ã¼ã²ããä¾åé¨ï¼
|
---|
3 |
|
---|
4 | ï¼Release 1.4.1対å¿ï¼æçµæ´æ°: 04-Jan-2005ï¼
|
---|
5 |
|
---|
6 | ------------------------------------------------------------------------
|
---|
7 | TOPPERS/JSP Kernel
|
---|
8 | Toyohashi Open Platform for Embedded Real-Time Systems/
|
---|
9 | Just Standard Profile Kernel
|
---|
10 |
|
---|
11 | Copyright (C) 2000,2001 by Embedded and Real-Time Systems Laboratory
|
---|
12 | Toyohashi Univ. of Technology, JAPAN
|
---|
13 | Copyright (C) 2004 by SEIKO EPSON Corp, JAPAN
|
---|
14 |
|
---|
15 | ä¸è¨è使¨©è
|
---|
16 | ã¯ï¼Free Software Foundation ã«ãã£ã¦å
|
---|
17 | ¬è¡¨ããã¦ãã
|
---|
18 | GNU General Public License ã® Version 2 ã«è¨è¿°ããã¦ããæ¡ä»¶ãï¼ä»¥
|
---|
19 | ä¸ã®(1)ã(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§
|
---|
20 | ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé
|
---|
21 | å¸ï¼ä»¥ä¸ï¼
|
---|
22 | å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
|
---|
23 | (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
|
---|
24 | 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
|
---|
25 | ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼
|
---|
26 | (2) æ¬ã½ããã¦ã§ã¢ãåå©ç¨å¯è½ãªãã¤ããªã³ã¼ãï¼ãªãã±ã¼ã¿ãã«ãªã
|
---|
27 | ã¸ã§ã¯ããã¡ã¤ã«ãã©ã¤ãã©ãªãªã©ï¼ã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼å©ç¨
|
---|
28 | ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è
|
---|
29 | ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è使¨©è¡¨ç¤ºï¼
|
---|
30 | ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
|
---|
31 | (3) æ¬ã½ããã¦ã§ã¢ãåå©ç¨ä¸å¯è½ãªãã¤ããªã³ã¼ãã®å½¢ã¾ãã¯æ©å¨ã«çµ
|
---|
32 | ã¿è¾¼ãã å½¢ã§å©ç¨ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºãããã¨ï¼
|
---|
33 | (a) å©ç¨ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è
|
---|
34 | ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½
|
---|
35 | 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
|
---|
36 | (b) å©ç¨ã®å½¢æ
|
---|
37 | ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼ä¸è¨è使¨©è
|
---|
38 | ã«å ±åãã
|
---|
39 | ãã¨ï¼
|
---|
40 | (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
|
---|
41 | 害ãããï¼ä¸è¨è使¨©è
|
---|
42 | ãå
|
---|
43 | 責ãããã¨ï¼
|
---|
44 |
|
---|
45 | æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨è使¨©è
|
---|
46 | ã¯ï¼
|
---|
47 | æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ã
|
---|
48 | ãªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çããã
|
---|
49 | ããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
|
---|
50 |
|
---|
51 | ------------------------------------------------------------------------
|
---|
52 |
|
---|
53 |
|
---|
54 | ï¼ï¼S1C33 ã¿ã¼ã²ããä¾åé¨ã®æ¦è¦
|
---|
55 |
|
---|
56 | 1.1 ã¿ã¼ã²ããã·ã¹ãã ã¨éçºç°å¢
|
---|
57 |
|
---|
58 | S1C33ããã»ããµã®ã¿ã¼ã²ããã·ã¹ãã ã¨ãã¦ã¯ï¼S1C33209, S1C33L11, S1C33
|
---|
59 | 401ãæè¼ãã以ä¸ã®ãã¼ãããµãã¼ããã¦ããï¼
|
---|
60 |
|
---|
61 | ã»ã»ã¤ã³ã¼ã¨ãã½ã³æ ªå¼ä¼ç¤¾ DMT33209 ãã¼ã ï¼CPU:S1C33209ï¼
|
---|
62 | ã»ã»ã¤ã³ã¼ã¨ãã½ã³æ ªå¼ä¼ç¤¾ LUXUN2 ãã¼ã ï¼CPU:S1C33L11ï¼
|
---|
63 | ã»ã»ã¤ã³ã¼ã¨ãã½ã³æ ªå¼ä¼ç¤¾ DMT33401 ãã¼ã ï¼CPU:S1C33401ï¼
|
---|
64 | ã»ã»ã¤ã³ã¼ã¨ãã½ã³æ ªå¼ä¼ç¤¾ LUXUN4 ãã¼ã ï¼CPU:S1C33401ï¼
|
---|
65 |
|
---|
66 | éçºç°å¢ã¯ã»ã¤ã³ã¼ã¨ãã½ã³æ ªå¼ä¼ç¤¾ã®éçºç°å¢S5U1C33001Cï¼GNU33ï¼ãç¨ããï¼
|
---|
67 | ããã¯GNUéçºç°å¢ãS1C33ç¨ã«ç§»æ¤ãããã®ã§ããï¼ãªãã¸ã§ã¯ããã¡ã¤ã«
|
---|
68 | ãã©ã¼ããã㯠ELF ãæ¨æºã¨ããï¼
|
---|
69 |
|
---|
70 | ãã£ã¬ã¯ããªå
|
---|
71 | s1c33 GNUéçºç°å¢ç¨ï¼ç¾æç¹ã§æªãµãã¼ãï¼
|
---|
72 | dmt33209 DMT33209 ï¼ã»ã¤ã³ã¼ã¨ãã½ã³ï¼
|
---|
73 | luxun2 LUXUN2 ï¼ã»ã¤ã³ã¼ã¨ãã½ã³ï¼
|
---|
74 | dmt33401 DMT33401 ï¼ã»ã¤ã³ã¼ã¨ãã½ã³ï¼
|
---|
75 | luxun4 LUXUN4 ï¼ã»ã¤ã³ã¼ã¨ãã½ã³ï¼
|
---|
76 |
|
---|
77 | s1c33-gnu33 GNU33éçºç°å¢ç¨
|
---|
78 | dmt33209 DMT33209 ï¼ã»ã¤ã³ã¼ã¨ãã½ã³ï¼
|
---|
79 | luxun2 LUXUN2 ï¼ã»ã¤ã³ã¼ã¨ãã½ã³ï¼
|
---|
80 | dmt33401 DMT33401 ï¼ã»ã¤ã³ã¼ã¨ãã½ã³ï¼
|
---|
81 | luxun4 LUXUN4 ï¼ã»ã¤ã³ã¼ã¨ãã½ã³ï¼
|
---|
82 |
|
---|
83 | 1.2 ãµãã¼ãããæ©è½ã®æ¦è¦
|
---|
84 |
|
---|
85 | S1C33ä¾åã®æ©è½ã¨ãã¦ï¼å²è¾¼ã¿ã®ç¦æ¢ã¨è¨±å¯ï¼dis_intï¼ena_intï¼åã³ï¼å²è¾¼ã¿
|
---|
86 | ãã¹ã¯ã®å¤æ´ã»åç
|
---|
87 | §ï¼chg_ilvï¼get_ilvï¼ããµãã¼ããã¦ããï¼
|
---|
88 | æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»åç
|
---|
89 | §æ©è½ï¼vxget_timï¼ã¯ãµãã¼ããã¦ããªãï¼
|
---|
90 |
|
---|
91 | 1.3 ä»ã®ã¿ã¼ã²ããã¸ã®ãã¼ãã£ã³ã°
|
---|
92 |
|
---|
93 | S1C33ããã»ããµã¯ï¼S1C33209ãå§ãã¨ããã¹ã¿ã³ãã¼ããã¯ãããã»ããµã¨ï¼
|
---|
94 | S1C33401ãå§ãã¨ããã¢ããã³ã¹ããã¯ãããã»ããµã¨ã«å¤§å¥ããããï¼å
|
---|
95 | 系統ã«ãããä¸ä½äºæããã»ããµã§ããã°ï¼ãã®ã¾ã¾åä½ããï¼
|
---|
96 | ãã ãä¸ä½ããã»ããµã«ãªãè¿½å æ©è½ã使ç¨ããå ´åï¼é©å®IOã¬ã¸ã¹ã¿ã¢ã
|
---|
97 | ã¬ã¹çãã¿ã¼ã²ããã«åããã¦å¤æ´ããå¿
|
---|
98 | è¦ãããï¼
|
---|
99 |
|
---|
100 | 1.4 ã·ãªã¢ã«ãã¼ã
|
---|
101 |
|
---|
102 | ãã£ãã«0(LUXUN4ã¯ãã£ãã«2)ã使ç¨ããã·ãªã¢ã«éä¿¡ããµãã¼ããã¦ããï¼
|
---|
103 | DMT33MONãã¼ããå¥éç¨æãããã¨ã«ããï¼RS232-Cã±ã¼ãã«ã§ã®æ¥ç¶ãå¯è½
|
---|
104 | ã¨ãªãï¼
|
---|
105 | éä¿¡æ¡ä»¶ã¯ä»¥ä¸ã®ã¨ããã§ããï¼
|
---|
106 | éä¿¡æ¹å¼ : 調æ©åæ 8ããã
|
---|
107 | éä¿¡é度 : 115,200bps
|
---|
108 | ããªã㣠: ãªã
|
---|
109 | ã¹ãããããã : 1ããã
|
---|
110 |
|
---|
111 |
|
---|
112 | ï¼ï¼S1C33ããã»ããµä¾åé¨ã®æ©è½
|
---|
113 |
|
---|
114 | ãã®ç¯ã§ã¯ï¼ã«ã¼ãã«ããã³ã·ã¹ãã ãµã¼ãã¹ã®æ©è½ã®ä¸ã§ï¼S1C33ä¾åã®é¨å
|
---|
115 | ã«ã¤ãã¦è§£èª¬ããï¼
|
---|
116 |
|
---|
117 | 2.1 ãã¼ã¿å
|
---|
118 |
|
---|
119 | intåããã³ unsigned intåã®ãµã¤ãºã¯ 32ãããã§ããï¼ã¾ãï¼å²ãè¾¼ã¿ã¬
|
---|
120 | ãã«ã表ããã¼ã¿å ILEVNO ã¯unsigned intåã§å®ç¾©ããã¦ãã.
|
---|
121 |
|
---|
122 | 2.2 å²è¾¼ã¿ç®¡çæ©è½ã¨å²è¾¼ã¿ãã³ãã©
|
---|
123 |
|
---|
124 | CPUããã¯ç¶æ
|
---|
125 | ãåæåã«ã¼ãã³å
|
---|
126 | ã§ã¯ï¼TPS_CPULOCK_LEVã¨ãã¦å®ç¾©ãããå²
|
---|
127 | ãè¾¼ã¿ã¬ãã«æªæºã®ãã¹ã¯å¯è½ãªå²è¾¼ã¿ã¯ãã¹ã¦ç¦æ¢ããã¦ããï¼å
|
---|
128 | ·ä½çã«ã¯ï¼
|
---|
129 | PSRï¼Processor Status Registerï¼ã¬ã¸ã¹ã¿ã®ILï¼Interrupt Levelï¼ãã£ã¼
|
---|
130 | ã«ãã«0x5ãè¨å®ãããï¼ã«ã¼ãã«ã«ãã£ã¦ç®¡çãããå²ãè¾¼ã¿ã¯ï¼å²ãè¾¼ã¿
|
---|
131 | ã¬ãã«ãTPS_CPULOCK_LEVæªæºã¨ããªããã°ãªããªãï¼ï¼è¨å®å¯è½ãªå²ãè¾¼ã¿
|
---|
132 | ã¬ãã«ã®ä¸éã¯TPS_INTLEV_MAXã¨ãã¦å®ç¾©ããã¦ããï¼
|
---|
133 | TPS_CPULOCK_LEVï¼TPS_INTLEV_MAXã¯cpu_config.hã«ã¦å®ç¾©ããã¦ããï¼å¿
|
---|
134 | è¦
|
---|
135 | ã§ããã°å¤æ´ãããã¨ãã§ããï¼
|
---|
136 |
|
---|
137 | S1C33ããã»ããµã¯0ã7ã¾ã§ã®å²ãè¾¼ã¿ã¬ãã«ãè¨å®ãããã¨ãã§ããï¼
|
---|
138 | ã¬ãã«5ï¼ããã©ã«ãï¼ã®å²ãè¾¼ã¿ããã³NMIã§ã¯ï¼ãµã¼ãã¹ã³ã¼ã«ã®ä½¿ç¨ã
|
---|
139 | ç¦æ¢ããï¼
|
---|
140 |
|
---|
141 | DEF_INH ã§æå®ããå²è¾¼ã¿ãã³ãã©çªå·ï¼inhnoï¼ã¯ï¼ãã¹ã¯å¯è½ãªå²ãè¾¼ã¿
|
---|
142 | ã¨ãã¦å®ãããããã¯ã¿çªå·ã§ãã16çªä»¥éãæå®ããï¼
|
---|
143 | ãã¯ã¿çªå·ã¨ãã¦æå¹ã§ãªãçªå·ãæå®ãããå ´åã®åä½ã¯æªå®ç¾©ã§ããï¼
|
---|
144 | æå¹ãªãã¯ã¿çªå·ã«ã¤ãã¦ã¯ï¼åCPUã®ããã¥ã¢ã«ãåç
|
---|
145 | §ããããï¼
|
---|
146 |
|
---|
147 | S1C33ããã»ããµä¾åé¨ã§ã¯å¤éå²ãè¾¼ã¿ããµãã¼ããã¦ããï¼ãã®ããï¼å²
|
---|
148 | ãè¾¼ã¿çºçæã«å¦çãããå²ãè¾¼ã¿ãã³ãã©å
|
---|
149 | ¥ãå£å¦çã§ã¯ï¼IEãããã«1ã
|
---|
150 | è¨å®ãï¼å²ãè¾¼ã¿ãã¹ãã«ã¦ã³ã¿ãã¤ã³ã¯ãªã¡ã³ããã¦ããï¼å²ãè¾¼ã¿å¦çå
|
---|
151 |
|
---|
152 | ã§ä»ã®å²ãè¾¼ã¿ãç¦æ¢ããã«ã¯ï¼iloc_cpu ãå¼ã³åºããªã©ï¼æç¤ºçã«å²ãè¾¼
|
---|
153 | ã¿ãç¦æ¢ããå¿
|
---|
154 | è¦ãããï¼
|
---|
155 |
|
---|
156 | ILã¯å²ãè¾¼ã¿çºçæã«ãããããè¨å®ãããå²ãè¾¼ã¿ã¬ãã«ã«å¤æ´ãããï¼
|
---|
157 | 使ç¨ããå²ãè¾¼ã¿ã®ã¬ãã«ããã¹ã¦åä¸ã«ããã°ï¼å¤éå²ãè¾¼ã¿ã¯çºçããªãï¼
|
---|
158 |
|
---|
159 | S1C33ããã»ããµä¾åé¨ã§ã¯ï¼æ©ç¨®ä¾åãµã¼ãã¹ã³ã¼ã«ã¨ãã¦ç¹å®ã®å²ãè¾¼ã¿
|
---|
160 | ãç¦æ¢ï¼è¨±å¯ãããµã¼ãã¹ã³ã¼ã«dis_int, ena_int, å²ãè¾¼ã¿ã¬ãã«ã夿´ï¼
|
---|
161 | åå¾ãããµã¼ãã¹ã³ã¼ã«chg_ilv, get_ilvããµãã¼ããã¦ããï¼dis_int,
|
---|
162 | ena_intã¯ã³ã³ããã¹ãç¶æ
|
---|
163 | ã«ä¾åããªãï¼ã¿ã¹ã¯ã³ã³ããã¹ãï¼éã¿ã¹ã¯
|
---|
164 | ã³ã³ããã¹ãã®ã©ã¡ãã§ãå¼ã³åºããã¨ãã§ããï¼chg_ilv, get_ilvã¯ã³ã³
|
---|
165 | ããã¹ãç¶æ
|
---|
166 | ã«ä¾åãï¼éã¿ã¹ã¯ã³ã³ããã¹ãã¾ãã¯CPUããã¯ç¶æ
|
---|
167 | ã§ã¯ä½¿ç¨
|
---|
168 | ã§ããªãï¼
|
---|
169 |
|
---|
170 | S1C33ä¾åã®å²ãè¾¼ã¿ã¬ãã«ã®å¤æ´ï¼åç
|
---|
171 | §ï¼ããã³å²ãè¾¼ã¿ç¦æ¢ï¼è¨±å¯ã®ããã®
|
---|
172 | ãµã¼ãã¹ã³ã¼ã«ã®ä»æ§ã¯ä»¥ä¸ã®éãï¼
|
---|
173 |
|
---|
174 | (1) chg_ilv å²ãè¾¼ã¿ã¬ãã«ã®å¤æ´
|
---|
175 |
|
---|
176 | ãCè¨èªAPIã
|
---|
177 | ER ercd = chg_ilv(ILEVNO ilevno);
|
---|
178 |
|
---|
179 | ããã©ã¡ã¼ã¿ã
|
---|
180 | ILEVNO ilevno è¨å®ãã¹ã IL ã®å¤
|
---|
181 |
|
---|
182 | ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
|
---|
183 | ER ercd ã¨ã©ã¼ã³ã¼ã
|
---|
184 |
|
---|
185 | ãã¨ã©ã¼ã³ã¼ãã
|
---|
186 | E_CTX ã³ã³ããã¹ãã¨ã©ã¼
|
---|
187 | E_PAR ãã©ã¡ã¼ã¿ã¨ã©ã¼ï¼ilevno ã䏿£ï¼
|
---|
188 |
|
---|
189 | ãæ©è½ã
|
---|
190 |
|
---|
191 | ILï¼Interrupt Levelï¼ã ilevno ã§æå®ãããå¤ã«è¨å®ããï¼æå®ããå¤ã
|
---|
192 | TPS_INTLEV_MAXã¨ãã¦å®ç¾©ãããå²ãè¾¼ã¿ã¬ãã«ãè¶
|
---|
193 | ãã¦ããå ´åï¼E_PAR
|
---|
194 | ã¨ã©ã¼ã¨ãªãï¼IL ã 0ãTPS_INTLEV_MAXã«è¨å®ããå ´åã§ãï¼ãã£ã¹ããã
|
---|
195 | ã¯ç¦æ¢ãããªãï¼
|
---|
196 |
|
---|
197 | ãã®ãµã¼ãã¹ã³ã¼ã«ã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ãã§ CPUããã¯è§£é¤ç¶æ
|
---|
198 | ã®æã®ã¿å¼
|
---|
199 | ã³åºããã¨ãã§ããï¼éã¿ã¹ã¯ã³ã³ããã¹ãã CPUããã¯ç¶æ
|
---|
200 | ã§å¼ã³åºããå ´
|
---|
201 | åã«ã¯ï¼E_CTXã¨ã©ã¼ã¨ãªãï¼
|
---|
202 |
|
---|
203 | chg_ilvã«ãã夿´ããã¬ãã«ã¯ååã¨ãã¦ãã£ã¹ãããå¾ãç¶æ¿ããããï¼
|
---|
204 | ä¿éã¯ãããªãï¼ä¾ãã°å²ãè¾¼ã¿ãã³ãã©ã«ãããã£ã¹ããããããã¿ã¹ã¯ã§
|
---|
205 | å²ãè¾¼ã¿ã¬ãã«ã夿´ããå ´åï¼å²ãè¾¼ã¿çºçç´åã«å®è¡ããã¦ããã¿ã¹ã¯ã¸
|
---|
206 | 復帰ããã¨å²ãè¾¼ã¿ã¬ãã«ãå
|
---|
207 | ã«æ»ãï¼
|
---|
208 |
|
---|
209 | (2) get_ilv å²ãè¾¼ã¿ã¬ãã«ã®åç
|
---|
210 | §
|
---|
211 |
|
---|
212 | ãCè¨èªAPIã
|
---|
213 | ER ercd = get_ilv(ILEVNO *p_ilevno);
|
---|
214 |
|
---|
215 | ããã©ã¡ã¼ã¿ã
|
---|
216 | ãªã
|
---|
217 |
|
---|
218 | ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
|
---|
219 | ER ercd ã¨ã©ã¼ã³ã¼ã
|
---|
220 | ILEVNO *p_ilevno ç¾å¨ã® IL ã®å¤
|
---|
221 |
|
---|
222 | ãã¨ã©ã¼ã³ã¼ãã
|
---|
223 | E_CTX ã³ã³ããã¹ãã¨ã©ã¼
|
---|
224 | E_PAR ãã©ã¡ã¼ã¿ã¨ã©ã¼ï¼p_ilevnoãNULLï¼
|
---|
225 |
|
---|
226 | ãæ©è½ã
|
---|
227 |
|
---|
228 | ç¾å¨ã® ILï¼Interrupt Levelï¼ã®å¤ãèªã¿åºãï¼*p_ilevno ã«è¿ãï¼
|
---|
229 |
|
---|
230 | ãã®ãµã¼ãã¹ã³ã¼ã«ã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ãã§ CPUããã¯è§£é¤ç¶æ
|
---|
231 | ã®æã®ã¿å¼
|
---|
232 | ã³åºããã¨ãã§ããï¼éã¿ã¹ã¯ã³ã³ããã¹ãã CPUããã¯ç¶æ
|
---|
233 | ã§å¼ã³åºããå ´
|
---|
234 | åã«ã¯ï¼E_CTXã¨ã©ã¼ã¨ãªãï¼
|
---|
235 |
|
---|
236 | (3) dis_int å²ãè¾¼ã¿ã®ç¦æ¢
|
---|
237 |
|
---|
238 | ãCè¨èªAPIã
|
---|
239 | ER ercd = dis_int(INTNO intno);
|
---|
240 |
|
---|
241 | ããã©ã¡ã¼ã¿ã
|
---|
242 | INTNO intno ç¦æ¢ããå²ãè¾¼ã¿ã®ãã¯ã¿çªå·
|
---|
243 |
|
---|
244 | ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
|
---|
245 | ER ercd ã¨ã©ã¼ã³ã¼ã
|
---|
246 |
|
---|
247 | ãã¨ã©ã¼ã³ã¼ãã
|
---|
248 | E_PAR ãã©ã¡ã¼ã¿ã¨ã©ã¼ï¼intno ã䏿£ï¼
|
---|
249 |
|
---|
250 | ãæ©è½ã
|
---|
251 |
|
---|
252 | æå®ããããã¯ã¿çªå·ã«å¯¾å¿ããå²ãè¾¼ã¿ãç¦æ¢ããï¼
|
---|
253 |
|
---|
254 | ãã®ãµã¼ãã¹ã³ã¼ã«ã¯ã³ã³ããã¹ãç¶æ
|
---|
255 | ãªã©ã«ã¯ä¾åããï¼ãã¤ã§ãå¼ã³åºã
|
---|
256 | ãã¨ãã§ããï¼
|
---|
257 |
|
---|
258 |
|
---|
259 | (4) ena_int å²ãè¾¼ã¿ã®è¨±å¯
|
---|
260 |
|
---|
261 | ãCè¨èªAPIã
|
---|
262 | ER ercd = ena_int(INTNO intno);
|
---|
263 |
|
---|
264 | ããã©ã¡ã¼ã¿ã
|
---|
265 | INTNO intno 許å¯ããå²ãè¾¼ã¿ã®ãã¯ã¿çªå·
|
---|
266 |
|
---|
267 | ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
|
---|
268 | ER ercd ã¨ã©ã¼ã³ã¼ã
|
---|
269 |
|
---|
270 | ãã¨ã©ã¼ã³ã¼ãã
|
---|
271 | E_PAR ãã©ã¡ã¼ã¿ã¨ã©ã¼ï¼intno ã䏿£ï¼
|
---|
272 |
|
---|
273 | ãæ©è½ã
|
---|
274 |
|
---|
275 | æå®ãããå²ãè¾¼ã¿ãã¯ã¿çªå·ã«å¯¾å¿ããå²ãè¾¼ã¿ã許å¯ããï¼
|
---|
276 |
|
---|
277 | ãã®ãµã¼ãã¹ã³ã¼ã«ã¯ã³ã³ããã¹ãç¶æ
|
---|
278 | ãªã©ã«ã¯ä¾åããï¼ãã¤ã§ãå¼ã³åºã
|
---|
279 | ãã¨ãã§ããï¼
|
---|
280 |
|
---|
281 | 2.3 CPUä¾å¤ç®¡çæ©è½ã¨CPUä¾å¤ãã³ãã©
|
---|
282 |
|
---|
283 | DEF_EXC ã§æå®ããä¾å¤ãã³ãã©çªå·ï¼excnoï¼ã¯ï¼0ã15ã¾ã§ã®ä¾å¤ãã¯ã¿çª
|
---|
284 | å·ãæå®ããï¼CPUä¾å¤ãã³ãã©ã¨ãã¦æå¹ã§ãªãçªå·ãæå®ãããå ´åã®å
|
---|
285 | ä½ã¯æªå®ç¾©ã§ããï¼
|
---|
286 |
|
---|
287 | 2.4 å²ãè¾¼ã¿ï¼CPUä¾å¤ãã³ãã©ã®å®è£
|
---|
288 |
|
---|
289 |
|
---|
290 | å²ãè¾¼ã¿ï¼CPUä¾å¤ãã³ãã©ï¼ä»¥ä¸ãã³ãã©ï¼ã¯ï¼ä»¥ä¸ã®è¦é ã§å®è£
|
---|
291 | ããï¼
|
---|
292 |
|
---|
293 | (1) éçAPIã«ããçæ
|
---|
294 |
|
---|
295 | DEF_INHãç¨ããã³ãã©åºå
|
---|
296 | ¥ãå£å¦çãçæããï¼CPUä¾å¤ãã³ãã©ã®å ´åã¯ï¼
|
---|
297 | DEF_EXCãç¨ããï¼
|
---|
298 | åºå
|
---|
299 | ¥ãå£å¦çã¯æå®ãããã³ãã©+_entryã¨ããåç§°ã§çæãããï¼ä¸è¨ã®
|
---|
300 | ä¾ã§ã¯ï¼timer_handler_entry ã¨ãªãï¼
|
---|
301 |
|
---|
302 | ä¾: ã¿ã¤ããã³ãã© timer_handler ã®ç»é²
|
---|
303 | DEF_INH(INTHDR1, { TA_HLNG, timer_handler });
|
---|
304 |
|
---|
305 | (2) ãã¯ã¿ãã¼ãã«ç»é²
|
---|
306 |
|
---|
307 | ãã¯ã¿ãã¼ãã«ã«(1)ã§ç»é²ãããã³ãã©åºå
|
---|
308 | ¥ãå£å¦çãè¨è¿°ããï¼
|
---|
309 |
|
---|
310 | const void *VectorTable[] = {
|
---|
311 | :
|
---|
312 | INT_ENTRY(timer_handler),
|
---|
313 | :
|
---|
314 | }
|
---|
315 |
|
---|
316 | INT_ENTRY ã¯ï¼ãã©ã¡ã¼ã¿ã¨ãã¦æå®ãããæååã«_entryãä»å ãã
|
---|
317 | ãã¯ãã§ããï¼CPUä¾å¤ãã³ãã©ã®å ´åã¯ï¼EXC_ENTRY ãç¨ããï¼
|
---|
318 |
|
---|
319 | ãã¯ã¿ãã¼ãã«ãããã°ã©ã ã§æ¸ãæãå¯è½ãªã»ã¯ã·ã§ã³ï¼.dataãªã©ï¼ã«
|
---|
320 | é
|
---|
321 | ç½®ããå ´åï¼ãã¯ãdefine_inh ãç¨ãã¦åçã«ãã¯ã¿ãã¼ãã«ãæ´æ°
|
---|
322 | ãããã¨ãå¯è½ã§ããï¼ãã®å ´åéçãªè¨è¿°ã¯å¿
|
---|
323 | é ã§ã¯ãªããï¼ä¾å¤ã¨ãã¦ï¼
|
---|
324 | ãã¯ã¿ãã¼ãã«0çªã«ç»é²ãããªã»ãããã¯ã¿ã«ã¤ãã¦ã¯ï¼ãããããç»é²
|
---|
325 | ãã¦ããã¹ãã§ããï¼define_inh ã«ãããã³ãã©ã®ç»é²ã¯ããã°ã©ã ã
|
---|
326 | åä½ãã¦ããæ¸ãæããè¡ãããããï¼å®è¡åã«ãªã»ãããè¡ãã¨ããã°
|
---|
327 | ã©ã ã®å®è¡éå§çªå°ãç¹å®ã§ããªããªãå¯è½æ§ãããããã§ããï¼
|
---|
328 |
|
---|
329 | ã¦ã¼ã¶ã®ä½æãããã³ãã©ã¯åºå
|
---|
330 | ¥ãå£å¦çããå¼ã³åºãããå½¢ã¨ãªã
|
---|
331 | ããï¼ä¸å³åç
|
---|
332 | §ï¼ï¼ãã¼ã«ã«å¤æ°ãç¨ãããã¨ãå¯è½ã§ããï¼
|
---|
333 |
|
---|
334 | æ¬å®è£
|
---|
335 | ã§ã¯å²ãè¾¼ã¿ãã³ãã©ã«ã¤ãã¦ã®ã¿ãµãã¼ããã¦ããï¼å²ãè¾¼ã¿ãµã¼ãã¹
|
---|
336 | ã«ã¼ãã³ã«ã¤ãã¦ã¯ãµãã¼ããã¦ããªãï¼
|
---|
337 |
|
---|
338 | å²ãè¾¼ã¿ãã³ãã© å²ãè¾¼ã¿ãã³ãã©
|
---|
339 | åºå
|
---|
340 | ¥ãå£å¦ç
|
---|
341 |
|
---|
342 | å¤é¨å²è¾¼ã¿çºç --->
|
---|
343 | | 1.ã¬ã¸ã¹ã¿ã®éé¿
|
---|
344 | | 2.ã¹ã¿ãã¯åãæ¿ã
|
---|
345 | | 3.å²ãè¾¼ã¿ãã¹ã
|
---|
346 | | ã«ã¦ã³ãæ´æ°ï¼+1ï¼
|
---|
347 | | 4.IEãããè¨å®ï¼ONï¼
|
---|
348 | |
|
---|
349 | +------------------->
|
---|
350 | | 5.å²ãè¾¼ã¿è¦å ã®ã¯ãªã¢
|
---|
351 | | 6.å²ãè¾¼ã¿å¦ç
|
---|
352 | |
|
---|
353 | <-------------------+
|
---|
354 | |
|
---|
355 | | 7.CPUãããã¯
|
---|
356 | | 8.å²ãè¾¼ã¿ãã¹ã
|
---|
357 | | ã«ã¦ã³ãæ´æ°ï¼-1ï¼
|
---|
358 | | 9.ã¹ã¿ãã¯åãæ¿ã
|
---|
359 | ãã£ã¹ããã <---+
|
---|
360 | or ãªã¿ã¼ã³
|
---|
361 |
|
---|
362 | ã¬ã¸ã¹ã¿ã®å¾©å
|
---|
363 | ã¯
|
---|
364 | ããã§è¡ãããï¼
|
---|
365 |
|
---|
366 | å²ãè¾¼ã¿ãã³ãã©ã«ããã¦ä»¥ä¸ã®æ¡ä»¶ããã¹ã¦æºè¶³ããå ´åï¼å²ãè¾¼ã¿ãã³
|
---|
367 | ãã©ã®ãããã¿ã¤ã宣è¨ã§__attribute__ ((interrupt_handler))ãæå®ãã
|
---|
368 | ãã¨ã§ãã¯ãã«ããåºå
|
---|
369 | ¥ãå£å¦çã®è¿½å ã¯ä¸è¦ã«ãªãï¼
|
---|
370 |
|
---|
371 | åºå
|
---|
372 | ¥ãå£å¦çãçç¥ã§ããæ¡ä»¶
|
---|
373 | 1. ã¹ã¿ãã¯é åã使ç¨ããªã
|
---|
374 | 2. ãµã¼ãã¹ã³ã¼ã«ã使ç¨ããªã
|
---|
375 | 3. å¤éå²ãè¾¼ã¿ã許å¯ããªã
|
---|
376 |
|
---|
377 | ããã°ã©ã ã«ããæ¸ãæããä¸å¯è½ãªã»ã¯ã·ã§ã³ï¼.rodataãªã©ï¼ã«ãã¯ã¿ãã¼ãã«
|
---|
378 | ãé
|
---|
379 | ç½®ããç¶æ
|
---|
380 | ã§defind_inh ã使ç¨ããå ´åï¼ãã¯ã¿ãã¼ãã«ã®æ¸ãæãã¯è¡
|
---|
381 | ãããªãï¼ã¾ãï¼ãããã¨ã©ã¼ã¨ãã¦æ¤åºãããã¨ãããªãï¼
|
---|
382 |
|
---|
383 | 2.5 ã¹ã¿ã¼ãã¢ããã«ã¼ãã³
|
---|
384 |
|
---|
385 | S1C33ä¾åã®ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ï¼sys_start.cï¼ã§ã¯æ¬¡ã®åæåå¦çãè¡ãï¼
|
---|
386 |
|
---|
387 | (1) ããã©ã«ããã¼ã¿ã¨ãªã¢ãã¤ã³ã¿ã®è¨å®
|
---|
388 |
|
---|
389 | æåã«ï¼ããã©ã«ããã¼ã¿ã¨ãªã¢ãã¤ã³ã¿ã®ã¢ãã¬ã¹ãè¨å®ããï¼
|
---|
390 | ããã¯ï¼GNU33ã§ãã«ããããããã°ã©ã ã¯ã°ãã¼ãã«ã·ã³ãã«ã®ã¢ãã¬ã¹ã
|
---|
391 | ç¹å®ããããã«ãã¼ã¿ã¨ãªã¢ãã¤ã³ã¿ã¢ãã¬ã¹ããã®ãªãã»ããã§ã¢ãã¬ã¹ã
|
---|
392 | ç¹å®ãã¦ããããã§ããï¼
|
---|
393 | ãã®ããï¼æåã«ãªã³ã«ã¹ã¯ãªããã§æå®ããã¢ãã¬ã¹ï¼__dpï¼ããã¼ã¿ã¨ãªã¢
|
---|
394 | ãã¤ã³ã¿ï¼r15 or dpã¬ã¸ã¹ã¿ï¼ã«è¨å®ãã¦ããï¼
|
---|
395 |
|
---|
396 | (2) ã¹ã¿ãã¯ãã¤ã³ã¿ã®åæåï¼PSRã¬ã¸ã¹ã¿ã®åæå
|
---|
397 |
|
---|
398 | ã¹ã¿ãã¯ãã¤ã³ã¿ã« STACKTOP ãè¨å®ããï¼ããã§å²è¾¼ã¿ã¹ã¿ãã¯ãã¤ã³ã¿ã«
|
---|
399 | è¨å®ãããã¹ã¿ãã¯é åã¯ï¼ã«ã¼ãã«èµ·åå¾ã¯éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿
|
---|
400 | ãã¯é åã¨ãã¦ä½¿ãããï¼STACKTOP ã¯ï¼sys_config.h é¨ã§å®ç¾©ãããã¨ãæ³
|
---|
401 | å®ãã¦ããï¼
|
---|
402 | PSRã¬ã¸ã¹ã¿ãåæåããï¼å
|
---|
403 | ·ä½çã«ã¯0x00000000ãè¨å®ãããï¼
|
---|
404 |
|
---|
405 | (3) hardware_init_hook ã®å¼åºã
|
---|
406 |
|
---|
407 | hardware_init_hook ã 0 ã§ãªãå ´åã«ã¯ï¼hardware_init_hook ãå¼ã³åºãï¼
|
---|
408 | hardware_init_hook ã¯ï¼ã«ã¼ãã«ãèµ·åãããåã«è¡ãå¿
|
---|
409 | è¦ãããã¿ã¼ã²ã
|
---|
410 | ãä¾åã®åæåãè¡ãããã«ç¨æãã¦ããï¼hardware_init_hook ãã©ãã«ã
|
---|
411 | å®ç¾©ããã¦ããªãå ´åï¼ãªã³ã«ã§ãã®ã·ã³ãã«ã 0 ã«å®ç¾©ããï¼
|
---|
412 | S1C33ç¨ã½ã¼ã¹ã§ã¯sys_start.cã«é¢æ°ãç¨æãã¦ããï¼TTRBã®è¨å®ï¼ã¾ãã¯
|
---|
413 | IOã¬ã¸ã¹ã¿ã®è¨å®ãè¡ã£ã¦ããï¼
|
---|
414 |
|
---|
415 | (4) RAMé åã®åæå
|
---|
416 |
|
---|
417 | ROMé åã«æ ¼ç´ããã¦ãã.dataã»ã¯ã·ã§ã³ã®åæå¤ãRAMä¸ã®å½è©²é åã¸ã³ãã¼
|
---|
418 | ããï¼ã¾ãï¼.bssã»ã¯ã·ã§ã³ã0ã¯ãªã¢ããï¼.dataã»ã¯ã·ã§ã³ã®åæåã¯ãã
|
---|
419 | ã°ã©ã ã®ãããã³ã°ã«å¿ãã¦è¡ãï¼
|
---|
420 |
|
---|
421 | (5) software_init_hook ã®å¼åºã
|
---|
422 |
|
---|
423 | software_init_hook ã 0 ã§ãªãå ´åã«ã¯ï¼software_init_hook ãå¼ã³åºãï¼
|
---|
424 | software_init_hook ã¯ï¼ã«ã¼ãã«ãèµ·åãããåã«è¡ãå¿
|
---|
425 | è¦ãããã½ããã¦ã§
|
---|
426 | ã¢ç°å¢ï¼å
|
---|
427 | ·ä½çã«ã¯ï¼ã©ã¤ãã©ãªï¼ä¾åã®åæåãè¡ãããã«ç¨æãã¦ããï¼
|
---|
428 | software_init_hook ãã©ãã§ãå®ç¾©ããã¦ããªãå ´åï¼ãªã³ã«ã§ãã®ã·ã³ã
|
---|
429 | ã«ã 0 ã«å®ç¾©ããï¼
|
---|
430 | S1C33ç¨ã½ã¼ã¹ã§ã¯sys_start.cã«é¢æ°ãç¨æãã¦ããï¼ã©ã¤ãã©ãªã®åæå颿°
|
---|
431 | ãå¼ã³åºãã¦ããï¼
|
---|
432 |
|
---|
433 | (6) ã«ã¼ãã«ã®èµ·å
|
---|
434 |
|
---|
435 | kernel_start ã¸åå²ãï¼ã«ã¼ãã«ãèµ·åããï¼åå²å¾ã«å¾©å¸°ãã¦ãããã¨ã¯
|
---|
436 | ãªããï¼sys_start.cã§ã¯åå²å¦çå¾ã«haltå½ä»¤ã®ç¡éã«ã¼ããç¨æãã¦ããï¼
|
---|
437 |
|
---|
438 | 2.6 ã¢ã¤ãã«å¦ç
|
---|
439 |
|
---|
440 | å®è¡ã§ããã¿ã¹ã¯ããªãå ´åã«å¦çãããã¢ã¤ãã«å¦çãå®è£
|
---|
441 | ãã¦ããï¼ãã®
|
---|
442 | å¦çã§ã¯ï¼å²ãè¾¼ã¿è¨±å¯ç¶æ
|
---|
443 | ã«ããå¾ï¼halt å½ä»¤ãç¡éã«ã¼ãå
|
---|
444 | ã§å¦çãã¦
|
---|
445 | ããï¼
|
---|
446 |
|
---|
447 | 2.7 ããã»ããµåä½ã¢ã¼ã
|
---|
448 |
|
---|
449 | S1C33ããã»ããµä¾åé¨ã¯ï¼å¸¸æã¹ã¼ããã¤ã¶ã¢ã¼ãã§åä½ããï¼ï¼S1C33401
|
---|
450 | ã®ã¿ï¼ãã以å¤ã®ããã»ããµã§ã¯é常稼åæã«åä½ã¢ã¼ãã®æ¦å¿µããªãï¼
|
---|
451 | ã¦ã¼ã¶ããã°ã©ã ã«ããã¦ã¦ã¼ã¶ã¢ã¼ãã«ç§»è¡ããã¨ï¼ã«ã¼ãã«ã®åä½ã«æ¯é
|
---|
452 | ããããããï¼ãããç¦æ¢ããï¼
|
---|
453 |
|
---|
454 | ï¼ï¼ã·ã¹ãã ä¾åé¨ã®æ©è½
|
---|
455 |
|
---|
456 | 3.1 ã·ã¹ãã ã¯ããã¯ãã©ã¤ã
|
---|
457 |
|
---|
458 | ã·ã¹ãã ã¯ããã¯ãã©ã¤ãã¯ï¼1ms卿ã§ãã¼ãã¦ã§ã¢ã¿ã¤ãå²ãè¾¼ã¿ãçºç
|
---|
459 | ãããããã«è¨å®ããã¦ããï¼sys_defs.h ä¸ã§å®ç¾©ããã¦ãã TIC_NUME ã¨
|
---|
460 | TIC_DENO ã夿´ãããã¨ã§ï¼isig_tim å¼ã³åºãæã«æ´æ°ããã·ã¹ãã æéã®
|
---|
461 | åä½ãä»»æã«å¤æ´ãããã¨ãã§ããï¼ããã©ã«ãã§ã¯1åã®ãã¼ãã¦ã§ã¢ã¿ã¤ã
|
---|
462 | å²ãè¾¼ã¿ã§ã·ã¹ãã æéã 1 é²ããè¨å®ã«ãªã£ã¦ããï¼
|
---|
463 | ä»®ã«TIC_DENOã 2 ã¨ããã¨ï¼2åã®å²ãè¾¼ã¿ã§ã·ã¹ãã æéã 1 é²ãããã¨
|
---|
464 | ã«ãªãï¼
|
---|
465 |
|
---|
466 | 3.2 ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ã
|
---|
467 |
|
---|
468 | ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã§ã¯ï¼ãã£ãã«0ï¼LUXUN4ã¯ãã£ãã«2ï¼ã
|
---|
469 | 使ç¨ããã·ãªã¢ã«éä¿¡ãè¡ããããã«è¨å®ããã¦ããï¼
|
---|
470 | éä¿¡æ¡ä»¶ã¯ä»¥ä¸ã®éãã§ããï¼
|
---|
471 | éä¿¡æ¹å¼ : 調æ©åæ 8ããã
|
---|
472 | éä¿¡é度 : 115,200bps
|
---|
473 | ããªã㣠: ãªã
|
---|
474 | ã¹ãããããã : 1ããã
|
---|
475 |
|
---|
476 |
|
---|
477 | ï¼ï¼éçºç°å¢ã®æ§ç¯
|
---|
478 |
|
---|
479 | éçºç°å¢ã®æ§ç¯æ¹æ³ã«ã¤ãã¦ã¯ï¼GNUéçºç°å¢æ§ç¯ããã¥ã¢ã«ãåç
|
---|
480 | §ã®ãã¨ï¼
|
---|
481 |
|
---|
482 | 4.1 éçºç°å¢ã®ãã¼ã¸ã§ã³
|
---|
483 | åä½ç¢ºèªãããã¼ã«ã®ãã¼ã¸ã§ã³ã¯ä»¥ä¸ã®éãã§ããï¼
|
---|
484 |
|
---|
485 | GNU33 v1.5
|
---|
486 | Cygwin ï¼cygwin DLL 1.5.9-1ï¼
|
---|
487 |
|
---|
488 | 4.2 ãµã³ãã«ããã°ã©ã æ§ç¯æ¹æ³
|
---|
489 |
|
---|
490 | DMT33209ãã¼ãç¨ã®ãµã³ãã«ããã°ã©ã ã4.1é
|
---|
491 | ã«ç¤ºãç°å¢ã§æ§ç¯ããå ´åã
|
---|
492 | ä¾ã¨ãã¦S1C33åºæã®æ³¨æç¹ã説æããï¼
|
---|
493 | ã«ã¬ã³ããã£ã¬ã¯ããªãjsp/ã§ãããã®ã¨ãã¦èª¬æããï¼
|
---|
494 |
|
---|
495 | (1) éçºç°å¢ã®æ§ç¯
|
---|
496 |
|
---|
497 | GNU33ãå±éããï¼S1C33æ©ç¨®ä¾åé¨ã§ã¯ï¼c:\gnu33ï¼/cygdrive/c/gnu33ï¼ã«å±
|
---|
498 | éããããã¨ãæ³å®ãã¦ããï¼ãã以å¤ã®ãã£ã¬ã¯ããªã«å±éãããå ´åã¯ï¼
|
---|
499 | config/s1c33-gnu33/Makefile.configã®ä¿®æ£ãå¿
|
---|
500 | è¦ã§ããï¼
|
---|
501 | config/s1c33-gnu33/Makefile.configã«ããã¦éçºç°å¢ã®ãã¹ã¯TOPDIRã¨ãã¦
|
---|
502 | å®ç¾©ããã¦ããï¼ãããä¿®æ£ããï¼
|
---|
503 | ãµã³ãã«ããã°ã©ã æ§ç¯ã«ä½¿ç¨ããmakeã¯GNU33ã«å«ã¾ããMakeï¼GNU Makeã®
|
---|
504 | ã©ã¡ãã§ã使ç¨å¯è½ã§ããï¼
|
---|
505 |
|
---|
506 | å±éå
|
---|
507 | ã/usr/local/gnu33ã¨ããå ´å
|
---|
508 |
|
---|
509 | TOPDIR = /usr/local/gnu33
|
---|
510 |
|
---|
511 | GNU33ã«ã¯cygwin1.dllã忢±ããã¦ããããï¼Cygwinç°å¢ã§cygwin1.dllãè¤æ°
|
---|
512 | åå¨ãããã¨ã«ããã¨ã©ã¼ãçºçããå ´åã¯ï¼GNU33ã®cygwin1.dllãCygwinã®
|
---|
513 | cygwin1.dllã§ç½®ãæãï¼åä¸ã®ãã¼ã¸ã§ã³ã«ããï¼ï¼å
|
---|
514 | ±ã«ææ°çã¨ããã®ã
|
---|
515 | æã¾ããï¼
|
---|
516 |
|
---|
517 | (2) ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ã³ã³ãã¤ã«
|
---|
518 |
|
---|
519 | TOPPERSã®å±éç´å¾çã§ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã使ãã¦ããªãå ´åã¯ä½æããï¼
|
---|
520 | ä½ææ¹æ³ã«ã¤ãã¦ã¯user.txtãåç
|
---|
521 | §ããããï¼
|
---|
522 |
|
---|
523 | (3) ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã«ããMakefileï¼ãµã³ãã«ããã°ã©ã ã®
|
---|
524 | çæ
|
---|
525 |
|
---|
526 | ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã«ããï¼Makefileï¼ãµã³ãã«ããã°ã©ã ã®ç
|
---|
527 | æãè¡ãï¼ãã®ã¨ãï¼éçºç°å¢åã«gnu33ãæå®ããï¼
|
---|
528 |
|
---|
529 | % mkdir dmt33209
|
---|
530 | % cd dmt33209
|
---|
531 | % ../configure -C s1c33 -S dmt33209 -T gnu33
|
---|
532 |
|
---|
533 | GNU33ã«ããçæããããªãã¸ã§ã¯ããã¡ã¤ã«ã¯ELFå½¢å¼ã¨ãªããï¼Cygwinç°å¢
|
---|
534 | ã§ã¯ã¿ã¼ã²ãããªãã¸ã§ã¯ãã®ãã¡ã¤ã«åã«æ¡å¼µåexeãä»å ãããï¼
|
---|
535 | æ¡å¼µåãå¤ãããå ´åã¯OBJEXTã®å®ç¾©ã夿´ããï¼
|
---|
536 |
|
---|
537 | æ¡å¼µåãelfã¨ãããå ´å
|
---|
538 |
|
---|
539 | OBJEXT = elf
|
---|
540 |
|
---|
541 | (4) ã³ã³ãã¤ã«
|
---|
542 |
|
---|
543 | ã³ã³ãã¤ã«ãè¡ãï¼ããã¯æ¨æºçãªæé ã¨åæ§ã§ããï¼
|
---|
544 |
|
---|
545 | % make depend
|
---|
546 | % make
|
---|
547 |
|
---|
548 |
|
---|
549 | ï¼ï¼ãã®ä»
|
---|
550 |
|
---|
551 | 5.1 ãã£ã¬ã¯ããªã»ãã¡ã¤ã«æ§æ
|
---|
552 |
|
---|
553 | config/s1c33/
|
---|
554 | Makefile.config Makefileã® S1C33 ä¾åå®ç¾©ï¼GNUéçºç°å¢ç¨ï¼
|
---|
555 | cpu_config.c ããã»ããµä¾åé¨ã®é¢æ°
|
---|
556 | lib.c ANSI Cã©ã¤ãã©ãªåæå颿°ã½ã¼ã¹ãã¡ã¤ã«
|
---|
557 | makeoffset.c offset.h çæãµãã¼ãããã°ã©ã
|
---|
558 | sys.c ä½ã¬ãã«å
|
---|
559 | ¥åºå颿°ã½ã¼ã¹ãã¡ã¤ã«
|
---|
560 | cpu_config.h ããã»ããµä¾åé¨ã®æ§æå®ç¾©
|
---|
561 | cpu_context.h ã³ã³ããã¹ãæä½
|
---|
562 | cpu_defs.h ããã»ããµä¾åé¨ã®ã¢ããªã±ã¼ã·ã§ã³ç¨å®ç¾©
|
---|
563 | cpu_insn.h ä½ã¬ãã«ã®ããã»ããµæä½ã«ã¼ãã³
|
---|
564 | cpu_rename.h ã«ã¼ãã«ã®å
|
---|
565 | é¨èå¥åã®ãªãã¼ã
|
---|
566 | cpu_unrename.h ã«ã¼ãã«ã®å
|
---|
567 | é¨èå¥åã®ãªãã¼ã è§£é¤
|
---|
568 | s1c33.h S1C33 CPUã«é¢ããå®ç¾©
|
---|
569 | tool_config.h éçºç°å¢ä¾åé¨ã®æ§æå®ç¾©
|
---|
570 | tool_defs.h éçºç°å¢ä¾åé¨ã®ã¢ããªã±ã¼ã·ã§ã³ç¨å®ç¾©
|
---|
571 | cpu_rename.def ã«ã¼ãã«ã®å
|
---|
572 | é¨èå¥åã®ãªãã¼ã å®ç¾©
|
---|
573 | cpu_unrename.def ã«ã¼ãã«ã®å
|
---|
574 | é¨èå¥åã®ãªãã¼ã è§£é¤
|
---|
575 |
|
---|
576 | config/s1c33/dmt33209
|
---|
577 | hw_serial.cfg SIOãã©ã¤ãã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
|
---|
578 | Makefile.config Makefileã® DMT33209 ä¾åå®ç¾©ï¼GNUéçºç°å¢ç¨ï¼
|
---|
579 | hw_serial.c ã·ãªã¢ã«ã¤ã³ã¿ã¼ãã§ã¤ã¹ã«é¢ãã夿°ã¨é¢æ°
|
---|
580 | sys_config.c ã·ã¹ãã ä¾åé¨ã®é¢æ°
|
---|
581 | sys_start.c ãã¼ãããã°ã©ã ã½ã¼ã¹ãã¡ã¤ã«
|
---|
582 | dmt33209.h DMT33209ãã¼ãã«é¢ããå®ç¾©
|
---|
583 | hw_serial.h ã·ãªã¢ã«ã¤ã³ã¿ã¼ãã§ã¤ã¹æä½ã«ã¼ãã³
|
---|
584 | hw_timer.h ã¿ã¤ãæä½ã«ã¼ãã³
|
---|
585 | sys_config.h ã·ã¹ãã ä¾åé¨ã®æ§æå®ç¾©
|
---|
586 | sys_defs.h ã·ã¹ãã ä¾åé¨ã®ã¢ããªã±ã¼ã·ã§ã³ç¨å®ç¾©
|
---|
587 | sys_rename.h ã«ã¼ãã«ã®å
|
---|
588 | é¨èå¥åã®ãªãã¼ã
|
---|
589 | sys_unrename.h ã«ã¼ãã«ã®å
|
---|
590 | é¨èå¥åã®ãªãã¼ã è§£é¤
|
---|
591 | sys_rename.def ã«ã¼ãã«ã®å
|
---|
592 | é¨èå¥åã®ãªãã¼ã å®ç¾©
|
---|
593 | sys_unrename.def ã«ã¼ãã«ã®å
|
---|
594 | é¨èå¥åã®ãªãã¼ã è§£é¤
|
---|
595 | dmt33209.ld ãµã³ãã«ããã°ã©ã ç¨ãªã³ã«ã¹ã¯ãªãããã¡ã¤ã«
|
---|
596 |
|
---|
597 | config/s1c33/luxun2
|
---|
598 | hw_serial.cfg SIOãã©ã¤ãã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
|
---|
599 | Makefile.config Makefileã® LUXUN2 ä¾åå®ç¾©
|
---|
600 | hw_serial.c ã·ãªã¢ã«ã¤ã³ã¿ã¼ãã§ã¤ã¹ã«é¢ãã夿°ã¨é¢æ°
|
---|
601 | sys_config.c ã·ã¹ãã ä¾åé¨ã®é¢æ°
|
---|
602 | sys_start.c ãã¼ãããã°ã©ã ã½ã¼ã¹ãã¡ã¤ã«
|
---|
603 | hw_serial.h ã·ãªã¢ã«ã¤ã³ã¿ã¼ãã§ã¤ã¹æä½ã«ã¼ãã³
|
---|
604 | hw_timer.h ã¿ã¤ãæä½ã«ã¼ãã³
|
---|
605 | luxun2.h LUXUN2ãã¼ãã«é¢ããå®ç¾©
|
---|
606 | sys_config.h ã·ã¹ãã ä¾åé¨ã®æ§æå®ç¾©
|
---|
607 | sys_defs.h ã·ã¹ãã ä¾åé¨ã®ã¢ããªã±ã¼ã·ã§ã³ç¨å®ç¾©
|
---|
608 | sys_rename.h ã«ã¼ãã«ã®å
|
---|
609 | é¨èå¥åã®ãªãã¼ã
|
---|
610 | sys_unrename.h ã«ã¼ãã«ã®å
|
---|
611 | é¨èå¥åã®ãªãã¼ã è§£é¤
|
---|
612 | sys_rename.def ã«ã¼ãã«ã®å
|
---|
613 | é¨èå¥åã®ãªãã¼ã å®ç¾©
|
---|
614 | sys_unrename.def ã«ã¼ãã«ã®å
|
---|
615 | é¨èå¥åã®ãªãã¼ã è§£é¤
|
---|
616 | luxun2.ld ãµã³ãã«ããã°ã©ã ç¨ãªã³ã«ã¹ã¯ãªãããã¡ã¤ã«
|
---|
617 |
|
---|
618 | config/s1c33/dmt33401
|
---|
619 | hw_serial.cfg SIOãã©ã¤ãã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
|
---|
620 | Makefile.config Makefileã® DMT33401 ä¾åå®ç¾©
|
---|
621 | hw_serial.c ã·ãªã¢ã«ã¤ã³ã¿ã¼ãã§ã¤ã¹ã«é¢ãã夿°ã¨é¢æ°
|
---|
622 | sys_config.c ã·ã¹ãã ä¾åé¨ã®é¢æ°
|
---|
623 | sys_start.c ãã¼ãããã°ã©ã ã½ã¼ã¹ãã¡ã¤ã«
|
---|
624 | hw_serial.h ã·ãªã¢ã«ã¤ã³ã¿ã¼ãã§ã¤ã¹æä½ã«ã¼ãã³
|
---|
625 | hw_timer.h ã¿ã¤ãæä½ã«ã¼ãã³
|
---|
626 | dmt33401.h DMT33401ãã¼ãã«é¢ããå®ç¾©
|
---|
627 | sys_config.h ã·ã¹ãã ä¾åé¨ã®æ§æå®ç¾©
|
---|
628 | sys_defs.h ã·ã¹ãã ä¾åé¨ã®ã¢ããªã±ã¼ã·ã§ã³ç¨å®ç¾©
|
---|
629 | sys_rename.h ã«ã¼ãã«ã®å
|
---|
630 | é¨èå¥åã®ãªãã¼ã
|
---|
631 | sys_unrename.h ã«ã¼ãã«ã®å
|
---|
632 | é¨èå¥åã®ãªãã¼ã è§£é¤
|
---|
633 | sys_rename.def ã«ã¼ãã«ã®å
|
---|
634 | é¨èå¥åã®ãªãã¼ã å®ç¾©
|
---|
635 | sys_unrename.def ã«ã¼ãã«ã®å
|
---|
636 | é¨èå¥åã®ãªãã¼ã è§£é¤
|
---|
637 | dmt33401.ld ãµã³ãã«ããã°ã©ã ç¨ãªã³ã«ã¹ã¯ãªãããã¡ã¤ã«
|
---|
638 |
|
---|
639 | config/s1c33/luxun4
|
---|
640 | hw_serial.cfg SIOãã©ã¤ãã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
|
---|
641 | Makefile.config Makefileã® LUXUN4 ä¾åå®ç¾©
|
---|
642 | hw_serial.c ã·ãªã¢ã«ã¤ã³ã¿ã¼ãã§ã¤ã¹ã«é¢ãã夿°ã¨é¢æ°
|
---|
643 | sys_config.c ã·ã¹ãã ä¾åé¨ã®é¢æ°
|
---|
644 | sys_start.c ãã¼ãããã°ã©ã ã½ã¼ã¹ãã¡ã¤ã«
|
---|
645 | hw_serial.h ã·ãªã¢ã«ã¤ã³ã¿ã¼ãã§ã¤ã¹æä½ã«ã¼ãã³
|
---|
646 | hw_timer.h ã¿ã¤ãæä½ã«ã¼ãã³
|
---|
647 | luxun4.h LUXUN4ãã¼ãã«é¢ããå®ç¾©
|
---|
648 | sys_config.h ã·ã¹ãã ä¾åé¨ã®æ§æå®ç¾©
|
---|
649 | sys_defs.h ã·ã¹ãã ä¾åé¨ã®ã¢ããªã±ã¼ã·ã§ã³ç¨å®ç¾©
|
---|
650 | sys_rename.h ã«ã¼ãã«ã®å
|
---|
651 | é¨èå¥åã®ãªãã¼ã
|
---|
652 | sys_unrename.h ã«ã¼ãã«ã®å
|
---|
653 | é¨èå¥åã®ãªãã¼ã è§£é¤
|
---|
654 | sys_rename.def ã«ã¼ãã«ã®å
|
---|
655 | é¨èå¥åã®ãªãã¼ã å®ç¾©
|
---|
656 | sys_unrename.def ã«ã¼ãã«ã®å
|
---|
657 | é¨èå¥åã®ãªãã¼ã è§£é¤
|
---|
658 | luxun4.ld ãµã³ãã«ããã°ã©ã ç¨ãªã³ã«ã¹ã¯ãªãããã¡ã¤ã«
|
---|
659 |
|
---|
660 | config/s1c33-gnu33
|
---|
661 | Makefile.config Makefileã® S1C33 ä¾åå®ç¾©ï¼GNU33éçºç°å¢ç¨ï¼
|
---|
662 |
|
---|
663 | config/s1c33-gnu33/dmt33209
|
---|
664 | Makefile.config Makefileã® DMT33209 ä¾åå®ç¾©ï¼GNU33éçºç°å¢ç¨ï¼
|
---|
665 |
|
---|
666 | config/s1c33-gnu33/luxun2
|
---|
667 | Makefile.config Makefileã® LUXUN2 ä¾åå®ç¾©ï¼GNU33éçºç°å¢ç¨ï¼
|
---|
668 |
|
---|
669 | config/s1c33-gnu33/dmt33401
|
---|
670 | Makefile.config Makefileã® DMT33401 ä¾åå®ç¾©ï¼GNU33éçºç°å¢ç¨ï¼
|
---|
671 |
|
---|
672 | config/s1c33-gnu33/luxun4
|
---|
673 | Makefile.config Makefileã® LUXUN4 ä¾åå®ç¾©ï¼GNU33éçºç°å¢ç¨ï¼
|
---|
674 |
|
---|
675 | 5.2 ã¡ã¢ãªããã
|
---|
676 |
|
---|
677 | DMT33209ãã¼ã
|
---|
678 | ã¢ãã¬ã¹
|
---|
679 | 0x00000000 - 0x00001fff : CPUå
|
---|
680 | èµSRAM
|
---|
681 | éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã¹ã¿ãã¯é å
|
---|
682 | 0x00040000 - 0x00004fff : å
|
---|
683 | èµI/O ã¬ã¸ã¹ã¿é å
|
---|
684 |
|
---|
685 | 0x00200000 - 0x002fffff : ãã©ãã·ã¥ã¡ã¢ãª
|
---|
686 | æªä½¿ç¨
|
---|
687 | 0x00600000 - 0x006fffff : å¤é¨SRAM
|
---|
688 | .bss, .dataã»ã¯ã·ã§ã³ç¨é å
|
---|
689 | éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã¹ã¿ãã¯ä»¥å¤ã®RAM
|
---|
690 | é åã¯ãã¹ã¦ããã«é
|
---|
691 | ç½®ãããï¼
|
---|
692 | 0x00c00000 - 0x00cfffff : ãã©ãã·ã¥ã¡ã¢ãª
|
---|
693 | .text, .rodataã»ã¯ã·ã§ã³ï¼.dataã»ã¯ã·ã§ã³
|
---|
694 | åæå¤æ ¼ç´é å
|
---|
695 | 0x00c00000ã¯S1C33ããã©ã«ãã®ãã¼ãã¢ãã¬ã¹
|
---|
696 |
|
---|
697 | LUXUN2ãã¼ã
|
---|
698 | ã¢ãã¬ã¹
|
---|
699 | 0x00000000 - 0x00003fff : CPUå
|
---|
700 | èµSRAM
|
---|
701 | éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã¹ã¿ãã¯é å
|
---|
702 | 0x00040000 - 0x00004fff : å
|
---|
703 | èµI/O ã¬ã¸ã¹ã¿é å
|
---|
704 |
|
---|
705 | 0x00400000 - 0x005fffff : å¤é¨SRAMï¼Virtual SRAMï¼
|
---|
706 | æªä½¿ç¨
|
---|
707 | 0x00800000 - 0x00ffffff : ãã©ãã·ã¥ã¡ã¢ãª
|
---|
708 | .text, .rodataã»ã¯ã·ã§ã³ï¼.dataã»ã¯ã·ã§ã³
|
---|
709 | åæå¤æ ¼ç´é å
|
---|
710 | 0x00c00000çªå°ä»¥éã«ä¸è¨ã»ã¯ã·ã§ã³ãé
|
---|
711 | ç½®
|
---|
712 | 0x02000000 - 0x027fffff : å¤é¨SRAMï¼Virtual SRAMï¼
|
---|
713 | .bss, .dataã»ã¯ã·ã§ã³ç¨é å
|
---|
714 | éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã¹ã¿ãã¯ä»¥å¤ã®RAM
|
---|
715 | é åã¯ãã¹ã¦ããã«é
|
---|
716 | ç½®ãããï¼
|
---|
717 |
|
---|
718 | DMT33401ãã¼ã
|
---|
719 | 0x00000000 - 0x00007fff : CPUå
|
---|
720 | èµSRAM
|
---|
721 | éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã¹ã¿ãã¯é å
|
---|
722 | 0x00040000 - 0x00004fff : å
|
---|
723 | èµI/O ã¬ã¸ã¹ã¿é å
|
---|
724 |
|
---|
725 | 0x00200000 - 0x002fffff : ãã©ãã·ã¥ã¡ã¢ãª
|
---|
726 | æªä½¿ç¨
|
---|
727 | 0x00600000 - 0x006fffff : å¤é¨SRAM
|
---|
728 | .bss, .dataã»ã¯ã·ã§ã³ç¨é å
|
---|
729 | éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã¹ã¿ãã¯ä»¥å¤ã®RAM
|
---|
730 | é åã¯ãã¹ã¦ããã«é
|
---|
731 | ç½®ãããï¼
|
---|
732 | 0x10000000 - 0x11ffffff : å¤é¨SDRAM
|
---|
733 | æªä½¿ç¨
|
---|
734 | 0x20000000 - 0x200fffff : ãã©ãã·ã¥ã¡ã¢ãª
|
---|
735 | .text, .rodataã»ã¯ã·ã§ã³ï¼.dataã»ã¯ã·ã§ã³
|
---|
736 | åæå¤æ ¼ç´é å
|
---|
737 |
|
---|
738 | LUXUN4ãã¼ã
|
---|
739 | 0x00000000 - 0x00007fff : CPUå
|
---|
740 | èµSRAM
|
---|
741 | éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã¹ã¿ãã¯é å
|
---|
742 | 0x00040000 - 0x00004fff : å
|
---|
743 | èµI/O ã¬ã¸ã¹ã¿é å
|
---|
744 |
|
---|
745 | 0x01000000 - 0x011fffff : å¤é¨SRAMï¼Combo memoryï¼
|
---|
746 | .bss, .dataã»ã¯ã·ã§ã³ç¨é å
|
---|
747 | éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã¹ã¿ãã¯ä»¥å¤ã®RAM
|
---|
748 | é åã¯ãã¹ã¦ããã«é
|
---|
749 | ç½®ãããï¼
|
---|
750 | 0x10000000 - 0x11ffffff : å¤é¨SDRAM
|
---|
751 | æªä½¿ç¨
|
---|
752 | 0x20000000 - 0x207fffff : ãã©ãã·ã¥ã¡ã¢ãªï¼Combo memoryï¼
|
---|
753 | .text, .rodataã»ã¯ã·ã§ã³ï¼.dataã»ã¯ã·ã§ã³
|
---|
754 | åæå¤æ ¼ç´é å
|
---|