Small Device C Compiler

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

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

Особливості

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

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

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

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

Цільові платформи

Компілятор 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. [Sdcc-user SDCC 4.5.0 released]
  3. а б What is SDCC?. SDCC team. Архів оригіналу за 30.04.2019. Процитовано 24.07.2016. {{cite web}}: Не збігається часова мітка у |archive-date= / |archive-url=; можливо, 2019-04-30? (довідка)
  4. а б Standard compliance. SDCC wiki. Архів оригіналу за 05.10.2016. Процитовано 30.07.2016. {{cite web}}: Не збігається часова мітка у |archive-date= / |archive-url=; можливо, 2016-10-05? (довідка) [Архівовано 2016-10-05 у Wayback Machine.]
  5. Feature List. Code::Blocks wiki. Архів оригіналу за 11 серпня 2016. Процитовано 30 липня 2016.
  6. eclipseSDCC. SourceForge.net. Архів оригіналу за 4 жовтня 2016. Процитовано 24.07.2016.

Посилання