Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти

Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½ΠΈΠΊΠ° для всСх

Π‘Π»ΠΎΠ³ ΠΎ элСктроникС

AVR. Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ курс. Бтартовая инициализация

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ памяти
Мало ΠΊΡ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°Π΅Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²ΠΊΠ΅ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всСгда всС Π±Π°ΠΉΡ‚Ρ‹ Ρ€Π°Π²Π½Ρ‹ 0xFF. Они ΠΌΠΎΠ³ΡƒΡ‚, Π½ΠΎ Π½Π΅ обязаны. Π Π°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ рСгистры РОН Π½Π΅ всСгда Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ ΠΏΡ€ΠΈ запускС. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π΄Π°, всС ΠΎΠ±Π½ΡƒΠ»Π΅Π½ΠΎ, Π½ΠΎ я нСсколько Ρ€Π°Π· сталкивался со случаями ΠΊΠΎΠ³Π΄Π° послС пСрСзапуска ΠΈ/ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ-Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ питания, ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π½Π°Ρ‡ΠΈΠ½Π°Π» Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ Π½Π΅ ΠΏΠΎΠΉΠΌΠΈ Ρ‡Ρ‚ΠΎ. Особнно часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ³Π΄Π° ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅ΡˆΡŒ, Π° ΠΏΠΎΡ‚ΠΎΠΌ, спустя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, ΠΏΠ°Ρ€Π° ΠΌΠΈΠ½ΡƒΡ‚, Π½Π΅ большС, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΡˆΡŒ. А всСму Π²ΠΈΠ½ΠΎΠΉ остаточныС значСния Π² рСгистрах.

Π˜Ρ‚Π°ΠΊ, Π²ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ сСбС Π·Π° ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π΅Ρ‰Π΅ Π΄Π°ΠΆΠ΅ Π΄ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ стСка, Π΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°Π½ΡƒΠ»Π΅Π½ΠΈΠ΅ памяти ΠΈ очистку всСх рСгистров. РазумССтся дСлаСтся это всС Π² Ρ†ΠΈΠΊΠ»Π΅. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΊΠΎΠ΄Π°:

RAM_Flush: LDI ZL,Low(SRAM_START) ; АдрСс Π½Π°Ρ‡Π°Π»Π° ΠžΠ—Π£ Π² индСкс LDI ZH,High(SRAM_START) CLR R16 ; ΠžΡ‡ΠΈΡ‰Π°Π΅ΠΌ R16 Flush: ST Z+,R16 ; БохраняСм 0 Π² ячСйку памяти CPI ZH,High(RAMEND+1) ; Достигли ΠΊΠΎΠ½Ρ†Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²ΠΊΠΈ? BRNE Flush ; НСт? ΠšΡ€ΡƒΡ‚ΠΈΠΌΡΡ дальшС! CPI ZL,Low(RAMEND+1) ; А младший Π±Π°ΠΉΡ‚ достиг ΠΊΠΎΠ½Ρ†Π°? BRNE Flush CLR ZL ; ΠžΡ‡ΠΈΡ‰Π°Π΅ΠΌ индСкс CLR ZH

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ адрСс ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²ΠΊΠΈ Ρƒ нас Π΄Π²ΡƒΠ±Π°ΠΉΡ‚Π½Ρ‹ΠΉ, Ρ‚ΠΎ ΠΌΡ‹ Π²Π½Π°Ρ‡Π°Π»Π΅ смотрим, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±Π°ΠΉΡ‚ совпал с ΠΊΠΎΠ½Ρ†ΠΎΠΌ, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π΄ΠΎΠ±ΠΈΠ²Π°Π΅ΠΌ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ 255 Π±Π°ΠΉΡ‚ Π² младшСм Π±Π°ΠΉΡ‚Π΅ адрСса.
Π”Π°Π»Π΅Π΅ ΡƒΠ±ΠΈΠ²Π°Π΅ΠΌ всС рСгистры ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π΄ΠΎ послСднСго. ВсС, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π³ΠΎΡ‚ΠΎΠ² ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅.

LDI ZL, 30 ; АдрСс самого ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ рСгистра CLR ZH ; А Ρ‚ΡƒΡ‚ Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ ноль DEC ZL ; УмСньшая адрСс ST Z, ZH ; ЗаписываСм Π² рСгистр 0 BRNE PC-2 ; Пока Π½Π΅ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Π»ΠΈ всС Π½Π΅ ΡƒΡΠΏΠΎΠΊΠΎΠΈΠ»ΠΈΡΡŒ

Π—Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΊΡƒ занулСния рСгистров спасибо Testicq

Π›ΠΈΠ±ΠΎ значСния сразу ΠΆΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ. Но, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, я ΠΎΡ‚ нуля всСгда ΠΏΠ»ΡΡˆΡƒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π·Π°Π½ΡƒΠ»ΡΡŽ всС.

Бпасибо. Π’Ρ‹ ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΠΈΠ΅! ВсСго Π·Π° мСсяц ΠΌΡ‹ собрали Π½ΡƒΠΆΠ½ΡƒΡŽ сумму Π² 500000 Π½Π° Ρ…ΠΎΠΊΠΊΠ΅ΠΉΠ½ΡƒΡŽ ΠΊΠΎΡ€ΠΎΠ±ΠΊΡƒ для дСтского Π΄ΠΎΠΌΠ° АистСнок. Из ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… 125000+ Π±Ρ‹Π»ΠΎ ΠΎΡ‚ вас, Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ EasyElectronics. Π‘Ρ‹Π»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ Π½Π° 25000+ ΠΈ просто ΠΏΠΎΡ‚ΠΎΠΊ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ Π½Π° 251 Ρ€ΡƒΠ±Π»ΡŒ. Π­Ρ‚ΠΎ нСвСроятно ΠΊΡ€ΡƒΡ‚ΠΎ. БСйчас ΠΈΠ΄Π΅Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π° ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Ρƒ!

А я встрял Π½Π° Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, СТСмСсячной ΠΏΠ°Ρ…ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΡΡ‚Π°Ρ‚ΡŒΡΠΌΠΈ :)))))))))))) Бпасибо Π²Π°ΠΌ Π·Π° Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΏΠΈΠ½ΠΎΠΊ.

58 thoughts on β€œAVR. Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ курс. Бтартовая инициализация”

я Π΅Ρ‰Ρ‘ помню, ΠΊΠΎΠ³Π΄Π° смотрСл ΠΏΠΎ Π»ΠΈΠ½ΠΊΡƒ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ Π½Π° сайт НиколаСва, Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ Π²ΠΈΠ΄Π΅Π» Ρ‚Π°ΠΌ Ρ€Π°Π·Π΄Π΅Π» ΠΏΡ€ΠΎ «тонкости». ΠΏΡ€ΠΎ использованиС символичСских ΠΈΠΌΡ‘Π½, Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ„Π»Π°Π³Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Ρ‚ΠΎΡ€ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½Π½ΠΎ потрСблСния ) ΠΌΠ΅Π»ΠΎΡ‡ΠΈ, Π° Π·Π½Π°Ρ‚ΡŒ Π½Π°Π΄ΠΎ

Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Ρƒ тСбя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ΡΡ нулями. Но Ρ‚Π°ΠΊΠΎΠ΅ Π½Π΅ всгСда Π±Ρ‹Π²Π°Π΅Ρ‚.

Как Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π²ΠΎ Ρ„Π»Π΅ΡˆΠ΅ слСпок Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…. Или просто Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ надобности.

А Ρ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ рСгистры ΠΈ мСсто для стСка ΡΡ‡ΠΈΡ‚Π°ΡŽ пустой Ρ‚Ρ€Π°Ρ‚ΠΎΠΉ Ρ‚Π°ΠΊΡ‚ΠΎΠ² =) РСгистры Ρ‚Ρ‹ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ Π±ΡƒΠ΄Π΅ΡˆΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ Π΄Π΅Π»Π°, Π° стСк Ρƒ тСбя ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΠΈ ΠΏΡ€ΠΈ ростС ΠΏΠ΅Ρ€Π΅ΠΊΡ€ΠΎΠ΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ Π»Π΅Π²Ρ‹Π΅ значСния.

Ну Ρ‚Π°ΠΊ Π° Ρ‡Ρ‚ΠΎ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΌ Π·Π°Π±ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½ΡƒΠΆΡ‹Π½ΠΌΠΈ значСниями. ВсС ΠΏΡ€ΠΎΡ‰Π΅ Ρ‡Π΅ΠΌ слСпок памяти Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ.

По ΠΏΠΎΠ²ΠΎΠ΄Ρƒ рСгистров. Π”Π° Π²ΠΎΡ‚ Π²Ρ‡Π΅Ρ€Π° трахался с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ мСня Π½Π° Tiny2323 послС вырубания питания Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² рСгистрС Ρ‚ΠΎΡ€Ρ‡Π°Π»ΠΎ ΠΏΠΎ нСсколько ΠΌΠΈΠ½ΡƒΡ‚. Π’Ρ€ΡƒΠ±Π°ΡŽ МК β€” Π½Π° Ρ‚Π΅Π±Π΅ β€” ΠΌΠΈΠ³Π°Ρ‚ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ. МиганиС Ρƒ мСня зависило ΠΎΡ‚ состояния рСгистра R20.

Π‘Π°ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, Ρ‡Ρ‚ΠΎ Ρ‚Ρ‹ полагаСшь, Ρ‡Ρ‚ΠΎ Ρƒ тСбя Π² рСгистрах Π΅ΡΡ‚ΡŒ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” ΠΏΠΎΡ€ΠΎΡ‡Π΅Π½. БСйчас Ρ‚Ρ‹ Ρ‡ΠΈΡΡ‚ΠΈΡˆΡŒ всё Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ послС сброса ΠΈ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Но ΠΊΠΎΠ³Π΄Π° Ρ‚Π΅Π±Π΅ потрСбуСтся Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Ρ‚Ρ‹ ΠΎΠΏΡΡ‚ΡŒ ΡΡ‚ΠΎΠ»ΠΊΠ½Ρ‘ΡˆΡŒΡΡ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² рСгистрах Ρƒ тСбя мусор. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ сам ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ.
Π― Ρƒ сСбя для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ модуля ΠΏΠΈΡˆΡƒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ void xxxInit(void), которая ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅. И это ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ β€˜C’ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ стартС.

НС Π·Π°Π±Ρ‹Π²Π°ΠΉ, Ρ‡Ρ‚ΠΎ я ΠΏΠΈΡˆΡƒ Π½Π° асмС Ρƒ мСня часто рСгистры ΡŽΠ·Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ статичныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π’.Π΅. ΠΎΡ‡Π΅Π½ΡŒ часто ΠΊΠ°ΠΊΠΎΠΉ Π»ΠΈΠ±ΠΎ рСгистр ΡŽΠ·Π°Π΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ†Π΅Π»ΠΈ.

Π—Π½Π°ΡŽ. Π― Ρ‚ΠΎΠΆΠ΅ ΠΏΠΈΡˆΡƒ Π½Π° асмС. Но это тСбя Π½Π΅ освобоТдаСт ΠΎΡ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… =)

Π’ΡƒΡ‚ Ρ„ΠΈΡˆΠΊΠ° такая, ΠΊΠΎΠ³Π΄Π° Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΡˆΡŒ ΡƒΠΌΠΎΠ»Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚Ρ‹ Ρ‚Π΅Ρ€Π΅ΡΡˆΡŒ Π² понятности ΠΊΠΎΠ΄Π°.

Π‘Π΄Π΅Π»Π°ΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ явно, ΠΈ ΡƒΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΌ, Π½Π° этапС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ смоТСшь эту строчку Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ‚ΡŒ с ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ Β«// Π° ΠΎΠ½ΠΎ ΠΈ Ρ‚Π°ΠΊ ΡƒΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅Β». Π’ дальнСйшСм избавишь сСбя ΠΎΡ‚ Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ Π±ΠΎΠ»ΠΈ.

Π—Π°Π΄Π°Π½ΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΈΠ΄Π΅Ρ‚ΡŒ Π² подсознании, Π½Π° Ρ‡Π΅ΠΌ Π±Ρ‹ Π½Π΅ писал. Π’ этом ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΈ компиляторы сСмСйства ПаскалСй. НапримСр, Π² Π”Π΅Π»ΡŒΡ„ΠΈ компилятор постоянно ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π΅Ρ‚, Ссли какая-Ρ‚ΠΎ пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ использованиСм ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ задаСтся Π² кускС ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Ρ†ΠΈΠΊΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. Π‘ΠΈ Π² этом ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Π½Π΅ Ρ‚Π°ΠΊ строг, ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ пропускаСт, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ сносит Π±Π°ΡˆΠΊΡƒ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅.
Π’Ρ‡Π΅Ρ€Π° я Π½Π°Ρ‡Π°Π» ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΊΡƒ ΡƒΠΆΠ΅ для ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π±Π°ΠΌΠΏΠ΅Ρ€ΠΎΠ² своСго Ρ€ΠΎΠ±ΠΎΡ‚Π°, ΠΈ Π² самом Π½Π°Ρ‡Π°Π»Π΅, Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, сразу поставил кусок (Π’ Ρ…ΠΎΠ΄ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ Ρ‚ΠΎΠΆΠ΅):

я большС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ»ΡŽ ΠΏΠΎΠ΄ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ писишки. Π½Π° сях Π² основном.
ΠΏΡ€ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² ΠΎΠ±Ρ‰Π΅ΠΌ ΠΌΠΎΠ³Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ. Π²Π½Π°Ρ‡Π°Π»Π΅ Π½Π°Π΄ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ компилятор. ΠΊΠ°ΠΊ ΠΈ Ρ‡Ρ‚ΠΎ ΠΎΠ½ устанавливаСт ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ† β€” обнуляСтся Π»ΠΈ Π² Π½Ρ‘ΠΌ всё ΠΏΡ€ΠΈ стартС?

ΠΏΠΎΡ‚ΠΎΠΌ всС Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ β€” ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ. всС Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π² функциях β€” ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

я ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ понимаю, Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΡ‚ Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚ β€” ΠΊΠΎΠ³Π΄Π° Π² массив 1000 Π½Π° 1000 Π·Π°Π±ΠΈΠ²Π°ΡŽΡ‚ ΠΌΠ΅ΠΌΠΊΠΎΠΏΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ )

Π²ΠΎΠΎΠ±Ρ‰Π΅ΠΌ, инициализация Ρ‚ΠΎΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π² сСбС тонкости.

Π’ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… ΠΏΡ€ΠΈ сбросС ΠΈΠ»ΠΈ Ρ…ΠΎΠ»ΠΎΠ΄Π½ΠΎΠΌ стартС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ задаСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ бСзопасная конфигурация ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΈ Π² спСцрСгистрах, рСгистры ΠΆΠ΅ ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²ΠΊΠ° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΡ‡ΠΈΡ‰Π°ΡŽΡ‚ΡΡ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π² массовых Ρ‚ΠΈΠΏΠ°Ρ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². (Π‘Ρ€Π΅Π΄ΠΈ Ρ‚Π΅Ρ… PIC, ATMEL ΠΈ INTEL, ΠΏΡ€ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡ΠΈΡ‚Π°Π» ΠΈΠ»ΠΈ использовал сам, Ρ‚Π°ΠΊΠΈΡ… Π½Π΅ попадалось). Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ «БпасСниС ΡƒΡ‚ΠΎΠΏΠ°ΡŽΡ‰ΠΈΡ… β€” Π΄Π΅Π»ΠΎ Ρ€ΡƒΠΊ самих ΡƒΡ‚ΠΎΠΏΠ°ΡŽΡ‰ΠΈΡ…Β». ΠŸΡ€ΠΎΡΡ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠΉΡ‚ΠΈ Π² ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΡƒ Π½Π΅ ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π° самотСк, всС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅. Π‘Ρ€Π°Π·Ρƒ ΠΎΡ‚ΠΏΠ°Π΄Π΅Ρ‚ ΠΊΡƒΡ‡Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π° Π²Ρ‹ΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΠ²ΡˆΠ΅Π΅ΡΡ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ врСмя ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π° ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ Β«ΠΈΠ½Ρ‚Π΅Π»Π΅ΠΊΡ‚Π°Β» самой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

А Ρ€Π°Π·ΡŒΠ²Π΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π½Π΅ выполнится послС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· прСрывания INT0?

Выполнится, Π½ΠΎ ΠΌΠ½Π΅ Π½Π°Π΄ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° INT0

Π‘Π»Π°Π±ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ Π·Π°Ρ‡Π΅ΠΌ это Π½ΡƒΠΆΠ½ΠΎ. Бколько ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρƒ тСбя выполнялся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ INT0?

На ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ INT0 Ρƒ мСня повСшСн Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ дСвайса. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π½Π° сСбя ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Ρ€ΠΆΠΈΡ‚ Π΅Π³ΠΎ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ всю Π»ΠΎΠ³ΠΈΠΊΡƒ.

Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚ ΠΊΠ°ΠΊ Ρ€Π°Π· Π±Ρ‹ ΠΈ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹Π΅ прСрывания. Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ Π±Ρ‹Π»Π° ΡˆΡ‚ΡƒΠΊΠ°! ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½ΠΈΠΊΡ‚ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, ΠΎΠ½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΎΡ‡Π΅Π½ΡŒ сильно ΡƒΠΏΡ€ΠΎΡ‰Π°Π»ΠΈ. НапримСр, Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ искаТСний ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π² 4 Ρ‚Π΅Π»Π΅Π³Ρ€Π°Ρ„Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»Π°Ρ…, Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, с ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π²Ρ‹Π΄Π°Ρ‡Π΅ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², ΠΈ обслуТиваниСм Π΅Ρ‰Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΊΠ°Π½Π°Π»Π° β€” Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π° «диспСтчСра», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π² Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π² +-1%, Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ для Ρ…ΡƒΠ΄ΡˆΠ΅Π³ΠΎ случая (Ссли Π²ΠΎ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° поступали прСрывания ΠΎΡ‚ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… 4), ΡƒΠ»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π΄ΠΎ 200мксСк. МнС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ самыС Ρ…ΡƒΠ΄ΡˆΠΈΠ΅ случаи максимум Π·Π° 160! (Π½Π° 580 процСссорС с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ 580ВН59). ΠŸΡ€Π°Π²Π΄Π°, ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΎΠΉ схСмкой (Π½Π° 555Π›ΠŸ5), ΡΡ€Π°Π²Π½ΠΈΠ²Π°Π²ΡˆΠ΅ΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ прСрывания обновлял Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ рСгистрС, ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠ΅ΠΉ запрос прСрывания ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ полярности Π² любом ΠΈΠ· ΠΊΠ°Π½Π°Π»ΠΎΠ². ΠœΠ΅Ρ€ΡΠ»ΠΎΡΡŒ смСщСниС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…oΠ΄Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π·Π½Π°ΠΊΠ΅, с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ максимального ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎ + ΠΈ ΠΏΠΎ β€” для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠ°Π½Π°Π»ΠΎΠ², с пСрСсчСтом Π² ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Ρ‹. Π’ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π΄ΠΎ сих ΠΏΠΎΡ€ Π² Ρ€Π°Π±ΠΎΡ‚Π΅, ΠΏΡ€Π°Π²Π΄Π°, ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ Π² 573Π Π€5 ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ (заряд стСк). Π‘Π΄Π΅Π»Π°Π» я Π΅Π³ΠΎ Π³ΠΎΠ΄Ρƒ Π² 86, Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±Ρ‹Π»Π° ΠΎΠΊΠΎΠ»ΠΎ 3600 Π±Π°ΠΉΡ‚. ВсСго Π½Π° ΠΏΠ»Π°Ρ‚Π΅ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ установлСно Π΄ΠΎ 8ΠΊΠ±(4ΡˆΡ‚ Π Π€5 ΠΏΠΎ 2ΠΊ). ΠžΠ—Π£ Π±Ρ‹Π»ΠΎ 4 ΠΊΠ±.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ²: Ссли стираСтся Ρ„Π»Π΅Ρˆ-Π‘Π˜ΠžΠ‘, машина ΡƒΠΌΠΈΡ€Π°Π΅Ρ‚.
Π§Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½Π΅ происходило (Π° особСнно это нСприятно, Ссли микросхСма Π½Π° ΠΏΠ°ΠΉΠΊΠ΅, Π° Π½Π΅ Π½Π° ΠΊΡ€ΠΎΠ²Π°Ρ‚ΠΈ), сСйчас Π΄Π΅Π»Π°ΡŽΡ‚ Π½Π΅ΡΡ‚ΠΈΡ€Π°Π΅ΠΌΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ записана ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° восстановлСния Π‘Π˜ΠžΠ‘ с внСшнСго носитСля (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρƒ Асусов сдСлано Ρ‚Π°ΠΊ).

Caша писал:
И Π΅Ρ‰Π΅ – Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„Π»ΡΡˆ-ΠΏΠ°ΠΌΡΡ‚ΡŒ?Π― знаю Ρ‚Π°ΠΊΠΈΠ΅:
EEPROM – 24C04,93C46 ΠΈ Ρ‚.ΠΏ.
EPROM(ΠŸΠ—Π£) – 27C512,27C040 ΠΈ Ρ‚.ΠΏ.
Π§Ρ‚ΠΎ ΠΈΠ· этого Ρ„Π»ΡΡˆ?Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ROM ΠΈ RAM?Π’ ΠΎΠ±Ρ‰Π΅ΠΌ я запутался Π² Ρ‚Ρ€Π΅Ρ… соснах.

ΠŸΠ—Π£ Π±Ρ‹Π²Π°ΡŽΡ‚ масочныС (Ρ‚.Π΅., Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π·Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π² процСссС изготовлСния кристалла), с ΠΏΡ€ΠΎΠΆΠΈΠ³Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠ°ΠΌΠΈ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·), элСктричСски ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ с ΡƒΠ»ΡŒΡ‚Ρ€Π°Ρ„ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΌ стираниСм (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ нСсколько Ρ€Π°Π·, EPROM), элСктричСски ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ (ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π΅ вынимая ΠΈΠ· Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, EEPROM).

ΠŸΠ°ΠΌΡΡ‚ΡŒ с ΠΏΡ€ΠΎΠΆΠΈΠ³Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠ°ΠΌΠΈ сущСствуСт Π² основном Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… логичСских ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (ΠŸΠ›Πœ), слоТных Π΄Π΅ΡˆΠΈΡ„Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².

ΠŸΠ°ΠΌΡΡ‚ΡŒ с Π£Π€ стираниСм программируСтся нулями, Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ сразу Π²ΠΎ всС ячСйки, ΠΏΡ€ΠΈ освСщСнии Π£Π€ Π»Π°ΠΌΠΏΠΎΠΉ.

Π’ EEPROM ΠΈ Π½ΡƒΠ»ΠΈ, ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ элСктричСски.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти

ВсС Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Π²ΡΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ микросхСмы ΠΌΠΎΠ» это микропроцСссор, Π° Π½Π° транзисторах ΠΈΠ»ΠΈ Π»Π°ΠΌΠΏΠ°Ρ… это процСссоры.

На самом Π΄Π΅Π»Π΅ Π΄Π΅Π»ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. Если процСссор «Π·Π°Ρ‚ΠΎΡ‡Π΅Π½» Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚ΠΎ это микропроцСссор. А структурно процСссор ΠΈ микропроцСссор ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ ΠΈ тСхнологичСски Ρ‚ΠΎΠΆΠ΅.JulyP

ВсС Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Π²ΡΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ микросхСмы ΠΌΠΎΠ» это микропроцСссор, Π° Π½Π° транзисторах ΠΈΠ»ΠΈ Π»Π°ΠΌΠΏΠ°Ρ… это процСссоры.

На самом Π΄Π΅Π»Π΅ Π΄Π΅Π»ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. Если процСссор «Π·Π°Ρ‚ΠΎΡ‡Π΅Π½» Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚ΠΎ это микропроцСссор. А структурно процСссор ΠΈ микропроцСссор ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ ΠΈ тСхнологичСски Ρ‚ΠΎΠΆΠ΅.

Π‘Ρ‚Ρ€Π°Π½Π½ΠΎΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅.
ОсобСнно ΠΏΡ€ΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ.

Если структурно ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹, Ρ‚ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ микропроцСссора?
Π‘Ρ‹Π»ΠΈ микропроцСссоры ΠΈ с внСшним ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄ΠΎΠΌ.

Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, сам спор довольно схоластичСн.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти

ΠžΡ‡Π΅Π½ΡŒ часто ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ хранятся Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. А Π²ΠΎ внСшнСй памяти хранится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚Π΅Π»ΠΈΠΊ.

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ нСльзя Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ внСшнСй памяти ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. ΠœΠΎΠΆΠ΅Ρ‚ просто Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΎΠΉ?Caша

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠΊΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, находится ΠŸΠ—Π£, ΠΈ ΠΎΠ½ΠΎ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ»ΠΈ масочным, ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ, ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ, ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ установкой Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ чтСния ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΊΡ€ΠΎΠΌΠ΅ микропроцСссора Π΅Ρ‰Π΅ содСрТит устройства Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ памяти ΠΈ всяких ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ Ρ‚.Π΄. Π’ΠΎΡ‚ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ основС сдСлан ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ρ‚Π΅Π»Π΅Π²ΠΈΠ·ΠΎΡ€Π° ΠΈ для ΠΊΠ°ΠΊΠΈΡ… шасси ΠΎΠ½ спроСктирован, Ρ‚ΠΎ ΠΈ получаСтся содСрТит ΠΎΠ½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΈΠΌ мСста Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΠ»ΠΎ ΠΈ Π½Π°Π΄ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти

ВовсС Π½Π΅ Ρ‚Π°ΠΊ, Ρ‡Π°ΡˆΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚, Π½ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚. Π― пытался ΠΏΡ€ΠΎΡ‰Π΅, Π½Π° ΠΏΠ°Π»ΡŒΡ†Π°Ρ…, ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ. ΠŸΠΎΡ‚ΠΎΠΌ сам Π΄ΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈ ΠΏΠΎΠΉΠΌΠ΅Ρ‚.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Вся ΠΏΡ€Π°Π²Π΄Π° ΠΎΠ± ΠžΠ‘Π Π’. Π‘Ρ‚Π°Ρ‚ΡŒΡ #30. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ запуска Nucleus SE

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти

Π£ любой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ запуска. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ систСмы свой. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ говорят, Ρ‡Ρ‚ΠΎ систСма загруТаСтся (Π°Π½Π³Π». boot), это сокращСниС ΠΎΡ‚ Β«bootstrapΒ», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ отсылаСт ΠΊ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Β«pull oneself over a fence by one’s bootstrapsΒ» (ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ³Ρ€Π°Π΄Ρƒ, потянув сСбя Π·Π° Ρ€Π΅ΠΌΠ΅ΡˆΠΊΠΈ Π½Π° ΠΎΠ±ΡƒΠ²ΠΈ), Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ описываСт, ΠΊΠ°ΠΊ систСма ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· состояния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π° пустотой (ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: Ссли совсСм Ρ‚ΠΎΡ‡Π½ΠΎ, Ρ‚ΠΎ мусором) ΠΊ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ загруТаСтся нСбольшая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΠŸΠ—Π£. Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ ΠΎΠ½Π° ΠΌΠΎΠ³Π»Π° Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π­Ρ‚ΠΎΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ считывал Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, которая ΡƒΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π»Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму. БСгодня Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ загруТаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: ΠΊΠΎΠ΄ Π² BIOS ΠΈΡ‰Π΅Ρ‚ устройства (ТСсткиС диски, CD-ROM, USB-Ρ„Π»Π΅ΡˆΠΊΠΈ), с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ, послС Ρ‡Π΅Π³ΠΎ загруТаСтся опСрационная систСма.

ОБ для встраиваСмых систСм Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. И Π² самом Π΄Π΅Π»Π΅, встраиваСмыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π½Π° основС Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Ρ‚Π°ΠΊ ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ. Но Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ «классичСских» ΠžΠ‘Π Π’ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ простой (Π°, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ быстрый) способ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма – Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Если это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΡƒΠΆΠ΅ находится Π² памяти (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠŸΠ—Π£), Ρ‚ΠΎ трСбуСтся всСго лишь ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ ЦП послС сброса Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π»Π°ΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ОБ. ИмСнно Ρ‚Π°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠžΠ‘Π Π’, Π² Ρ‚ΠΎΠΌ числС ΠΈ Nucleus SE (ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: ΠΈ ΠΊ нашСй ΠžΠ‘Π Π’ МАКБ это Ρ‚ΠΎΠΆΠ΅ относится).

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ срСдств Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ встраиваСмого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ запуска для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сброса ЦП ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ (Entry Point) Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main(). РаспространяСмый ΠΊΠΎΠ΄ Nucleus SE Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»Π° с этим процСссом, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ максимально ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ. ВмСсто этого, ΠΎΠ½ содСрТит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ main(), которая Π±Π΅Ρ€Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ ЦП ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ запускаСт ОБ. Π­Ρ‚Π° функция Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрСна Π½ΠΈΠΆΠ΅.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ памяти

ОбъявлСния всСх статичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ΄Π΅ Nucleus SE Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с прСфикса ROM ΠΈΠ»ΠΈ RAM, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Π³Π΄Π΅ ΠΈΡ… слСдуСт Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ. Π­Ρ‚ΠΈ Π΄Π²Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #define ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² Ρ„Π°ΠΉΠ»Π΅ nuse_types.h ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ сконфигурированы с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ особСнностСй ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° инструмСнтов для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (компилятор ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ). ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ROM Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ const (ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: ΠΈΠ· ΠΌΠΎΠ΅Π³ΠΎ ΠΎΠΏΡ‹Ρ‚Π°, const – Π½Π΅ всСгда достаточно, Π»ΡƒΡ‡ΡˆΠ΅ – static const), Π° RAM – пустоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ВсС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ROM ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ статичСски, Ρ‡Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ RAM Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ статичСски (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ настроСны Π½Π° автоматичСскоС ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· ΠŸΠ—Π£ Π² ΠžΠ—Π£); явный ΠΊΠΎΠ΄ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описан Π½ΠΈΠΆΠ΅.

Nucleus SE Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ «константных» Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠžΠ—Π£, которая ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² Π΄Π΅Ρ„ΠΈΡ†ΠΈΡ‚Π΅ Ρƒ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… систСм. ВмСсто использования слоТных структур Π΄Π°Π½Π½Ρ‹Ρ… для описания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ядра ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π°Π±ΠΎΡ€Ρ‹ Ρ‚Π°Π±Π»ΠΈΡ† (массивов), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠŸΠ—Π£ ΠΈΠ»ΠΈ ΠžΠ—Π£, Π² зависимости ΠΎΡ‚ нСобходимости.

Ѐункция main()

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main() Nucleus SE:

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ довольно проста:

Ѐункция NUSE_Init()

Π­Ρ‚Π° функция ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ядра ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ… Nucleus SE.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π·Π°Π΄Π°Ρ‡

Если ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Run to Completion Π½Π΅ Π±Ρ‹Π» сконфигурирован, инициализируСтся контСкстный Π±Π»ΠΎΠΊ для Π·Π°Π΄Π°Ρ‡ΠΈ NUSE_Task_Context[task][]. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ элСмСнтов Π½Π΅ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ значСния, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ рСгистры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ запускС Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ (Freescale ColdFire) Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Nucleus SE (Π½ΠΎ ΠΈ Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… процСссоров ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ) послСдниС Ρ‚Ρ€ΠΈ записи Π·Π°Π΄Π°Π½Ρ‹ явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Если Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° приостановка Π·Π°Π΄Π°Ρ‡ΠΈ (Ρ‚.Π΅. слуТСбный Π²Ρ‹Π·ΠΎΠ² API NUSE_Task_Sleep()), счСтчику Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π° Π·Π°Π΄Π°Ρ‡ΠΈ (NUSE_Task_Timeout_Counter[task]) присваиваСтся Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Если Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ состояниС оТидания Π·Π°Π΄Π°Ρ‡ΠΈ (task suspend), статус Π·Π°Π΄Π°Ρ‡ΠΈ (NUSE_Task_Status[task]) инициализируСтся. Π­Ρ‚ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ задаСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (Π² NUSE_Task_Initial_State[task]), Ссли Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ состояния Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ присваиваСтся NUSE_READY.

Если Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ счСтчик ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ, счСтчику Π·Π°Π΄Π°Ρ‡ΠΈ (NUSE_Task_Schedule_Count[task]) присваиваСтся Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡƒΠ»ΠΎΠ² Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ NUSE_Init_Partition_Pool():

Β«Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒΒ» счСтчику ΠΏΡƒΠ»Π° Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² (NUSE_Partition_Pool__Partition_Used[pool]) присваиваСтся Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Если Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡, счСтчику Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΏΡƒΠ»ΠΎΠ² Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² (NUSE_Partition_Pool_Blocking_Count[pool]) присваиваСтся Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… ящиков

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ NUSE_Init_Mailbox():

Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… ящиков (NUSE_Mailbox_Data[mailbox]) присваиваСтся Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈ состояниС (NUSE_Mailbox_Status[mailbox]) становится Β«Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΒ» (Ρ‚.Π΅. Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ).

Если Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡, счСтчику Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… ящиков (NUSE_Mailbox_Blocking_Count[mailbox]) присваиваСтся Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ NUSE_Init_Queue():

УказатСлям Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ (Π½Π° самом Π΄Π΅Π»Π΅, это индСксы NUSE_Queue_Head[queue] ΠΈ NUSE_Queue_Tail[queue]) ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ значСния, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ области Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ (Ρ‚.Π΅. ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅). Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊΡƒ элСмСнтов Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ (NUSE_Queue_Items[queue]) Ρ‚Π°ΠΊΠΆΠ΅ присваиваСтся Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Если Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡, счСтчику Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ (NUSE_Queue_Blocking_Count[queue]) присваиваСтся Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠ°Π½Π°Π»ΠΎΠ²

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ NUSE_Init_Pipe():

УказатСлям Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† ΠΊΠ°Π½Π°Π»Π° (Π½Π° самом Π΄Π΅Π»Π΅, это индСксы – NUSE_Pipe_Head[pipe] ΠΈ NUSE_Pipe_Tail[pipe]) присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ области Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»Π° (Ρ‚.Π΅. ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅). Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊΡƒ элСмСнтов Π² ΠΊΠ°Π½Π°Π»Π΅ (NUSE_Pipe_Items[pipe]) Ρ‚Π°ΠΊΠΆΠ΅ присваиваСтся Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Если Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡, счСтчику Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΊΠ°Π½Π°Π»Π° (NUSE_Pipe_Blocking_Count[pipe]) присваиваСтся Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ сСмафоров

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ NUSE_Init_Semaphore():

Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ сСмафоров (NUSE_Semaphore_Counter[semaphore]) инициализируСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (NUSE_Semaphore_Initial_Value[semaphore]).

Если Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡, счСтчику Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ сСмафора (NUSE_Semaphore_Blocking_Count[semaphore]) присваиваСтся Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π³Ρ€ΡƒΠΏΠΏ событий

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ NUSE_Init_Event_Group():

Π€Π»Π°Π³ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ событий ΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ, Ρ‚.Π΅. NUSE_Event_Group_Data[group] присваиваСтся Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Если Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡, счСтчику Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ„Π»Π°Π³ΠΎΠ² событий (NUSE_Event_Group_Blocking_Count[group]) присваиваСтся Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ²

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ NUSE_Init_Timer();

БостояниС Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° (NUSE_Timer_Status[timer]) устанавливаСтся Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅Β», Ρ‚.Π΅. FALSE.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ отсчСта (NUSE_Timer_Value[timer]) инициализируСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (NUSE_Timer_Initial_Time[timer]).

Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΉ (NUSE_Timer_Expirations_Counter[timer]) присваиваСтся Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π° прилоТСния

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ структуры Π΄Π°Π½Π½Ρ‹Ρ… Nucleus SE Π±Ρ‹Π»ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ прилоТСния Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° выполнСния Π·Π°Π΄Π°Ρ‡ΠΈ. Π­Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π·Π°Π΄Π°Ρ‡:

Π£ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² API Π΅ΡΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅: всС дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ приводят ΠΊ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°, Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, приостановка/Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡). Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ NUSE_Task_State Π±Ρ‹Π»ΠΎ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NUSE_STARTUP_CONTEXT, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅.

Запуск ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ инициализация Π±Ρ‹Π»Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°, остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π° прилоТСния – Π·Π°Π΄Π°Ρ‡. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠ² Π±Ρ‹Π»Π° ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описана Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… статСй (#9), Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ здСсь потрСбуСтся лишь ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΈΡ‚ΠΎΠ³.
ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… шагов ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ диагностика ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ошибок.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π Π°Π±ΠΎΡ‚Π° с EEPROM ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ инициализация памяти

Π’ΠΎΡ‚ ΠΈ Π΄ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ ΠΌΡ‹ Π΄ΠΎ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° памяти, доступного Π½Π° Arduino: EEPROM (Π°Π½Π³Π». Electrically Erasable Programmable Read-Only Memory – элСктричСски стираСмоС ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ постоянноС Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰Π΅Π΅ устройство (Π­Π‘ΠŸΠŸΠ—Π£)), ΠΎΠ½Π° ΠΆΠ΅ энСргонСзависимая ΠΏΠ°ΠΌΡΡ‚ΡŒ. Вспомним ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ памяти, Flash ΠΈ SRAM, ΠΈ ΠΈΡ… возмоТности ΠΏΠΎ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…:

Π’ΠΈΠΏΠ§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹Π—Π°ΠΏΠΈΡΡŒ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅
FlashΠ”Π°, PROGMEMМоТно, Π½ΠΎ слоТноНСт
SRAMΠ”Π°Π”Π°Π”Π°
EEPROMДаДаНСт

ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами: EEPROM – ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΈΠ· Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅ΠΉΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚.Π΅. ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎ врСмя выполнСния Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΡƒΠ΄Π° Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ эти Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ МК. ΠšΡ€ΡƒΡ‚ΠΎ? ΠšΡ€ΡƒΡ‚ΠΎ. Π—Π°Ρ‡Π΅ΠΌ?

ЕдинствСнный Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚: EEPROM ΠΈΠΌΠ΅Π΅Ρ‚ рСсурс ΠΏΠΎ количСству пСрСзаписи ячССк. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ 100 000 Ρ†ΠΈΠΊΠ»ΠΎΠ² записи ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки, ΠΏΠΎ Ρ„Π°ΠΊΡ‚Ρƒ это количСство зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‡ΠΈΠΏΠ° ΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π½Ρ‹Ρ… условий, нСзависимыС тСсты ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ 3-6 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Ρ†ΠΈΠΊΠ»ΠΎΠ² пСрСзаписи ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠ½Π°Ρ‚Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ Π΄ΠΎ появлСния ΠΏΠ΅Ρ€Π²ΠΎΠΉ ошибки, Ρ‚.Π΅. заявлСнныС 100 000 взяты с ΠΎΡ‡Π΅Π½ΡŒ большим запасом. Но Π΅ΡΡ‚ΡŒ нСбольшоС ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠ΅ – ΠΏΡ€ΠΈ заявлСнных 100 000 Ρ†ΠΈΠΊΠ»Π°Ρ… пСрСзаписи гарантируСтся ΡΠΎΡ…Ρ€Π°Π½Π½ΠΎΡΡ‚ΡŒ записанных Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 100 Π»Π΅Ρ‚ ΠΏΡ€ΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ 24Β°C, Ссли ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρƒ – Π΄Π°Π½Π½Ρ‹Π΅ испортятся быстрСС. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя количСство Ρ‡Ρ‚Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎ.

EEPROM прСдставляСт собой ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· элСмСнтарных ячССк с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π² ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚ (ΠΊΠ°ΠΊ SRAM). ΠžΠ±ΡŠΡ‘ΠΌ EEPROM Ρ€Π°Π·Π½Ρ‹ΠΉ Ρƒ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ МК:

Основная Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с EEPROM – Π½Π΅ Π½Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с адрСсами, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π°ΠΉΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ свой адрСс. Если Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π΄Π²ΡƒΡ…Π±Π°ΠΉΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚ΠΎ ΠΎΠ½ΠΈ Π·Π°ΠΉΠΌΡƒΡ‚ Π΄Π²Π° Π±Π°ΠΉΡ‚Π°, ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎ адрСсу ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ +2 ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ΠΈ β€œΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠ°ΡŽΡ‚ΡΡβ€. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ хранСния Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, располоТСнных Π² памяти ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ (Π² скобках я ΠΏΠΈΡˆΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ увСличится адрСс для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ β€œΠ±Π»ΠΎΠΊΠ°β€):

Π’Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚: всС ячСйки ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (Ρƒ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‡ΠΈΠΏΠ°) 255.

Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с EEPROM (врСмя Π½Π΅ зависит ΠΎΡ‚ частоты систСмного ΠΊΠ»ΠΎΠΊΠ°):

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ искаТСния ΠΏΡ€ΠΈ записи Π΄Π°Π½Π½Ρ‹Ρ… Π² EEPROM ΠΏΡ€ΠΈ слишком Π½ΠΈΠ·ΠΊΠΎΠΌ VCC (напряТСнии питания), Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ BOD ΠΈΠ»ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ напряТСниС ΠΏΠ΅Ρ€Π΅Π΄ записью.

ΠŸΡ€ΠΈ использовании Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π½Π° 8 ΠœΠ“Ρ†, Π΅Π³ΠΎ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΡˆΠ΅ 10% (7.2-8.8 ΠœΠ“Ρ†), ΠΈΠ½Π°Ρ‡Π΅ запись Π² EEPROM ΠΈΠ»ΠΈ FLASH скорСС всСго Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ с ошибками. БоотвСтствСнно всС Ρ€Π°Π·Π³ΠΎΠ½Ρ‹ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΊΠ»ΠΎΠΊΠ° нСдопустимы ΠΏΡ€ΠΈ записи EEPROM ΠΈΠ»ΠΈ FLASH.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с EEPROM Π² срСдС Arduino Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹Ρ… Π΄Π²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, вторая являСтся Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ β€œΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉβ€ для ΠΏΠ΅Ρ€Π²ΠΎΠΉ. Рассмотрим ΠΈΡ… ΠΎΠ±Π΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² β€œΡ‡ΡƒΠΆΠΎΠΌ скСтчС” ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒΡΡ всё Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Π΄Π° ΠΈ совмСстноС использованиС этих Π΄Π²ΡƒΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с EEPROM нСвСроятно ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° avr/eeprom.h

Π—Π°ΠΏΠΈΡΡŒ:

ОбновлСниС:

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹:

Рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ происходит запись ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π°Π·Π½Ρ‹Π΅ ячСйки:

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ массивы:

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ avr/eeprom.h Π΅ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ инструмСнт – EEMEM, ΠΎΠ½ позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π°Π΄Ρ€Π΅ΡΠ°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡƒΡ‚Ρ‘ΠΌ создания ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ присвоит компилятор. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ запишСм Π² EEPROM нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, структуру ΠΈ массив, Ρ€Π°Π·Π΄Π°Π² ΠΈΠΌ автоматичСски адрСса. Π’Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚! АдрСса Π·Π°Π΄Π°ΡŽΡ‚ΡΡ снизу Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ порядку объявлСния EEMEM, я ΠΏΠΎΠ΄ΠΏΠΈΡˆΡƒ ΠΈΡ… Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

EEMEM сам Ρ€Π°Π·Π΄Π°Ρ‘Ρ‚ адрСса, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚: Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ мСста Π² памяти, Ρ‚.Π΅. нумСрация адрСсов Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ, Π±Π΅Π· создания EEMEM β€œΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…β€, Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ мСньшС памяти! Π”Π°Π²Π°ΠΉΡ‚Π΅ вСрнёмся ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅ΠΌ Π΅Π³ΠΎ с EEMEM. ΠŸΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ адрСса Ρ‡Π΅Ρ€Π΅Π· EEMEM Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ взятия адрСса &

Ну ΠΈ напослСдок, запись ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· EEMEM. АдрСс придётся ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² (const void*) Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ β€œΠ΄Π°Π½Π½Ρ‹Π΅β€ для хранСния Π² EEPROM прямо ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π΅ думая ΠΎΠ± адрСсах. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π°Π΄ старыми, Ρ‡Ρ‚ΠΎΠ±Ρ‹ адрСсация Π½Π΅ сбивалась (напомню, адрСсация ΠΈΠ΄Ρ‘Ρ‚ снизу Π²Π²Π΅Ρ€Ρ…, начиная с нуля).

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° EEPROM.h

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° EEPROM.h ΠΈΠ΄Ρ‘Ρ‚ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ с ядром Arduino ΠΈ являСтся стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ. По сути EEPROM.h – это удобная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° для avr/eeprom.h, Ρ‡ΡƒΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰Π°Ρ Π΅Ρ‘ возмоТности ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰Π°Ρ использованиС. Π’Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚: ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ Π² скСтч EEPROM.h ΠΌΡ‹ автоматичСски ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ avr/eeprom.h ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΅Ρ‘ Ρ„ΠΈΡˆΠΊΠ°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ EEMEM. Рассмотрим инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°:

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ avr/eeprom.h Ρƒ нас Π½Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… инструмСнтов для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΎΡ‚ byte, ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ write/update/read для float/long/int ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ. Но Π·Π°Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ всСядный put/get, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ! Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π΄Π°Ρ‘Ρ‚ avr/eeprom.h, которая ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ автоматичСски с EEPROM.h. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ/записью Π±Π°ΠΉΡ‚ΠΎΠ²:

Π“ΠΎΡ€Π°Π·Π΄ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Ρ‡Π΅ΠΌ write_block ΠΈ read_block, Π½Π΅ ΠΏΡ€Π°Π²Π΄Π° Π»ΠΈ? Put ΠΈ get сами ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ Ρ‚ΠΈΠΏΡ‹ ΠΈ сами ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΡ‡Π΅Π½ΡŒ приятно. Они Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠ°ΠΊ с массивами, Ρ‚Π°ΠΊ ΠΈ со структурами.

EEPROM.h + avr/eeprom.h

Ну ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ всС прСимущСства ΠΎΠ±Π΅ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π°Π΄Ρ€Π΅ΡΠ°Ρ†ΠΈΡŽ EEMEM ΠΈ put/get. Рассмотрим Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, вмСсто Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ задания адрСсов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ EEMEM, Π½ΠΎ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ придётся привСсти ΠΊ цСлочислСнному Ρ‚ΠΈΠΏΡƒ, сначала взяв ΠΎΡ‚ Π½Π΅Π³ΠΎ адрСс, Ρ‚.Π΅. (int)&адрСс_Π΅Π΅ΠΌΠ΅ΠΌ

Π‘ возмоТностями Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

Π Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ происходит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΡΡ€ΠΊΠΎΡΡ‚ΡŒΡŽ свСтодиода, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊ ШИМ ΠΏΠΈΠ½Ρƒ. УстановлСнная ΡΡ€ΠΊΠΎΡΡ‚ΡŒ сохраняСтся Π² EEPROM, Ρ‚.Π΅. ΠΏΡ€ΠΈ пСрСзапускС устройства Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΡΡ€ΠΊΠΎΡΡ‚ΡŒ, установлСнная послСдний Ρ€Π°Π·. Для опроса ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° GyverButton. Для Π½Π°Ρ‡Π°Π»Π° посмотритС Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π³Π΄Π΅ установлСнная ΡΡ€ΠΊΠΎΡΡ‚ΡŒ Π½Π΅ сохраняСтся. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡ΡƒΡ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ это Π½Π΅ являСтся Ρ†Π΅Π»ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΡ€ΠΎΠΊΠ°.

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ‚Ρ€ΡŽΠΊΠΈ

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ

Под ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ я имСю Π² Π²ΠΈΠ΄Ρƒ установку Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ячССк Π² EEPROM β€œΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽβ€ Π²ΠΎ врСмя ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ запуска устройства. Π’ рассмотрСнном Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ дСйствовали Π² Ρ‚Π°ΠΊΠΎΠΌ порядкС:

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС ΠΊΠΎΠ΄Π° (ΠΈ ΠΏΡ€ΠΈ всСх Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ…, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² ячСйку Π½ΠΈΡ‡Π΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π½Π΅ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ) пСрСмСнная ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ Π² EEPROM ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ устройству, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ячСйка Ρ…Ρ€Π°Π½ΠΈΡ‚ Π½ΠΎΠΌΠ΅Ρ€ Ρ€Π΅ΠΆΠΈΠΌΠ°, ΠΏΠΎ Π·Π°Π΄ΡƒΠΌΠΊΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° – ΠΎΡ‚ 0 Π΄ΠΎ 5, Π° ΠΈΠ· EEPROM ΠΌΡ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ 255. НСпорядок! ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ EEPROM Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ устройство Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, для этого Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ этот самый ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ запуск. МоТно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΠΏΡ€ΠΎΡˆΠΈΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π·Π°Π±ΡŒΡ‘Ρ‚ EEPROM Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΎΡˆΠΈΡ‚ΡŒ ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ это ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ, вСдь количСство сохраняСмых Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, поэтому ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ:

Рассмотрим Π½Π° всё Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ со свСтодиодом ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ:

Бброс Π΄ΠΎ β€œΠ·Π°Π²ΠΎΠ΄ΡΠΊΠΈΡ…β€

Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ

Как я писал Π²Ρ‹ΡˆΠ΅, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с EEPROM составляСт:

ΠŸΡ€ΠΈ большом ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ячСйку вмСсто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‚.Π΅. Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ с Π²Π°ΠΌΠΈ рассматривали ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ EEPROM читался Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΈ дальнСйшая Ρ€Π°Π±ΠΎΡ‚Π° происходила ΡƒΠΆΠ΅ с Π½Π΅ΠΉ. ΠŸΡ€ΠΈ сильной Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΌΠΎΠΆΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· EEPROM, вСдь это Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π½ΠΈΡ‡Ρ‚ΠΎΠΆΠ½ΠΎ ΠΌΠ°Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. А Π²ΠΎΡ‚ с записью всё Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ…ΡƒΠΆΠ΅, Ρ‚Π°ΠΌ Ρ†Π΅Π»Ρ‹Ρ… 3.3 мс. НапримСр Ρ‚Π°ΠΊ:

Для измСнСния значСния придётся ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ячСйку, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΈ снова Π² Π½Π΅Ρ‘ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ. Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Ρ…Π°ΠΊ: ΠΌΠΎΠΆΠ½ΠΎ ввСсти макросы Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ макросы, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΡƒΡ‚ΡŒ быстрСС ΠΈ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅, Ρ‚.Π΅. строка SET_MODE(3) Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ 3 Π² ячСйку 0

УмСньшСниС износа

ВаТная Ρ‚Π΅ΠΌΠ°: ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ износа ячССк частыми пСрСзаписями. Π‘ΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ, интСрСсных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для Π½ΠΈΡ… – Ρ‚ΠΎΠΆΠ΅. Рассмотрим ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ – всё Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ со свСтодиодом ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ. Π”Π΅Π»Π°Ρ‚ΡŒ Π±ΡƒΠ΄Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли послС послСднСго наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΡ€ΠΎΡˆΠ»ΠΎ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π½Π°ΠΌ понадобится Ρ‚Π°ΠΉΠΌΠ΅Ρ€ (Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ Π½Π° millis), ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒΡΡ, Π° ΠΏΡ€ΠΈ срабатывании Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² EEPROM. Π’Π°ΠΊΠΆΠ΅ понадобится Ρ„Π»Π°Π³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎ записи ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Алгоритм Ρ‚Π°ΠΊΠΎΠΉ:

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° всё Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ износа ячССк EEPROM ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ свою ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. Π•ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ EEPROMWearLevel. Π•ΡΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ интСрСсная ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π° Π₯Π°Π±Ρ€Π΅, Ρ‚Π°ΠΌ рассмотрСно Π΅Ρ‰Ρ‘ нСсколько Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ Π΄Π°Π½Ρ‹ ссылки Π½Π° Π΅Ρ‰Ρ‘ большСС ΠΈΡ… количСство.

Π’ΠΈΠ΄Π΅ΠΎ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *