МК ATtiny261 простая программа не помесщается в памяти
МК ATtiny261 простая программа не помесщается в памяти
Здравствуйте уважаемые форумчане. Я совсем зеленый новичок, хочу научиться программировать МК т сразу столкнулся с проблемой.
Взялся за освоение AVR Studio, начал понемногу изучать язык Си для AVR. Нашей учебник, и на МК ATMEGA8L понемногу изучаю. Использую Proteus, и с МК ATMEGA8 все идет нормально.
Но вот решил то же самое проверить на МК Attiny261, потому что их у меня 10 шт. не жалко если одна испортится. И столкнулся с такой проблемой, начал с простейшей программы мигание светодиода. В AVR Studio нормально получил файл типа Hex. Но вот когда агчал его проверять на Proteuse, то ничего не идет, выдается сообщение что объем программы не умещается в памяти МК. И ни в какую не проходит даже простейшая прорамма.
Правда объем памяти Attiny261 2 кбайта, а файл Imia.hex около 9 кбайт. Но ведь это простейшая программа - мигает один светодиод. И она не помещается в памяти????
Вот текст на Си:
/*
* AVRGCC1.c
*
* Created: 18.03.2022 7:12:07
* Author: Admin
*/
#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 принять такой простой код.
Взялся за освоение AVR Studio, начал понемногу изучать язык Си для AVR. Нашей учебник, и на МК ATMEGA8L понемногу изучаю. Использую Proteus, и с МК ATMEGA8 все идет нормально.
Но вот решил то же самое проверить на МК Attiny261, потому что их у меня 10 шт. не жалко если одна испортится. И столкнулся с такой проблемой, начал с простейшей программы мигание светодиода. В AVR Studio нормально получил файл типа Hex. Но вот когда агчал его проверять на Proteuse, то ничего не идет, выдается сообщение что объем программы не умещается в памяти МК. И ни в какую не проходит даже простейшая прорамма.
Правда объем памяти Attiny261 2 кбайта, а файл Imia.hex около 9 кбайт. Но ведь это простейшая программа - мигает один светодиод. И она не помещается в памяти????
Вот текст на Си:
/*
* AVRGCC1.c
*
* Created: 18.03.2022 7:12:07
* Author: Admin
*/
#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 принять такой простой код.
- Реклама
Re: МК ATtiny261 простая программа не помесщается в памяти
Нет ничего криминального в программе. Приведите полный ответ компилятора - линкера.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18675
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: МК ATtiny261 простая программа не помесщается в памяти
размер HEX-файла не должен никак вас пугать, он ни о чем не говорит. смотрите выхлоп программы avr-size - после компиляции она обязательно вызывается и показывает, сколько реально памяти отъела программа.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: МК ATtiny261 простая программа не помесщается в памяти
[uquote="Sergiusz",url="/forum/viewtopic.php?p=4202351#p4202351"]...что объем программы не умещается в памяти МК...[/uquote]
Скинь сюда скриншот протеуса с этим сообщением. Подозреваю, что не тот файл указываешь для мк.
Скинь сюда скриншот протеуса с этим сообщением. Подозреваю, что не тот файл указываешь для мк.
Docendo discimus
Re: МК ATtiny261 простая программа не помесщается в памяти
Вот так ругается Протеус:
ISIS Release 8.06.02 (Build 23525) (C) Labcenter Electronics 1990- 2017.
Compiling design 'E:\AVR-projekty\Atmega261\test02\Test03.pdsprj'.
Netlist compilation completed OK.
Netlist linking completed OK.
Partition analysis completed OK.
Simulating partition [AC81A74A]
PROSPICE 8.04.00 (Build 21720) (C) Labcenter Electronics 1993-2017.
Loaded netlist 'C:\DOCUME~1\Admin\USTAWI~1\Temp\LISA8842.SDF' for design 'Test03.pdsprj'
AVR Release 8.3SP0 build 22019 for ATTINY261. [U2]
Loading HEX file 'test02\Debug\test02.hex'. [U2]
Program file is too big for the microcontroller: flash size = 2048, load address = 2048, number of bytes = 16.
Real Time Simulation failed to start.
Последние 2 строки красным
А вот это сообщение компилятора:
------ Build started: Project: test02, Configuration: Debug AVR ------
Build started.
Project "test02.avrgccproj" (default targets):
Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!='').
Target "CoreBuild" in file "C:\Program Files\Atmel\AVR Studio 5.0\Vs\AvrGCC.targets" from project "E:\AVR-projekty\Atmega261\test02\test02\test02.avrgccproj" (target "Build" depends on it):
Using "RunAvrGCC" task from assembly "C:\Program Files\Atmel\AVR Studio 5.0\Vs\AvrGCCLib.dll".
Task "RunAvrGCC"
C:\Program Files\Atmel\AVR Studio 5.0\AVR ToolChain\bin\make.exe all
AVR Memory Usage
----------------
Device: attiny261
Program: 3360 bytes (164.1% Full)
(.text + .data + .bootloader)
Data: 8 bytes (6.2% Full)
(.data + .bss + .noinit)
Done executing task "RunAvrGCC".
Done building target "CoreBuild" in project "test02.avrgccproj".
Target "PostBuildEvent" skipped, due to false condition; ('$(PostBuildEvent)' != '') was evaluated as ('' != '').
Target "Build" in file "C:\Program Files\Atmel\AVR Studio 5.0\Vs\Avr.common.targets" from project "E:\AVR-projekty\Atmega261\test02\test02\test02.avrgccproj" (entry point):
Done building target "Build" in project "test02.avrgccproj".
Done building project "test02.avrgccproj".
Build succeeded.
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
Посмотрел объем программы, действительно 3360 байт, а в Аттины261 помещается только 2000 байт.
Но почему такая короткая программа скомпилированная занимает так много места ???
ISIS Release 8.06.02 (Build 23525) (C) Labcenter Electronics 1990- 2017.
Compiling design 'E:\AVR-projekty\Atmega261\test02\Test03.pdsprj'.
Netlist compilation completed OK.
Netlist linking completed OK.
Partition analysis completed OK.
Simulating partition [AC81A74A]
PROSPICE 8.04.00 (Build 21720) (C) Labcenter Electronics 1993-2017.
Loaded netlist 'C:\DOCUME~1\Admin\USTAWI~1\Temp\LISA8842.SDF' for design 'Test03.pdsprj'
AVR Release 8.3SP0 build 22019 for ATTINY261. [U2]
Loading HEX file 'test02\Debug\test02.hex'. [U2]
Program file is too big for the microcontroller: flash size = 2048, load address = 2048, number of bytes = 16.
Real Time Simulation failed to start.
Последние 2 строки красным
А вот это сообщение компилятора:
------ Build started: Project: test02, Configuration: Debug AVR ------
Build started.
Project "test02.avrgccproj" (default targets):
Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!='').
Target "CoreBuild" in file "C:\Program Files\Atmel\AVR Studio 5.0\Vs\AvrGCC.targets" from project "E:\AVR-projekty\Atmega261\test02\test02\test02.avrgccproj" (target "Build" depends on it):
Using "RunAvrGCC" task from assembly "C:\Program Files\Atmel\AVR Studio 5.0\Vs\AvrGCCLib.dll".
Task "RunAvrGCC"
C:\Program Files\Atmel\AVR Studio 5.0\AVR ToolChain\bin\make.exe all
AVR Memory Usage
----------------
Device: attiny261
Program: 3360 bytes (164.1% Full)
(.text + .data + .bootloader)
Data: 8 bytes (6.2% Full)
(.data + .bss + .noinit)
Done executing task "RunAvrGCC".
Done building target "CoreBuild" in project "test02.avrgccproj".
Target "PostBuildEvent" skipped, due to false condition; ('$(PostBuildEvent)' != '') was evaluated as ('' != '').
Target "Build" in file "C:\Program Files\Atmel\AVR Studio 5.0\Vs\Avr.common.targets" from project "E:\AVR-projekty\Atmega261\test02\test02\test02.avrgccproj" (entry point):
Done building target "Build" in project "test02.avrgccproj".
Done building project "test02.avrgccproj".
Build succeeded.
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
Посмотрел объем программы, действительно 3360 байт, а в Аттины261 помещается только 2000 байт.
Но почему такая короткая программа скомпилированная занимает так много места ???
Последний раз редактировалось Sergiusz Чт мар 24, 2022 11:18:26, всего редактировалось 1 раз.
- Реклама
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18675
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: МК ATtiny261 простая программа не помесщается в памяти
вот тут и порылась собачка, вы заметили ужеSergiusz писал(а):Program: 3360 bytes (164.1% Full)
наверное, потому, что вы не включили оптимизацию... рекомендую включить -Os и приятно удивиться.Sergiusz писал(а):Но почему такая коротнаяпрогиамма скомпилированная занимает так много места ???
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: МК ATtiny261 простая программа не помесщается в памяти
Не нашел как включить оптимизацию. Мне подсказали что вроде включается из меню проект:
Project->Configuration Options->Optimization->Os
Но в моем AVR Studio версии "5" нет такой опции. Перекопал все меню подряд, и нигде не нашел оптимизации.
БЕДА!!!!!
Project->Configuration Options->Optimization->Os
Но в моем AVR Studio версии "5" нет такой опции. Перекопал все меню подряд, и нигде не нашел оптимизации.
БЕДА!!!!!
- GoldenAndy
- Поставщик валерьянки для Кота
- Сообщения: 1925
- Зарегистрирован: Чт июл 28, 2016 07:58:37
- Откуда: Kyiv, UA
- Контактная информация:
Re: МК ATtiny261 простая программа не помесщается в памяти
Sergiusz, Плохо ищете
есть даже в четвертой студии

есть даже в четвертой студии
- Вложения
-
- studio4.jpg
- (69.31 КБ) 373 скачивания
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: МК ATtiny261 простая программа не помесщается в памяти
Ёпрст! Да такая программа и без оптимизации должна занимать с гулькин нос.
Docendo discimus
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1916
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: МК ATtiny261 простая программа не помесщается в памяти
Программа в первом сообщении, использующая Arduino IDE и ATTinyCore для Аttiny261:
https://github.com/SpenceKonde/ATTinyCore
Скопируйте и распакуйте архив в
C:\Users\...\Documents\Arduino\hardware
Выберите свой микроконтроллер и и использовайте. Для программирования: Arduino IDE и ArduinoISP, из примеров. Никаких внешних программ и внешних программаторов. Все через USB. Все бесплатно.
---
Тест в Proteus (старая версия v8.3). Светодиод мигает.
SpenceKonde/ATTinyCoreСкетч использует 104 байт (5%) памяти устройства. Всего доступно 2048 байт.
Глобальные переменные используют 0 байт (0%) динамической памяти, оставляя 128 байт для локальных переменных. Максимум: 128 байт.
https://github.com/SpenceKonde/ATTinyCore
Скопируйте и распакуйте архив в
C:\Users\...\Documents\Arduino\hardware
Выберите свой микроконтроллер и и использовайте. Для программирования: Arduino IDE и ArduinoISP, из примеров. Никаких внешних программ и внешних программаторов. Все через USB. Все бесплатно.
---
Тест в Proteus (старая версия v8.3). Светодиод мигает.
- Вложения
-
- pr.jpg
- (88.2 КБ) 74 скачивания
-
- sketch_mar25a.zip
- (18.28 КБ) 169 скачиваний
-
- 261.jpg
- (213.07 КБ) 69 скачиваний
-
Novice user
- Мудрый кот
- Сообщения: 1704
- Зарегистрирован: Вт янв 05, 2016 10:14:25
- Откуда: поселок Мелеуз
Re: МК ATtiny261 простая программа не помесщается в памяти
veso74, вопрос был ни чем скомпилировать,а про размер прошивки
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: МК ATtiny261 простая программа не помесщается в памяти
Вот мой AVR Studio 5 что выдал:
Но без математической функции выдавал ошибки. Пришлось лапами вставить:Device: attiny261
Program: 104 bytes (5.1% Full)
(.text + .data + .bootloader)
Код: Выделить всё
#define F_CPU 8000000UL
#include <avr/io.h>
#include <math.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);
}
}Docendo discimus
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18675
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: МК ATtiny261 простая программа не помесщается в памяти
pyzhman писал(а):Но без математической функции выдавал ошибки.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: МК ATtiny261 простая программа не помесщается в памяти
Сам в шоке. Причем мой предыдущий проект, использующий эту библиотеку, норм. А этот даже переписал лапами и тем не менее пришлось вкорячить. Пока не разбирался в чём засада.
Добавлено after 4 minutes 55 seconds:
Отключил оптимизацию:
Добавлено after 4 minutes 55 seconds:
Отключил оптимизацию:
Device: attiny261
Program: 1184 bytes (57.8% Full)
(.text + .data + .bootloader)
Docendo discimus





