Більшою причиною не налагодження в printf () є те, що він зазвичай неефективний, неадекватний та непотрібний.
Неефективні: printf () та kin використовують багато спалаху та оперативної пам’яті порівняно з наявними на невеликому мікроконтролері, але більша неефективність полягає у фактичній налагодженні. Зміна того, що реєструється, вимагає перекомпілювати та перепрограмувати ціль, що уповільнює процес. Він також використовує UART, який ви в іншому випадку можете використовувати для корисної роботи.
Неадекватний: Є лише стільки деталей, які можна вивести через послідовне посилання. Якщо програма висить, ви не знаєте, де саме, лише останній результат, який завершено.
Не потрібно: Багато мікроконтролерів можна віддалено налагодити. JTAG або власні протоколи можна використовувати для паузи процесора, зазирнути до регістрів і оперативної пам'яті і навіть змінити стан працюючого процесора без необхідності перекомпілювати. Ось чому налагоджувачі, як правило, є кращим способом налагодження, ніж друковані висловлювання, навіть на ПК з тоннами місця та потужності.
Прикро, що найпоширеніша платформа мікроконтролерів для новачків, Arduino, не має налагоджувача. AVR підтримує віддалену налагодження, але протокол debugWIRE Atmel є власницьким та недокументованим. Ви можете використовувати офіційну платформу розробників для налагодження з GDB, але якщо у вас є, ви, ймовірно, вже не надто переживаєте за Arduino.