STM32F0 boot0 pin y programación SWD

0

Según entiendo, las hojas de datos boot0 pin y boot1 bit (en un registro) controlan cómo se inicia la CPU, que son la memoria flash principal, la memoria del sistema y la SRAM incorporada. Honestamente, no conozco las diferencias en la funcionalidad de estas secciones de memoria, ni quiero preocuparme ahora (siéntete libre de decirme por qué debería).

Mi caso de uso requiere programarlo a través de SWD según sea necesario (por lo que no es un contrato de una sola vez) y arrancar desde él.

No estoy interesado en varias configuraciones flash o tener cargadores de arranque para programar el chip sobre otros protocolos. No voy a producir en masa esto.

¿Al tirar el pin boot0 a través de una resistencia y simplemente conectar el conector SWD me permitiría hacer esto?

    
pregunta Tryphon

1 respuesta

3

El SWD debe funcionar en una pieza desbloqueada independientemente del estado del pin boot0 , a menos que un estado active el funcionamiento del código (o el contenido de la memoria flash dañada se interprete mal como un código) que reutiliza los pines del SWD o pone el cambiar a modo de suspensión con SWD inactivo.

Por lo general, si su código hace cualquiera de estas cosas, es mejor que no lo haga hasta varios segundos después del reinicio, para que pueda usar incluso un reinicio activado manualmente y una conexión SWD inmediata para volver a entrar. Sin embargo, hay formas para que la parte inicial del proceso de conexión SWD ocurra mientras la CPU se mantiene en reinicio y, por lo tanto, ingrese antes de que el software pueda desactivar el SWD.

Sin embargo, un método abreviado que se usa a veces es conducir temporalmente boot0 high que (cuando el chip está desbloqueado) provoca el arranque desde el cargador de arranque o la SRAM, con la idea de que al hacerlo evitará el código del "problema" en flash en ejecución, y facilitar la puesta en marcha de una conexión SWD.

    
respondido por el Chris Stratton

Lea otras preguntas en las etiquetas