У меня есть проект, где ATtiny2313V управляет матрицей 7x5 LED для отображения прокручиваемого текста. Чтобы отобразить текст, я создал шрифт, который хранится во флэш-памяти с остальной частью программы.Я переполняю флеш-память AVR с слишком большой программой?
Вся программа, включая весь шрифт, занимает 1106 байт. Но когда я загружаю его в чип, он, похоже, не работает; вместо этого он просто зажигает пару светодиодов, и все.
Однако, когда я удаляю большую часть шрифта и компилирую только с буквами от A до J, размер программы составляет 878 байт и работает отлично.
Это из-за переполнения флэш-памяти AVR?
Техническое описание для ATtiny2313V говорит о наличии 2 Кбайт вспышки! Как может быть 1106 байт слишком много?
ОБНОВЛЕНИЕ: Для того чтобы быть ясным, я использую цепочку инструментов, которую я использую, - это AVR Studio (для компиляции кода), а затем AVRDude для ее загрузки на микроконтроллер. Насколько мне известно, AVR Studio использует версию avr-gcc для компиляции кода.
Как вы передаете файлы на avr? Какие инструменты вы используете?Например, AVRDude проверяет размер программы до передачи данных. – theomega
Я использую AVRDude, который общается через Arduino, который был запрограммирован как программист ISP. AVRDude действительно проверяет размер отчетов о том, какая часть памяти была использована. Он говорит, что есть более 1106 байт, и что я использую менее 60% флэш-памяти. Область eeprom использует только 2 байта. Вот и все. – scraimer