rezident (11.08.2013 04:11 - 04:14, просмотров: 145) ответил mazur на Есть в WinAVR настройка, чтобы после ресета обнулялась вся ОЗУ? Или для этого свою функцию нужно писать?
Все глобальные (global) и статические (static) переменные обычно попадают в секцию, которая автоматически очищается (инициализируется нулями) еще до выполнения main, если только они не объявляются одновременно с инициализацией их явными значениями. Локальные (auto) и регистровые (register) переменные автоматически не инициализируются какими-то определенными значениями, если только они не объявляются с одновременной инициализацией их явными значениями.
Пример.
int a;
unsigned int b = 1;
void main (void)
{ int c, d = 2;
static int e = 3, f;
...
}
Переменные a и f будут инициализированы нулями.
Переменная b будет инициализирована значением 1, а e - значением 3.
Значение переменной c будет неопределенным.
Значение переменной d будет равно 2 в том месте, где она будет впервые использована.
Специальной функции очистки всего ОЗУ нет, но можно написать свою и запускать ее до выполнения main.