Small Device C Compiler
Small Device C Compiler (SDCC) — вільний крос-компілятор мови програмування C. Підтримує низку 8-бітних мікроконтролерів і передбачає адаптацію (англ. retargeting) на інші аріхтектури. До складу пакету входять також асемблер, компонувальник, симулятор та зневаджувач. Більша частина компонентів пакету поширюється на умовах ліцензії GPL, бібліотека часу виконання — на умовах GPL+LE.
Тип | Крос-компілятор з мови C |
---|---|
Автор(и) | Sandeep Dutta |
Розробник | Sandeep Dutta та інші[1] |
Стабільний випуск | 3.6.0 (12 червня 2016 ) |
Версії | 4.1.0 (8 березня 2021)[2] |
Репозиторій | sourceforge.net/p/sdcc/code/HEAD/tree/ |
Платформа | Мікроконтролери |
Операційна система | Linux, Windows, Mac OS X |
Мова програмування | C, C++ |
Ліцензія | GPL, GPL+LE |
Стандарт(и) | ANSI C89, ISO C99, ISO C11[3] |
Вебсайт | sdcc.sourceforge.net |
Особливості
Пакет SDCC має структуру, орієнтовану на «малі» 8-бітні системи з можливістю адаптації кодогенератора (back end) до нових типів мікроконтролерів. Компілятор відповідає стандартам ANSI C89, ISO C99, ISO C11 з деякими обмеженнями[4].
Компілятор підтримує стандартні типи даних мови С — 8, 16, 32-бітові цілі числа та 32-бітові числа числа з рухомою комою. Для деяких архітектур підтримуються 64-бітові (8-байтові) цілі числа. Виконуються такі стандартні методи оптимізації, як усунення загальних підвиразів, згортання та поширення констант, видалення мертвого коду використання таблиць переходів для реалізації інструкції switch.
SDCC підтримує такі можливості Embedded C, як іменовані простори адрес та арифметику з фіксованою комою[4].
З метою ефективного використання апаратних можливостей мікроконтролерів додано розширення мови програмування. Серед них — можливість опису С-функції як обробника апаратних переривань, 1-бітовий тип даних bit
для логічних змінних, специфічні методи оптимізації на зразок глобального розподілення регістрів процесора (англ. global register allocation). Також є можливість гнучкого використання вбудованого асемблера.
Цільові платформи
Компілятор SDCC підтримує розробку вбудованого програмного забезпечення для систем, побудованих на таких мікроконтролерах:[3]
- Intel MCS-51 та сумісні з ним;
- Maxim Integrated (раніше Dallas Semiconductor) DS80C390;
- Freescale (раніше Motorola) 68HC08, 68HCS08;
- Zilog Z80 та його варіації (Z80, Z180, Rabbit 2000/3000, Toshiba TLCS-90);
- STMicroelectronics STM8.
Підтримка мікроконтролерів Microchip PIC16 та PIC18 знаходиться у стадії розробки.
Середовища розробки
Робота з пакетом SDCC вбудована у інтегроване середовище Code::Blocks[5]. Для середовища Eclipse/CDT існує плагін для роботи з SDCC[6]. Деякі виробники мікроконтролерів забезпечують підтримку SDCC у своїх пропрієтарних середовищах розробки.
Див. також
Примітки
- Who is SDCC? — перелік розробників. SDCC team. Процитовано 24.07.2016.
- https://sourceforge.net/p/sdcc/mailman/message/37234958/
- What is SDCC?. SDCC team. Архів оригіналу за 30.04.2019. Процитовано 24.07.2016.
- Standard compliance. SDCC wiki. Архів оригіналу за 05.10.2016. Процитовано 30.07.2016.
- Feature List. Code::Blocks wiki.
- eclipseSDCC. SourceForge.net. Процитовано 24.07.2016.
Посилання
- Small Device C Compiler на SourceForge.net
- SDCC wiki (англ.)
- Integrating SDCC 8051 tools into the Silicon Labs IDE [Інтегрування програм пакету SDCC у середовище Silicon Labs] (англ.). Silicon Labs. 2005.
- Using the Free SDCC C Compiler to Develop Firmware for the DS89C430/450 Family of Microcontrollers [Використання вільного C-компліятора SDCC для розробки програмного забезпечення мікроконтролерів DS89C430/450] (англ.). Maxim Integrated. 2005.