vitalik_1984 писал(а):Нет, io.h вы записываете, а из него автоматом в соответствии с ключами компиляции для конкретного Мк препроцессор подключает нужные заголовочные файлы.
я не подключал, однако новые регистры подхватились и ошибок нет....

vitalik_1984 писал(а):Нет, io.h вы записываете, а из него автоматом в соответствии с ключами компиляции для конкретного Мк препроцессор подключает нужные заголовочные файлы.

Код: Выделить всё
новые регистры подхватилисьurry писал(а):Код: Выделить всё
новые регистры подхватились
только старые мешают, не TCCR0 а TCCR0A
В даташит, одним словом - ссылку вам давали .
Код: Выделить всё
static unsigned char UART_Buf[68];
....
switch (UART_Buf[0]) {
Код: Выделить всё
/main.c:429: relocation truncated to fit: R_AVR_7_PCREL against `no symbol'urry писал(а):Сама запись относительно безобидная, нужно смотреть весь текст.
Единственно, если включить Кашпировского, то можно предположить, что текст нашпиган арифметикой с флоатами и отсутствует ее оптимизация - строчка в мейк файле LIBS = -lm
Код: Выделить всё
unsigned char ch;
ch='t';
switch (ch) {Код: Выделить всё
unsigned char ch;
сh=UART_Buf[0];
switch (ch) {Дальнейшие рассуждения без полного исходника( лучше в виде проекта) не имеют смысла и превращаются во флуд.alex1126 писал(а):нету там никаких флоат. Там буфер, куда собираются данные с уарта и первый байт это команда, остальные данные - параметры для команды.
Если код изменить на
AVR Memory Usage
----------
Device: atmega88pa
Program: 6516 bytes (79.5% Full)
(.text + .data + .bootloader)
Data: 604 bytes (59.0% Full)
(.data + .bss + .noinit)
EEPROM: 164 bytes (32.0% Full)
(.eeprom)
В настройках проекта в разделе оптимизации выключите
"Use rjmp/rcall (limited range) on >8k devices (-mshort-calls)"
это где?
Странно как-то. Эта ошибка возникает когда линковщик не может при принудительно включенных "коротких" переходах/вызовах переупорядочить код так, чтобы всё укладывалось во флэш.alex1126 писал(а):Похоже я понял в чем дело - памяти не хватало, поигрался с оптимизацией, скомпилировалось
...
пишу под атмегу 88pa_au, avr-gcc (WinAVR 20100110) 4.3.3. Я так понял что там 8кило флеша.
Смотря что вы имеете в виду. Если ОЗУ хватает, то разницы нет почти.alex1126 писал(а):А имеет смысл константы во флеше хранить или это на размер прошивке не повлияет (или даже увеличит)?
• High Endurance Non-volatile Memory Segments
– 4/8/16/32K Bytes of In-System Self-Programmable Flash progam memory
(ATmega48PA/88PA/168PA/328P)
– 256/512/512/1K Bytes EEPROM (ATmega48PA/88PA/168PA/328P)
– 512/1K/1K/2K Bytes Internal SRAM (ATmega48PA/88PA/168PA/328P)
так констант или переменных?alex1126 писал(а):констант/переменных
копирование ВСЕХ инициализированных переменных в ОЗУ - всего 11 команд.vitalik_1984 писал(а):...зато уберется копирование в оперативную память
a_skr писал(а):копирование ВСЕХ инициализированных переменных в ОЗУ - всего 11 команд.
a_skr писал(а):так констант или переменных?