Segger J-Link vs. JTAG Programmer?

6

No me he desarrollado con un ARM, y estoy un poco confundido con el programador.

He estado codificando con PIC y 8051 y ambos usan cargadores que son del fabricante. Sin confusión.

¿Pero las ARM son un poco diferentes ya que los núcleos son en su mayoría iguales?

¿Tiene que comprar un programador JTAG "J-Link" de Segger para programar ARM? Veo que los cargadores profesionales de Segger son como varios cientos de dólares. Parece un poco duro ...

Veo que ST hace a un programador de JTAG el "ST-Link" por mucho menos que el "J-Link", ¿qué da?

¿Cuál es el trato con los cargadores para ARM Cortex M? ¿Las herramientas de carga de los fabricantes de ARM MCU están bloqueadas para funcionar solo con sus MCU?

¿Puede el ST-Link programar otro ARM Cortex M, si lo colocó correctamente?

En última instancia, estoy intentando tener un cargador compatible para un ARM Cortex M3, cuyo fabricante no hace un cargador ...

    
pregunta Leroy105

2 respuestas

7

Los ARM utilizan JTAG o SWD, y los núcleos ARM de microcontroladores más comunes son las series Cortex, que están casi exclusivamente programadas y depuradas en SWD.

Tanto JTAG como SWD están bien definidos, y la mayoría de los proveedores describen cómo ingresar y manipular el Puerto de acceso de depuración (DAP), que es la forma en que usualmente se accede a los buses internos, CPU, memorias y periféricos. La interfaz física entre la PC que estás utilizando para desarrollar / depurar y el puerto JTAG / SWD de la micro es el adaptador.

Si bien es cierto que puede usar prácticamente cualquier cosa para conectarse al puerto y manipular la interfaz SWD, la mayoría de los proveedores tendrán su propio "sabor" de adaptador. El uso de la herramienta recomendada por el proveedor suele ser la ruta de menor resistencia, ya que el proveedor admitirá su adaptador, su software recomendado funcionará con su adaptador y las cosas deberían documentarse razonablemente bien, haciendo que las cosas sean lo más suaves posible.

Dicho esto, mi experiencia con las herramientas de proveedores es que son herramientas de calidad inferior, rápidas y sucias. A menudo tengo problemas con OpenOCD y las herramientas de los proveedores (principalmente ST-Link, Olimex, OpenSDA, etc.), especialmente con la depuración. Déjeme decirle: nada es más frustrante que finalmente lograr que un sistema incorporado muestre un error en un entorno de depuración y algo entre el software / ide del depurador (gdb, eclipse, etc.), OpenOCD, el el controlador del proveedor y el adaptador del proveedor se desincronizan, se interrumpe la conexión de depuración y se requiere reiniciar el hardware para volver a intentarlo. Esta inestabilidad frustrante del entorno abre la puerta a proveedores como Segger, que hacen sus propios adaptadores JTAG / SWD, brindan un excelente soporte y cuyas herramientas funcionan con muchos proveedores diferentes. Hay algo que decir para que una única interfaz unificada se use con prácticamente todos los dispositivos con los que trabaja.

Pasé mucho tiempo evitando J-Link debido al precio y porque preferí usar software abierto y herramientas de proveedores. Comencé a usar los adaptadores J-Link hace unos años en un proyecto que ya los tenía y no he mirado atrás. Sus herramientas son todas multiplataforma y su depurador independiente, Ozone, es increíble. Rara vez he tenido ese problema de "mitad de la inestabilidad de depuración" con OpenOCD y J-Link, y nunca lo he tenido con Ozone.

Segger también ha dado el paso bastante agradable de ofrecer una "actualización" gratuita a cualquier depurador integrado en un kit de desarrollo que convierte al depurador específico del proveedor en un J-Link con licencia. Por supuesto, esto es para que pruebes y utilices sus herramientas para que las compres para usarlas en tus propios tableros, pero es una táctica brillante. Más información aquí para ST-Link, siga sus enlaces "Modelos - > Otros J-Links" para otros proveedores. También tienen descuentos educativos y hardware J-Link "lite" que tiene un precio muy razonable (¿USD $ 50 creo?) Y está restringido a los núcleos del procesador Cortex.

Ahora Segger no es el único adaptador de terceros que existe: hay disponible un depurador de código abierto que apunta específicamente a gdb. Es la Black Magic Probe . Venden hardware, pero también tienen esquemas completos, diseños y software publicados bajo la licencia GPL. No he tenido la oportunidad de usar estos aún, pero estoy muy emocionado de probar este depurador. La implementación del protocolo GDB en el depurador debería mejorar considerablemente la estabilidad. Por supuesto, también existen otros sistemas de gama superior, como Lauterbach y los adaptadores AbDIron (BDI2000 y BDI3000) (ahora extintos). Las herramientas más sofisticadas / más caras generalmente están conectadas en red en lugar de estar conectadas directamente a la PC de depuración, ofrecen interfaces JTAG (mucho) más rápidas y muchas veces también tienen puertos de rastreo separados disponibles que, con MCU compatibles, le proporcionan un registro detallado de cada instrucción ejecutada la hora en que se ejecutó y el procesador interno se indica después de cada instrucción.

Siempre puedes implementar el tuyo también. He incorporado mis propias interfaces SWD en Cypress 'PSoC5LP para resolver un problema particular que me permitió programar una cadena completa de dispositivos a través de una conexión USB para la fabricación. Podría usar un puerto paralelo o un par de líneas GPIO para mover las señales también. Todo depende de lo que estés buscando.

    
respondido por el akohlsmith
3

No se acaba de hacer esta pregunta.

ARM hace los núcleos, los núcleos tienen una interfaz SWD, que ahora está documentada abiertamente, y hay muchas soluciones. Sí, puede utilizar un enlace de enlace para comunicarse con otros chips que no sean el stm32. Del mismo modo, el brazo que está empujando no recuerda su nombre, se encuentra en las plataformas de lanzamiento de ti más nuevas, por ejemplo, la (s) placa (s) msp432 que creo que tiene una. Y puede obtener clones j-link en ebay por unos cuantos dólares que funcionan bien. Puede ir a openocd y, en el backend paralelo, implementar lo que quiera, puede decir algo a través de un dispositivo ftdi utilizado como gpio, lento pero funciona perfectamente bien. así como algunas personas simplemente han implementado herramientas swd utilizando varios tableros, mcus, etc.

algunos proveedores NXP y ST en particular continúan teniendo un gestor de arranque basado en uart que es completamente independiente del brazo y la interfaz swd en el núcleo del brazo, estos cargadores de arranque son protocolos simples que puede utilizar su propia herramienta en media hora. usando un usb para uart en su máquina de desarrollo (ftdi, etc.) o hay muchos ya escritos. Lamentablemente, atmel se ha dado por vencido con la samba, ofrecen una que puede descargar a las partes de samd, pero tiene que ser responsable de no borrarla y esa parte es muy fácil de borrar el flash, es increíblemente fácil. por lo que es un poco fallar para una interfaz como los otros proveedores que solía confiar en estar allí.

Básicamente hay demasiadas opciones para elegir si quieres verlo desde esa perspectiva. sin mencionar que si compra un panel de desarrollo del proveedor de chips y descarga su software, se espera que solo funcione con un clic del mouse o unos pocos.

    
respondido por el old_timer

Lea otras preguntas en las etiquetas