1 | =====================================================================
|
---|
2 | ARM-MvZbT˶Ýv
|
---|
3 | Last Modified: 23 Aug 2008 21:54:54
|
---|
4 | =====================================================================
|
---|
5 |
|
---|
6 | ±ÌhL
|
---|
7 | gÌÊuï
|
---|
8 |
|
---|
9 | ±ÌhL
|
---|
10 | gÍCTOPPERS/ASPJ[lðARMvX-MvZbTÉÚA·é½ß
|
---|
11 | ÌÝvÅ éD
|
---|
12 |
|
---|
13 |
|
---|
14 | ARMVx-MÌdlÜÆß
|
---|
15 |
|
---|
16 | ARMvX-MÌdl̤¿CJ[lÌÝvÉÖW·éÉ¢ÄÜÆßéD
|
---|
17 |
|
---|
18 | WX^
|
---|
19 |
|
---|
20 | ÄpWX^ÍR0`R15Ì16íÞ èCR13Ìݪ2oN\¬iPSP,MSPjÆÈ
|
---|
21 | ÁÄ¢éDR15ÍPC, R14ÍNWX^iLRjÆÈÁÄ¢éDR0`R3,R12Í
|
---|
22 | XNb`WX^Å éD
|
---|
23 |
|
---|
24 | R[ORxV
|
---|
25 |
|
---|
26 | R0`R4ªøC»êÈãÍX^bNDßèlÍCR0`R1Éi[³êéD(ARMÉ
|
---|
27 | æèKè³êÄ¢é½ßCRpCÉ˶¹¸±Ì[ÆÈéD)
|
---|
28 |
|
---|
29 | CONTROLWX^
|
---|
30 |
|
---|
31 | PSP,MSPÌØèÖ¦CPrivilageÆUser[hÌWX^DÏXãÍCCXg
|
---|
32 | NVobt@tbV
|
---|
33 | ½ßðÀs·éKvª éiisbjDCONTROL
|
---|
34 | WX^ÌÚ×ÍCARMv7-M Architecture Application Level Reference
|
---|
35 | Manual Ì B1-9 ðQÆÌ±ÆD
|
---|
36 |
|
---|
37 | ÝxN^
|
---|
38 |
|
---|
39 | xN^e[u^ÅCxN^e[uÌAhXÍCZbgÍ0x00ÅC
|
---|
40 | Vector Table Offset Registeri}bvhWX^j ðì·é±Æ
|
---|
41 | ÅCCÓÌAhXÉzuÂ\Å éD
|
---|
42 |
|
---|
43 | Dæx
|
---|
44 |
|
---|
45 | lª¬³¢ûªDæxÆÈéD
|
---|
46 |
|
---|
47 | DæxÍÅå8bitÅ èCSoCÉÀ³êÄ¢érbgªÙÈéDÀ³
|
---|
48 | êérbgª8bitȺÌêÍCLSB©ç³øÉÈéDá¦ÎCÀ³êÄ¢
|
---|
49 | érbgª7bitÌêÍCrbg0ª³øÆÈéD
|
---|
50 |
|
---|
51 | DæxÌrbgtB[hÌLSB©çrbgðTuDæxÆÄÔtB[h
|
---|
52 | ÉÝè·é±ÆªÂ\Å éDcèÌãÊrbgðvGvVDæxÆ
|
---|
53 | ÄÔDvGvVDæxª¯¶ÅCTuDæxªÙÈéDæxÌO[
|
---|
54 | vÍC¨Ý¢ðvGvg·é±ÆªÅ«È¢D
|
---|
55 |
|
---|
56 | Reset,NMI,Hard Fault ÈOÌáOÍÝÆ¯lÉDæxªÝèÂ\Å èC
|
---|
57 | Ý}XN@\ÉæèC¶ðÖ~·é±ÆªÂ\Å éD
|
---|
58 |
|
---|
59 | CPU[h
|
---|
60 |
|
---|
61 | vZbTÍCThread[hàµÍHandler[hÌ¢¸ê©Ì[hÆÈ
|
---|
62 | éD
|
---|
63 |
|
---|
64 | ZbgÌóÔ
|
---|
65 |
|
---|
66 | ZbgÍThread[hCMSPªLøÆÈÁÄ¢éD
|
---|
67 |
|
---|
68 | Handler[h
|
---|
69 |
|
---|
70 | áO/Ýðó¯t¯éÆJÚ·é[hDó¯t¯½áO/ÝÌáOÔ
|
---|
71 | ªCIPSRÉZbg³êéDáOÔÍCTRMÅèßçêÄ¢éÔÅ éD
|
---|
72 |
|
---|
73 | áO áOÔ
|
---|
74 | Reset 1
|
---|
75 | Non-makable Interrupt 2
|
---|
76 | Hard Fault 3
|
---|
77 | Memory Management 4
|
---|
78 | Bus Fault 5
|
---|
79 | Usage Fault 6
|
---|
80 | SVCall 11
|
---|
81 | Debug Monitor 12
|
---|
82 | PendSV 14
|
---|
83 | SysTick 15
|
---|
84 | IRQ0 16
|
---|
85 | IRQ1 17
|
---|
86 | ..
|
---|
87 |
|
---|
88 | áO/Ýðó¯t¯éÆCó¯t¯½áO/ÝÌDæxȺÌáO/
|
---|
89 | ÝðÖ~·éD±ÌDæx}XNð"NVICDæx}XN"ÆÄÔD±ÌDæx
|
---|
90 | ÍC\tgEFA©çÏX·é±ÆªÅ«¸CáO/ÝÌ^[Éæè
|
---|
91 | ÝOÌlÉ©®IÉßéD
|
---|
92 |
|
---|
93 | X^bN|C^iPSPÆMSPj
|
---|
94 |
|
---|
95 | X^bN|C^ÍCPSPÆMSPª èCr¼IÉgpÂ\Å éDHandler
|
---|
96 | [hÅÍMSPÌÝgpÂ\Å èCThread[hÅÍCONTROLWX^ÅIðÂ
|
---|
97 | \Å éDCONTROLWX^Ì1rbgÚðZbg·éÆPSPªLøÉCNA
|
---|
98 | ·éÆCMSPªLøÉÈéD
|
---|
99 |
|
---|
100 | Thread[hÆHandler[hÌJÚ
|
---|
101 |
|
---|
102 | Thread[h©çHandler[hÖÌJÚÍCáO/Ýðó¯t¯é±ÆÅ
|
---|
103 | ¶·éDêûCHandler[h©çThread[hÖÌJÚÍCPCÉ
|
---|
104 | EXC_RETURN(0xfffffffx)ÌlðÝè·é±ÆÉæès¤iáO^[Æ
|
---|
105 | ÄÔjDEXC_RETURN̺Ê4bitÉæèCJÚæÌ[hâgp·éX^bN|
|
---|
106 | C^ðÏXÂ\Å éDáO^[ÉæèCPRIMASKâBASEPRIÌlÍÏ»
|
---|
107 | µÈ¢DêûCFAULTMASKÌlÍ'0'ÉNA³¹éD
|
---|
108 |
|
---|
109 | EXC_RETURN
|
---|
110 |
|
---|
111 | áO/Ýót¯ÉlrÉÝè³êélDrbg31`4rbgÍSÄ'1'ÅC
|
---|
112 | ºÊ4bitÍCót¯ÌCPU[hâX^bNð½fµ½lÆÈÁÄ¢éD
|
---|
113 |
|
---|
114 | 0b0001 : Handler[h
|
---|
115 | 0b1001 : Thread[h with MSP
|
---|
116 | 0b1101 : Thread[h with PSP
|
---|
117 |
|
---|
118 | Thread[hÆHandler[hÌ»è
|
---|
119 |
|
---|
120 | »óÌ[hð»è·éÉÍCIPSRð©ÄC'0'ÈçThread[hC»êÈO
|
---|
121 | ÈçCHandler[hÆÈéD
|
---|
122 |
|
---|
123 | BASEPRIWX^
|
---|
124 |
|
---|
125 | Ýèµ½DæxȺÌDæxÌÝÌótðÖ~·éD±ÌDæx}XNð
|
---|
126 | "BASEPRIDæx}XN"ÆÄÔD'0'ðÝè·éÆCSÄÌÝð·éD
|
---|
127 | áO/ÝÌótÆ^[ÉæèÏ»µÈ¢DáO/ÝÉηéÝ
|
---|
128 | Dæx}XNÍCNVICDæx}XNÆBASEPRIÌÝèlÌ¢ûilª¬³¢
|
---|
129 | ûjÆÈéD
|
---|
130 |
|
---|
131 | FAULTMASK
|
---|
132 |
|
---|
133 | FAULTMASKÍ'1'ðZbg·é±ÆÉæèCNMIÈOÌSÄÌÝðÖ~·éD
|
---|
134 | FAULTMASKÍCáOÌ^[Éæè'0'ÉNA³¹éD
|
---|
135 |
|
---|
136 | PRIMASKÆWFI
|
---|
137 |
|
---|
138 | PRIMASKð'1'ÉÝè·éÆCNMI Æ Hardware Fault ÈOÌáO/ÝðÖ
|
---|
139 | ~·éDPRIMASKÍÝÌÂÆÝÒ¿ðAg~bNÉs¤½ßÉp¢
|
---|
140 | éDïÌIÉÍCPRIMASKªZbg³êÄ¢éóÔÅwfiðÀs·éÆCè
|
---|
141 | ÝÒ¿ÆÈèCÝót¯éÆnhðÀs¹¸ÉCwfi©ç^[µ
|
---|
142 | ÄéD
|
---|
143 |
|
---|
144 | áO/ÝÌót
|
---|
145 |
|
---|
146 | EáO/Ýðót¯éÆCót¯ÉANeBuÈX^bNãÉȺÌR
|
---|
147 | eLXgðÛ¶·é(áOt[ÆÄÔ)D
|
---|
148 |
|
---|
149 | -----------
|
---|
150 | | R0 | <- new SP
|
---|
151 | -----------
|
---|
152 | | R1 |
|
---|
153 | -----------
|
---|
154 | | R2 |
|
---|
155 | -----------
|
---|
156 | | R3 |
|
---|
157 | -----------
|
---|
158 | | R12 |
|
---|
159 | -----------
|
---|
160 | | LR |
|
---|
161 | -----------
|
---|
162 | | PC |
|
---|
163 | -----------
|
---|
164 | | xPSR |
|
---|
165 | -----------
|
---|
166 | | | <- old SP
|
---|
167 |
|
---|
168 | EvZbTðHandler[hÆ·éDMSPªLøÆÈéD
|
---|
169 | Eót¯½áO/ÝÌáOÔðIPSRÉÝè·éD
|
---|
170 | ENVICÝDæx}XNðót¯½áO/ÝÌDæxÉÝè·éD
|
---|
171 | ElrÉEXC_RETURNÌlªÝè³êéD
|
---|
172 | ExN^e[uðÇÝÝnhðÀs·éD
|
---|
173 |
|
---|
174 | áO/Ý©çÌ^[
|
---|
175 |
|
---|
176 | pcÉEXC_RETURNÌlðÝè·é±ÆÉæèCáO/Ý©ç^[·éD
|
---|
177 | pcÖÌÝèÉgpÂ\ȽßÉͧÀª èCȺ½ßªgpÂ\Å éD
|
---|
178 |
|
---|
179 | EPOP/LDM, LDR, BX
|
---|
180 |
|
---|
181 | ¢ðÛè
|
---|
182 |
|
---|
183 | ExN^[e[uÉo^·éÖÌAhXÌLSBÍ'1'É·é׫©?
|
---|
184 | ENVICÍáOEÝÌlXgñðàIÉǵĢéçµ¢D
|
---|
185 | (!t@Xð¾ç©É)D
|
---|
186 | \tgEFAÅÍClXgÌ Kðí¹êÎC^[X^bNðU¢µ
|
---|
187 | ÄàâèÈ¢©D
|
---|
188 |
|
---|
189 |
|
---|
190 | OSÌÀ
|
---|
191 |
|
---|
192 | 1.^[Qbg¼
|
---|
193 |
|
---|
194 | 1-1 cm3(Cortex-M3)
|
---|
195 | 1-2 armv7m(ARMV7M)
|
---|
196 | 1-3 arm_m
|
---|
197 |
|
---|
198 | cm3ÅÍCCoretex-M1(armv6-m)ðT|[g·éêÉâèÆÈéDarmv7mÅÍC
|
---|
199 | armv8mª[X³ê½êÉâèÆÈéDARM˶ÍJSPÅÍCarmv4ÆÈ
|
---|
200 | ÁÄ¢½ªCarmv5âarmv7à®ì·é½ßASPÅÍPÉarmƵ½D»Ì½ßC
|
---|
201 | arm_mª³ïÆl¦çêéD
|
---|
202 |
|
---|
203 |
|
---|
204 | 2.Thread[hÆHandler[hÌg¢ª¯
|
---|
205 |
|
---|
206 | 2-1
|
---|
207 | ^XNReLXgÍThread[hCñ^XNReLXgÍHandler[
|
---|
208 | hŮ쳹éD
|
---|
209 |
|
---|
210 | 2-2
|
---|
211 | ^XNReLXgÆñ^XNReLXg¤ÉHandler[hŮ쳹
|
---|
212 | éD
|
---|
213 |
|
---|
214 | vZbTÌÝvûjðl¶·éÆ2-1ªLÍD2-1ÅÌâè_ƵÄÍC
|
---|
215 | Ýnh©ç^XNÖÌ^[É[hÌÏXªÈºÌlɽ·é±
|
---|
216 | ƪ°çêéD
|
---|
217 |
|
---|
218 | 1.Ýnh : Handler[h
|
---|
219 | 2.^XNáOnhÌÄÑoµ : Thread[h
|
---|
220 | 3.^XNÖÌ^[ : Handler[h
|
---|
221 | 4.^XNÌÄJ : Thread[h
|
---|
222 |
|
---|
223 | 3ÅHandler[hÉÚs·éKvª éÌÍCáOt[ðp¢ÄA·é
|
---|
224 | ÉÍCHandler[hÅáO^[ðs¤Kvª é½ßÅ éDARMÅ
|
---|
225 | ÍC¡WX^Ì[hÆCPSRÌAð¯És¦éªCM3Ís¦È¢½ßC
|
---|
226 | ±Ìû@ÅÝæÌ^XNÉ^[·éKvª éD
|
---|
227 |
|
---|
228 | 2-2ÌêÌÝnh©ç^XNÖÌ^[É[hÌÏXðȺ
|
---|
229 | ɦ·DܽC2-2ÅÍÝDæxÌÅálð^XNÌÀsÌDæxƵ
|
---|
230 | ÄU[u·éKvª éD
|
---|
231 |
|
---|
232 | 1.Ýnh : Handler[h
|
---|
233 | 2.NVICDæx}XN'0'ð0Ö : Thread[h
|
---|
234 | 3.ÅáDæxÌHandler[hÖ : Handler[h
|
---|
235 | 4.^XNáOnhÌÄÑoµ : Handler[h
|
---|
236 | 5.^XNÖÌ^[ÌO : Thread[h
|
---|
237 | 3.^XNÖÌ^[ : Handler[h
|
---|
238 | 4.^XNÌÄJ : Handler[h
|
---|
239 |
|
---|
240 | Ýnh©ç^XNÌ^[ÉÖµÄÍC2-2Å ÁÄàC2ðÀs·
|
---|
241 | éêÉCNVICDæx}XNð'0'É·é½ßCáO^[ðs¤Kv
|
---|
242 | ª éDܽCNVIC©ÌªCÝÌlXgñðǵĢé½ßC3©ç4
|
---|
243 | ÖÌJÚ̽ßÉC¢Á½ñáO/Ýðót¯½óÔÉ·éKvª é½
|
---|
244 | ßCÊIÉ2-1ÈãÌJÚªKvÆÈéD
|
---|
245 |
|
---|
246 | 2-2ÌêÍCMSPµ©g¦È¢½ßCÝÌüèûÅlXgñð»fµÄC
|
---|
247 | X^bNðüêÖ¦éKvª éD
|
---|
248 |
|
---|
249 | HRPÅÛìðp¢éêÍ2-1ÆÈéD
|
---|
250 |
|
---|
251 | ÈãÌRÉæèC2-1ðÌp·éD½¾µ2-1ÍCJ[lN®ÆIDLE[
|
---|
252 | v̵¢ð¢·éKvª éD±êçÉ¢ÄÍÊrc_·éD
|
---|
253 |
|
---|
254 |
|
---|
255 | 3.fBXpb`ÌÀs[h
|
---|
256 |
|
---|
257 | 3-1
|
---|
258 | Thread[hÅÀs·é
|
---|
259 |
|
---|
260 | 3-2
|
---|
261 | Handler[hÅÀs·é
|
---|
262 |
|
---|
263 | fBXpb`ðThread[hÅÀs·éÆCÝÉæèvGvg³ê
|
---|
264 | ½^XNÉßéêÍÌæ¤ÈpXÉÈéD
|
---|
265 |
|
---|
266 | 1. fBXpb`ÄÑoµ : Thread[h
|
---|
267 | 2. fBXpb`Às : Thread[h
|
---|
268 | 3. ^XNáOÀs : Thread[h
|
---|
269 | 4D^XNÖÌ^[ : Handler[h
|
---|
270 | 5. ^XNÌÄJ : Thread[h
|
---|
271 |
|
---|
272 | Ýnh©ç©çfBXpb`µ½^XNÖ^[·éêÍÌp
|
---|
273 | XÉÈéD
|
---|
274 |
|
---|
275 | 1.Ýnh : Handler[h
|
---|
276 | 2.fBXpb`Às : Thread[h
|
---|
277 | 3.^XNáOnhÌÄÑoµ : Thread[h
|
---|
278 | 4.^XNÖÌ^[ : Handler[h
|
---|
279 | 5.^XNÌÄJ : Thread[h
|
---|
280 |
|
---|
281 | êûCfBXpb`ðHandler[hÅÀs·éÆCÝÉæèvG
|
---|
282 | vg³ê½^XNÉßéêÍÌæ¤ÈpXÉÈéD
|
---|
283 |
|
---|
284 | 1. fBXpb`ÄÑoµ : Thread[h
|
---|
285 | 2. fBXpb`Às : Handler[h
|
---|
286 | 3. ^XNáOÀs : Thread[h
|
---|
287 | 4D^XNÖÌ^[ : Handler[h
|
---|
288 | 5. ^XNÌÄJ : Thread[h
|
---|
289 |
|
---|
290 | ÝnhÌoû©ç©çfBXpb`µ½^XNÖ^[·éêÍ
|
---|
291 | ÌpXÉÈéD
|
---|
292 |
|
---|
293 | 1.Ýnh : Handler[h
|
---|
294 | 2.fBXpb`Às : Handler[h
|
---|
295 | 3.^XNáOnhÌÄÑoµ : Thread[h
|
---|
296 | 4.^XNÖÌ^[ : Handler[h
|
---|
297 | 5.^XNÌÄJ : Thread[h
|
---|
298 |
|
---|
299 | ^XNáOnhªÈ¢OSÌêÍCHandler[hÅÀsµ½ûª[h
|
---|
300 | ÌJÚÌñª¸éªC^XNáOnhª éÆCThread[hÌûªJ
|
---|
301 | Úñª¸é½ßCThread[hÆ·éD
|
---|
302 |
|
---|
303 | Ûìðl¶·éÆCfBXpb`ÍHandler[hŮ쳹½ûª
|
---|
304 | ø¦ªæ¢Æl¦çêéiSVCÅnhðÄÑo·ÆHandler[hÆÈé½
|
---|
305 | ßjD
|
---|
306 |
|
---|
307 |
|
---|
308 | 4.X^bNÌg¢ª¯
|
---|
309 |
|
---|
310 | 4-1
|
---|
311 | ^XNReLXgðPSP, ñ^XNReLXgðMSP
|
---|
312 | 4-2
|
---|
313 | ^XNReLXgCñ^XNReLXg¤ÉMSP
|
---|
314 |
|
---|
315 | 4-2ÌêCÝÌüèûÅlXgñð»fµÄCX^bNðüêÖ¦é
|
---|
316 | Kvª éD2Å^XNReLXgÍThread[hCñ^XNReLXg
|
---|
317 | ÍHandler[hÅ®ì³¹éÆµ½½ßC4-1ðÌp·éÆCÝÌüèû
|
---|
318 | Å©®IÉX^bNªØèÖíéDThread[hÅÌPSPÌANZXàC
|
---|
319 | mrs/msr½ßÅs¦é½ßC4-1ðÌp·éD
|
---|
320 |
|
---|
321 |
|
---|
322 | 5.ReLXgÌ»è
|
---|
323 |
|
---|
324 | 5-1
|
---|
325 | IPSRª'0'(Thread[h)Èç^XN^XNReLXgC'1'(Handler[
|
---|
326 | h)Èçñ^XNReLXgÆ·éD
|
---|
327 |
|
---|
328 | 5-2
|
---|
329 | ÝÌlXgñðÛ·éÏðpÓD1ÈãÅñ^XNReLXgD
|
---|
330 |
|
---|
331 | 5-3
|
---|
332 | ANeBuÈX^bNÉæè»fiMSPÈçñ^XNReLXgCPSPÈç
|
---|
333 | ^XNReLXgÆ·éj
|
---|
334 |
|
---|
335 | 5-1ÍC\tgEFA¤ÅReLXgÇ̽ßÌðs¤KvªÈ¢Æ
|
---|
336 | ¢¤bgª éDµ©µÈªçCJ[lÌN®Thread[hÅ é½
|
---|
337 | ßCHandler[hÖÚs·éKvª éDASPJ[lÅÍCIDLE[vÀs
|
---|
338 | Íñ^XNReLXgƵĮ쳹éKvª é½ßCIDLE[vÍ
|
---|
339 | Handler[hŮ쳹éKvª éDIDLE[vÍfBXpb`©çÄ
|
---|
340 | Ño³êéD3Åèß½æ¤ÉCfBXpb`ðThread[hŮ쳹é
|
---|
341 | ½ßCIDLE[vðÄÑo·ÛÉÍCHandler[hÖJÚ·éKvª éD
|
---|
342 | Handler[hÖÌJÚÍCSVC/PendSVCðp¢éÆÀ»Â\Å éªC6Ì
|
---|
343 | ÝÉvGvg³ê½^XNÖÌ^[ÌHandler[hÖÌÚsÅ
|
---|
344 | àSVC/PendSVCÌgpªKvÆÈé½ßCSVCnhÅÍCÇÌÚIÅÄÑo
|
---|
345 | ³ê½©»è·éKvªoÄé½ßCI[owbhªå·éD
|
---|
346 |
|
---|
347 | 5-2ÅÍCJ[lN®âIDLE[vÉÏð'1'ÉÝè·êÎæ¢±ÆÉ
|
---|
348 | ÈéD±ÌêCJ[lN®âIDLE[vÉThread[hÅÀsµÄà
|
---|
349 | ®ìÉâèªÈ¢æ¤CÁÉÝÌoüèûÌÝvðÓ·éKvª éD
|
---|
350 |
|
---|
351 | J[lN®ÉÖµÄÍCSÝðÖ~µÄ¨èCݪüçÈ¢ÌÅ
|
---|
352 | ÁÉâèÍÈ¢DIDLE[vÍCThread[hÅMSPÆPSPÌIðªÂ\Å
|
---|
353 | 鱯ðpµÄCñ^XNReLXgÌX^bNÅ éMSPÉÏX·éD
|
---|
354 | áO/ÝÌüèûÅÍC½dÝÅ é©ðEXC_RETURNÌ[h»èÌ
|
---|
355 | rbgÅÍÈCX^bNÌ»èrbgÅs¦ÎâèÈ¢DáO/Ý©ç
|
---|
356 | Ì^[ÉÖµÄÍC½dÝÌ»èÍCüèûƯlÉEXC_RETURNÌX
|
---|
357 | ^bN»èrbgÅs¦Îæ¢DáO^[ÉpcÉãü·é
|
---|
358 | EXC_RETURNÌlðê¥0xfffffffd (Thread[h with MSP)Æ·éÌÅÍÈC
|
---|
359 | áO/Ýót¯ÉLRÉÝè³êéEXC_RETURNðp¢é±ÆÉæèCIDLE
|
---|
360 | [vÉèñ¾êÅàâèÈ^[·éD
|
---|
361 |
|
---|
362 | J[lN®ÍCMSPªANeBuÅ èCÝnhÀsÍHandler
|
---|
363 | [hŠ鱯©çMSPªANeBuÅèCIDLE[vÉMSPðANeBu
|
---|
364 | ÉÝè·éÆCñ^XNReLXgÍSÄCMSPðANeBuɵĮì·
|
---|
365 | 鱯ÉÈéDܽCÝÍÝOÉANeBuÈX^bNÌîñªC
|
---|
366 | EXC_RETURNÉÝè³êéD»Ì½ßCReLXgÌ»èÍCÝlXgñ
|
---|
367 | ðÛ·éÏªÈÆàCANeBuÈX^bNð©êÎæ¢±ÆÉÈéD
|
---|
368 | ܽCexc_sense_context()ÉÖµÄÍCáOt[ÉEXC_RETURNðÇÁ
|
---|
369 | µC»ÌàeÉæè»f·êÎæ¢DÈãÌRÉæèC5-3ðÌp·éD
|
---|
370 |
|
---|
371 |
|
---|
372 | 6.ÝÉvGvg³ê½^XNÖÌ^[ÌHandler[hÖÌÚ
|
---|
373 | sû@
|
---|
374 |
|
---|
375 | 6-1
|
---|
376 | SVCðp¢é
|
---|
377 | 6-2
|
---|
378 | PendSVCðp¢é
|
---|
379 |
|
---|
380 | PendSVCÆSVCÌá¢ÍCPendSVCªvªL
|
---|
381 | [CO³êCSVCÍvªL
|
---|
382 |
|
---|
383 | [CO³êÈ¢±ÆÅ éDÝÉvGvg³ê½^XNÖÌ^[
|
---|
384 | ÌHandler[hÖÌÚsÍCL
|
---|
385 | [CO³ê¸É¦ÀɳêéK
|
---|
386 | vª é½ßCÇ¿çÅÀ»µÄàâèÈ¢DÇ¿çðJ[lÌ\[Xµ
|
---|
387 | Ägp·é©ÌIð¾¯Å éD
|
---|
388 |
|
---|
389 | Ç¿çðg¤ÆµÄàCDæxÌÝèªâèÆÈéDfBXpb`©ç
|
---|
390 | ÝÉvGvg³ê½^XNÖÌ^[ÜÅÌÍCÈÆàCPU
|
---|
391 | bNóÔÅÀs³êȯêÎÈçÈ¢DSVCâPendSVCÍÇ¿çàÝDæx
|
---|
392 | ð½ßCNVICDæx}XNæèBASEPRIDæx}XNÌûª¢êC
|
---|
393 | ³êÈ¢D
|
---|
394 |
|
---|
395 | CPUbNóÔðBASEPRIÌÝèÅÀ»µ½êC»ÌÝèlðSVCâPendSVCÉ
|
---|
396 | Ýèµ½læèá·éKvª éD¾¢·¦éÆCSVCâPendSVCÌDæxð
|
---|
397 | CPUbNÌDæx}XNÌlæè¢li¼ÌÝæè¢DæxjÆ
|
---|
398 | ·éKvª éD
|
---|
399 |
|
---|
400 | CPUbNóÔðFAULTMASKâPRIMASKÅÀ»µ½êÍC±êçªÝè³êé
|
---|
401 | ÆCSVCâPendSVCªót¯çêÈ¢½ßC¢Á½ñBASEPRIÉæèÝð}
|
---|
402 | XN·éæ¤ÉÝè·éKvª éD±ÌêàCSVCâPendSVCͼÌÝ
|
---|
403 | æè¢DæxðÝè·éKvª éD
|
---|
404 |
|
---|
405 | ÈãÉæèCHandler[hÖÌÚs̽ßÉÍCCPUbNóÔðBASEPRIÅ
|
---|
406 | À»µCSVCâPendSVCÉÝè·éDæxðJ[lÇàÌÅDæxæèê
|
---|
407 | ¢DæxÉÝè·éKvª éD
|
---|
408 |
|
---|
409 |
|
---|
410 | 7. áO/ÝoüèûÅ̽dÝÌ»f
|
---|
411 |
|
---|
412 | 7-1
|
---|
413 | EXC_RETURNÌ[h»èrbg
|
---|
414 | 7-2
|
---|
415 | EXC_RETURNÌX^bN»èrbg
|
---|
416 | 7-3
|
---|
417 | ÝlXgñÌÇÏ
|
---|
418 |
|
---|
419 | áO/Ýót¯ÍCót¯½áO/ÝȺÌÝÍÖ~·éªCS
|
---|
420 | ÝÖ~óÔÉÍÈçÈ¢D»Ì½ßCÝlXgñÌÇÏðC
|
---|
421 | Ng·éOÉݪüéÂ\«ª é½ßC7-3Ígp·é±ÆªÅ
|
---|
422 | «È¢D
|
---|
423 |
|
---|
424 | 5Åc_µ½ÊèCIDLE[vðThread[hÅÀs·é½ßC7-1ÅÍÈC
|
---|
425 | 7-2Å»f·éKvª éD
|
---|
426 |
|
---|
427 |
|
---|
428 | 8. IDLE[v
|
---|
429 |
|
---|
430 | 8-1
|
---|
431 | Thread[hÅÀs
|
---|
432 | 8-2
|
---|
433 | Handler[hÅÀs
|
---|
434 |
|
---|
435 | 5Åc_µ½ÊèCThread[hÅÀsÅ«½ûªI[owbhª¬³¢DÜ
|
---|
436 | ½CThread[hÅÀsµÄàCèÝÌoüèûųµñ^XNRe
|
---|
437 | LXgÆ»èÅ«êÎCThread[hÅâèÈ¢D
|
---|
438 |
|
---|
439 |
|
---|
440 | 9DJ[lÇOÌÝÌT|[g
|
---|
441 |
|
---|
442 | 9-1
|
---|
443 | J[lÇOÌÝðT|[gµÈ¢
|
---|
444 | 9-2
|
---|
445 | J[lÇOÌÝðT|[g·é
|
---|
446 |
|
---|
447 | xN^e[uðT|[gµÄ¨èCÝnhàC¾êÅLqÂ\Å
|
---|
448 | é½ßCT|[gªeÕÅ é½ßCT|[g·éD
|
---|
449 |
|
---|
450 |
|
---|
451 | 10. CPUbN
|
---|
452 |
|
---|
453 | 10-1
|
---|
454 | BASEPRIðgp
|
---|
455 | 10-2
|
---|
456 | FAULTMASK/PRIMASKðgp
|
---|
457 |
|
---|
458 | J[lÌÇOÌÝðT|[g·éÈçCBASEPRIðgp·éKvª
|
---|
459 | éD
|
---|
460 |
|
---|
461 |
|
---|
462 | 11. ÝbNÆCPUáOÌÖW
|
---|
463 |
|
---|
464 | 11-1
|
---|
465 | BASEPRIðgp
|
---|
466 | 11-2
|
---|
467 | FAULTMASK/PRIMASKðgp
|
---|
468 |
|
---|
469 | FAULTMASK/PRIMASKðgp·éÆCNMI Æ Hardware Fault ÈOÌCPUáOàÖ
|
---|
470 | ~³êĵܤD
|
---|
471 |
|
---|
472 | BASEPRIðp¢éÆCÝbNÉàCPUáOðót¯½¢êÍC
|
---|
473 | BASEPRIðp¢ÄCÅDæxðCPUáO̽ßÉU[u·éKvª éD
|
---|
474 |
|
---|
475 | ÝbNàCCPUáOðót¯éæ¤Éµ½¯êÎBASEPRIðgp·éK
|
---|
476 | vª éD
|
---|
477 |
|
---|
478 | ÊIRON4.0dlÌ3.5.3ÅÍCCPUáOÌDæxÍÌæ¤ÉèßçêÄ¢éD
|
---|
479 |
|
---|
480 | "CPUáOnhÌDæÊÍCCPUáOª¶µ½ÌDæxÆCfBX
|
---|
481 | pb`ÌDæÊÌ¢¸ê©æèà¢D"
|
---|
482 |
|
---|
483 | CPUáOª¶µ½ÌDæxæèà¢Æ éÌÅCCPUbNâÝ
|
---|
484 | bNóÔÌ^XNŶµ½êÅàCDæµÄÀs³êé׫¾Æàl¦ç
|
---|
485 | êéD
|
---|
486 |
|
---|
487 | êûCTOPPERSWÝfÌdlÅÍCCPUáOÍCvZbT
|
---|
488 | ÉÙÈé½ßCCPUáOÌfÌW»¢ÌÎÛOƵĢéD»Ì
|
---|
489 | ½ßCARM-MÅ̵¢ðßÄC}j
|
---|
490 | AɾL·êÎæ¢Æl¦çêéD
|
---|
491 |
|
---|
492 |
|
---|
493 | 12. ODæxÆàDæxÌÏ·
|
---|
494 |
|
---|
495 | ODæxÆÍAPIÅwè·éÝDæx(PRI^)̱ÆÅ èClª¬³¢
|
---|
496 | ÙÇDæxª¢DÝnhÉÍC-1©çA±µ½ÌlðÝèÂ\Å
|
---|
497 | éDàDæxÍCBASEPRIâNVICÌDæxWX^ÉÝè·élÅ éD
|
---|
498 |
|
---|
499 | À³êéÝDæxÌrbgð TBITW_IPRI Æ·éÆCÝèÂ\ÈO
|
---|
500 | DæxÍÌæ¤ÉÈéD
|
---|
501 |
|
---|
502 | TIPM_ENAALLi0j` -(1 << TBITW_IPRI)
|
---|
503 |
|
---|
504 |
|
---|
505 | 13. J[lÇàÌÅDæx(CPUbNóÔÅÌDæx}XN)
|
---|
506 |
|
---|
507 | 6.Åq×½æ¤ÉCÝÌoûÅSVCnhðÄÑo·Kvª é½ßC
|
---|
508 | SVCnhÍCPUbNóÔÌBASEPRIÉÝè·éDæx}XNæè¢Dæx
|
---|
509 | ðÝè·éKvª éD
|
---|
510 |
|
---|
511 | À³êéÝDæxÌrbgð TBITW_IPRICDæxÌTuDæxÌ
|
---|
512 | rbgðTBIT_IPRIÆ·éÆCCPUbNóÔiJ[lÇàÝÉÝè
|
---|
513 | Â\ÈÅDæxjƵÄwèÂ\ÈDæx}XNÌÝèÍÍÍȺÌlÌÍ
|
---|
514 | ÍÆÈéD
|
---|
515 |
|
---|
516 | -(2^(TBIW_IPRI)) + (2^TBITW_SUBIPRI)) ` -1
|
---|
517 |
|
---|
518 |
|
---|
519 | 14. ¢ðÛè
|
---|
520 |
|
---|
521 | EÝbNÆCPUáOÌÖW
|
---|
522 | BASEPRIðgÁ½ÆµÄàC éCPUáOɼÌáOª¶·éÆC»
|
---|
523 | ÌáOÍó¯t¯çêÈ¢½ßCITRONdlͽ¹È¢D
|
---|
524 | -> «çßÄ}j
|
---|
525 | ALÚɦ°é©.
|
---|
526 | veNVÌáOà}XNÂ\Å é½ßvD
|
---|
527 |
|
---|
528 |
|
---|
529 | ÈãD
|
---|