Small Device C Compiler (SDCC) — вільний крос-компілятор мови програмування C. Підтримує низку 8-бітних мікроконтролерів і передбачає адаптацію () на інші аріхтектури. До складу пакету входять також асемблер, компонувальник, симулятор та зневаджувач. Більша частина компонентів пакету поширюється на умовах ліцензії GPL, — на умовах .
Особливості Пакет SDCC має структуру, орієнтовану на «малі» 8-бітні системи з можливістю адаптації кодогенератора (back end) до нових типів мікроконтролерів. Компілятор відповідає стандартам ANSI C89, ISO C99, ISO C11 з деякими обмеженнями.C99
Компілятор підтримує стандартні типи даних мови С — 8, 16, 32-бітові цілі числа та 32-бітові числа числа з рухомою комою. Для деяких архітектур підтримуються 64-бітові (8-байтові) цілі числа. Виконуються такі стандартні методи оптимізації, як усунення загальних підвиразів, , видалення мертвого коду використання для реалізації інструкції switch.
SDCC підтримує такі можливості , як іменовані простори адрес та арифметику з фіксованою комою.
З метою ефективного використання апаратних можливостей мікроконтролерів додано розширення мови програмування. Серед них — можливість опису С-функції як обробника апаратних переривань, 1-бітовий тип даних bit для логічних змінних, специфічні методи оптимізації на зразок глобального розподілення регістрів процесора (). Також є можливість гнучкого використання .
Цільові платформи Компілятор SDCC підтримує розробку вбудованого програмного забезпечення для систем, побудованих на таких мікроконтролерах:
Intel MCS-51 та сумісні з ним; (раніше Dallas Semiconductor) DS80C390; Freescale (раніше Motorola) 68HC08, 68HCS08; Zilog Z80 та його варіації (Z80, , /3000, Toshiba TLCS-90); STMicroelectronics STM8.
Підтримка мікроконтролерів Microchip PIC16 та PIC18 знаходиться у стадії розробки.
Середовища розробки Робота з пакетом SDCC вбудована у інтегроване середовище Code::Blocks. Для середовища Eclipse/CDT існує плагін для роботи з SDCC. Деякі виробники мікроконтролерів забезпечують підтримку SDCC у своїх пропрієтарних середовищах розробки.
Див. також GNU Compiler Collection
Примітки
Посилання
SDCC wiki