Small Device C Compiler

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Small Device C Compiler
Тип Крос-компілятор з мови C
Автор Sandeep Dutta
Розробник Sandeep Dutta та інші[1]
Стабільний випуск 3.6.0 (12 червня 2016; 7 років тому (2016-06-12))
Версії 4.2.0 (8 березня 2022)[2]
Платформа Мікроконтролери
Операційна система Linux, Windows, Mac OS X
Мова програмування C, C++
Ліцензія GPL, GPL+LE
Стандарт(и) ANSI C89, ISO C99, ISO C11[3]
Репозиторій sourceforge.net/p/sdcc/code/HEAD/tree/
Вебсайт sdcc.sourceforge.net

Small Device C Compiler (SDCC) — вільний крос-компілятор мови програмування C. Підтримує низку 8-бітних мікроконтролерів і передбачає адаптацію (англ. retargeting) на інші аріхтектури. До складу пакету входять також асемблер, компонувальник, симулятор та зневаджувач. Більша частина компонентів пакету поширюється на умовах ліцензії GPL, бібліотека часу виконання[en] — на умовах GPL+LE[en].

Особливості[ред. | ред. код]

Пакет SDCC має структуру, орієнтовану на «малі» 8-бітні системи з можливістю адаптації кодогенератора (back end) до нових типів мікроконтролерів. Компілятор відповідає стандартам ANSI C89, ISO C99, ISO C11 з деякими обмеженнями[4].C99

Компілятор підтримує стандартні типи даних мови С — 8, 16, 32-бітові цілі числа та 32-бітові числа числа з рухомою комою. Для деяких архітектур підтримуються 64-бітові (8-байтові) цілі числа. Виконуються такі стандартні методи оптимізації, як усунення загальних підвиразів, згортання та поширення констант[en], видалення мертвого коду використання таблиць переходів[en] для реалізації інструкції switch.

SDCC підтримує такі можливості Embedded C[en], як іменовані простори адрес та арифметику з фіксованою комою[4].

З метою ефективного використання апаратних можливостей мікроконтролерів додано розширення мови програмування. Серед них — можливість опису С-функції як обробника апаратних переривань, 1-бітовий тип даних bit для логічних змінних, специфічні методи оптимізації на зразок глобального розподілення регістрів процесора (англ. global register allocation). Також є можливість гнучкого використання вбудованого асемблера[en].

Цільові платформи[ред. | ред. код]

Компілятор SDCC підтримує розробку вбудованого програмного забезпечення для систем, побудованих на таких мікроконтролерах:[3]

Підтримка мікроконтролерів Microchip PIC16 та PIC18 знаходиться у стадії розробки.

Середовища розробки[ред. | ред. код]

Робота з пакетом SDCC вбудована у інтегроване середовище Code::Blocks[5]. Для середовища Eclipse/CDT існує плагін для роботи з SDCC[6]. Деякі виробники мікроконтролерів забезпечують підтримку SDCC у своїх пропрієтарних середовищах розробки.

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Who is SDCC? — перелік розробників. SDCC team. Архів оригіналу за 25 лютого 2021. Процитовано 24.07.2016.
  2. https://sourceforge.net/p/sdcc/mailman/message/37622375/
  3. а б What is SDCC?. SDCC team. Архів оригіналу за 30.04.2019. Процитовано 24.07.2016.
  4. а б Standard compliance. SDCC wiki. Архів оригіналу за 05.10.2016. Процитовано 30.07.2016.
  5. Feature List. Code::Blocks wiki. Архів оригіналу за 11 серпня 2016. Процитовано 30 липня 2016.
  6. eclipseSDCC. SourceForge.net. Архів оригіналу за 4 жовтня 2016. Процитовано 24.07.2016.

Посилання[ред. | ред. код]