Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «ВстраиваСмыС систСмы. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… сСмСйства 68HC12/HCS12 с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ языка Π‘Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 24

Автор Π‘Ρ‚ΠΈΠ²Π΅Π½ Π‘Π°Ρ€Ρ€Π΅Ρ‚Ρ‚

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

1 void main(void)

2 {

3  char *ptr;

4  static char message[] = "What a wonderful day!";

5  ptr = message;

6  printf("%s\n", ptr);

7 }

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ пСрСмСнная ptr Π±Ρ‹Π»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ для ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° char. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ пСрСмСнная ptr Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ 16 разрядный адрСс ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’ строкС 4 ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±Ρ‹Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ массив ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… message. Π­Ρ‚ΠΎΡ‚ массив содСрТит 22 элСмСнта: 21 символ Π² ΠΊΠΎΠ΄Π°Ρ… ASCII ΠΈ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° ΠΊΠΎΠ½Ρ†Π° строки. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² строкС 5 ΠΈΠΌΠ΅Π΅Ρ‚ своСй Ρ†Π΅Π»ΡŒΡŽ запись Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ptr Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ адрСса массива message, Ρ‚.Π΅. адрСса символа Β«WΒ». Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, записанноС Π² строкС 6, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° символа, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ указатСля ptr. Π’ строкС 5 Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записано Π΄Ρ€ΡƒΠ³ΠΎΠ΅, Π±ΠΎΠ»Π΅Π΅ понятноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

ptr = &message[0];

Π’ этом Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ символ Β«&Β» выполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ взятия адрСса ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта массива message. И ΠΈΠΌΠ΅Π½Π½ΠΎ эта функция Π±Ρ‹Π»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π°ΠΌΠΈ Π² строкС 5 исходного ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.

ВыполняСмоС Π² рассмотрСнном Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ дСйствиС, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΎ Π½Π° Π‘ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π±Π΅Π· использования указатСля:

void main(void) {

 static char message[] = "What a wonderful day!";

 int i;

 for (i=0; i<21; i++) putchar(message[i]);

}

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ внутрСнняя пСрСмСнная Ρ†ΠΈΠΊΠ»Π° i ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ значСния ΠΎΡ‚ 0 Π΄ΠΎ 20 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, выводя ΠΏΡ€ΠΈ этом Π½Π° экран 21 символ. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ способ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран строки символов ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΈΠΌ сущСствСнным нСдостатком. ΠŸΡ€ΠΈ смСнС числа символов Π² записи, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π½Π° экран, придСтся Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°. Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ нСдостаток исправлСн Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅:

void main(void) {

 char *ptr;

 static char message[] = "What a wonderful day!";

 ptr = message;

 while(*ptr != '\0') {

  putchar(*ptr);

  ptr++;

 }

}

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ptr ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ putchar ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° символа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ Π½Π° экран. Π”Π°Π»Π΅Π΅ содСрТимоС ptr увСличиваСтся Π½Π° 1, адрСсуя Ρ‚Π΅ΠΌ самым ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт массива. По ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ Ρ†ΠΈΠΊΠ»Π° while Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран закончится, Ссли Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌΠΎΠΌ массивС Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½ ΠΊΠΎΠ΄ ΠΊΠΎΠ½Ρ†Π° строки.

Π’ΠΎ встраиваСмых систСмах ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для обращСния ΠΊ рСгистрам ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ запись:

#define PORTA *(volatile unsigned char *) 0x1000

Π­Ρ‚Π° запись ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ компилятор ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ однобайтовая цСлочислСнная пСрСмСнная с ΠΈΠΌΠ΅Π½Π΅ΠΌ PORTA располагаСтся Π² памяти ΠΏΠΎ адрСсу 0x1000. Π‘Π»ΡƒΠΆΠ΅Π±Π½ΠΎΠ΅ слово volatile ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ (ΠΈ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ) ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ PORTA ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π›ΡŽΠ±ΠΎΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ PORTA Π΄Π°Π»Π΅Π΅ ΠΏΠΎ тСксту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ связано с Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния ΠΈΠ»ΠΈ записи Π² рСгистр Π΄Π°Π½Π½Ρ‹Ρ… PORTA ΠΏΠΎ Π΅Π³ΠΎ физичСскому адрСсу 0x1000. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ содСрТимоС ΠΏΠΎΡ€Ρ‚Π° PORTA Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ new_value:

DDRA = 0x00; //ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚ PORTA Π½Π° Π²Π²ΠΎΠ΄

new_value = PORTA; //Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ содСрТимоС рСгистра Π΄Π°Π½Π½Ρ‹Ρ… PORTA Π²

                   //ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ new_value

3.12. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹

ВозмоТности языка Π‘ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с Ρ€Π°Π·Π½Ρ‹ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ прСдставлСния Π΄Π°Π½Π½Ρ‹Ρ…. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ понятиС структуры.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, состоящий ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². ΠŸΡ€ΠΈ использовании структур слСдуСт Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ объявлСниС (ΠΈΠ»ΠΈ описаниС) структуры, ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… «структура xΒ», ΠΎΡ‚ фактичСского опрСдСлСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… «структура xΒ». ΠŸΡ€ΠΈΠΌΠ΅Ρ€ объявлСния структуры Ρ‚ΠΈΠΏΠ° car:

struct car {

 int doors;

 char color[10];

 char *maker;

 int num_cyl;

 int year;

}

Π‘Π»ΡƒΠΆΠ΅Π±Π½ΠΎΠ΅ слово struct ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΠΎ объявлСния ΠΈΠ»ΠΈ опрСдСлСния структуры. Π—Π° Π½ΠΈΠΌ слСдуСт имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ присваиваСтся Π΄Π°Π½Π½ΠΎΠΉ структурС, ΠΎΠ½ΠΎ называСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ структуры. Π’ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках указываСтся список ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов, ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΡ… структуру. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ структуры ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ любой Ρ‚ΠΈΠΏ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ массивы, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ структуры ΠΈ объСдинСния.

Анализируя ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΡƒΡŽ запись, ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ имя car β€” это имя Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…. НС слСдуСт ΠΏΡƒΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° car, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π»Π΅Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅:

struct car your_car;

struct car my_car;

struct car his_car;

Записав ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ строки, ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ your_car, my_car, his_car, ΠΈ каТдая ΠΈΠ· этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… прСдставляСт собой структуру с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€ΠΎΠΌ элСмСнтов. Π’Π°ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ элСмСнтом ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… структур Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²ΡƒΡ…Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число. ЧислСнныС значСния этих ΠΏΠ΅Ρ€Π²Ρ‹Ρ… элСмСнтов для всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… структур Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, Π½ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ прСдставлСния Π΄Π°Π½Π½Ρ‹Ρ… для всСх Ρ‚Ρ€Π΅Ρ… ΠΏΠ΅Ρ€Π²Ρ‹Ρ… элСмСнтов ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ².

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт структуры ΠΈΠΌΠ΅Π΅Ρ‚ своС собствСнноС имя: doors, color, maker ΠΈ Ρ‚.Π΄. ДопускаСтся ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту структуры с использованиСм Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ:

your_car.doors = 4;

Если пСрСмСнная Ρ‚ΠΈΠΏΠ° структура пСрСдаСтся Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² ΠΊΠ°ΠΊΡƒΡŽ Π»ΠΈΠ±ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ‚ΠΎ слСдуСт ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π½Π΅ сами элСмСнты структуры, Π° лишь ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт Π½Π°Π·Π²Π°Π½Π½ΠΎΠΉ структуры. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтам структуры слСдуСт вмСсто ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Β«.Β» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «–>Β». НапримСр, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ опрСдСляСтся функция assign_doornumber, которая присваиваСт числСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ элСмСнту структуры Ρ‚ΠΈΠΏΠ° car:

void assign_doornumber(struct car *some_car);

:

:

;

assign_doornumber(&your_car)

:

:

void assign_doornumber(struct car *some_car) {

 some_car–>doors = 4;

 return 0;

}

А сСйчас ΠΌΡ‹ обсудим, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив структур. Допустим, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ структуру circuit_board ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…:

struct circuit_board {

 int transistor;

 int bus;

 int serial_port;

 int parallel_port;

}

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ массив new_board с ΠΏΡΡ‚ΡŒΡŽ элСмСнтами, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся структурой Ρ‚ΠΈΠΏΠ° circuit_board:

struct circuit_board new_board[5];

К ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта этого массива ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½ΠΎΠΌΠ΅Ρ€ элСмСнта (фактичСски это Π½ΠΎΠΌΠ΅Ρ€ структуры Π²Π½ΡƒΡ‚Ρ€ΠΈ массива) ΠΈ имя записи Π²Π½ΡƒΡ‚Ρ€ΠΈ структуры:

new_board[2].transistor = 100;

Π­Ρ‚ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ присваиваСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 100 записи ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ transistor Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ элСмСнта массива new_board (элСмСнты Π² составС массива ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ с Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ). Π­Ρ‚ΠΈΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ ΠΌΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ программирования МК Π½Π° Π‘ΠΈ. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ процСсса Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° исполняСмого ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° МК ΠΈΠ· Ρ„Π°ΠΉΠ»Π° исходного тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π‘ΠΈ.

3.13. ΠŸΡ€ΠΎΡ†Π΅ΡΡ программирования ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ микропроцСссорной систСмы

Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ обсудим Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ создания ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π½Ρ‹Ρ… систСмах. Π‘Π½Π°Ρ‡Π°Π»Π° рассмотрим процСсс создания исходного тСкста ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π΅Π³ΠΎ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π² Ρ„Π°ΠΉΠ» исполняСмого ΠΊΠΎΠ΄Π° (Π΅Ρ…Π΅cutable file).

3.13.1. ВСхнология создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°

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

ΠŸΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ дСйствия ΠΈ особСнности Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚ΠΎΠ³ΠΎ устройства, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π°. На основС этих Π·Π½Π°Π½ΠΈΠΉ слСдуСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ структуру ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ тСхничСскому заданию, Ρ‚Π°ΠΊ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΌ Π΅Π³ΠΎ дополнСниям. На ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠΎΡ€Π°Ρ… Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, слСдуя рСкомСндациям Π³Π»Π°Π²Ρ‹ 2. Π’Ρ‹ ΡƒΠΆΠ΅ ΡƒΠΌΠ΅Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΎΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ описания Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° управлСния ΠΊ структурС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ управлСния ΠΈ Π±Π»ΠΎΠΊ схСмам Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². РассмотрСнныС Π² Π³Π»Π°Π²Π΅ 2 ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ структурного проСктирования позволят Π’Π°ΠΌ сначала ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ управлСния Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, Π° Π·Π°Ρ‚Π΅ΠΌ произвСсти Π΅Π΅ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ (ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ΠΈ). КаТдая такая ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π° Π² Π²ΠΈΠ΄Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ впослСдствии Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π»Π°ΠΆΠ΅Π½ ΠΈ тСстирован Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹. ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ написания, тСстирования ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π±Π»ΠΈΠ·ΠΊΠΎ связаны. Π’Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сначала ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΅Π΅ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ являСтся написаниС, тСстированиС ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ модуля ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ эти ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ вмСстС. ΠŸΡ€ΠΎΡ†Π΅ΡΡ объСдинСния Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄: Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΡƒΠΆΠ΅ оттСстированныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΊ ΠΎΡ‚Π»Π°ΠΆΠ΅Π½Π½ΠΎΠΉ части ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ слСдуСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. И послС добавлСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ модуля Π½Π΅ Π»Π΅Π½ΠΈΡ‚ΡŒΡΡ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π³ΠΎΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Π² Ρ‚ΠΎΠΌ числС ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² исполнСнии Π½ΠΎΠ²Ρ‹Ρ… Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй.