Чому AVR використовується в Arduino?


41

Чому Arduino використовує AVR? Я розумію, що вони є офіційним процесором, але немає причини, яку не можна було перенести в ARM або архітектуру Freescale, крім вартості, правда? Поки є вбудована пам'ять, я вважав, що міг легко перейти в ці частини.

Я бачу багато ARM у промисловості (схоже, кожен постачальник штовхає їх у свої проекти) і цікавився, чому в світі розробників Arduino не було більше поглинання.


4
Хто ваш ринок? Якщо ви намагаєтесь продати щось велике у промисловості, тоді вам захочеться ARM, тому що якщо Atmel піде нижче, у вас нічого не залишиться, якщо ви використовуєте AVR. У ARM є багато інших постачальників, які пропонують поруч із замінами, що випадають. Підвищена складність ARM - це менше проблеми з хорошими інженерами, ніж з любителями, які не знають основ. Якщо ви продаєте любителям, крива навчання буде занадто крутою, потужність процесора не звикне, а SMT - це уявлена ​​цегляна стіна. Про кого ви переживаєте - замовники-хобі або потенційні роботодавці? Pls. уточнити.
Кевін Вермер

9
Я не намагаюся бути образливим, але запитання потрібно ставити. Atmel більше 25 років, маючи дуже успішний ринок, крім ARM, AVR сам по собі є дуже успішною платформою. Які шанси у такої компанії знизитися. Це звучить як кажучи: "Не використовуйте вікна, що робити, якщо MicroSoft вийде з ладу?"
Rick_2047

Я погоджуюся з вашими іншими двома пунктами, а саме: якщо у вас є ринок хобістів, шанси рідкісні, що вся потужність ARM буде використана, а SMT - цегляна стіна.
Rick_2047

2
Чи не існує Arduino Due з SAM3XE (32 біт ARM) на ньому? Тому що, я зараз маю його в руці ...
Doombot

1
Я хотів би зазначити, що "в наш час" насправді існують плати на основі ARM, які можна запрограмувати за допомогою Arduino (бібліотеки та IDE). Teensy 3.2 - прекрасний приклад цього. sparkfun.com/products/13736
Павло

Відповіді:


32

Хтось навіть хвилює те, на чому ти розвиваєшся?

Так і ні. Я розробляв AVR32 для конкретного проекту, і середовище розробки (зокрема цикл компіляції / програми / налагодження) є жахливим порівняно, наприклад, з PIC32.

Клієнтів це не хвилює, за винятком витрат та технічного обслуговування, а у випадку з ардуїноподібною системою програмісти не хвилюються, оскільки середовище та цикл розробки arduino проходять швидше, ніж межі поточної установки AVR32.

Мені просто цікаво, бо в сім’ї Ардуїно існує такий сильний контингент АВР. Я розумію, що вони є офіційним процесором, але немає причини, яку не можна було перенести в ARM або архітектуру Freescale, крім вартості, правда? Поки є вбудована пам'ять, я вважав, що міг легко перейти в ці частини.

Там немає причин , інший процесор не може бути використаний, але є дуже хороша причина , чому вони вибрали низький кінець 8 битого пристрій , а не ARM, MIPS, PowerPC, і т.д. пристрою: простота використання.

Якщо ви подивилися на налаштування навіть для нижнього рівня, це на порядок складніший (відображення пам'яті, кешування тощо), ніж 8-бітний процесор. Але що ще важливіше - на той час не було збройових процесорів DIP, і вони мали бути використані та виготовлені художниками та хакерами, не обов'язково електронними техніками та інженерами, які почуваються комфортно навіть із 48-контактним TQFP.

Причиною того, що AVR був обраний у PIC, є те, що PIC насправді не має широко використовуваного, відкритого коду, безкоштовного компілятора C, серед іншого (порт SDCC не зрілий).

Я бачу багато ARM у промисловості (схоже, кожен постачальник підштовхує свою розробку) і цікавився, чому в світі розробників Arduino не було більше поглинання. Думки?

В основному, це пов’язано з простотою використання - складністю, легкістю в пайці, вартістю і тим, що в цьому немає великої потреби. Розробникам подобається ідея мати велику потужність, але наприкінці дня, коли все, що вам потрібно зробити, - це перемістити кілька сервоприводів і спалахнути деякі фари з низьким кінцевим FFT, 8-бітний процесор просто чудово.

Навіть ARMS низького рівня, що виходять у 28-контактних упаковках, як і раніше SOIC, а не DIP.

Тож AVR мав усі потрібні функції:

  • Легко паяти
  • Легко дістатись поштовим замовленням у всьому світі
  • Безкоштовний компілятор GCC C
  • Легкий для розуміння процесор та периферійні настройки та використання
  • Дешево
  • Всюдисущий - багато людей та досвіду навколо сім'ї AVR

Це значною мірою все-таки справедливо - я не знаю ARM у форматі dip, і адаптери роблять його значно дорожчим, ніж AVR. Здебільшого виробники не вважають, що 32-бітний процесор, упакований у DIP, буде дуже вигідним.


Є один, пропелер Parallax. Він має вісім 32-бітних процесорів на мікросхемі і поставляється в пакетах DIL, QFP та QFN.
Леон Геллер

5
Це точково. AVR над PIC завдяки ліцензуванню та AVR над ARM через простоту програмного забезпечення та ланцюжка інструментів та здатність паяти. Для ваших власних проектів це може не стосуватися. Однак якщо ви хочете розробити ARM-duino, погляньте на інші подібні проекти. Вони не вловлюються, як у AVR. Це також може бути пов'язано із середовищем розробників Arduino.
Кевін Вермер

Які інструменти AVR32 ви використовуєте - я використовую IAR як на AVR32, так і на MSP і вважаю, що це середовище є надзвичайно здатним. Вартість не є проблемою в професійному середовищі - еквівалентна меншій, ніж витрати на працевлаштування інженера на тиждень.
uɐɪ

Цю вимогу щодо інструментів можна подолати - Arduino використовує gcc, який також має порт AVR32.
Кріс Страттон

1
Тепер у NXP є кілька ARM Cortex-M0 в пакеті DIP. Думаю, з родини LPC11xx. Я думаю, що їх цільовий ринок є надзвичайно дешевим, низькоякісним, одностороннім друкованим плат, в техніці.
Марко


16

Оскільки ви, здається, опитуєтесь на думку, ось мій $ 02. Незалежно від того, чи працюю я над ARM чи AVR (і, отже, мені все одно), головним чином, виходячи з того, що я намагаюся зробити. Є випадки використання, коли AVR має сенс, і є такі, коли ARM робить. Загалом, є також компроміс між, скажімо, AVR та PIC.

По-перше, хоча я, мабуть, зіткнуться з проблемою, сказавши це, "сильний контингент в сім'ї Ардуїно" є чимось голосовим меншиною. Більшість ардуїно-фолк (користувачів), на які я натрапив, - це ті, хто скоріше поводитиметься зі своїм обладнанням так само, як вони би підхопили сценарій пітона, щоб зробити щось кумедне, часто з нижчим рівнем розуміння дотепностей, ніж вони коли б вони робили "з numpy import foo". Хоча в ардуїнському способі здійснення справ є певна заслуга, є також цілий простір для критики.

Я думаю, що варто дивитись на AVR, окрім екосистеми Arduino. Контингент Arduino також отримав велику користь із причин, які зробили AVR чимось дефактозним стандартом для речей-любителів - мантію, яку вона все частіше переймає від PIC ще до появи ардуїно. Прямими конкурентами AVR були б PIC і, до певної міри, MSP430, який набирає тяги завдяки значною мірою сильним маркетинговим поштовхом TI у поєднанні з інструментами субсидування.

Екосистема

Як вже згадувалося в інших відповідях, AVR - це та сім'я, яка має чистий, стандартизований спосіб дістатися з нуля в світ привіт за допомогою безкоштовних інструментів. Порт avr-gcc, фрагменти, які створюють ланцюжок інструментів winavr, безліч схем програмістів з різною складністю та особливостями, але все-таки пов'язані повноваженнями, отриманими завдяки підтримці avrdude, роблять це набагато простіше, ніж розбиратися з розробкою ланцюжка інструментів.

Екосистема PIC - це кошмар, у якому є будь-яка кількість компіляторів, програм програмування, асемблерів. Багато з них не сумісні між собою. Більшість із них платні. Не всі вони хороші. Що ще важливіше, немає стандартів дефакто. Безкоштовні альтернативи з відкритим кодом (скажімо, SDCC) залишають бажати кращого, але більше того, не вдалося набути статусу стандарту дефакто, як у avr-gcc та компанії. Навіть з розробленою ланцюжком програмного забезпечення вам, принаймні, доведеться вкладати гроші в програміста. PICkit може просто коштувати 20 доларів або близько того, але коли вам доведеться розібратися, як його придбати в Інтернеті (Кредитні картки, міжнародна доставка, форекс клопоти), це може стати виправдачем угод для любителів. Немає хорошого,

MSP430 незначно кращий, головним чином тому, що його новіший (принаймні, за популярністю) - З цим суперечити набагато менше шуму. TI доставляє вам зразки ІС з ефективністю, я більше ніде не бачив. mspgcc знаходиться в нормі, і є навіть програмне забезпечення для налагодження з відкритим кодом, яке не важко знайти або налаштувати. Проблема, однак, полягає в тому, що це не так приємно для любителів, як AVR. У вас все ще є проблема програміста, який коштує дорожче, ніж те, що вам потрібно придбати для PIC. Операція живлення 3,3 В ставить сприйнятий бар'єр для людей, які звикли до 5 В логіки. І це не масштабується в DIP - Є доступні низькі кінці, але не один раз ви досягнете більш свіжих фішок.

Простота використання

Думаю, DIP проти SMD є більш важливою відмінністю, ніж це часто приписують. ІМП DIP можна використовувати на дошках, дошках загального призначення, незалежно від того, як вони називаються, де ви живете, тощо. Для інтелектуального розширення SMD необхідний запуск виготовлення або придбання адаптерних плат, які не завжди легко підійти за потрібним розміром або формою.

Якість даних, примітки до програми та читабельність їх також має значення. Атмель, здається, робить у цьому дещо кращу роботу. Звичайно, це високо суб'єктивна оцінка.

AVR можуть використовувати внутрішній RC, тоді як PIC часто не мають. Їм потрібен кристал, завдяки чому він злегка тьмяний у поєднанні з невизначеністю впевненості.

AVR також здавалися більш прихильними до системного програмування порівняно з PIC декілька років тому, хоча я там дуже легко можу помилитися.

AVR проти ARM

Однак ваше запитання стосувалося AVR vs ARM. Як я вже говорив на початку, AVR і ARM займають різні простори в спектрі. Якщо у вас є щось, що ви можете зробити з AVR, то чому б ви хотіли робити це з ARM? ARM коштують дорожче, вимагають більшої кількості деталей, споживають більше енергії, роблять складніший код, потребують більш дорогих процесів виготовлення. Пайка 100-контактного TQFP дорожче, ніж пайка 40-контактного DIP / SOIC, залежно від того, як ви вимірюєте вартість. Це може не спричинити, якщо ви виробляєте великі обсяги і використовуєте приємні для цього технології виробництва, але якщо ви це робите, то різниця в ціні стане ще більш вимушеною, щоб піти з більш дешевим рішенням.

Як контролер для загального хакерства навколо будинку чи що у вас є, я б сказав, що AVR простіший у використанні, оскільки: - Більш стандартизований з точки зору любителя, більше коду, який я можу повторно використовувати в Інтернеті, оскільки їх не так багато варіації компілятора та варіації між іменами регістрів та API серед членів сім'ї. (Спробуйте перенести код ARM LPC на апаратне забезпечення ATMEL ARM, ви побачите, що я маю на увазі) - Код стає по суті складнішим (Це дійсно. Дійсно). - ланцюжок інструментів виконує додаткову роботу з налаштування. - Полегшує взаємодію трохи легше. Зброєні броньовики, як правило, знижують вас до 3v3 або 1v8 Logic, що робить взаємодію з іншими іграшками трохи проблематичною. - Дешевше - отримання чіпа ARM у місцевому магазині обладнання не є для мене варіантом, де я живу, отримати AVR.


1
Я не пригадую жодних ПІК, окрім деяких частин OTP, де біти запобіжників були попередньо запрограмовані у рамках тестування на заводі (єдиний спосіб підтвердити, що LP, XT або HS працював - це налаштування мікросхеми для цього режиму) що потребував кристала. Деяким потрібен зовнішній резистор і ковпачок, щоб використовувати режим RC, і були досить грубі характеристики частоти, яку він буде виробляти, але я не пригадую жодних фотографій без варіанту дизайну для внутрішнього або зовнішнього RC. Я що-небудь забув?
supercat

Насправді вартість ARM / AVR досить близька до миття порівнянних ресурсів. І пакети, які використовувались у виробничих умовах, не обов'язково відрізняються, оскільки це, ймовірно, варіанти QFP або QFN. Потрібна схема підтримки також досить порівнянна.
Кріс Страттон

@Chris: Коли ви враховуєте ресурси, які забезпечує кожен чіп, я б сказав, що ARM вийде дешевше майже кожного разу. Однак, справа в тому, що в ситуаціях, коли AVR має сенс у виробничих умовах, це те, що тобі не потрібні кінські сили та / або дзвіночки, які ARM подає до столу. При зважуванні з використаними ресурсами замість наявних ресурсів AVR виходить дешевше. Я не думаю, що схема підтримки порівнянна (1 танталовий конденсатор проти 4 та інші подібні спіралі). ARM - не дорогий звір настільки, наскільки це може бути зайвим.
Chintalagiri Shashank

@supercat: Можливо. Я повинен був би перевірити. Мені це ніколи не здавалося очевидним кілька разів, коли я на це дивився. Я знаю, що принаймні деякі dsPIC можуть повернутися до внутрішніх, хоча, якщо ви їх правильно налаштували, але навіть для цього знадобилося трохи здогадуватися і обдурити, щоб виявити. Таблиці даних мікрочіпів залишають бажати кращого, IMO, але знову ж таки, залежить від того, на який ринок ви дивитесь.
Чінталагірі Шашанк

@ChintalagiriShashank - ігноруючи інші периферійні пристрої та просто дивлячись на розміри flash та ram, є пропозиції ARM, які є досить конкурентоспроможними, наприклад, ATMEGA328p. І не варто занадто відволікатися на обхідні ковпачки. Для одного, тантал може мати сенс як фільтр живлення, але фактичні байпасні ковпачки є місцевими резервуарами нижчого значення для вимог до високої частоти комутації, і тому це може бути дешевою керамікою SMT. Крім того, необхідна потреба - це тактова частота та частота комутації вводу / виводу - при порівнянній тактовій частоті ARM фактично не потребуватиме всіх рекомендованих обхідних ковпачків.
Кріс Страттон

12

Частиною причини великого інтересу громади до Arduino є фізична стандартизація. Настільки гнучка, як і фізична компонування, включивши стандартизований варіант розширення, розробники Arduino дозволили людям придумувати власні рішення. Якщо ви хочете замінити базову плату Arduino на іншу плату, яка використовує інший мікроконтролер, ви можете. IIRC, хтось уже створив плату на основі PIC, яка використовує форм-фактор Arduino. ( Дошка PIC Ardunio не має однакового форм-фактора, але інакше схожа.)

Ще одна причина успіху Arduino полягає в його відкритості - більшість мікроконтролерів на основі PIC були закриті; Вони використовували власні реалізації обладнання, тому якщо ви хотіли переробити плату, щоб краще вписатися у певний простір, вам не пощастило. Вони використовували власні програмні засоби та власні засоби розробки, так що якщо у вас були помилки або хотіли розширити можливості, вам не пощастило. У Arduino кожен фрагмент головоломки відкритий: ви можете купувати деталі в будь-якому місці, переставляти їх у міру необхідності, вдосконалювати або змінювати програмне забезпечення та засоби розробки. Почати можна просто з ID Arduino IDE, але ви все одно можете перейти на C або зборку в будь-який час, коли вам це потрібно.

Особисто мені подобається Arduino, тому що він отримує багато речей "саме правильно": Це не надто дорого, він не зафіксований у власних інструментах, з нього легко почати, він має багато можливостей і має велике співтовариство користувачів , яка продовжує розширюватись та робити акуратні речі.


1
Ви перерахували дуже вагомі причини того, що любителі мікроконтролерів люблять Arduino, але питання стосувалося ARM vs AVR. Ардуїно згадувалося завдяки його рішенню вибрати серію MCR для AVR для його реалізації. Я думаю, що деякі більш відповідні відповіді лежать нижче вашого повідомлення; наприклад, той факт, що Atmel підтримує свою серію AVR за допомогою компілятора C. Однак хороша інформація для когось незнайомого з Ардуїно.
озмо

7

Основною перевагою ATC є те, що доступний безкоштовний компілятор для Linux, PC та Mac. Додайте до цього простий міжплатформенний графічний інтерфейс, і у вас є безкоштовна система розробки, яка працює на всіх платформах.

Вартість - головний фактор для дощок для любителів. Оскільки ви хочете мати стартову ціну в діапазоні 30 доларів, вам потрібно мати вартість уК, що не більше пари доларів.

ARM був би чудовим кандидатом у вищі дошки. Багато компаній ліцензують ядро ​​ARM та додають периферійні пристрої. Я вважаю, що є безкоштовні компілятори для Linux, PC та MAC.

Мені дуже подобається Freescale Coldfire для дощок високого класу. Я працював на дошці для тестового обладнання, яке використовувало 5206e. Ми додали деякі DRAM та високоточні A / D та D / A перетворювачі. Це було економічно вигідним рішенням. Я нещодавно не порівнював Coldfire із великою різноманітністю ARM.

Деякі з 8-розрядних Freescale UC є приємними, але я не впевнений, чи є у них безкоштовні інструменти.


4
Дякуємо за корисний коментар, але 8 рядків "підпису" є дещо крайніми, ці сайти, що базуються на стаковому потоці, як правило, дивляться на рекламу ваших власних сайтів у своїх відповідях.
дав

5
@jluciani, якщо ви хочете рекламувати свої інші веб-сайти, розмістіть посилання у своєму профілі, а не у своїх відповідях. Зрештою, ваш блог не є відповіддю на це питання ...
Craig Trader

5

Я погоджуюся з пакетом занурень, не погоджуюся, що руки важче налаштувати, lpcs є, але вони не єдина дитина в блоці руки (atmel сам з цього приводу). З того, що я пам’ятаю і переживав, «Atmel» був і, можливо, все ще просто дружнішим для розробників. Метелик AVR дуже допоміг їм привернути більше користувачів до їх вже хорошого розміру та щасливого користувача. PIC був просто болючим у багатьох відношеннях, інструменти avr були там, програмування було вітром і не коштувало вам набагато дорожче, ніж деякі дроти та роз'єм від радіостанції. Інструменти існують і є безкоштовними, але не так просто, як основна програма gcc, де ви знайдете рішення для руки та великого пальця. Задовго до появи ардуїно AVR був чіпом вибору для хобі-проектів.

Зараз нічого не може скласти конкуренцію ARM. Для будь-якого іншого процесора, до якого ви торкаєтеся за день, ви торкаєтесь як мінімум декількох ARM. Для деяких майже всього, що ви торкаєтесь, використовується ARM. Це, природно, як 8-бітний вбивця, може отримати набагато кращу продуктивність, ніж 8-бітний для того ж розміру, ціни тощо. Інструменти набагато кращі, набір інструкцій набагато чистіший, ніж більшість його конкурентів, тому той самий код працює, що набагато швидше і т. д. Через те, що будь-хто та їхній брат можуть вбудувати ARM, і він не заблокований у такій компанії, як pic, avr, msp430, існує широкий спектр рішень, а також безліч різних способів поводження з сумішами rom / ram мікроконтролера. і векторну таблицю переривань. На жаль, більш популярним рішенням є найболючіше. Спробуйте сам7 чи щось подібне чи stellaris.

Це не завжди процесор, який є проблемою, деякі мікросхеми знають, що можуть мати проблеми, деякі мають інші відомі проблеми. деякі можуть не запропонувати відкритий накопичувач з відкритим колекціонером зі слабким підтягуванням, і вам доведеться поставити апаратне забезпечення за межами чіпа, щоб щось інтерфейсувати, де інший може мати доступне для одного або всіх штифтів. Я рекомендую взяти вибірку поля, спробувати різні компанії та рішення, щоб, коли ви хочете низької потужності, ви могли легко використовувати msp430, ви хочете обробляти потужність у невеликому чіпі, який ви йдете під руку, або якщо ви хочете зробити відкритий проект, на який ви сподіваєтесь інші будуватимуть у своєму гаражі ви, якщо ви можете, базуєте його на ардуїно.

Підсумок, хоча від вашого питання, чи це насправді залежить від вашої програми та того, як ви її пишете, а також від продуктивності та ресурсів, які вас цікавлять. Так само, як gcc або firefox працюватимуть на багатьох різних платформах та процесорах, ви, звичайно, можете напишіть свою заявку на C для роботи на широкому спектрі мікроконтролерів ... ЯКЩО... у вас є шар абстракції, специфічний для мікроконтролера, який має вартість. якщо мікроконтролери мають достатньо схожі функції та мають необхідні функції, і ви плануєте заздалегідь і включати їх. Якщо на наступній платформі достатньо пам'яті / ресурсів. Вас більше цікавить портативність, ніж продуктивність тощо. Напевно, вам потрібно планувати це достроково. або принаймні на першому перемиканні з А на В ви переробляєте програмне забезпечення, якщо / коли є третій перемикач з В на С, це менш болісно.


Зараз нічого не може скласти конкуренцію ARM. <- У промисловості. У світі любителів AVR все ще дійсно, дуже сильний, і буде ще довго.
Кевін Вермер

Абсолютно згідний, що один світ avr - божевільно популярний, інший світ, який трапляється таким, де товари, які ми купуємо, ми використовуємо, де гроші, це щось інше. Тож для розваги вдома вивчіть одне, для своєї денної роботи вивчіть інше, і грайте цілий день і всю ніч.
old_timer

4

Я знаю, ви сказали "крім вартості", але насправді це найважливіше для любителів. Вам не потрібно більше одного UART або більше SPI для того, що повинно бути дешевою, загальною платформою. Як тільки ви починаєте потребувати швидкості> 20 МГц, ви дійсно повинні дивитись на власні налаштування (звичайно, мммв)


3

Кілька маленьких балів, не піднятих в інших коментарях:

  • Arduino призначений для невеликих проектів вводу / виводу, додаючи до ланцюга невелику кількість інтелекту. Вони, як правило, однопоточні пристрої в режимі реального часу, де ARM дуже витрачається. Варіантів для плат ARM, звичайно, є багато, але випадок використання зазвичай відрізняється - зазвичай вони завантажуються в повномасштабну операційну систему.

  • Націлюючись на цей невеликий масштаб використання, все інше стає простішим - кількість підключень, компоненти підтримки, споживання електроенергії тощо.

Але це стосується випадків використання Arduino - це не так, як ви його трудите. Процесор потужністю 16 МГц - це дуже користь для вашого будильника із вбудованим світлодіодним приладом (або що завгодно :)


2

Arduino є доступний на інших процесорах. Ознайомтеся, наприклад, із ChipKit від Microchip. Для цього використовується ПОС 32.


Вибачте, Олін, моя назва була моєю помилковою спробою редагування питання, зробленого з його тексту. Зараз має бути правильніше.
clabacchio

1

Друга спроба (початкова назва публікації та питання від +3 років тому було змінено з початкової відповіді):

Курятина та яйця, але особливо протягом останніх кількох років (2007 ARM запустила архітектуру Cortex-M), 32-розрядні MCU набули популярності, і постачальники краще забезпечували швидший та простіший доступ до спільноти EE при проектуванні в> 8- трохи мікросів (кращі інструменти SW, безкоштовні інструменти, більше прикладів ...).

Оскільки Atmel, поряд із 100 іншими компаніями, пропонує також пристрої Cortex-M і оновив свою ланцюжок інструментів для підтримки AVR до ARM, а також давнє відношення, подано шлях до оновлення Arduino (?). Але альтернативи спливають і, мабуть, передбачають альтернативні спроби отримати свою частку торта "хобі", наприклад mbed NXP / ARM, а нещодавно "CoAction Hero": 32-розрядна дошка ARM Cortex-M3 з відкритим кодом на KickStarter .

Остаточна думка, через 3 роки після первинного питання: коли всі виробники пропонують 32-бітні ядра Cortex-M - чи міг Ардуїно зараз стати не-Atmel?

Оригінальна відповідь: Альф-Егіл Боген, один із співзасновників Atmel AVR, у своєму відеоблозі тут http: //blog.energymicro розглядає деякі передумови для переходу галузі від 8-бітних до 32-бітних ядер ARM . com / 2013/04/24 / avr2arm / .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.