Описание тега sdcc
SDCC - это настраиваемый оптимизирующий набор компиляторов ANSI - C, предназначенный для микропроцессоров на базе Intel MCS51 (8031, 8032, 8051, 8052 и т. Д.), Вариантов Maxim (ранее Dallas) DS80C390, Freescale (ранее Motorola) на базе HC08 (hc08, s08) и микроконтроллеры на базе Zilog Z80 (z80, z180, gbz80, Rabbit 2000/3000, Rabbit 3000A). Ведется работа по поддержке целей Microchip PIC16 и PIC18. Его можно перенастроить для других микропроцессоров.
Пакет SDCC представляет собой набор из нескольких компонентов, полученных из разных источников с разными лицензиями FOSS. Комплект компилятора SDCC включает:
- sdas и sdld, ассемблер и компоновщик с возможностью перенастройки, основанный на ASXXXX, написанный Аланом Болдуином; (GPL).
- препроцессор sdcpp, основанный на GCC cpp; (GPL).
- симуляторы ucsim, изначально написанные Даниэлем Дротосом; (GPL).
- отладчик исходного уровня sdcdb, первоначально написанный Сандипом Даттой; (GPL).
- утилиты архивирования библиотеки sdbinutils, включая sdar, sdranlib и sdnm, производные от GNU Binutils; (GPL)
- Библиотеки времени выполнения SDCC; (GPL+LE). Библиотеки устройств Pic и файлы заголовков являются производными от файлов заголовков Microchip (.inc) и сценариев компоновщика (.lkr). Microchip требует, чтобы "в заголовочных файлах указывалось, что они должны использоваться только с подлинными устройствами Microchip", что делает их несовместимыми с GPL.
- регрессионные тесты gcc-test, полученные из gcc-testsuite; (лицензия не указана явно, но, поскольку она является частью GCC, вероятно, под лицензией GPL)
- packihx; (всеобщее достояние)
- makebin; (Лицензия zlib/libpng)
- компилятор sdcc C, первоначально написанный Сандипом Даттой; (GPL). Некоторые из функций включают: обширные языковые расширения для MCU, позволяющие эффективно использовать базовое оборудование. множество стандартных оптимизаций, таких как глобальное устранение подвыражений, оптимизация цикла (инвариант цикла, уменьшение силы индукционных переменных и реверсирование цикла), сворачивание и распространение констант, распространение копий, удаление мертвого кода и таблицы переходов для операторов переключения. Оптимизация для MCU, включая глобальный распределитель регистров. адаптируемый бэкэнд, специфичный для MCU, который должен хорошо подходить для других 8-битных микроконтроллеров. Независимый оптимизатор на основе правил. полный диапазон типов данных: char (8 бит, 1 байт), short (16 бит, 2 байта), int (16 бит, 2 байта), long (32 бита, 4 байта), float (4 байта IEEE) и _Bool/bool;базовая (без целочисленных констант) поддержка длинных длинных (64 бит, 8 байтов) типов данных для целей z80, z180, r2k, r3ka, gbz80, hc08 и s08. возможность добавлять встроенный код ассемблера в любое место функции. возможность сообщать о сложности функции, чтобы помочь решить, что следует переписать на ассемблере. хороший выбор автоматических регрессионных тестов.
SDCC был написан Сандипом Даттой и выпущен под лицензией GPL. С момента его первоначального выпуска было внесено множество исправлений ошибок и улучшений. С декабря 1999 года код был перемещен в SourceForge, где все "пользователи, ставшие разработчиками" могут получить доступ к одному и тому же дереву исходного кода. SDCC постоянно обновляется с учетом отзывов пользователей и разработчиков.