МК ATtiny261 простая программа не помещается в памяти

sergiuszf
Offline
Зарегистрирован: 11.05.2021

Здравствуйте уважаемые форумчане. Я совсем зеленый новичок, хочу научиться программировать МК т сразу столкнулся с проблемой.
Взялся за освоение AVR Studio, начал понемногу изучать язык Си для AVR. Нашей учебник, и на МК ATMEGA8L понемногу изучаю. Использую Proteus, и с МК ATMEGA8 все идет нормально.
Но вот решил то же самое проверить на МК Attiny261, потому что их у меня 10 шт. не жалко если одна испортится. И столкнулся с такой проблемой, начал с простейшей программы мигание светодиода. В AVR Studio нормально получил файл типа Hex. Но вот когда агчал его проверять на Proteuse, то ничего не идет, выдается сообщение что объем программы не умещается в памяти МК. И ни в какую не проходит даже простейшая прорамма.
Правда объем памяти Attiny261 2 кбайта, а файл Imia.hex около 9 кбайт. Но ведь это простейшая программа - мигает один светодиод. И она не помещается в памяти????
Вот текст на Си:

#define F_CPU 8000000
#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
DDRB = 0xFF;
PORTB = 0b00000000;
while(1)
{
PORTB |= (1<<(PORTB0));
_delay_ms(500);
PORTB &= ~(1<<(PORTB0));
_delay_ms(500);
}
}
А что будет если пробовать зашить программу мигания гирлянды светодиодов ???
Что-то тут не так.
Очень прошу помощи, разобраться в чем дело, и как заставить МК Attiny261 принять такой простой код.
 

Kakmyc
Offline
Зарегистрирован: 15.01.2018

Наверное чип выбрал некорректно.
У меня бинарник с твоим кодом весит 304б
(Компилил для тини85)

mixail844
Offline
Зарегистрирован: 30.04.2012

sergiuszf пишет:

Правда объем памяти Attiny261 2 кбайта, а файл Imia.hex около 9 кбайт. Но ведь это простейшая программа - мигает один светодиод. И она не помещается в памяти????
Вот текст на Си:

результамом удачной компиляции программы для МК , в зависимости от среды компиляции и её настроек , могут быть один или несколько типов файлов , например с раширением *.bin или как в вашем случае *.hex.
файл *.bin содержит вашу программу в чистейшем виде , то есть там нет никакой добавочной информации.
файл *.hex же содержит много добавочной информации,сверх самой прошиваемой программы(это может быть полезно в некоторых случаях)
 
поэтому сравнивание размеры *.hex и размера флеш памяти МК , некорректно 
а вот сравнивание *.bin и размера флеш памяти МК , вполне правильно , что вам и подсказали в #1

 

sergiuszf
Offline
Зарегистрирован: 11.05.2021

Спасибо за ответ. Но дело в том, что после компиляции в AVR Studio нет никакого файла типа ".bin"  есть только типа  .elf  и  .hex, которые понимает Протеус.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018
Upper
Offline
Зарегистрирован: 23.06.2020

Что пишет AVR Studio при компиляции?

У меня в AVR Studio 7 пишет

Program Memory Usage : 104 bytes   5,1 % Full
Data Memory Usage : 0 bytes   0,0 % Full
sergiuszf
Offline
Зарегистрирован: 11.05.2021

У меня AVR Studio версии "5", и ничего подобного после компиляции не пишется.

Upper
Offline
Зарегистрирован: 23.06.2020

Должно быть окно Output в которое выводится в том числе информация при компиляции.

Ищите. Читайте Help. 

sergiuszf
Offline
Зарегистрирован: 11.05.2021

УРА !!!!  БОльшое спасибо. Долго искал и наконец нашел где спрятана эта оптимизация. Установил Os, и ЧУДО, вместо бывших 9 килобайт скомпилированный файл занял только 312 байт.  СУПЕР. И в Протеусе все работает как нужно.