Вам не нужно обновлять GCC (я предполагаю, что вы фактически используете AVR-GCC для генерации машинного кода, специфичного для AVR ...). Все чипы AVR используют одинаковое ядро AVR и набор команд. Единственное, что меняется от одного чипа к другому, - это размеры памяти, адреса регистров и доступность периферийных устройств.
Вам может необходимо обновить AVRlibc , если вы используете эти основные библиотеки, и вам нужно будет добавить конфигурации устройств для такой утилиты программирования, как avrdude .
Вы должны обновить заголовки ядра, которые определяют местоположения регистров, если только вы не определяете свои собственные указатели на необработанные адреса памяти (например, босс). Это можно найти в пакетах Atmel , в частности в поддержке устройств Atmega.
Когда вы включаете io.h в свой проект, он вытягивает специфичные для устройства определения с хорошо определенными указателями в память для доступа к конфигурации периферийных устройств и регистрам данных. Это работает, только если вы передаете используемое устройство в качестве специального определения в вашей команде компиляции. Если вы используете стандартный шаблон Makefile, устройство - это одна из вещей, которую вы редактируете, и она обрабатывает эти команды. Аналогично, IDE, например Atmel Studio, спросит, какое устройство вы используете, и сгенерирует Makefile для вас.
Но не принимайте это от меня, вот соответствующая информация из AVR-GCC wiki в разделе, озаглавленном Поддержка "неподдерживаемых" устройств .
Когда вы вводите код в компилятор и компилируете для определенного
устройство, компилятор будет заботиться только о соответствующем ядре; это не будет
заботиться о точном устройстве. Для компилятора не имеет значения, сколько
Выводы ввода / вывода устройства, при каком напряжении оно работает, сколько оперативной памяти
представьте, сколько таймеров или UART на кремнии или в каком
пакет отправлен. Единственное, что делает компилятор
-mmcu = устройство для встроенного определения определенного макроса и для вызова компоновщика определенным образом, то есть драйвер компилятора ведет себя немного
иначе, но подинструменты, такие как собственно компилятор и ассемблер
генерировать точно такой же код.
Таким образом, вы можете поддержать свое устройство, установив эти параметры вручную.
Итак, если по какой-либо причине вы не можете обновить AVR-GCC, вы все равно можете скомпилировать устройство, указав компоновщику вручную, где искать материал и указав правильные включения из дерева io.h.
В вики также даны дополнительные инструкции о том, как это сделать.