Small Device C Compiler

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

Small Device C Compiler
Тип Крос-компілятор з мови C
Автор(и) Sandeep Dutta
Розробник Sandeep Dutta та інші[1]
Стабільний випуск 3.6.0 (12 червня 2016 (2016-06-12))
Версії 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]

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

Середовища розробки

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

Див. також

Примітки

  1. Who is SDCC? — перелік розробників. SDCC team. Процитовано 24.07.2016.
  2. https://sourceforge.net/p/sdcc/mailman/message/37234958/
  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.
  6. eclipseSDCC. SourceForge.net. Процитовано 24.07.2016.

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.