Всем привет!
Как-то так получилось, что отладкой почти не пользовался. Тут понадобилось и обратил внимание что к примеру SysTick не вызывает прерывание. т.е. если просто подать питание на проц - то всё работает, а если подключиться отладчиком и начать "отлаживать" то таймер замер и ничего не происходит.
Я что-то не так делаю?
всё должно работать. оставьте точку останова только на прерывании SysTick, и ждите...
P.S. возможно вы его не там ставите... или оно не ставится...
в том-то и дело что уже всё перепробовал.
В этом прерывании уменьшаются софтовые таймеры, так вот и было замечено, что они перестали работать. "висят" с начальным значением.
а оно как работает? только с отключенной отладкой, а с любым вариантом подключенной не работает вообще или с подключенной по командам ходит только в систик не заходит?
Оно запускается, инициализируется. При этом я могу пройти по всем строкам F10 и ноги будут "дрыгаться" даже выплёвывает 1 байт в USART но до второго дело не доходит, потому что прерывание не вызывается чтобы выплюнуть следующий. Та же ситуация с таймером - я взвожу его и.... бесконечно кручусь в цикле ожидая его 0.
т.е. по коду ходится, исполняется, bp срабатываю если до них доходит дело.
Ага! Именно так. Ноги растут из ST-Util, перешёл на OpenOCD (оно конечно странно как-то ходит по коду, такое ощущение что по ASM ходит вместо C)
Golikov A.
Jan 5 2015, 10:28
оно всегда ходит по машинным кодам. И если оптимизация не стоит на 0, то обычно программа не совпадает с С кодом. А в кейле еще и переменные пропадают если оптимизация не 0, а там дефолтная оптимизация -1.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.