Small Device C Compiler
Тип | Крос-компілятор з мови C |
---|---|
Автор | Sandeep Dutta |
Розробник | Sandeep Dutta та інші[1] |
Стабільний випуск | 3.6.0 (12 червня 2016 ) |
Версії | 4.4.0 (29 січня 2024) |
Платформа | Мікроконтролери |
Операційна система | Linux, Windows, Mac OS X |
Мова програмування | C, C++ |
Ліцензія | GPL, GPL+LE |
Стандарт(и) | ANSI C89, ISO C99, ISO C11[2] |
Репозиторій | 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 з деякими обмеженнями[3].C99
Компілятор підтримує стандартні типи даних мови С — 8, 16, 32-бітові цілі числа та 32-бітові числа числа з рухомою комою. Для деяких архітектур підтримуються 64-бітові (8-байтові) цілі числа. Виконуються такі стандартні методи оптимізації, як усунення загальних підвиразів, згортання та поширення констант[en], видалення мертвого коду використання таблиць переходів[en] для реалізації інструкції switch.
SDCC підтримує такі можливості Embedded C[en], як іменовані простори адрес та арифметику з фіксованою комою[3].
З метою ефективного використання апаратних можливостей мікроконтролерів додано розширення мови програмування. Серед них — можливість опису С-функції як обробника апаратних переривань, 1-бітовий тип даних bit
для логічних змінних, специфічні методи оптимізації на зразок глобального розподілення регістрів процесора (англ. global register allocation). Також є можливість гнучкого використання вбудованого асемблера[en].
Компілятор SDCC підтримує розробку вбудованого програмного забезпечення для систем, побудованих на таких мікроконтролерах:[2]
- Intel MCS-51 та сумісні з ним;
- Maxim Integrated[en] (раніше Dallas Semiconductor) DS80C390;
- Freescale (раніше Motorola) 68HC08, 68HCS08;
- Zilog Z80 та його варіації (Z80, Z180[en], Rabbit 2000[en]/3000, Toshiba TLCS-90);
- STMicroelectronics STM8.
Підтримка мікроконтролерів Microchip PIC16 та PIC18 знаходиться у стадії розробки.
Робота з пакетом SDCC вбудована у інтегроване середовище Code::Blocks[4]. Для середовища Eclipse/CDT існує плагін для роботи з SDCC[5]. Деякі виробники мікроконтролерів забезпечують підтримку SDCC у своїх пропрієтарних середовищах розробки.
- ↑ Who is SDCC? — перелік розробників. SDCC team. Архів оригіналу за 25 лютого 2021. Процитовано 24.07.2016.
- ↑ а б 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. Архів оригіналу за 11 серпня 2016. Процитовано 30 липня 2016.
- ↑ eclipseSDCC. SourceForge.net. Архів оригіналу за 4 жовтня 2016. Процитовано 24.07.2016.
- Small Device C Compiler на SourceForge.net
- SDCC wiki (англ.)
- Integrating SDCC 8051 tools into the Silicon Labs IDE [Інтегрування програм пакету SDCC у середовище Silicon Labs] (PDF) (англ.) . Silicon Labs. 2005. Архів оригіналу (PDF) за 21 червня 2013. Процитовано 30 липня 2016.
- Using the Free SDCC C Compiler to Develop Firmware for the DS89C430/450 Family of Microcontrollers [Використання вільного C-компліятора SDCC для розробки програмного забезпечення мікроконтролерів DS89C430/450] (PDF) (англ.) . Maxim Integrated. 2005. Архів оригіналу (PDF) за 8 лютого 2019. Процитовано 30 липня 2016.