Supongo que el iSYSTEM iONE.BT podría ser algo que podrías usar. Admite la depuración en Eclipse.
Pondría algunos de estos en comentarios, pero mi reputación no es lo suficientemente alta.
Nunca (muy rara vez) uso la depuración de printf. Por mi experiencia, tiene un gran impacto en el rendimiento y el diseño. P.ej. El formateo de valores y la serialización a través de la interfaz de comunicación pasan factura. También necesita libs estándar y una implementación mínima de llamadas al sistema (-lnosys no funcionará en GCC), lo que tal vez no necesite en su firmware. Además, el contexto con el depurador es mucho más rico que con printf.
Por supuesto, existe el temor a que se detengan los periféricos impredecibles. Sin embargo, STM tiene un comportamiento de periféricos configurables cuando la CPU se detiene. Cada periférico puede detenerse con la CPU o dejarse en funcionamiento. Las herramientas iSYSTEM admiten la configuración común de éstas. Usé el depurador iTAG gratuito de iSYSTEM con mi Proyecto de referencia USB de STM y no tuvo problemas con el USB al detener la CPU.
Además, las herramientas profesionales admiten secuencias de comandos que se pueden usar para configurar sus periféricos cuando se detiene la CPU. P.ej. La secuencia de comandos de Python ejecuta el estado de ejecución y aplica los cambios (con escrituras de memoria, ejecuciones breves de monitores, etc.) al detener y ejecutar.
Una cosa más: es posible que necesite probar y / o verificar su código. Esto no se puede hacer con la instrumentación. La instrumentación básicamente significa cambiar su código para propósitos de depuración. Pero el lanzamiento de FW sin printfs no es lo mismo que la versión de depuración probada con ellos. O puede dejar printfs en la versión FW :).
Recomiendo C sobre C ++ para proyectos incrustados. C ++ necesita más recursos que C.
Los compiladores no necesitan saber nada sobre el depurador. Es al revés.
No podrá rastrear a través de la conexión inalámbrica porque no hay suficiente ancho de banda. Sin embargo, dejaría libres los pines de seguimiento (si están disponibles en su paquete) en caso de que quiera conectar la herramienta de análisis de puertos de rastreo en el futuro.