Привет, All!
Возник такой вопрос: сабж. Почему возник: вчера игрался с WinAVR, затем прогонял программу в VMlab. Последняя неожиданно доложила мне об том, что указатель стека улетел черти куда. При этом указатель текущей команды стоял на векторе переполнения нулевого таймера. Hачал искать бяку. Обнаружил что все это происходит на примерно такой конструкции (точных номеров регистров не помню):
{ } cli <- Здесь счетчик таймера принимает значение 0xFF и сбрасывается флаг прерываний (в смысле, VMlab это отображает). out SPH,R0 <- Здесь счетчик сбрасывается в ноль. out SPL,R1 <- А между здесь и предыдущей командой, проц улетает по вектору прерывания переполнения нулевого счетчика.
Почему это происходит при сброшенном флаге разрешения прерываний?! Это глюки VMlab, моё ламерстрво или фича кристалла?
Заранее благодарен за ответ.
ЗЫ: Происходит все это где то в недрах функции printf.
С уважением, Андрей АКА Хомич, АКА UR3LTG. ... Кpепись не выходя из запоя.(с)unknown