Проект на мега128, компилятор winavr 20100110
Device: atmega128
Program: 64760 bytes (49.4% Full)
(.text + .data + .bootloader)
Data: 3966 bytes (96.8% Full)
(.data + .bss + .noinit)
В программе есть структура
Код
struct {
unsigned char State_Code_Num; //
unsigned char hours; //
unsigned char minutes; //
unsigned char seconds; //
unsigned char years; //
unsigned char mounses;
unsigned char days;
} State_System;
unsigned char State_Code_Num; //
unsigned char hours; //
unsigned char minutes; //
unsigned char seconds; //
unsigned char years; //
unsigned char mounses;
unsigned char days;
} State_System;
Во время работы программы переменная State_System.days чюдесным образом изменяется. Пересмотрел программу, видимых наложений не нашел. Запусти внутрисхемную отладку в студии. Поставил точку останова на адрес 0х107С это адрес выше указанной переменной. Когда программа остановилась в не понятном месте гляжу Syack Pointer 0х107B и в переменной соответ. левые данные.
Почему winavr не ругается на этапе компиляции и как выловить после чего происходит переполнение?
Не хотелось бы верить в глючность winavr и просто изза этого переходить на ИАР.
Заранее спасибо!