Search
Write a publication
Pull to refresh

Comments 4

Странное дело - у тебя есть полноценный отладчик, но привычка отлаживать через printf еще не отпала)

Есть способ проще - использовать асинхронный трассировочный вывод (пин SWO отладчика). Переопределяешь _write туда и printf из стандартной библиотеки будет спамить в консоль.

https://www.youtube.com/watch?v=ST_fUu6ACzE

А ещё, этот самый printf тянет за собой столько гадости, что в некоторые МК может и не влезть. Уж лучше взять LA и дрыгать ногами в режиме реального времени на время отладки.

Кстати да, принтф тяжелый и можно его не везде из-за использования динамической памяти. Но всегда можно свой putstring цельно-статический какой-нить родить и им пользоваться. Я последнее время обленился и лог вывожу просто в память, а потом отладчиком смотрю что там происходило. Ну и брякпоинты по коду и по изменению памяти - наше все.

Ещё, если printf используется для вывода значений с плавающей запятой, не забываем выравнивать стек (вероятно и кучу) в памяти, иначе вместо адекватных значений будем получать непонятную кашу. При этом вывод обычного текста и целочисленных данных может работать корректно.

Sign up to leave a comment.

Articles