Autor Tema: Modo RUN vs Modo DEBUG  (Leído 150 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17600
    • MicroPIC
Modo RUN vs Modo DEBUG
« en: 14 de Junio de 2018, 12:54:42 »
Hola compañeros.
Llevo un tiempo con un desarrollo para un STM32F103 y en modo Debug todo va saliendo y funcionando correctamente.
Ahora ha llegado el momento de soltar el cordón umbilical del ST-LINK y cargar un HEX al micro para que funcione en solitario.

He conseguido compilar el software y generar el HEX gracias a este consejo:


Pero cuando programo el HEX en el micro no hace absolutamente nada, se queda congelado.
¿Qué puedo hacer?

Gracias
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3154
    • Pinballsp
Re:Modo RUN vs Modo DEBUG
« Respuesta #1 en: 14 de Junio de 2018, 15:28:41 »
 
Si todo va bien en modo Debug, y no hace nada en modo normal, solo se me ocurre que el circuito del oscilador está mal conectado o mal configurado.

En modo Debug tengo entendido que la señal de reloj la envía el PC por JTAG o SWD, para poder controlar paso a paso la ejecución del programa. En modo normal, es el oscilador del micro el que debe de generar la señal de reloj.

Comprueba que tienes bien conectado el cuarzo, con sus dos condensadores a masa (unos 20pf), en mis circuitos con el F407 también hay una resistencia en serie con una de las patillas del cuarzo (creo que es necesaria para cuarzos que no superan los 8Mhz). Y mira también la configuración del oscilador en Cubemx, que la frecuencia se corresponda con la del cuarzo y que tengas bien configurado el PLL y las frecuencias de reloj para todos los buses.

Comprueba también que tienes conectadas correctamente las dos patillas, BOOT0 y BOOT1 (ambas a masa), para que el programa arranque desde la flash del microcontrolador. Si habilitas el modo Boot, con un jumper o un pulsador en Boot0, podrías cargar el programa en el micro sin necesidad de programador, puede venir bien en montajes caseros que no necesitan una protección comercial, para actualizarlo con rapidez.

La patilla NRST supongo que la tendrás bien conectada, al aire o a positivo con una resistencia de pullup para poder programar y hacer debug al micro.

En cuanto a la configuración que mencionas para generar el objeto, yo nunca he necesitado configurar nada en Eclipse ni en Cubemx, para que me genere el BIN que puedo grabar sin problemas con el programador ST-LINK V2.
« Última modificación: 14 de Junio de 2018, 15:46:54 por planeta9999 »

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17600
    • MicroPIC
Re:Modo RUN vs Modo DEBUG
« Respuesta #2 en: 14 de Junio de 2018, 16:08:01 »
¡Tierra trágame!

Ha sido leer tu respuesta e irme corriendo a quitar el jumper del bootloader ¡et voilá!

Menos mal que siempre estáis ahí, para las fáciles y para las difíciles.

Gracias
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3154
    • Pinballsp
Re:Modo RUN vs Modo DEBUG
« Respuesta #3 en: 14 de Junio de 2018, 18:21:06 »
 
Bien, me alegro que ya te funcione.

Yo el modo boot en los STM32, lo tengo en un producto comercial, aunque no es una forma segura de dar actualizaciones porque el firmware no está encriptado y se podría desensamblar o parchear. El caso es que ese firmware no es mío, y su autor tiene un sistema de licencias con número de serie único como sistema de protección y se actualiza por USB y DFU en modo boot.

A nivel de hardware en principio lo implementé con un jumper, luego lo cambié a un DIP switch que quedaba más bonito, pero lo quité porque se dañaban con frecuencia (seguramente porque eran chinos de mala calidad) y me dejaba clientes con placas inutilizadas.

Al final opté por un pulsador, que es lo mejor por mi experiencia. El usuario, para entrar en modo boot (para actualizar el firmware), con la placa sin alimentar, aprieta un pulsador (que pone BOOT0 a masa) y lo mantiene pulsado mientras da tensión, eso hace que el STM32 entre en modo boot, ahí ya puede soltar el pulsador, y conectado por USB al PC puede actualizar el firmware con la utilidad gratuita DFUSeDemo de ST.
« Última modificación: 14 de Junio de 2018, 18:24:33 por planeta9999 »

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17600
    • MicroPIC
Re:Modo RUN vs Modo DEBUG
« Respuesta #4 en: 14 de Junio de 2018, 18:46:55 »
Bien pensado
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ