1 |
|
---|
2 | TOPPERS/ATK2-SC3
|
---|
3 | ï¼V850ä¾åé¨è¨è¨ã¡ã¢ï¼
|
---|
4 |
|
---|
5 | ãã®ããã¥ã¡ã³ãã¯V850ããã»ããµä¾åé¨ã®è¨è¨ã¡ã¢ãè¨è¿°ãããã®ã§ããï¼
|
---|
6 |
|
---|
7 | ----------------------------------------------------------------------
|
---|
8 | TOPPERS ATK2
|
---|
9 | Toyohashi Open Platform for Embedded Real-Time Systems
|
---|
10 | Automotive Kernel Version 2
|
---|
11 |
|
---|
12 | Copyright (C) 2013-2014 by Center for Embedded Computing Systems
|
---|
13 | Graduate School of Information Science, Nagoya Univ., JAPAN
|
---|
14 | Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
|
---|
15 | Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
|
---|
16 | Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
|
---|
17 | Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
|
---|
18 | Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
|
---|
19 | Copyright (C) 2013-2014 by Witz Corporation, JAPAN
|
---|
20 |
|
---|
21 | ä¸è¨èä½æ¨©è
|
---|
22 | ã¯ï¼ä»¥ä¸ã® (1)ã(3)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ããã¥ã¡
|
---|
23 | ã³ãï¼æ¬ããã¥ã¡ã³ããæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹
|
---|
24 | å¤ã»åé
|
---|
25 | å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
|
---|
26 | (1) æ¬ããã¥ã¡ã³ããå©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶
|
---|
27 | ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ããã¥ã¡ã³ãä¸ã«å«ã¾ãã¦
|
---|
28 | ãããã¨ï¼
|
---|
29 | (2) æ¬ããã¥ã¡ã³ããæ¹å¤ããå ´åã«ã¯ï¼ããã¥ã¡ã³ããæ¹å¤ããæ¨ã®è¨è¿°
|
---|
30 | ãï¼æ¹å¤å¾ã®ããã¥ã¡ã³ãä¸ã«å«ãããã¨ï¼ãã ãï¼æ¹å¤å¾ã®ããã¥ã¡
|
---|
31 | ã³ããï¼TOPPERSããã¸ã§ã¯ãæå®ã®éçºææç©ã§ããå ´åã«ã¯ï¼ãã®é
|
---|
32 | ãã§ã¯ãªãï¼
|
---|
33 | (3) æ¬ããã¥ã¡ã³ãã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害
|
---|
34 | ãããï¼ä¸è¨èä½æ¨©è
|
---|
35 | ããã³TOPPERSããã¸ã§ã¯ããå
|
---|
36 | 責ãããã¨ï¼ã¾ãï¼
|
---|
37 | æ¬ããã¥ã¡ã³ãã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãçç±ã«åºã¥
|
---|
38 | ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
|
---|
39 | ããã³TOPPERSããã¸ã§ã¯ããå
|
---|
40 | 責ãããã¨ï¼
|
---|
41 |
|
---|
42 | æ¬ããã¥ã¡ã³ãã¯ï¼AUTOSARï¼AUTomotive Open System ARchitectureï¼ä»æ§
|
---|
43 | ã«åºã¥ãã¦ããï¼ä¸è¨ã®è¨±è«¾ã¯ï¼AUTOSARã®ç¥ç財ç£æ¨©ã許諾ãããã®ã§ã¯ãª
|
---|
44 | ãï¼AUTOSARã¯ï¼AUTOSARä»æ§ã«åºã¥ããã½ããã¦ã§ã¢ãåç¨ç®çã§å©ç¨ãã
|
---|
45 | è
|
---|
46 | ã«å¯¾ãã¦ï¼AUTOSARãã¼ããã¼ã«ãªããã¨ãæ±ãã¦ããï¼
|
---|
47 |
|
---|
48 | æ¬ããã¥ã¡ã³ãã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
|
---|
49 | ãã
|
---|
50 | ã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ããã¥ã¡ã³ãã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®çã«å¯¾ã
|
---|
51 | ãé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ããã¥ã¡ã³ãã®å©ç¨
|
---|
52 | ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè²
|
---|
53 | ããªãï¼
|
---|
54 |
|
---|
55 | $Id: prc_design.txt 187 2015-06-25 03:39:04Z t_ishikawa $
|
---|
56 | ----------------------------------------------------------------------
|
---|
57 |
|
---|
58 | ãã®ããã¥ã¡ã³ãã¯ï¼V850E2ä¾åé¨ã®è¨è¨ã¡ã¢ã§ããï¼ä½æä¸ã®ãã®ã§ããï¼
|
---|
59 | 網ç¾
|
---|
60 | çã§ã¯ãªãï¼GHSã«é¢é£ããäºé
|
---|
61 | ããã®ã¡ã¢ã«è¨è¼ããï¼
|
---|
62 |
|
---|
63 | ---------------------------------------------------------------------
|
---|
64 | æ¢ç¥ã®åé¡
|
---|
65 | ---------------------------------------------------------------------
|
---|
66 | ã»(GCC) -msoft-float
|
---|
67 | ã»gcc 4.7(v12.02)ã§ã¯-msoft-floatãªãã·ã§ã³ãç¡ããªã£ã¦ããï¼
|
---|
68 |
|
---|
69 | ã»(GCC)CubeSuite+(V1.03.000)ã®LMAé対å¿
|
---|
70 | ã»åæå¤ä»ãå¤æ°ã®ããã«VMAã¨LMAãç°ãªãelfãã¡ã¤ã«ãä½æãã¦ãï¼VMA
|
---|
71 | ã®å ´æã«ãã¼ã¿ããã¼ããããï¼
|
---|
72 | ã»å®è¡æã«ã¯æ¯åãã¦ã³ãã¼ãå¿
|
---|
73 | è¦ï¼
|
---|
74 |
|
---|
75 | ã»(GHS) GNUã® Asm("" ::: "memory")ç¸å½ã®å½ä»¤
|
---|
76 | ã»é¢æ°åä½ã§pragmaã使ãã¡ã¢ãªæé©åãæå¶ããæ¹æ³ã¯ãããï¼é¢æ°å
|
---|
77 | ã§
|
---|
78 | 使ç¨ãããã¨ã¯ã§ããªãï¼ãã®ããï¼GNUã® Asm("" ::: "memory")ç¸å½ã®
|
---|
79 | å½ä»¤ã¯åå¨ããªãï¼
|
---|
80 |
|
---|
81 | ---------------------------------------------------------------------
|
---|
82 | Tips
|
---|
83 | ---------------------------------------------------------------------
|
---|
84 | FL4ã«ã¦ä¸å®æéå¾ã«ãªã»ãããçºçï¼
|
---|
85 | ã»WDTã§VACæ©è½ãONã«ãªã£ã¦ããï¼
|
---|
86 | ã»ãªãã·ã§ã³ãã¤ãã§è¨å®ï¼ãããã¬ããè¨å®ï¼
|
---|
87 | OPBT0 - ãã©ãã·ã¥ã»ãã¹ã¯ã»ãªãã·ã§ã³ã®ã¬ã¸ã¹ã¿0
|
---|
88 | ã»ã¢ãã¬ã¹ FF47000CH
|
---|
89 | ã»OPBT0ã®å¤ã«ãã£ã¦ã¯èµ·åæããWDTãæå¹ã¨ãªãï¼
|
---|
90 | ã»ãªã¼ã«0ã§åæ¢ããï¼
|
---|
91 | OPBT0ã®å¤æ´
|
---|
92 | ã»ãããã¬ã§ã¿ã¼ã²ããã«æ¥ç¶
|
---|
93 | ã»ãããã°ã»ãã¼ã«ã®ããããã£ãã©ãã·ã¥ã»ãªãã·ã§ã³ã¿ãã«è¡¨ç¤ºããã
|
---|
94 | ã»ã...ããã¿ã³ãã¯ãªãã¯ãã¦ã¡ãã¥ã¼ãå¼ã³åºãã¦å¤æ´ï¼
|
---|
95 |
|
---|
96 | ---------------------------------------------------------------------
|
---|
97 | V850E2ä»æ§(V850E2v3)
|
---|
98 | ---------------------------------------------------------------------
|
---|
99 | âå²è¾¼é¢é£
|
---|
100 |
|
---|
101 | å²è¾¼ã¿åªå
|
---|
102 | 度
|
---|
103 | å¤ãå°ããã»ã©åªå
|
---|
104 | 度ãé«ã
|
---|
105 | 0ãæé«ï¼15ãæä½åªå
|
---|
106 | 度ï¼
|
---|
107 |
|
---|
108 | å²è¾¼ã¿é¢é£ã¬ã¸ã¹ã¿
|
---|
109 | ã»EICC : å²è¾¼ã¿è¦å ã®åå¾
|
---|
110 | ã»EIWR : å²è¾¼ã¿çºçæã®ä½æ¥ç¨ã¬ã¸ã¹ã¿
|
---|
111 | ã»ISPR : åä»ä¸ã®å²è¾¼ã¿
|
---|
112 | ã»PMR : å²è¾¼ã¿åªå
|
---|
113 | 度ãã¹ã¯
|
---|
114 | ã»ISPC : åä»ä¸ã®å²è¾¼ã¿ã®ã¯ãªã¢
|
---|
115 |
|
---|
116 | ãã¯ã¿
|
---|
117 | ã»å²è¾¼ã¿è¦å æ¯ã®ãã¯ã¿ï¼
|
---|
118 | ã»å²è¾¼ã¿æ¯ã«16bypte
|
---|
119 | è¦å : ãªã¿ã¼ã³å½ä»¤
|
---|
120 | 0x00 : ãªã»ãã
|
---|
121 | 0x10 : FEã¬ãã«ãã¹ã«ãã«å²è¾¼ã¿ : feret
|
---|
122 | 0x20 : FEã¬ãã«ãã³ãã¹ã«ãã«å²è¾¼ã¿ : feret
|
---|
123 | 0x30 : ã·ã¹ãã ã¨ã©ã¼ä¾å¤ã»å¨è¾ºä¿è·ä¾å¤ã»ã¿ã¤ãã³ã°ç£è¦ä¾å¤ : feret
|
---|
124 | 0x40 : EIã¬ãã«ã½ããã¦ã§ã¢ä¾å¤ : eiret
|
---|
125 | 0x50 : EIã¬ãã«ã½ããã¦ã§ã¢ä¾å¤ : eiret
|
---|
126 | 0x70 : æµ®åå°æ°ç¹æ¼ç®ä¾å¤ : eiret
|
---|
127 | 0x80 : EIã¬ãã«ãã¹ã«ãã«å²è¾¼ã¿ : eiret
|
---|
128 |
|
---|
129 | FEINT/FENMI å²è¾¼ã¿
|
---|
130 | ã»CPUã·ã¹ãã 以å¤ã§å®ç¾©ãããä¾å¤ãªã©ã§å©ç¨ããï¼
|
---|
131 | ã»ä¾ãã°ãAUTOSARã®æéç£è¦ãªã©ã®å¤ä»ãã¿ã¤ããªã©ãFEINTã«ã¤ãªãã§ï¼
|
---|
132 | é常ã®ããã°ã©ã ã®å²è¾¼ã¿ç¦æ¢è¨±å¯(EIã¬ãã«)ã®å½±é¿ãåããã«å²è¾¼ã¿ã
|
---|
133 | åãä»ããããã«ãããã¨ãã§ããï¼
|
---|
134 | ã»FENMIã®ã»ãã¯WatchDogãªã©ãæ³å®ãã¦ããï¼
|
---|
135 | ã»å
|
---|
136 | ã
|
---|
137 | ã¯ä¸è¬ã¢ããªã¨ã¯ç°ãªãç·æ¥åº¦ã®é«ãå²ãè¾¼ã¿ã¨ãã¦æ©è½ããããã¨ã
|
---|
138 | æ³å®ãã¦ããï¼
|
---|
139 |
|
---|
140 | eiret/feret å½ä»¤
|
---|
141 | EIã¬ãã«ã®ä¾å¤å¦çããã®å¾©å¸°
|
---|
142 | eiretå½ä»¤
|
---|
143 | FEã¬ãã«ã®ä¾å¤å¦çããã®å¾©å¸°
|
---|
144 | feretå½ä»¤
|
---|
145 | ããããPSWã®EPã0ã®å ´åã«ä¾å¤ã«ã¼ãã³ã®å®è¡ãçµäºãããã¨ãå¤é¨
|
---|
146 | ï¼å²è¾¼ã¿ã³ã³ããã¼ã©ï¼ã«ä¼ããï¼
|
---|
147 | PSWã®EP(bit6)
|
---|
148 | å²è¾¼ã¿ä»¥å¤ã®ä¾å¤å¦çä¸ã§ãããã¨ã示ãï¼ãã®ããããã»ããããã¦ã
|
---|
149 | ä¾å¤è¦æ±ã®åãä»ãã«ã¯å½±é¿ããªãï¼
|
---|
150 | 0 : å²è¾¼ã¿å¦çä¸ã§ããï¼
|
---|
151 | 1 : å²è¾¼ã¿ä»¥å¤ã®ä¾å¤å¦çä¸
|
---|
152 | PSWã®NP(bit7)
|
---|
153 | '0' : FEã¬ãã«ä¾å¤å¦çä¸ã§ã¯ãªãï¼
|
---|
154 | '1' : å¤éä¾å¤ã®çºçåã³å²ãè¾¼ã¿ã®çºçãç¦æ¢ããï¼
|
---|
155 | ã»PSWã®EP=0ã®æã«eiretãããã¨ï¼ISPRãå²è¾¼ã¿åã«æ»ããï¼ISPCã使ã£ã¦
|
---|
156 | All 0ã«ã¯ãªã¢ãããã¨ã§è¯ããã°(å²è¾¼ã¿ã®ä¸çªå¤ã®ã¿å®è¡ããã°ãããªã
|
---|
157 | )ï¼eirteã¯å¿
|
---|
158 | è¦ãªãï¼
|
---|
159 | ã»ä¾å¤ã«é¢ãã¦ã¯ï¼feretã¯EP=1ã¨ãªã£ã¦ããã®ã§ï¼å¼ã³åºãã¦ãå¼ã³åºããª
|
---|
160 | ãã¦ãåé¡ãªãï¼
|
---|
161 | ã»FEINT/FENMIã¯feretãè¡ãå¿
|
---|
162 | è¦ãããï¼(ISPRã¨ã¯å¥ã«åªå
|
---|
163 | 度管çãããã
|
---|
164 | ããï¼ã¯ãªã¢ããå¿
|
---|
165 | è¦ããã ICSR.FNEã¨ICSR.FIE)
|
---|
166 | ã»PSWã®EPã'1'ã®ç¶æ
|
---|
167 | ã§eiret/feretãå®è¡ããã°ï¼åã«eipc/eipswã¾ãã¯
|
---|
168 | fepc/fepswãpc/pswã«å¾©å¸°ããã®ã¿ã¨ãªãï¼ç¹ã«ä»ã«å¯ä½ç¨ã¯ãªãï¼
|
---|
169 |
|
---|
170 |
|
---|
171 | ã»0x10 : FEã¬ãã«ãã¹ã«ãã«å²è¾¼ã¿ feret
|
---|
172 | ã»0x20 : FEã¬ãã«ãã³ãã¹ã«ãã«å²è¾¼ã¿ï¼åéã»å復ä¸å¯è½ï¼ feret
|
---|
173 | ã»0x30 : FEä¾å¤ feret
|
---|
174 | ã·ã¹ãã ã¨ã©ã¼ä¾å¤ï¼åéã»å復ä¸å¯è½ï¼
|
---|
175 | å¨è¾ºä¿è·ä¾å¤ï¼å復ä¸å¯è½ï¼
|
---|
176 | ã¿ã¤ãã³ã°ç£è¦éå
|
---|
177 | å®è¡ä¿è·
|
---|
178 | ã¡ã¢ãªã¨ã©ã¼ï¼å復ä¸å¯è½ï¼
|
---|
179 | ãã¼ã¿ä¿è·
|
---|
180 | ã³ããã»ããµä¾å¤
|
---|
181 | äºç´å½ä»¤ä¾å¤
|
---|
182 | FEã¬ãã«ã½ããã¦ã§ã¢ä¾å¤
|
---|
183 | ã³ããã»ããµä½¿ç¨ä¸å¯
|
---|
184 | äºç´å½ä»¤
|
---|
185 | FEã¬ãã«ã½ããã¦ã§ã¢ä¾å¤
|
---|
186 | ->ä¾å¤è¦å ã³ã¼ã
|
---|
187 | ã»0x40 : EIã¬ãã«ã½ããã¦ã§ã¢ä¾å¤ï¼Trapï¼eiret <- å²è¾¼ã¿ã¨ãã¦æ±ã?
|
---|
188 | ä¾å¤è¦å ã³ã¼ã : 0x40 - 0x4F
|
---|
189 | ã»0x50 : EIã¬ãã«ã½ããã¦ã§ã¢ä¾å¤ï¼Trapï¼eiret <- å²è¾¼ã¿ã¨ãã¦æ±ã?
|
---|
190 | ä¾å¤è¦å ã³ã¼ã : 0x50 - 0x5F
|
---|
191 | ã»0x70 : æµ®åå°æ°ç¹ï¼å復ä¸å¯è½ï¼ eiret <- å²è¾¼ã¿ã¨ãã¦æ±ã?
|
---|
192 | æµ®åå°æ°ç¹ä¾å¤
|
---|
193 | ä¾å¤è¦å ã³ã¼ã : 0x71
|
---|
194 | ã»0x80 : EIã¬ãã«ãã¹ã«ãã«å²è¾¼ã¿
|
---|
195 |
|
---|
196 | âã¬ã¸ã¹ã¿
|
---|
197 |
|
---|
198 | ã»ã·ã¹ãã ã¬ã¸ã¹ã¿ãã³ã¯
|
---|
199 | ã»BSELã«ããé¸æ
|
---|
200 | ã»pswã«ã¢ã¯ã»ã¹ããéã«ã¯å¸¸ã«ãã³ã¯ãåãæ¿ãã¦ã¢ã¯ã»ã¹ï¼
|
---|
201 |
|
---|
202 | ã»ã¬ã¸ã¹ã¿å¥å
|
---|
203 | r31 : lp
|
---|
204 | r30 : ep
|
---|
205 | r3 : sp
|
---|
206 | r4 : gp
|
---|
207 | r5 : tp
|
---|
208 |
|
---|
209 |
|
---|
210 | âå½ä»¤
|
---|
211 |
|
---|
212 | callt å½ä»¤
|
---|
213 | ã»ã³ã³ãã¤ã©ãªãã·ã§ã³ -mdisable-callt ãä»ããªãã¨ä½¿ç¨ãããï¼
|
---|
214 | ã»ãªã³ã¯ãå«ãã¦ã³ã¼ãå
|
---|
215 | ¨ä½ãçºããæã«ï¼æé »åºãããã¯ã«é¢æ°ã®åºå
|
---|
216 | ¥å£å¦
|
---|
217 | çã§ã®ã¹ã¿ãã¯éé¿ï¼å¾©å¸°å¦çãããï¼ãã®ããï¼ã³ã¼ããµã¤ãºç¸®å°ã®ãã
|
---|
218 | ã®å
|
---|
219 | ±éãããã¯ã¨ãã¦Calltå½ä»¤ã§å¼ã³åºãããã³ã¼ãã«å¤æããåºå
|
---|
220 | ¥å£å¦
|
---|
221 | çã®å§ç¸®ãå³ãï¼
|
---|
222 | ã»åå½ä»¤ã«åãè¾¼ããããã³ã¼ãå¹çãè¯ããã¾ããé¢æ°ã«ãã¦Far
|
---|
223 | jump(mov+jmp=64ããã)ãããããå°ãã(16ããã)ã¨ããç¹ãå©ç¨ä¾¡å¤ã¨
|
---|
224 | ãªãï¼
|
---|
225 | ã»ãã ãï¼Calltå½ä»¤ã¯flashãã¢ã¯ã»ã¹ããããï¼é度ä½ä¸ãæãã¦ãã¾ãã
|
---|
226 | ãï¼é度éè¦ã®æé©åã§ã¯OFFã¨ããï¼
|
---|
227 |
|
---|
228 | sld/sstå½ä»¤(epããã¼ã¹ãã¤ã³ã¿ã«ä½¿ç¨ãã)
|
---|
229 | ã»sld/sstã¯ã16ãããå½ä»¤ã§ãµã¤ãºæé©åæã«å±æçã«å©ç¨ãããï¼
|
---|
230 |
|
---|
231 | ---------------------------------------------------------------------
|
---|
232 | ä¾åé¨ã®è¨è¨
|
---|
233 | ---------------------------------------------------------------------
|
---|
234 | âå²è¾¼å¦çã¢ãã«
|
---|
235 |
|
---|
236 | å²è¾¼ã¿ç¦æ¢
|
---|
237 | ã»IMR(EICn)ã«ããå®ç¾
|
---|
238 |
|
---|
239 | å²è¾¼ã¿åªå
|
---|
240 | 度
|
---|
241 | ã»PMR(ããããªã®ã§æ³¨æ)ã«ããå®ç¾
|
---|
242 | 0ã15ã®16段é
|
---|
243 | 0ãæé«åªå
|
---|
244 | 度15ãæä½åªå
|
---|
245 | 度ï¼
|
---|
246 | ããã»ããµã®å
|
---|
247 | é¨è¡¨ç¾ã¨å¤é¨è¡¨ç¾ã®é¢ä¿
|
---|
248 | 0ã15,16
|
---|
249 | -16ã-1,0
|
---|
250 |
|
---|
251 | å²è¾¼ã¿ãã³ãã©
|
---|
252 | ã»FEã¬ãã«ãã¹ã«ãã«å²è¾¼ã¿ã»ãã³ãã¹ã«ãã«å²è¾¼ã¿ã¯æ±ããªããï¼ä¾å¤
|
---|
253 | çªå·ã¯å²ãä»ããï¼
|
---|
254 | ã»ä¾å¤çªå·ï¼1,2
|
---|
255 | ã»EIã¬ãã«ã½ããã¦ã§ã¢ä¾å¤ï¼Trapï¼ã¯ï¼ä¾å¤ã¨ãã¦æ±ãï¼
|
---|
256 | ã»2種é¡ã®ä¾å¤ã¨ãã¦ï¼ä¾å¤çªå·:4ã¨5
|
---|
257 | ã»æµ®åå°æ°ç¹ï¼å復ä¸å¯è½ï¼ã¯ä¾å¤ã¨ãã¦æ±ãï¼
|
---|
258 | ã»1種é¡ã®ä¾å¤ã¨ãã¦æ±ã,ä¾å¤çªå·7
|
---|
259 | ã»FEä¾å¤ãä¾å¤ã¨ãã¦æ±ãï¼ä¾å¤è¦å ã³ã¼ããã¹ãã¼ã¹ãªã®ã§ï¼ç¾ç¶ã§ã¯
|
---|
260 | ç´°ããåå²ã¯è¡ããï¼å
|
---|
261 | ¨ã¦ä¾å¤çªå·3ã®ä¾å¤ã¨ãã¦æ±ãï¼
|
---|
262 |
|
---|
263 | ---------------------------------------------------------------------
|
---|
264 | GHS対å¿
|
---|
265 | ---------------------------------------------------------------------
|
---|
266 | âåºæ¬
|
---|
267 |
|
---|
268 | ã»ã³ã³ãã¤ã©ã®å¤æãã©ã°
|
---|
269 | __ghs__
|
---|
270 |
|
---|
271 | ã»ãªã³ã«ã¹ã¯ãªãã
|
---|
272 | ã»ã¼GNUäºæã ãè¥å¹²ç°ãªã
|
---|
273 |
|
---|
274 | ã»ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã©
|
---|
275 | Asm("" ::: "memory"); ç¸å½ãç¨æããã¦ããªãï¼
|
---|
276 | Asm ã¯åã«asmã§ããï¼
|
---|
277 | pswã®è¨å®,di,eiã¯çµè¾¼ã¿é¢æ°ã使ãï¼
|
---|
278 | psw = __GETSR()
|
---|
279 | __SETSR(psw)
|
---|
280 | __DI();
|
---|
281 | __EI();
|
---|
282 |
|
---|
283 | ã»ã¢ã»ã³ãã©ãã¯ã
|
---|
284 | ãã¯ãã®å¤§æ ã®æ¸ãæ¹ã¯åãã ãï¼å¼æ°ãåç
|
---|
285 | §ããã¨ãã«\ãå¿
|
---|
286 | è¦ãªãï¼
|
---|
287 |
|
---|
288 | ã»ã³ãã³ãã©ã¤ã³
|
---|
289 | ccv850
|
---|
290 |
|
---|
291 | ã»ã³ã³ãã¤ã«ãªãã·ã§ã³
|
---|
292 | ç¾ç¶ä»¥ä¸ã®ãªãã·ã§ã³ã§åä½ã確èªï¼
|
---|
293 | -cpu=v850e2v3 : E2V3対å¿
|
---|
294 | -gcc : GCCäºææ©è½
|
---|
295 | -preprocess_assembly_files : ã¢ã»ã³ããªãã¡ã¤ã«ãããªããã»ã¹
|
---|
296 | -kanji=euc : æ¼¢åã³ã¼ãã®æå®
|
---|
297 | -noobj : ã¢ã»ã³ããªè¨èªãã¡ã¤ã«ãçæï¼ä¸è¦ãªã»
|
---|
298 | ã¯ã·ã§ã³ãåé¤ï¼
|
---|
299 | -g : ãããã°
|
---|
300 | -O2 : æé©å
|
---|
301 |
|
---|
302 | MULTIã使ãã¨ä»¥ä¸ã®ãªãã·ã§ã³ã追å ã¨ãªãï¼
|
---|
303 | -Onone
|
---|
304 | -e
|
---|
305 | -no_japanese_automotive_c
|
---|
306 | --no_exceptions
|
---|
307 | --slash_comment
|
---|
308 | -locatedprogram
|
---|
309 | --no_additional_output
|
---|
310 | -nostrip
|
---|
311 | -Qn
|
---|
312 | -noentry
|
---|
313 | -O2
|
---|
314 | -nostartfiles
|
---|
315 | -srec
|
---|
316 | -kanji=euc
|
---|
317 | --asm_silent
|
---|
318 |
|
---|
319 | ã»GNUã®asm(:::"memory")ç¸å½ã®è¨è¿°
|
---|
320 | GHSã«ã¯GNUã®asm(:::"memory")ç¸å½ã®è¨è¿°ããããã¨ãã§ããªãï¼ãã®ããï¼
|
---|
321 | V850_MEMORY_CHANGED ã¯ï¼ç©ºã®é¢æ°ãå¼ã³åºããã¨ã§å®ç¾ããï¼
|
---|
322 |
|
---|
323 | ---------------------------------------------------------------------
|
---|
324 | ã¹ã¢ã¼ã«ãã¼ã¿ã¨ãªã¢(SDA)ã®æå¹å
|
---|
325 | ---------------------------------------------------------------------
|
---|
326 | ã»ã¯ã·ã§ã³å
|
---|
327 | ã».sdata
|
---|
328 | ã».sbss
|
---|
329 | ã».rosdata
|
---|
330 | ã»SMALLCOMMON
|
---|
331 |
|
---|
332 | ---------------------------------------------------------------------
|
---|
333 | RH850(V850E3v5)ã®ä¾å¤å¦ç
|
---|
334 | ---------------------------------------------------------------------
|
---|
335 | RH850ã§ã¯ï¼ä¾å¤ã»å²è¾¼ã¿çºçæã«ãã¯ã¿ããå®è¡ãããï¼ãã¯ã¿ã®ç¨®é¡ã¯æ¬¡
|
---|
336 | ã®éãã§ããï¼
|
---|
337 |
|
---|
338 | ãªãã»ãã : å¾
|
---|
339 | é¿ãªã½ã¼ã¹ : å称
|
---|
340 | 0x0000 : - : ãªã»ãã
|
---|
341 | 0x0010 : FE : ã·ã¹ãã ã¨ã©ã¼
|
---|
342 | 0x0020 : FE : ãã¤ãã¼ãã¤ã¶ã¼ãã©ãã
|
---|
343 | 0x0030 : FE : FEã¬ãã«ãã©ãã
|
---|
344 | 0x0040 : EI : EIã¬ãã«ãã©ãã0
|
---|
345 | 0x0050 : EI : EIã¬ãã«ãã©ãã1
|
---|
346 | 0x0060 : EI : äºç´å½ä»¤ä¾å¤
|
---|
347 | 0x0070 : EI : FPUä¾å¤
|
---|
348 | 0x0080 : FE : ã³ããã»ããµä½¿ç¨ä¸å¯ä¾å¤
|
---|
349 | 0x0090 : FE : ã¡ã¢ãªä¿è·ä¾å¤
|
---|
350 | 0x00a0 : FE : ç¹æ¨©å½ä»¤ä¾å¤
|
---|
351 | 0x00b0 : DB : ãããã°
|
---|
352 | 0x00c0 : FE : ãã¹ã¢ã©ã¤ã³ä¾å¤
|
---|
353 | 0x00d0 : ? : R.F.U(reserved for future use)
|
---|
354 | 0x00e0 : FE : FENMI
|
---|
355 | 0x00f0 : FE : FEINT
|
---|
356 | 0x0100 : EI : EIå²è¾¼ã¿(åªå
|
---|
357 | 度0)
|
---|
358 | ...
|
---|
359 | 0x01f0 : EI : EIå²è¾¼ã¿(åªå
|
---|
360 | 度15)
|
---|
361 |
|
---|
362 |
|
---|
363 | ã¸ã£ã³ãå
|
---|
364 | ã«ã¤ãã¦ã¯ï¼æ¬¡ã®ããã«ããï¼
|
---|
365 |
|
---|
366 | ãªã»ãã -> __start
|
---|
367 |
|
---|
368 | EIå²è¾¼ã¿ -> interrupt
|
---|
369 |
|
---|
370 | å¾
|
---|
371 | é¿ãªã½ã¼ã¹ FE -> _fe_exception_entry
|
---|
372 | å¾
|
---|
373 | é¿ãªã½ã¼ã¹ EI -> _ei_exception_entry
|
---|
374 |
|
---|
375 | ãã®ä»
|
---|
376 | ãããã°ã¨ãã¹ã¢ã©ã¤ã³ä¾å¤ã«é¢ãã¦ã¯ï¼çºçãããã¨ã¯ãªãã®ã§ï¼ãã¯ã¿å
|
---|
377 |
|
---|
378 | ã§ç¡éã«ã¼ãã¨ããï¼
|
---|
379 |
|
---|
380 |
|
---|
381 | ---------------------------------------------------------------------
|
---|
382 | V850/RH850ã®ABI
|
---|
383 | ---------------------------------------------------------------------
|
---|
384 | âç¨èª
|
---|
385 | ã»caller : å¼ã³åºãå
|
---|
386 | ãä¿å(å¼ã³åºãå
|
---|
387 | ã¯ä¿åãªãã«ä½¿ãã)
|
---|
388 | ã»callee : å¼ã³åºãå
|
---|
389 | ãä¿å(使ç¨æã¯ä¿åãã¦ãã)
|
---|
390 | ã»fixed : èµ·åæã®è¨å®å
|
---|
391 | 容ãä¿æ
|
---|
392 |
|
---|
393 | âåæ
|
---|
394 | ã»V850ã¯çµ±ä¸ããABIããªãã³ã³ãã¤ã©æ¯ã«ABIãå®ç¾©ãã¦ãã
|
---|
395 | ã»RH850ã§ã¯ããã»ããµã§ABIãå®ç¾©ãã¦ããï¼
|
---|
396 |
|
---|
397 | âãã¼ã¸ã§ã³
|
---|
398 | CX : V2.01.00
|
---|
399 | CCRH : V2.01.00
|
---|
400 |
|
---|
401 |
|
---|
402 | âABIä¸è¦§
|
---|
403 |
|
---|
404 | âV850:GNU
|
---|
405 | ã¬ã¸ã¹ã¿: å¥åç : æ±ã
|
---|
406 | R0 : ã¼ã : fixed
|
---|
407 | R1 : ã³ã³ãã¤ã©ã»ã¢ã»ã³ãã©ãä½¿ç¨ : caller
|
---|
408 | R2 : OSäºç´ : caller (-mapp-regs:ãã£ãã©ã«ã), fixed(-mno-app-regs)
|
---|
409 | R3 : SP : callee
|
---|
410 | R4 : GP : fixed
|
---|
411 | R5 : TP : caller (-mapp-regs:ãã£ãã©ã«ã), fixed(-mno-app-regs)
|
---|
412 | R6-R9 : é¢æ°ã®å¼æ° : caller
|
---|
413 | R10 : æ»ãå¤ : caller
|
---|
414 | R11 : 64bitã®æ»ãå¤ : caller
|
---|
415 | R12-R19 : : caller
|
---|
416 | R20-R27 : : callee
|
---|
417 | R28 : FP : callee
|
---|
418 | R29 : : callee
|
---|
419 | R30 : EP : caller (-mtda=0æ), fixed(æªå®æå®æ) *
|
---|
420 | R31 : ãªã³ã¯ãã¤ã³ã¿ : caller
|
---|
421 |
|
---|
422 | SC3ã§ã¯ï¼-mno-app-regsãæå®ï¼
|
---|
423 |
|
---|
424 |
|
---|
425 | âV850:GHS(V5)
|
---|
426 | ã¬ã¸ã¹ã¿: å¥åç : æ±ã
|
---|
427 | R0 : ã¼ã : fixed
|
---|
428 | R1 : ã³ã³ãã¤ã©ã»ã¢ã»ã³ãã©ãä½¿ç¨ : caller
|
---|
429 | R2 : OSäºç´ : caller or fixed(-reserve_r2)
|
---|
430 | R3 : SP : callee
|
---|
431 | R4 : GP : fixed
|
---|
432 | R5 : TP(ROSDAãã¼ã¹) : caller or fixed
|
---|
433 | R6-R9 : é¢æ°ã®å¼æ° : caller
|
---|
434 | R10 : æ»ãå¤ : caller
|
---|
435 | R11 : 64bitã®æ»ãå¤ : caller
|
---|
436 | R12-R19 : : caller
|
---|
437 | R20-R27 : : callee
|
---|
438 | R28 : FP : callee
|
---|
439 | R29 : : callee
|
---|
440 | R30 : EP : caller(-notda)ï¼or fixed *1
|
---|
441 | R31 : ãªã³ã¯ãã¤ã³ã¿ : caller
|
---|
442 |
|
---|
443 | -notdaã¯ãã£ãã©ã«ãã§æå¹ï¼
|
---|
444 |
|
---|
445 | âV850:CX
|
---|
446 | ã¬ã¸ã¹ã¿: å¥åç : æ±ã
|
---|
447 | R0 : ã¼ã : fixed
|
---|
448 | R1 : ã³ã³ãã¤ã©ã»ã¢ã»ã³ãã©ãä½¿ç¨ : caller
|
---|
449 | R2 : OSäºç´ : fixed
|
---|
450 | R3 : SP : callee
|
---|
451 | R4 : GP : fixed
|
---|
452 | R5 : TP : fixed*1
|
---|
453 | R6-R9 : é¢æ°ã®å¼æ° : caller
|
---|
454 | R10 : æ»ãå¤ : caller
|
---|
455 | R11 : 64bitã®æ»ãå¤ : caller
|
---|
456 | R12-R19 : : caller
|
---|
457 | R20-R27 : : callee
|
---|
458 | R28 : FP : callee
|
---|
459 | R29 : : callee
|
---|
460 | R30 : EP : fixed*2
|
---|
461 | R31 : ãªã³ã¯ãã¤ã³ã¿ : caller
|
---|
462 |
|
---|
463 | *1 é¢æ°ã®ã¢ãã¬ã¹ãåçã«(ããã°ã©ã ä¸ã§)åå¾ããªãå ´åã¯ä½¿ç¨ããªãï¼
|
---|
464 | *2 該å½ã»ã¯ã·ã§ã³ããªãå ´åã¯ä½¿ç¨ããªãï¼
|
---|
465 |
|
---|
466 | âRH850(CCRH)
|
---|
467 | ã¬ã¸ã¹ã¿: å¥åç : æ±ã
|
---|
468 | R0 : ã¼ã : fixed
|
---|
469 | R1 : ã³ã³ãã¤ã©ã»ã¢ã»ã³ãã©ãä½¿ç¨ : caller
|
---|
470 | R2 : OSäºç´ : caller or fixed
|
---|
471 | R3 : SP : callee
|
---|
472 | R4 : GP : fixed
|
---|
473 | R5 : TP : caller or fixed*1
|
---|
474 | R6-R9 : é¢æ°ã®å¼æ° : caller
|
---|
475 | R10 : æ»ãå¤ : caller
|
---|
476 | R11 : 64bitã®æ»ãå¤ : caller
|
---|
477 | R12-R19 : : caller
|
---|
478 | R20-R27 : : callee
|
---|
479 | R28 : FP : callee
|
---|
480 | R29 : : callee
|
---|
481 | R30 : EP : callee or fixed(-Xep=fix)
|
---|
482 | R31 : ãªã³ã¯ãã¤ã³ã¿ : caller
|
---|
483 |
|
---|
484 | *1 CCRHã§ã¯ç¾ç¶fixedã¯ãµãã¼ããã¦ããªã
|
---|
485 |
|
---|
486 | --------------------------------------------------------------------------
|
---|
487 | åã³ã³ãã¤ã©ã§ã®ã³ã¼ãå
|
---|
488 | ±æã®ããã®ã¬ã¸ã¹ã¿ã®æ±ã
|
---|
489 | --------------------------------------------------------------------------
|
---|
490 | åã³ã³ãã¤ã©,V850/RH850ã§æ±ããç°ãªãã¬ã¸ã¹ã¿ã¯æ¬¡ã®éãã§ããï¼
|
---|
491 |
|
---|
492 | ã»R2
|
---|
493 | ã»R5(TP)
|
---|
494 | ã»R30(EP)
|
---|
495 |
|
---|
496 | ããããã®ã¬ã¸ã¹ã¿ã®æ±ãã«ã¤ãã¦æ¬¡ã®ããã«ããï¼
|
---|
497 |
|
---|
498 | âR2
|
---|
499 | ã·ã¹ãã äºç´ã¨ãã¦OSå
|
---|
500 | ã§ä½¿ç¨ãã(å²è¾¼ã¿ç¦æ¢æã«ã¢ã»ã³ãã©å
|
---|
501 | ã§
|
---|
502 | ãã³ãã©ãªã¬ã¸ã¹ã¿ã¨ãã¦ä½¿ç¨ãã)ï¼
|
---|
503 | ãã®ããï¼ãã£ã¹ãããã£ãå²è¾¼ã¿ã®ã¨ã³ããªã§ã¯ä¿åããªãï¼
|
---|
504 | çç±
|
---|
505 | SC3ã§å¿
|
---|
506 | è¦ãªããï¼
|
---|
507 | åã³ã³ãã¤ã©ã§fixedã®æ±ãã«å¯è½ï¼
|
---|
508 | ã»ã³ã³ãã¤ã«ãªãã·ã§ã³æå®
|
---|
509 | ã»GCC : -mno-app-regs
|
---|
510 | ã»GHS(V) : -reserve_r2
|
---|
511 | ã»CX : æå®å¿
|
---|
512 | è¦ãªã
|
---|
513 | ã»CCRH : -Xreserve_r2
|
---|
514 |
|
---|
515 |
|
---|
516 | âR5(TP)
|
---|
517 | ã¢ã»ã³ãã©å
|
---|
518 | ã§ã¯ä½¿ç¨ããªããå²è¾¼ã¿ã§ä¿åããã
|
---|
519 | çç±
|
---|
520 | CCRHã§callerã§ããããï¼å²è¾¼ã¿åºå
|
---|
521 | ¥å£ã§ä¿å復帰ã®å¿
|
---|
522 | è¦ãããï¼
|
---|
523 | ifdefãå
|
---|
524 | ¥ããã¨å¯èªæ§ãä¸ããããä¸å¾ä¿åããï¼
|
---|
525 | ä¸æ¹ï¼ä»ã®ã³ã³ãã¤ã©ã§ã¯fixedã§ããããï¼ã¢ã»ã³ãã©å
|
---|
526 | ã§å¤æ´ã§
|
---|
527 | ããªãï¼CCRXãfixedããµãã¼ãããéã«ã¯fixedã¨ãã¦æ±ãï¼
|
---|
528 |
|
---|
529 | åã³ã³ãã¤ã©ã®ABI
|
---|
530 | ã»GCC : -mno-app-regs ã§R2ã¨å
|
---|
531 | ±ã«ã³ã³ãã¤ã©ã¯ä½¿ç¨ããªã
|
---|
532 | ã»GHS(V) : fixed (ROSDAãã¼ã¹)
|
---|
533 | ã»CX : fixed
|
---|
534 | ã»CCRH : caller
|
---|
535 |
|
---|
536 | âR30(EP)
|
---|
537 | å²è¾¼ã¿ã®åºå
|
---|
538 | ¥å£ã§ä¿å復帰ããï¼
|
---|
539 | ãã£ã¹ãããã£ã§ãä¿å復帰ããï¼
|
---|
540 | CX/CCRHã§ã®fixedã®ä½¿ç¨ã¯ãµãã¼ãããªãï¼
|
---|
541 | çç±
|
---|
542 | GCC/GHSã§ã¯callerã§ããããå²è¾¼ã¿ã®åºå
|
---|
543 | ¥å£ã§ä¿å復帰ããå¿
|
---|
544 | è¦ãããï¼
|
---|
545 | ifdefãå
|
---|
546 | ¥ããã¨å¯èªæ§ãä¸ããããä¸å¾ä¿åããï¼
|
---|
547 | CCRHã§ã¯caleeã§ãããããã£ã¹ãããã£ã§ä¿å復帰ããå¿
|
---|
548 | è¦ãããï¼
|
---|
549 | epã¯ã¢ã»ã³ãã©ã®å½ä»¤é·ãçãã§ããããï¼ã¢ã»ã³ãã©å
|
---|
550 | ã§ä½¿ç¨ãã¦ããã
|
---|
551 | ãCCRHã§ãå²è¾¼ã¿ã®åºå
|
---|
552 | ¥å£ã§ä¿åããï¼
|
---|
553 | ã»GCC : -mtda=0ã§ã³ã³ãã¤ã©ã使ç¨ãã?
|
---|
554 | ã»GHS(V) : -notdaã§caller ã¨ãã¦æ±ã
|
---|
555 | ã»CX : fixed
|
---|
556 | ã»CCRH : fixed or calee
|
---|
557 |
|
---|
558 |
|
---|
559 | ---------------------------------------------------------------------
|
---|
560 | å²è¾¼ã¿/ãã£ã¹ãããã£ã§ã®ã¬ã¸ã¹ã¿ã®ä¿åã»å¾©å¸°
|
---|
561 | ---------------------------------------------------------------------
|
---|
562 | âå²è¾¼ã¿
|
---|
563 |
|
---|
564 | ã»è©²å½ç®æ
|
---|
565 | _interrupt 㨠_fe_exception_entry 㨠_ei_exception_entry ã«ããã¬ã¸ã¹ã¿ã®ä¿åï¼
|
---|
566 | ret_exc_2 㨠ei_ret_exc_2 㨠ret_int_1 ã§ã®ã¬ã¸ã¹ã¿ã®å¾©å¸°ã«ã¤ãã¦
|
---|
567 |
|
---|
568 | ã»ä¿åã»å¾©å¸°ã¬ã¸ã¹ã¿
|
---|
569 | callerã¬ã¸ã¹ã¿ã¯ä¿åããï¼
|
---|
570 |
|
---|
571 | r1, r6-r19, r31
|
---|
572 |
|
---|
573 | ä¸è¨ã®æ¤è¨ããr30(ep)ãä¿åããï¼
|
---|
574 |
|
---|
575 | CCRHã®å ´åã¯r5(tp)ãä¿åããå¿
|
---|
576 | è¦ããããï¼ifdefãå
|
---|
577 | ¥ããã¨å¯èªæ§ãä¸ã
|
---|
578 | ãããä¸å¾ä¿åããï¼
|
---|
579 |
|
---|
580 | 以ä¸ããï¼ä¿åããã¬ã¸ã¹ã¿ã¯æ¬¡ã®éãã§ããï¼
|
---|
581 |
|
---|
582 | r1, r5(tp),r6-r19, r30(ep), r31
|
---|
583 |
|
---|
584 |
|
---|
585 | âãã£ã¹ãããã£
|
---|
586 |
|
---|
587 | ã»ä¿åã»å¾©å¸°ã¬ã¸ã¹ã¿
|
---|
588 | calleeã¬ã¸ã¹ã¿ã¯ä¿åããï¼
|
---|
589 |
|
---|
590 | r20-r27,r28,r29
|
---|
591 |
|
---|
592 | r31(lp)ã¯ãªã¿ã¼ã³ã®ããã«ä¿åãã
|
---|
593 |
|
---|
594 | CCRHã§ã¯r30(ep)ãä¿åãããifdefãå
|
---|
595 | ¥ããã¨å¯èªæ§ãä¸ã
|
---|
596 | ãããä¸å¾ä¿åããï¼
|
---|
597 |
|
---|
598 | 以ä¸ããï¼ä¿åããã¬ã¸ã¹ã¿ã¯æ¬¡ã®éãã§ããï¼
|
---|
599 |
|
---|
600 | r20-r27,r28,r29,r30(ep),r31(lp)
|
---|
601 |
|
---|
602 |
|
---|
603 | ---------------------------------------------------------------------
|
---|
604 | G3K/G3Mã«ãããä¸é¨ã¬ã¸ã¹ã¿æ´æ°æã®å²è¾¼ã¿ç¦æ¢
|
---|
605 | ---------------------------------------------------------------------
|
---|
606 |
|
---|
607 | 以ä¸ã®ã¬ã¸ã¹ã¿ã¯diç¶æ
|
---|
608 | (PSW.ID=1)ã§è¨å®ããå¿
|
---|
609 | è¦ãããï¼
|
---|
610 |
|
---|
611 | PSW.EBVï¼ EBASEï¼ INTBPï¼ ISPRï¼ PMRï¼ ICSRï¼ INTCFG
|
---|
612 |
|
---|
613 | 以ä¸ï¼
|
---|