¿Cuáles son las ventajas y desventajas de usar USART para la depuración de sistemas integrados? [cerrado]

-2

¿Cuáles son las ventajas y desventajas (si las hay) de usar USART para depurar los sistemas integrados? ¿Qué otros métodos funcionan efectivamente? Sé que diferentes periféricos tienen diferentes técnicas.
editar ¿Qué sucede si registra todos los datos para depurar, pero los transmite después de la sección en que su depuración termina de ejecutarse (para evitar gastos generales)?

    
pregunta h3y4w

3 respuestas

1

UART: simple, de bajo costo, en tiempo real, y muchos ejemplos. Lenta, la lógica se corrigió en tiempo de ejecución / inflexible, tiene un alcance limitado y ocupa un recurso.

Depurador: rápido, flexible, potente / rico en funciones. RTT y jscope, por ejemplo, son para morirse. Caro, dedicado y no se puede hacer en tiempo real a menos que vaya con un hardware más sofisticado.

Personalmente, soy un gran fanático de un depurador de hardware.

    
respondido por el dannyf
1

No hay una respuesta única / correcta a tu pregunta y espero que se cierre porque es una cuestión de opinión ...

Realmente se reduce a la elección personal y / o lo que está disponible en el sistema que está utilizando. A veces tienes una interfaz de depuración jtag o similar y no tienes uart / led / other. A veces tienes un alcance y algo de gpio, a veces tienes un uart y algo para conectarlo para ver qué sale. Podría abstraer su código y, en lugar de enviar el código fuera del uart, cambiar el back-end e iniciar sesión en el ram, luego volcarlo con un depurador más tarde.

Todas las soluciones deben ser obvias. Si agrega el código de uart, está agregando el código, los uarts son relativamente lentos, por lo que su código puede tener demoras en la impresión, estos retrasos pueden causar problemas más adelante, ya que pueden ayudar a algunos dispositivos periféricos u otros a instalarse, etc. El código de impresión de uart pierde esa demora ahora que la sincronización de sus códigos está desactivada. Al mismo tiempo, si no tiene una buena visibilidad de lo que está pasando, es muy difícil sin un usuario.

Un led es una salida de un bit, puede parpadear, puede intentar hacer un código morse o algún otro esquema para secuenciar visualmente los datos / bits, puede simplemente golpear el pin de gpio a velocidades de uart con un protocolo de uart y Tener mejor visibilidad.

Para un chip nuevo para mí, el led es la primera herramienta, me dice que el código se está iniciando y ejecutando, si puedo parpadear, impresionante. A continuación encuentro un temporizador y trato de controlar cuidadosamente el tiempo de gpio. Confirmando que el oscilador creo que lo está usando está usando, puede usar ese led y un cronómetro / temporizador para configurar el pll, cambiar a un oscilador externo, etc. Con ese conocimiento ahora puedo calcular el divisor para el uart y tener un Bastante bien de estar en lo cierto o con una potencia de dos. Luego levante el uart y use el uart desde allí para desarrollar más la aplicación.

Encontrará que algunos productos mantienen el código uart allí (por ejemplo, los botones de Amazon Dash).

Se trata de lo que encuentra más fácil o mejor o lo que está disponible. Obtenga una placa de evaluación de microcontroladores basada en cortex-m (puede obtener una buena por $ 10, hay docenas para elegir de varios proveedores que no figuran aquí) a menudo tendrá usb para SWD (como jtag, lo lleva al depurador), un uart virtual al mcu objetivo, y alguna forma de programar el mcu además de una solución swd. No es que los que no son armas no tienen esto, pero muchas de las juntas de evaluación de brazos sí lo tienen. a menudo tienen un led también. así que puedes intentarlo todo por $ 10, led depuración parpadeando, uart debugging, en la depuración del chip depurador, ve a buscar un alcance y úsalo para la depuración. Comience a desarrollar una preferencia personal, pero mantenga las alternativas en su bolsillo trasero, ya que hay ocasiones en que puede necesitarlas.

    
respondido por el old_timer
0

Pros

  • Fácil de implementar
  • Muy flexible

Contras

  • Difícil de no implementado. Una vez que un montón de líneas de código se refuerzan con respecto a su código, puede llevar mucho tiempo desenredarlo. Esto puede ser un problema a menos que el código de depuración esté bien estructurado. También existe la posibilidad de que la eliminación de las líneas pueda interrumpir el tiempo.
  • Overhead. Dependiendo del procesador que use y de las capacidades que tenga, el envío de un montón de datos UART puede realizar tareas e interferir con el tiempo preciso.

Otros meathods

  • Un simple LED. Muy poca sobrecarga para encender y apagar las luces. Solo permite la depuración de pequeñas secciones de código a la vez.
  • Un depurador en circuito o un depurador JTAG específicamente diseñado para su microcontrolador. Permite una depuración muy flexible con funciones avanzadas, como paso a través del código línea por línea y monitoreo e inyección variables. No todos los procesadores soportan este costo especialmente bajo.
respondido por el vini_i

Lea otras preguntas en las etiquetas