debugging remoto stm32f4

2

No tengo mucha experiencia en el campo de los microcontroladores, provengo de un entorno Java, por lo que la pregunta puede parecer un poco noob, pero no encontré mucha información sobre esto.

¿Entonces es posible depurar una placa STM32F4 a través de bluetooth (utilizando eclipse o algún otro IDE)? Y si es así, ¿podría enviarme algunos enlaces que puedan 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 el equipo cada vez que algo sale mal. Por lo tanto, esto realmente sería útil. Así que cualquier ayuda es apreciada

    
pregunta Peter

3 respuestas

3

Recomiendo encarecidamente la depuración de printf para este tipo de aplicaciones. Tarda un poco en entenderlo, pero es una herramienta muy poderosa, ya que todo lo que necesita es un puerto serie y no interrumpe el flujo del programa. Hice una depuración de punto de interrupción por un tiempo en un proyecto de robótica y fue un verdadero dolor. La forma en que se escribió el código de accionamiento del motor, cuando llegaste a un punto de interrupción, los motores no se detuvieron, por lo que alguien tendría que agarrar el robot para que no se estrellara. No tienes este problema con la depuración de printf. Un par de módulos XBee fue suficiente 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 una mayor sobrecarga en términos de configurar correctamente los módulos y emparejarlos con su computadora.

    
respondido por el alex.forencich
2

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.

    
respondido por el user32709
1

Hay un depurador de bluetooth disponible para Cortex-M. Hace poco se publicó un artículo al respecto en embedded.com: enlace

    
respondido por el Anja V.

Lea otras preguntas en las etiquetas