No tengo experiencia en el campo de los microcontroladores, vengo de un entorno de Java, por lo que la pregunta puede parecer un poco novata, pero no encontré mucha información al respecto.
Entonces, ¿es posible depurar una placa STM32F4 a través de bluetooth (usando eclipse o algún otro IDE)? Y si es así, ¿podría enviarme algunos enlaces que podrían ayudar? Estamos construyendo un automóvil robótico controlado por una placa de descubrimiento y la depuración con un cable USB no es realmente una opción si no queremos desmontar todo cada vez que algo sale mal. Por lo tanto, esto sería realmente útil. Asi que se agradece cualquier ayuda
Recomiendo encarecidamente la depuración de printf para este tipo de aplicaciones. Toma un tiempo acostumbrarse, pero es una herramienta muy poderosa ya que todo lo que necesita es un puerto serie y no interrumpe el flujo del programa. Hice la depuración de puntos de interrupción durante un tiempo en un proyecto de robótica y fue un verdadero fastidio. Por la forma en que se escribió el código de accionamiento del motor, cuando llegabas a un punto de ruptura, los motores no se detenían, por lo que alguien tenía que agarrar el robot para que no se estrellara. No tiene este problema con la depuración de printf. Un par de módulos XBee fueron suficientes para llevar los datos en serie a una computadora para su revisión. También debería ser posible con bluetooth, pero eso también implica más gastos generales en términos de configurar los módulos correctamente y emparejarlos con su computadora.
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 los comentarios, pero mi reputación no es lo suficientemente alta.
Nunca (muy raramente) uso la depuración de printf. Según mi experiencia, tiene un gran impacto en el rendimiento y el diseño. Por ejemplo, el formateo y la serialización de valores a través de la interfaz de comunicación pasan factura. También necesita bibliotecas estándar e implementación mínima de llamadas al sistema (-lnosys no funcionará en GCC) que es posible que no necesite en su firmware. Además, el contexto con el depurador es mucho más rico que con printf.
Por supuesto, existe el miedo al comportamiento impredecible de los periféricos en la parada. Sin embargo, STM tiene un comportamiento de periféricos configurable cuando se detiene la CPU. Cada periférico puede detenerse con la CPU o dejarse en funcionamiento. Las herramientas iSYSTEM soportan la configuración común de estos. Usé el depurador iTAG gratuito de iSYSTEM con mi proyecto de referencia STM USB y no tuve problemas con USB mientras detenía la CPU.
Además, las herramientas profesionales admiten secuencias de comandos que se pueden usar para configurar sus periféricos cuando la CPU está detenida. Por ejemplo, el estado de ejecución del sondeo del script de Python y la aplicación de cambios (con escrituras en la memoria, ejecuciones breves del monitor, etc.) al detenerse y ejecutarse.
Una cosa más: es posible que deba probar y/o verificar su código. Esto no se puede hacer con instrumentación. La instrumentación básicamente significa cambiar su código con fines de depuración. Pero la versión 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 integrados. C++ necesita más recursos que C. Los compiladores no necesitan saber nada sobre el depurador. Es al revés. No podrá rastrear de forma inalámbrica porque no hay suficiente ancho de banda. Sin embargo, dejaría pines de seguimiento (si están disponibles en su paquete) libres en caso de que desee conectar la herramienta de análisis de puertos de seguimiento en el futuro.
Hay un depurador de bluetooth disponible para Cortex-M. Hace poco tiempo se publicó un artículo al respecto en Embedded.com: http://www.embedded.com/electronics-products/electronic-product-reviews/debug-and-optimization/4422586/iSYSTEM-introduces-wireless- depurador
Wouter van Ooijen
Pedro
alex.forencich
connor lobo
Étienne
Étienne