Страница 1 из 1
МК ATtiny261 простая программа не помесщается в памяти
Добавлено: Ср мар 23, 2022 02:06:53
Sergiusz
Здравствуйте уважаемые форумчане. Я совсем зеленый новичок, хочу научиться программировать МК т сразу столкнулся с проблемой.
Взялся за освоение 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 простая программа не помесщается в памяти
Добавлено: Ср мар 23, 2022 06:31:08
phalanx
Нет ничего криминального в программе. Приведите полный ответ компилятора - линкера.
Re: МК ATtiny261 простая программа не помесщается в памяти
Добавлено: Ср мар 23, 2022 07:38:00
ARV
размер HEX-файла не должен никак вас пугать, он ни о чем не говорит. смотрите выхлоп программы avr-size - после компиляции она обязательно вызывается и показывает, сколько реально памяти отъела программа.
Re: МК ATtiny261 простая программа не помесщается в памяти
Добавлено: Ср мар 23, 2022 07:57:30
pyzhman
[uquote="Sergiusz",url="/forum/viewtopic.php?p=4202351#p4202351"]...что объем программы не умещается в памяти МК...[/uquote]
Скинь сюда скриншот протеуса с этим сообщением. Подозреваю, что не тот файл указываешь для мк.
Re: МК ATtiny261 простая программа не помесщается в памяти
Добавлено: Чт мар 24, 2022 11:07:56
Sergiusz
Вот так ругается Протеус:
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 байт.
Но почему такая короткая программа скомпилированная занимает так много места ???
Re: МК ATtiny261 простая программа не помесщается в памяти
Добавлено: Чт мар 24, 2022 11:14:23
ARV
Sergiusz писал(а):Program: 3360 bytes (164.1% Full)
вот тут и порылась собачка, вы заметили уже
Sergiusz писал(а):Но почему такая коротнаяпрогиамма скомпилированная занимает так много места ???
наверное, потому, что вы не включили оптимизацию... рекомендую включить
-Os и приятно удивиться.
Re: МК ATtiny261 простая программа не помесщается в памяти
Добавлено: Чт мар 24, 2022 22:03:06
Sergiusz
Не нашел как включить оптимизацию. Мне подсказали что вроде включается из меню проект:
Project->Configuration Options->Optimization->Os
Но в моем AVR Studio версии "5" нет такой опции. Перекопал все меню подряд, и нигде не нашел оптимизации.
БЕДА!!!!!
Re: МК ATtiny261 простая программа не помесщается в памяти
Добавлено: Пт мар 25, 2022 01:36:35
GoldenAndy
Sergiusz, Плохо ищете
есть даже в четвертой студии

Re: МК ATtiny261 простая программа не помесщается в памяти
Добавлено: Пт мар 25, 2022 07:15:46
pyzhman
Ёпрст! Да такая программа и без оптимизации должна занимать с гулькин нос.
Re: МК ATtiny261 простая программа не помесщается в памяти
Добавлено: Пт мар 25, 2022 07:39:02
veso74
Программа в первом сообщении, использующая Arduino IDE и ATTinyCore для Аttiny261:
Скетч использует 104 байт (5%) памяти устройства. Всего доступно 2048 байт.
Глобальные переменные используют 0 байт (0%) динамической памяти, оставляя 128 байт для локальных переменных. Максимум: 128 байт.
SpenceKonde/ATTinyCore
https://github.com/SpenceKonde/ATTinyCore
Скопируйте и распакуйте архив в
C:\Users\...\Documents\Arduino\hardware
Выберите свой микроконтроллер и и использовайте. Для программирования: Arduino IDE и ArduinoISP, из примеров. Никаких внешних программ и внешних программаторов. Все через USB. Все бесплатно.
---
Тест в Proteus (старая версия v8.3). Светодиод мигает.
Re: МК ATtiny261 простая программа не помесщается в памяти
Добавлено: Пт мар 25, 2022 08:48:39
Novice user
veso74, вопрос был ни чем скомпилировать,а про размер прошивки
Re: МК ATtiny261 простая программа не помесщается в памяти
Добавлено: Пт мар 25, 2022 09:15:17
pyzhman
Вот мой 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);
}
}
Re: МК ATtiny261 простая программа не помесщается в памяти
Добавлено: Пт мар 25, 2022 09:28:03
ARV
Re: МК ATtiny261 простая программа не помесщается в памяти
Добавлено: Пт мар 25, 2022 09:52:08
pyzhman
Сам в шоке. Причем мой предыдущий проект, использующий эту библиотеку, норм. А этот даже переписал лапами и тем не менее пришлось вкорячить. Пока не разбирался в чём засада.
Добавлено after 4 minutes 55 seconds:
Отключил оптимизацию:
Device: attiny261
Program: 1184 bytes (57.8% Full)
(.text + .data + .bootloader)