ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°
ΠΡΡ ΠΏΡΠ°Π²Π΄Π° ΠΎΠ± ΠΠ‘Π Π ΠΎΡ ΠΠΎΠ»ΠΈΠ½Π° Π£ΠΎΠ»Π»ΡΠ°. Π‘ΡΠ°ΡΡΡ #4. ΠΠ°Π΄Π°ΡΠΈ, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π·Π°Π΄Π°Ρ (Task Identifiers)
ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΌΠ΅ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ Π·Π°Π΄Π°ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ΄ΡΠ°, Π½ΠΎ Π² Π·Π°Π΄Π°ΡΠ°Ρ
Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠ°Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠ΅ΠΌΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΠ‘Π Π ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π·Π°Π΄Π°Ρ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΠ΅ΡΡΡΠ΅ ΠΎΠ±ΡΠΈΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ:
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° β ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΊ Π΄ΡΡΠ³ΠΎΠΉ. ΠΡΡ ΡΠ΅ΠΌΡ ΡΡΠΎΠΈΡ ΠΈΠ·ΡΡΠΈΡΡ ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠΌ ΡΠ°Π±ΠΎΡΡ ΠΠ‘Π Π.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π·Π°Π΄Π°ΡΠ°?
ΠΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ Π·Π°Π΄Π°ΡΠ° β ΡΡΠΎ ΠΊΠ²Π°Π·ΠΈΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π΅Π»ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Ρ ΡΡΠ΄ΠΎΠΌ Π΄ΡΡΠ³ΠΈΡ
Π·Π°Π΄Π°Ρ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΠ‘Π Π. ΠΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅Ρ Π·Π°Π΄Π°ΡΡ.
ΠΠ°Π±ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²
ΠΠ°Π΄Π°ΡΠ° β ΡΡΠΎ, Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΡΠ΅ΡΠ΅, ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΠ½ΠΈ Π»ΠΈΠ±ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (ΡΠΎ Π΅ΡΡΡ Π·Π°Π΄Π°ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ), Π»ΠΈΠ±ΠΎ Ρ
ΡΠ°Π½ΡΡΡΡ Π³Π΄Π΅-ΡΠΎ Π΄ΠΎ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠΌ ΠΌΠΈΡΠ΅ Ρ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°Π±ΠΎΡΠΎΠ² ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠ³ Π±ΡΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π±ΡΠ»ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΡ
ΡΠ»ΡΡΠ°Π΅Π². ΠΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ Π½Π°Π·Π°Π΄ Π² ΡΠ΅ΡΠΈΠΈ TI 9900 ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Texas Instruments Π±ΡΠ»ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π°Π±ΠΎΡΠΎΠ² ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ, Π½ΠΎ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π»ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° SPARC (ΡΠ°Π½ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»Π°ΡΡ Π² Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
Unix) ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π°Π±ΠΎΡΠΎΠ² ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π² Β«ΠΊΠΎΠ»ΡΡΠ°Ρ
Π΄ΠΎΡΡΡΠΏΠ°Β» (ring structure), Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π°Π±ΠΎΡΠΎΠ² Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ.
ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅
Π£ Π·Π°Π΄Π°ΡΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π±ΡΠ΄Π΅Ρ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΊ, ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π΄Π°Π½ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ
Π·Π°Π΄Π°Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠΎ, Π½Π°ΡΡΠ΄Ρ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ
Π·Π°Π΄Π°Ρ. ΠΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ
Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
Π Π΅ΡΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ. ΠΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΠΈΠΌ: Π»ΠΈΠ±ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π»ΠΈΠ±ΠΎ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ ΠΊΠΎΠ΄ Π·Π°Π΄Π°ΡΠΈ. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΊΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π΅Π½ΡΠ΅ΡΠ°Π±Π΅Π»ΡΠ½ΡΠΌ, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ (ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π²Π½Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ). ΠΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ; Π² Π½ΠΈΡ
ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ΅Π΅Π½ΡΠ΅ΡΠ°Π±Π΅Π»ΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ.
Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΈΠΌ. Π ΠΈΠ΄Π΅Π°Π»Π΅, ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° Π·Π°Π΄Π°ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Β«Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅ΠΌΒ» Π΄Π°Π½Π½ΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠ°ΠΊ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ
ΠΠΎΠ³Π΄Π° Π·Π°Π΄Π°ΡΠ° ΠΏΠ΅ΡΠ΅ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ (ΡΠΎ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π΅Ρ Π±ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ), Π΅Π΅ Π½Π°Π±ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π³Π΄Π΅-ΡΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ. ΠΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π΄Π²Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ:
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π°ΡΠΏΠ΅ΠΊΡ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΠ‘Π Π Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΠ‘Π Π ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈΠ±ΠΎ Β«ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉΒ», Π»ΠΈΠ±ΠΎ Β«Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉΒ».
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΠ‘Π Π Π²ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°Π΄Π°Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ Π²ΡΡ ΠΎΠ΄ Π΄Π»Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ.
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΠ‘Π Π Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΎΠ΄Π½Ρ Π·Π°Π΄Π°ΡΡ (ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Β«ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉΒ» Π·Π°Π΄Π°ΡΠ΅ΠΉ), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈ ΡΠ΄Π°Π»ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΠΌΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΈΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΎΠΌ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ/Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΠΈΠ΄ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΡΠ΄ΡΠ°.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°Π΄Π°Ρ
ΠΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Ρ
ΠΎΠ΄ΠΈΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ
ΠΠ‘Π Π. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π±ΠΎΡΡ. ΠΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, ΡΠΎΠ·Π΄Π°Π΅Ρ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π·Π°Π΄Π°ΡΠΈ (ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ), Π° Π·Π°ΡΠ΅ΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈ Π½Π΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ
Π·Π°Π΄Π°Ρ ΡΡΠ°Π»ΠΎ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΡΡΡΡ. ΠΠ΄ΠΈΠ½ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊ Π²Π½Π΅Π΄ΡΠΈΠ» Π΅Π΅, Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡ OSEK / VDX ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΡΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ OSEK / VDX Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ°ΠΏΠΏΠ΅ΡΠ° (wrapper), ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΡ ΠΏΠΎΠ²Π΅ΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠΉ (Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ) ΠΠ‘Π Π.
ΠΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°Π΄Π°Ρ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅ΠΆΠΈΠΌΠΎΠΌ ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡΡΠ²ΠΎ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°, Π° ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π»Ρ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ
, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΡ
Π·Π°Π΄Π°ΡΠΈ (TCB), Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΎΠ½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ
ΡΠΏΠΈΡΠΊΠΎΠ², ΡΡΠΎ Π²Π΅Π΄Π΅Ρ ΠΊ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠ°ΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ Ρ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠ΅ Π·Π°Π΄Π°ΡΡ, Π΄ΠΎΠ»ΠΆΠ½Ρ Ρ
ΡΠ°Π½ΠΈΡΡΡΡ Π² ΠΠΠ£. ΠΡΠΎ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΈΠ· Π½ΠΈΡ
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
, ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΈΠ· ΠΠΠ£. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ
Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ
) ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π΄ΠΎΡΡΠ°Π²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡΡΠ²ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π΅ΡΠΈΡΠΈΡΠ° ΡΠ΅ΡΡΡΡΠΎΠ², ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π΅Π΅ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΡΡΠΈ, ΡΡΠΎ Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΡΠ²Π»ΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°Π΄Π°Ρ (ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²).
ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ
ΠΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ, Π½ΠΎ ΡΡΠΎ Π½Π΅ΡΠΈΠΏΠΈΡΠ½ΠΎ.
ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ΄ΡΠΎ
ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΠ‘Π Π, ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ (ISR) Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΡΠ΅, ΡΡΠΎΠ±Ρ Β«ΠΊΡΠ°ΡΡΡΒ» ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π·Π°Π΄Π°Ρ. Π§Π°ΡΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΡΡ, Π° Π»ΡΠ±Π°Ρ ΡΡΠ΅Π±ΡΠ΅ΠΌΠ°Ρ Π·Π°Π΄Π°ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ, ΡΡΡΠ΄Π½ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Π² ΠΎΠ±ΡΠ΅ΠΌ ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡΡ
ΠΈ ΠΈΡ
Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Ρ ΡΠ΄ΡΠ°ΠΌΠΈ, ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠΈΠ»ΡΠ½ΠΎ Π²Π°ΡΡΠΈΡΡΡΡΡΡ. Π‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΠ‘Π Π ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ ΡΠ΄ΡΡ, ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π·Π°Π΄Π°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² ISR. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΠ‘Π Π ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. ΠΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠ² Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΠΈΠ»ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ, ΠΎΠ½ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π·Π½ΡΠ΅.
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°
ISR Π²ΡΠ΅Π³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ Β«ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΒ», ΡΡΠΎΠ±Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄ Π½Π΅ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°Π»ΡΡ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ISR. Π ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π±Π΅Π· ΠΠ‘Π Π, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠΏΡΠΎΡ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Π»ΡΠ±ΡΡ
ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ISR (ΠΎΠ±ΡΡΠ½ΠΎ Π² ΡΡΠ΅ΠΊΠ΅), ΠΈ ΠΈΡ
Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΠΈΠΌΠ΅ΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΊ ISR, Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΡΠ΅ΠΊ, ΡΡΠΎ ΠΈ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΠ‘Π Π, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΠ΅ΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ISR, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Β«Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½Β» ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ, ΠΈΠ»ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ΅ΠΊ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ Π΄Π»Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ΅ΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. Π‘ΠΈΡΡΠ°ΡΠΈΡ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ ISR Π΄Π΅Π»Π°Π΅Ρ Π²ΡΠ·ΠΎΠ² API, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π·Π°Π΄Π°Ρ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ Π²Π΅ΡΠ½Π΅ΡΡΡ ΠΊ Π΄ΡΡΠ³ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ ΠΎΡ ΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° Π·Π°ΠΏΡΡΠ΅Π½Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅.
ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ², ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΡΡ
ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ISR ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊ Π΄ΡΡΠ³ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅:
Π’Π°ΠΊΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ (Tick Clock)
ΠΠΎ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Β«ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ°Β» (ΠΊΠ²Π°Π½ΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ). Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΠ‘Π Π ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ, Π° Π΅Π³ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΡΠ»ΡΠΆΠ±. ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ:
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ Π²ΡΡΠ΅ΡΠ½ΡΡΡΠΈΠΉ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π΄Π»Ρ CortexM
Π‘ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π³ΠΎΠ΄ΠΎΠΌ ΠΊΡΡΡΠΎΠ²ΡΠ΅ Π΄Π»Ρ ΠΌΠΎΠΈΡ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΌΠ½Π΅Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΠΎΠΌ Π³ΠΎΠ΄Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π·Π°Π΄Π°Π½ΠΈΠΉ Π±ΡΠ»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠ΅ΡΠ΅ΠΎΡΡΠ°Π½ΡΠΈΠΈ, Π²Π΅Π΄Ρ ΡΠΎΠ»ΡΠΊΠΎ Π»Π΅Π½ΠΈΠ²ΡΠΉ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ ΠΌΠ΅ΡΠ΅ΠΎΡΡΠ°Π½ΡΠΈΠΈ, Π° ΡΡΡΠ΄Π΅Π½ΡΡ ΠΎΠ½ΠΈ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π΅ Π»Π΅Π½ΠΈΠ²ΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ. ΠΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠΎ Π½Π°ΠΊΠΈΠ΄Π°ΡΡ Π² Cube ΠΈΠ»ΠΈ ΡΠΎΠ±ΡΠ°ΡΡ Π½Π° ΠΡΠ΄ΡΠΈΠ½ΠΎ, Π½ΠΎ Π·Π°Π΄Π°ΡΠ° ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ Π½Π΅ Π² ΡΡΠΎΠΌ. ΠΡΠ½ΠΎΠ²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° β ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Ρ Π½ΡΠ»Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°, ΠΏΡΠΎΠ΄ΡΠΌΠ°ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΠ ΠΈ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π½Π° Π‘++, Π½Π°ΡΠΈΠ½Π°Ρ ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ Π Π’ΠΠ‘. ΠΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π·Π΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΡΠ΅ΡΠ° ΠΏΠΎ ΡΠ°ΠΊΠΎΠΌΡ ΠΊΡΡΡΠΎΠ²ΠΎΠΌΡ
Π’Π°ΠΊ Π²ΠΎΡ, ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ IAR ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅Π»Π°ΡΡ ΠΠ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 30 ΠΊΠΠ°ΠΉΡ. Π ΡΡΠΎ ΡΠΆΠ΅ Π²ΠΏΡΠΈΡΡΠΊ ΠΊ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ Π² Π½Π΅ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠΠ½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° ΡΡΡΠ΄Π΅Π½ΡΠΎΠ² Π²ΡΡΠ²ΠΈΠ», ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 1/4 ΡΠ°ΡΡΡ ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ FreeRtos β ΠΎΠΊΠΎΠ»ΠΎ 6 ΠΊΠΠ°ΠΉΡ, Ρ ΠΎΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΡΠ΅ΡΠ½ΡΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π»ΠΊΡ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ»ΠΊΡ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ Ρ Π²Π°ΡΠΈΠ»ΠΎ Π±Ρ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅β¦ Π΄Π° Π±Π°ΠΉΡ 500 ΠΏΡΠΈΡΠ΅ΠΌ Π²ΠΌΠ΅ΡΡΠ΅ Ρ 3 Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ (ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π½ΡΠΌΠΈ ΠΌΠΎΡΠ³ΡΠ½ΡΠΈΠΊΠ°ΠΌΠΈ).
ΠΡΠ° ΡΡΠ°ΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΡΠ΅Π½Ρ ΠΡΠΎΡΡΠΎΠΉ ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ(ΠΎΠ½ ΠΆΠ΅ SST), ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² ΡΡΠ°ΡΡΠ΅ Π°ΠΆ 2006 Π³ΠΎΠ΄Π° ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ Quantum Leaps Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠ΅ Qp framework.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ΄ΡΠ° ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ, ΠΈ ΠΎΠ½ΠΎ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΡΡΡΠ΄Π΅Π½ΡΠ°ΠΌΠΈ (ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ 5 ΠΊΠΠ°ΠΉΡ Π² ΡΠ²ΠΎΠ΅ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅.
Π― ΠΏΠΎΠΏΡΠΎΠ±ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΡΠ°ΠΌΠΎΠΌΡ. Π§ΡΠΎΠ±Ρ Π½Π΅ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡ ΡΡΠ°ΡΡΡ, ΡΠ°ΡΡΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° CortexM0 Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ.
ΠΡΠ΅ ΠΊΡΠΎ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π»ΡΡ ΠΈ Ρ ΠΎΡΠ΅Ρ ΠΏΠΎΠ½ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, Π΄ΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ ΠΊΠ°Ρ.
ΠΠ΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΎΡΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Ρ Ρ ΠΎΡΠ΅Π» ΠΎΠΏΠΈΡΠ°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π² «Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ » Π Π’ΠΠ‘ ΠΈ ΠΏΠΎΡΠΎΠΌ ΡΠΆΠ΅ ΠΎΠΏΠΈΡΠ°ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ΄Π΅Π»Π°Π½ Π² ΠΡΠΎΡΡΠΎΠΌ ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ΅ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π° ΡΠ΄ΡΠ΅ CortexM4, Π½ΠΎ ΡΡΠ°ΡΡΡ ΠΏΠΎΠ»ΡΡΠ°Π»Π°ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΡΠ΅ΡΠΈΠ» Π΅Ρ ΡΠΏΡΠΎΡΠΈΡΡ (Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΠΎΠ½Π° ΡΡΠ°Π»Π° ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅, Π½ΠΎ ΡΠΎΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅, Ρ ΠΎΡΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ). ΠΠΎΡΡΠΎΠΌΡ Ρ Π²Π²Π΅Π» Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ:
Π Ρ ΠΎΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈ Π½Π° CortexM3 ΠΈ Π΄Π°ΠΆΠ΅ Π½Π° CortexM4 (Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ FPU Π±Π»ΠΎΠΊΠΎΠΌ), Π΄Π»Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²Π½Π΅ΡΡΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ PendSV ΠΈ SVC ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
Π ΠΎΠ±ΡΠ΅ΠΌ Π΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎ-ΠΌΠΎΠ΄Π½ΠΎΠΌΡ, Π½Π° Π‘++17, Π±Π΅Π· ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°Π΄Π°Ρ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅ ΠΈ ΠΏΡΠΎΡΠ΅ΠΉ «Π΅ΡΡΠ½Π΄Ρ», Π° ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠΎmpile-time, ΡΡΠΎΠ±Ρ Π²ΡΡ-Π²ΡΡ Π±ΡΠ»ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ, Π° ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΡΠΈΡΠ°ΡΠ° ΠΈΠ· Π²ΡΡΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ 2006 Π³ΠΎΠ΄Π°
ΠΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΆΠ΄ΡΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΠΎΠ±ΡΡΠΈΡ, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΠΈΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΠ¦Π ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄Π°Π½Π½ΡΡ . ΠΠΎΡΠ»Π΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅Π°Π³ΠΈΡΡΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ. ΠΡΠ° ΡΠ΅Π°ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΡΠΎΡΠΈΡΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΡΡ Π² ΡΠΏΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ.
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ RTOS Π΄Π»Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π²ΡΠ½ΡΠΆΠ΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΏΡΠΎΡΡΡΠ΅, Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΅Π°ΠΊΡΠΈΠΈ Π½Π° ΡΠΎΠ±ΡΡΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π·Π°Π΄Π°ΡΠΈ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠ΅ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΈΠΊΠ»Ρ.
ΠΠΎ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΡΡΠ΅ΡΡ, Π²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° β ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ. Π Π½Π°ΡΠΈ ΡΡΠ°ΡΡΠΈΠ΅ Π±ΡΠ°ΡΡΡ Π² ΠΌΠΈΡΠ΅ ΠΠ ΠΏΠΎΠ΄ «Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠ΅» ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π°Π²Π½ΠΎ ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΊΡΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ² β ΠΏΠΎΡΠΎΠΊΠΈ, ΠΊΠΎΡΡΡΠΈΠ½Ρ, ΡΠΈΠ±Π΅ΡΡ β ΡΠΎΠΌΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅.
Π ΠΠ ΠΆΠ΅ Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΠΈ ΠΎΠ±ΡΡΠ½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠΎΠ±ΡΡΠΈΠΉ ΠΎΡ Π·Π°Π΄Π°ΡΠΈ ΠΊ Π·Π°Π΄Π°ΡΠ΅, ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π²ΡΡΠ΅ΠΊΠ°ΡΡΠΈΠΌΠΈ (Π΄ΠΎΠ»Π³ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ
Π·Π°Π΄Π°Ρ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΡΡΠ΅ΠΊΠ°ΠΌΠΈ)), Π»ΠΈΠ±ΠΎ Π³ΠΎΡΠΎΠ΄ΠΈΡΡ ΡΡΠΎ-ΡΠΎ ΡΠ²ΠΎΠ΅, Π»ΠΈΠ±ΠΎ ΠΏΠΎ ΡΡΠ°ΡΠΈΠ½ΠΊΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ switchΠΎΠΌ.
Π ΡΠ»ΡΡΠ°Π΅ ΠΆΠ΅ Ρ SST ΡΠ΄ΡΠΎ ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡ ΠΈ Π΅ΠΌΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΡΠ΅ΠΊΠ°ΠΌΠΈ. Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ΄ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠΎΠ±Ρ Π²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡ Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ (Run to completion), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΡΠ΅ΠΊ.
Π ΡΡΠΎ ΠΊΡΡΠ°ΡΠΈ ΡΠ΅ΡΠ°Π΅Ρ ΠΎΠ΄Π½Ρ ΠΈΠ· «Π²Π΅ΡΠ½ΡΡ
» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ, Π²Π΅Π΄Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ» Π² Π‘++ ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅-ΡΠΎ Undefined/Unspecified Behaviour (UB).
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Dubovik_a Π·Π° ΡΡΠΎΡΠ½Π΅Π½ΠΈΠ΅: Π½Π΅ Π²ΡΠ΅ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΈΠΊΠ»Ρ UB, Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ, Π΅ΡΠ»ΠΈ Π²Π½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π° Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΠΆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ, ΡΠΎ ΡΡΠΎ ΡΠΆΠ΅ Π½Π΅ UB
ΠΠΎ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π½Π΅Ρ ΡΠ°ΠΊΠΈΡ ΡΠΈΠΊΠ»ΠΎΠ² β Π½Π΅Ρ UB, Π° Π·Π°ΠΎΠ΄Π½ΠΎ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π½Π°Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π±Π΅Π· Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΡΡΠΎΠ±Ρ, Π΅ΡΠ΅ ΠΌΠ΅Π½ΡΡΠ΅ UB ΠΏΡΠΎΠ½ΠΈΠΊΠ»ΠΈ Π² ΠΊΠΎΠ΄ (Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΠΊΠΎΠ΄ Π½Π° Π‘++ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π±Π΅Π· UB, Π½ΠΎ Π²Π΄ΡΡΠ³).
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π½Π°ΡΠΈΠ½Π°ΡΡ ΡΡΠ°ΡΡΡ, Ρ Ρ ΠΎΡΠ΅Π» Π²Π½Π°ΡΠ°Π»Π΅ Π½Π°ΠΉΡΠΈ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° CortexM Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ, Π½Π°ΡΠ΅Π» Π²ΠΎΡ ΡΡΡ ΡΡΠ°ΡΡΡ. ΠΠΎ Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π³Π»ΡΠ΄ΡΠ²Π°Π½ΠΈΡ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠ΄ΡΡ CortexM3 ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π·Ρ Π²ΡΠ΅ ΠΏΠΎΠ½ΡΡΡ.
ΠΡΡΡ Π΅ΡΠ΅ ΡΡΠ°ΡΡΡ Π½Π° Π₯Π°Π±ΡΠ΅: ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ context switch Π½Π° STM32.
ΠΠΎ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ ΠΈ ΠΏΡΠΎΡΠΈΡΠ°Π»ΠΈ ΡΡΠΈ ΡΡΠ°ΡΡΠΈ, Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π²ΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Ρ.
ΠΠΎΡΡΠΎΠΌΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π½Π°ΡΠ°Π»Π΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. Π ΠΏΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ Π·Π°ΠΉΠΌΠ΅ΠΌΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΠΏΠΎΠ½ΡΡΠΈΠΉ.
ΠΠΎΠΌΠ°Π½Π΄Ρ CortexM ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ²
Π£ CortexM Π±ΡΠ²Π°Π΅Ρ ΡΡΠΈ Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄:
Π’Π°ΠΊ Π²ΠΎΡ Π½Π°Ρ CortexM0 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Thumb Π½Π°Π±ΠΎΡ, Π½Ρ Π½Π΅ ΡΡΠΈΡΠ°Ρ ΠΏΠ°ΡΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ· Thumb-2, Π½ΠΎ Π·Π°ΠΊΡΠΎΠ΅ΠΌ Π½Π° ΡΡΠΎ Π³Π»Π°Π·Π°.
ΠΠ° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ, CortexM3 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Thumb-2 ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ.
Π Π΅ΠΆΠΈΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°
Cortex-M ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ°Π±ΠΎΡΡ: ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ° (Thread) ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° (Handle):
ΠΡΠΎ ΡΡΠ΅ΠΊΠΈ ΡΠ·Π½Π°Π΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅, Π° ΠΏΠΎΠΊΠ° ΡΡΠΎ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. Π Π΄Π°, ΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ΅ΠΊ MSP.
CortexM0 ΡΠ΅Π³ΠΈΡΡΡΡ
CortexM0 ΠΈΠΌΠ΅Π΅Ρ 16 ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
Π ΡΡΠ΄ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
Π Π΅Π³ΠΈΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ΅ΠΊΠ° (r13/SP)
Π― Π½Π΅ Π±ΡΠ΄Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ΅ΠΊ, Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ°ΡΠ΅ΠΉ Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ. ΠΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° CortexM Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ².
Π Ρ ΠΎΡΡ Π² Π½Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠ΅ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ΅Π½ ΡΡΠ΅ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅ ΡΠ°ΠΊΠΈ ΡΡΠΎΡΠ½Ρ, ΡΡΠΎ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ. Π ΡΠ΅ΠΆΠΈΠΌΠ΅ Handle ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ SP Π²ΡΠ΅Π³Π΄Π° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° MSP, Π° Π²ΠΎΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Thread ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ΅ΠΊ MSP, ΡΠ°ΠΊ ΠΈ Π½Π° ΡΡΠ΅ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠ° PSP. ΠΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΡΡΠ΅ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ CONTROL ΡΠ΅Π³ΠΈΡΡΡΠ°.
ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΠ΅ΠΆΠΈΠΌΠ° Handle ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΡΡΠ΅ΠΊ ΡΠΊΠ°Π·Π°Π² Π²ΠΎΠ»ΡΠ΅Π±Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅ ΠΈΠ· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΡΠ²ΡΠ·ΠΈ. ΠΡΡΡΠ΅ΡΠ°Π΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡ ΡΠ²ΡΠ·ΠΈ.
Π Π΅Π³ΠΈΡΡΡ ΡΠ²ΡΠ·ΠΈ (r14/LR)
Π£ ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΠ²ΡΠ·ΠΈ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΄Π½Π° ΠΏΡΡΠΌΠ°Ρ β Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°:
Π Π²ΡΠΎΡΠ°Ρ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Π°Ρ:
EXC_RETURN | Π§ΡΠΎ Π·Π½Π°ΡΠΈΡ |
---|---|
0xFFFFFFF1 | ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π² Handle ΡΠ΅ΠΆΠΈΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ΅ΠΊ MSP |
0xFFFFFFF9 | ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π² Thread ΡΠ΅ΠΆΠΈΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ΅ΠΊ MSP |
0xFFFFFFFD | ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π² Thread ΡΠ΅ΠΆΠΈΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ΅ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠ° PSP |
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ARM, ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠ΅ΡΠ²Π°ΡΡ Π±Π΅Π·ΠΌΡΡΠ΅ΠΆΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²ΡΠ·ΠΎΠ²Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΆΠ΅ Π²ΡΠ·Π²Π°Π½ΠΎ Π² ΠΎΡΠ²Π΅Ρ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅, ΠΎΡΠΈΠ±ΠΊΠ° Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΡΠ²Π°ΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅ ΠΈ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅. ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΌΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ. Π Π²ΠΎΡ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ β ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
Π Π² ΡΠ΅Π»ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ Π΄Π²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ°Π΄ΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:
ΠΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ΠΊΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ
ΠΡΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π° Π² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. Π Π² ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΡΠΌ.
Π ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΉΠΌΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Ρ ΠΎΠ΄ ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ ΠΏΡΠ΅ΠΆΠ΄Π΅, ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΊΠ°Π΄Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΠ°Π΄Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΠ°Π΄Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (Exception Frame). Π’Π°ΠΊ Π²ΠΎΡ, ΡΡΠΎ Π½Π°Π±ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π΅ Π² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΏΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅ ΠΈΠ· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ°Π΄Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
Π ΠΊΠ°Π΄ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΡ R0-R3, R12 ΠΈ LR, PC, xPSR.
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ R4-R11 Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ (Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ C/C++ standard Procedure Call Standard for the ARM Architecture) Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π²Ρ ΠΎΠ΄ΡΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΊΠ°Π΄Ρ.
ΠΡ ΠΎΠ΄ Π² ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠΎ Π²Π°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ Π²ΡΡ
ΠΎΠ΄Π° ΠΈΠ· ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ.
ΠΡ
ΠΎΠ΄ Π² ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΆΠΈΠ΄Π°ΡΡΠ΅Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ ΠΈ:
ΠΠΎΠ³Π΄Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ½ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΊΠ°Π΄Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΡΠ΅ΠΊΠ΅. ΠΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ «stacking». ΠΠΎ ΡΡΡΡΠΊΠΈ Π·Π²ΡΡΠΈΡ ΡΡΡΠ°Π½Π½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π±ΡΠ΄Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ΅ΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ°Π΄ΡΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠΆΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅, ΡΡΠ΅ΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ°Π΄Ρ ΠΈΠ· 8 ΡΠ»ΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠΎΠ΄ΡΠΈΠ½ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ.
Π‘ΡΠ΅ΠΊ Π²ΡΡΠ°Π²Π½Π΅Π½ ΠΏΠΎ 8 Π±Π°ΠΉΡΠΎΠ²ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ (Π΄Π²ΡΠΌ ΡΠ»ΠΎΠ²Π°ΠΌ).
Π‘ΡΠ΅ΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π°Π΄ΡΠ΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΈΠ· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ β Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² ΠΏΡΠ΅ΡΠ²Π°Π½Π½ΠΎΠΉ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π² PC Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΈΠ· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, Π° ΡΠΎΡΠ½Π΅Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΡΠ°ΡΡΠΎΠ²ΡΠΉ Π°Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π²Π΅ΠΊΡΠΎΡΠΎΠ² ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΈ ΠΊΠΎΠ³Π΄Π° «stacking» Π·Π°Π²Π΅ΡΡΠ΅Π½, Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° β EXC_RETURN Π² ΡΠ΅Π³ΠΈΡΡΡ LR, ΠΊΠ°ΠΊ ΠΌΡ ΡΠΆΠ΅ Π²ΡΡΡΠ½ΠΈΠ»ΠΈ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΈΠΏ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ΅ΠΊΠ° (MSP ΠΈΠ»ΠΈ PSP) ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π±ΡΠ» ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π΄ΠΎ Π²Ρ ΠΎΠ΄Π° Π² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
ΠΡΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²Ρ ΠΎΠ΄Π° Π² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎ-ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠ°ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅.
ΠΡΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²Ρ ΠΎΠ΄Π° Π² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΠΎ ΡΡΠ°ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ «ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅». Π’Π°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ «ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΠΏΡΠΈΠ±ΡΡΠΈΠ΅».
Π ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ ΠΈ Π²ΡΠ΅, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ, ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°Π΄ΠΎ ΠΈΠ· Π½Π΅Π³ΠΎ Π²ΡΠΉΡΠΈ.
ΠΠΎΠ·Π²ΡΠ°Ρ ΠΈΠ· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΠΎΠ·Π²ΡΠ°Ρ ΠΈΠ· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΊΠΎΠ³Π΄Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Handle ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΏΡΡΠ°ΡΡΠΈΡ ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ PC Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ EXC_RETURN Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ :
ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ EXC_RETURN Π² LR ΠΏΡΠΈ Π²Ρ
ΠΎΠ΄Π΅ Π² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ³Π΄Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π·Π°Π²Π΅ΡΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΠΈΡΡ[31:4]
ΠΠΈΡΡ[3:0]
ΠΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅ ΠΈΠ· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ β unstacking, Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ°Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡΠ°ΡΡΡ Π½Π° ΡΡΡΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π² PC Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈΠ· ΠΊΠ°Π΄ΡΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π½Π° Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
Π― ΡΡΡ ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π»ΠΈΠΏΠ°ΡΡΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ, ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π½Π΅ ΠΎΡΠ΅Π½Ρ, Π½ΠΎ Π½Π΅ ΠΏΡΠΎΠΏΠ°Π΄Π°ΡΡ ΠΆΠ΅ 2-ΡΠ°ΡΠΎΠ²Ρ ΡΡΡΠ΄Ρ Π·ΡΡ.
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°
Π «Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ » RTOS, ΠΈΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ PSP ΡΡΠ΅ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ, Π° MSP ΡΡΠ΅ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ΄ΡΠΎΠΌ. ΠΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ΅ΠΊΠ° PSP, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ MSP Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
Π‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ β ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ Π½Π΅ΠΊΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈ Π·Π°Π΄Π°Ρ, Π²Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎ ΡΡΠ΅ΠΊΠΎΠΌ PSP ΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ MSP Π½Π΅Ρ.
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π΅ ΡΠ°ΠΊΠΎΠ΅ Π±ΡΡΡΡΠΎΠ΅, Π° ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄Π°Ρ Π·Π°Π΄Π°ΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΡΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Ρ Π·Π°ΠΏΠ°ΡΠΎΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π½Π΅ΠΏΡΠ΅Π΄Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ ΡΠ°ΡΡ ΠΎΠ΄ ΠΠΠ£.
ΠΡΠ°ΠΊ, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Ρ Π½Π°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡ-ΡΠΎ ΡΠΎΠ±ΡΡΠΈΡ. ΠΡΡΡΡ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π»ΡΠ±ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π΅ Π² ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ, ΠΈΠ»ΠΈ ΠΏΡΠΈΡ ΠΎΠ΄Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² UART, ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΌΡ Π΄ΡΡΠ³ΠΎΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ΅Π³ΠΎ-ΡΠΎ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΉΠ΄Π΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΡΡ Π·Π°Π΄Π°ΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡ Π΅Ρ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΡΡΠ΅ΡΠ½ΠΈΠ² ΡΠΆΠ΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠ΅.
ΠΠΎΠ³ΠΈΡΠ½ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΈΠ· ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ, Ρ.Π΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Handle, Π° Π²ΠΎΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΈ Π·Π°Π΄Π°ΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Thread. ΠΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ?
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅ ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ PendSV, ΠΈ ΡΠΆΠ΅ Π² Π½Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ ΠΌΠ°Π³ΠΈΡ ΠΏΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°: Π² ΡΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
Π’.Π΅. Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π² ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ, ΠΌΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ PendSV ΠΈ ΡΠΆΠ΅ ΠΏΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅ ΠΈΠ· Π½Π΅Π³ΠΎ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π°Ρ.
Π‘ΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π²ΡΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π·Π°Π΄Π°ΡΠΈ, ΠΌΡ ΠΏΠΎΠΏΠ°Π΄Π΅ΠΌ Π² PendSV ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ:
ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΏΡΠ½ΠΊΡΠ΅ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ ΠΏΠΎΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠΊΠ°Π·Π°ΡΡ, Π΄Π° ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
ΠΡΠ·ΠΎΠ² ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΈΠ· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ PendSV, ΡΠ°ΠΊ ΡΡΠΎΠ±Ρ ΠΎΠ½ Π·Π°ΠΏΡΡΡΠΈΠ»ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Thread, Π½ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠΏΠ°ΡΡΡ Π² ΡΡΠΎΡ ΡΠ΅ΠΆΠΈΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΉΡΠΈ ΠΈΠ· PendSV.
ΠΠ°ΠΊ Π²Ρ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΠΏΡΠΈ Π²Ρ
ΠΎΠ΄Π΅ Π² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠΎΡ
ΡΠ°Π½ΠΈΠ» ΠΊΠ°Π΄Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΡΡΠ΅ΠΊΠ΅.
Π Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ΅ΠΊΠ° ΡΠ°ΠΊ ΠΈ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π½Π° Π²Π΅ΡΡΠΈΠ½Π΅ ΡΡΠΎΠ³ΠΎ ΠΊΠ°Π΄ΡΠ°, ΡΠΎ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°, Ρ.Π΅. Π²ΡΡ
ΠΎΠ΄Π΅ ΠΈΠ· ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΡΡΠΎΡ ΠΊΠ°Π΄Ρ ΠΏΡΠΎΠΏΠ°Π΄Π΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ Π²ΡΡ
ΠΎΠ΄Π΅ ΠΈΠ· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΄Π΅Π»Π°Π΅ΡΡΡ unstacking.
ΠΠ½Π°ΡΠΈΡ Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ, ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΊΠ°Π΄ΡΠΎΠΌ, Π½Π΅ ΠΈΡΠΏΠΎΡΡΠΈΠ² ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΊΠ°Π΄Ρ Π²ΡΡΠ΅ΡΠ½Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. Π’.Π΅. ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ΅ΠΊΠ° Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ (Π° ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ΅ΠΊ ΡΠ°ΡΡΠ΅Ρ Π² ΡΡΠΎΡΠΎΠ½Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠΎΠ², ΡΠΎ ΡΠ±Π°Π²ΠΈΡΡ) ΡΡΠ΅ΠΊ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ°Π΄ΡΠ°, Π½ΠΎ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°.
Π Π² ΡΡΠΎΠΌ ΠΊΠ°Π΄ΡΠ΅ Π² PC ΠΌΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π°Π΄ΡΠ΅Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°, Π² LR Π°Π΄ΡΠ΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΏΠΎΡΠ»Π΅ ΡΠ°Π±ΠΎΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°, Π° Π² xPSR Π½Π°Π΄ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ 1 Π² Π±ΠΈΡ T, ΠΊΠΎΡΠΎΡΡΠΉ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ Thumb, Π° ΡΠΎ Π²ΡΠΉΠ΄Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ.
ΠΠΎΡ ΡΠ°ΠΊ ΠΌΡ ΡΡΠΊΠ°ΠΌΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΠ΅ΠΌ Π½Π°Ρ ΡΡΠ΅ΠΊ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ PendSV Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°:
ΠΠΎΠ·Π²ΡΠ°Ρ ΠΈΠ· ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ» ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊΡΠ΄Π°-ΡΠΎ, Π³Π΄Π΅ Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ-ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΡΠ΅ΡΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅. Π’.Π΅. ΠΌΡ ΠΎΠΏΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ΄Π΅ΠΌ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΈ Π² Π½Π΅ΠΌ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΎΡ ΠΊΠ°Π΄Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠ½ΠΊΡΠ΅. Π ΡΠΆΠ΅ ΠΏΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅ ΠΈΠ· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Ρ Π½Π°Ρ ΡΠ΄Π΅Π»Π°Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ unstacking Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠΌ Π½Π° ΠΏΡΠ΅ΡΠ²Π°Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ.
ΠΠ»Ρ Π»ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ, Ρ Π½Π°ΡΠΈΡΠΎΠ²Π°Π» ΡΠ΅Π»ΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, Π½ΠΎ ΡΠ΅ΡΡΠ½ΠΎ ΡΡΠ°ΡΠ°Π»ΡΡ ΠΈ Π² ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ ΠΏΠΎΡΡΠ» ΠΏΠ΅ΡΠ΅Π΄Π°Π» Π²Π΅ΡΠ½ΠΎ.
ΠΠΏΠ° ΠΈ Π²ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡβ¦ Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π½Π° lisp (Π½Π΅ Π½Π°ΡΠ΅Π», ΠΊΠ°ΠΊ Π²ΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ΄ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΡΡ, ΠΈ Π±ΡΠ»ΠΈ Π²ΠΈΠ΄Π½Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΡΠ°Π²ΠΈΠ» ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ ΠΊΠ°ΠΊ Π½Π° lisp) Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅.
ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ
ΠΡ Π° ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ ΠΠΎΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ ΠΏΡΠΎΡΡΠΎΠΉ β ΡΡΠ°Π·Ρ ΠΏΠΎΠΊΠ°ΠΆΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ, ΠΎΠ½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠ½ΠΈΡ: ΠΡΠ΅Π³ΠΎ 4 ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΊΡΡΡΠΎ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡ Π³ΡΠ΅Ρ Π° ΠΏΠΎΠ΄Π°Π»ΡΡΠ΅.
ΠΠ°ΠΊ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, Π²ΡΡ ΡΡΡΡ ΡΡΡ Π·Π°Π»ΠΎΠΆΠ΅Π½Π° Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ Schedule() ΠΈ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΊΡΡΡΠ΅ΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠΌ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π·Π°Π΄Π°ΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ»ΡΡ Π΅Ρ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² ΡΠΏΠΈΡΠΊΠ΅ Π·Π°Π΄Π°Ρ. ΠΡ Ρ. Π΅., ΡΡΠΎΠ±Ρ Π΅ΡΠ»ΠΈ ΠΌΡ Π·Π°Π΄Π°Π»ΠΈ Π±Ρ Π·Π°Π΄Π°ΡΠΈ ΡΠ°ΠΊ:
Π’ΠΎ ΡΡΠΎ Π±Ρ ΠΎΠ·Π½Π°ΡΠ°Π»ΠΎ, ΡΡΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ HighPriorityTask β ΡΠ°ΠΌΡΠΉ Π²ΡΡΠΎΠΊΠΈΠΉ, Π° idleTask β ΡΠ°ΠΌΡΠΉ Π½ΠΈΠ·ΠΊΠΈΠΉ. ΠΡΠΎ Π½Π°ΠΌ ΡΠ΅ΡΠΈΡ ΠΊΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΡΠΏΠΈΡΠΊΠ° Π·Π°Π΄Π°Ρ. ΠΠ°Π΄Π°ΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°.
Π’ΠΎΠ³Π΄Π° Π½Π°Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌ-ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΡΠΌ.
Π€ΡΠ½ΠΊΡΠΈΡ Π·Π°ΠΏΡΡΠΊΠ° Π·Π°Π΄Π°ΡΠΈ ΡΠΎΠΆΠ΅ ΠΏΡΠΎΡΡΠ° ΠΊΠ°ΠΊ ΠΏΡΡΡ ΠΊΠΎΠΏΠ΅Π΅ΠΊ:
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, Π·Π°Π΄Π°ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ OnEvent().
Π Π΄Π°, ΠΌΡ ΠΆΠ΅ Π½Π΅ Ρ
ΠΎΡΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π·Π°Π΄Π°ΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΠ΅ΡΠ΅Π· ΡΡΡΠ»ΠΊΠΈ, ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ°Π±Π»ΠΎΠ½Π°.
Π ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ±Π΅Π³Π°Π΅ΠΌΡΡ ΠΏΠΎ ΡΡΠΎΠΌΡ ΡΠΏΠΈΡΠΊΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΏΠ΅ΡΠ²ΡΡ (ΡΠ°ΠΌΡΡ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΡ) Π°ΠΊΡΠΈΠ²Π½ΡΡ Π·Π°Π΄Π°ΡΡ:
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° Π·Π°Π΄Π°ΡΠΈ, Π° ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π°ΠΆΠ΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° Π²ΡΡ ΠΎΠ΄ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΌΠ°ΡΡΠΈΠ²Π°
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ°ΠΊΠΎΠΌΡ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ:
Π§ΡΠΎΠ±Ρ Π·Π°Π΄Π°ΡΠ° Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π»Π°ΡΡ Π΅ΠΉ Π½Π°Π΄ΠΎ ΠΏΡΠΎΡΠΈΠ³Π½Π°Π»ΠΈΡΡ, Π½Ρ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»ΡΡΠΈΠ»ΡΡ ΡΠ°ΠΉΠΌΠ°ΡΡ ΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° (Π² Modbus RTU Π°ΠΆ Π΄Π²Π° ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π½Π° 3,5 ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΈ 1,5 ΡΠΈΠΌΠ²ΠΎΠ») ΠΈ Π½Π°Π΄ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΠΎ ΠΏΡΠΈΠ΅ΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ β Π΄Π° ΡΠ°Π΄ΠΈ Π±ΠΎΠ³Π° β ΠΏΠΎΡΡΠ»Π°Π΅ΠΌ ΠΈΠ· ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π·Π°Π΄Π°ΡΠ΅, ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΏΡΠΈΠ΅ΠΌΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΠΎΠ±ΡΡΠΈΠ΅.
ΠΡΡΠ΅ Ρ ΡΠΆΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π», ΡΡΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊ Π²Π·ΡΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΈΠ· ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, Π½ΡΠΆΠ½ΠΎ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΊ-ΡΠΎ Π²ΡΠΉΡΠΈ Π²Π½Π°ΡΠ°Π»Π΅, Π° ΠΏΠΎΡΠΎΠΌ ΡΠΆΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ β ΠΈ ΡΡΠΎ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΡΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° PendSV.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΡΠ΄Π΅Π»Π°Π» ΡΠΎΠ±ΡΡΠΈΡ ΠΎΡ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΡΠΎΠΈΠ» Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ°. ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅:
Π ΡΠ°ΠΉΠΌΠ΅ΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΡΡΡ ΡΠΎΠ±ΡΡΠΈΡ
ΠΠ°Π΄Π°ΡΠΈ
ΠΠ°Π΄Π°ΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ ΠΎΡ TaskBase. Π Π½Π΅Π³ΠΎ Ρ Π·Π°ΠΏΠΈΡ Π½ΡΠ» Π°ΡΡΠΈΠ±ΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅, ΡΡΠΎΠ±Ρ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π±ΡΠ» ΡΠ°ΠΊΠΎΠΉ Π°ΡΡΠΈΠ±ΡΡ, Π½ΠΎ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ, ΡΠΎ ΡΡΠΎΠ±Ρ ΡΡΠΎΡ Π°ΡΡΠΈΠ±ΡΡ Π±ΡΠ» ΡΠ°Π·Π½ΡΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ» ΡΡΡΠ°Π½Π½ΠΎ-ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½.
Π ΠΊΠΎΠ΄Π΅ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊ:
ΠΠ°Π΄Π°ΡΠΈ ΡΠ°ΠΌΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊ Π½Π΅ Π·Π°ΠΏΡΡΡΡΡΡΡ, Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΡΠΎ-ΡΠΎ ΠΈΠΌ Π·Π°ΠΏΠΎΡΡΠΈΠ» ΡΠΎΠ±ΡΡΠΈΠ΅, Π° ΡΠ°ΠΊΠΈΠΌΠΈ ΡΡΡΠ½ΠΎΡΡΡΠΌΠΈ Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΡ. ΠΡ Π½Π°Π΄ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ.
ΠΡ ΠΈ Π²ΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ.
.
ΠΡΠ΅ Π»Π΅ΠΆΠΈΡ Π² Github ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠ°ΠΏΠΊΡ ΠΎΡΠΊΡΡΡΡ Π² Clion.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
4 Π·Π°Π΄Π°ΡΠΈ ΠΌΠΎΡΠ³Π°Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄ΠΎΠΌ + ΡΠ°ΠΌ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 564 Π±Π°ΠΉΡ ΠΊΠΎΠ΄Π° + 14 Π±Π°ΠΉΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ 17 Π±Π°ΠΉΡ ΠΠΠ£ Π±Π΅Π· ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
Module | ro code | ro data | rw data |
---|---|---|---|
taskerschedule.cpp | 508 | 14 | 17 |
interrupthandlers.s | 56 | 0 | 0 |
ΠΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ Π½Π° 120 Π±Π°ΠΉΡ.