STM32L07xxx problemas de arranque

1

He creado un diseño con un STM32L07xxx y un ATtiny que se comunican entre sí a través de UART.

Desafortunadamente, me olvidé de incluir una resistencia desplegable al pin BOOT0 del STM. El resultado es que el STM se inicia principalmente en modo de cargador de arranque. Un rediseño o un nuevo trabajo son una opción en este momento.

Mi estrategia inicial fue usar ATtiny para hacer uso de los comandos del cargador de arranque para saltar al código de la aplicación con la ayuda del comando 'Ir' (como se describe en AN3155)

Desafortunadamente, el binario que me han proporcionado habilita el nivel 1 de RDP, lo que me impide usar 'Ir'. (Lo he intentado, solo responde con nACKs)

Mi última opción parece ser establecer la protección de lectura en el nivel 2 para garantizar que el gestor de arranque salta al banco1 o al banco2 (AN2606 42.1.2)

Mi pregunta es; ¿Cómo me aseguro de que la secuencia de arranque salte al banco1?

¡También son bienvenidas otras sugerencias alternativas que resulten en la ejecución del código de la aplicación!

    
pregunta Joshua de Haan

1 respuesta

0

Cuando se establece RDP nivel 2 , se inicia desde el banco 2 solo si

  • El bit de opción BFB2 está establecido . Cuando no lo está, entonces el gestor de arranque no se inicia en absoluto, salta directamente al banco flash 1, por lo tanto, las cosas en AN2606 no se aplican en absoluto.
  • y la primera palabra del banco 2 es un puntero de pila válido , es decir, apunta a una dirección válida en la SRAM interna. De lo contrario, va al banco 1.

Si uno de los anteriores es falso, entonces tienes suerte :)

Consulte la sección 3.3.2 en el Manual de referencia para obtener más información.

    
respondido por el berendi

Lea otras preguntas en las etiquetas