¿Debo definir los valores de registro predeterminados en el código de inicio?

3

Me ha llamado la atención que algunos programadores de ARM establecen algunos registros de CPU con valores que son los mismos valores predeterminados del registro en el reinicio del microcontrolador.

Por ejemplo: el valor predeterminado de IOCON_PIO2_9 , el parámetro MODE en LCP1114 es 0x02 (resistencia de pull-up habilitada). En el código de ejemplo de Olimex, este valor se establece en 0x02 en la inicialización del software, pero ya es el valor predeterminado.

Este comportamiento ocurre con muchos otros registros.

¿Por qué alguien haría eso? En mi opinión, este código adicional simplemente contamina todo y empeora la legibilidad del código. ¿Es esta una buena práctica de programación?

    
pregunta RHaguiuda

1 respuesta

11
  1. Para hacer código modular. Si su rutina A / D, por ejemplo, siempre configura el A / D completamente para el modo en que lo use, entonces se puede activar esa rutina en cualquier momento, ya sea inmediatamente después del encendido o después de usar el A / D en algún otro camino.
  2. El código puede volver a la ubicación de inicio para hacer un reinicio del software. En ese caso, es posible que la configuración no esté en los valores predeterminados de encendido.
  3. Los valores predeterminados de encendido pueden ser diferentes en diferentes procesadores, por lo que establecerlos en el código hace que el código sea más portátil.
  4. Documenta cuáles son las configuraciones. Si estos registros se configuran explícitamente en el inicio, entonces alguien que mira el código no tiene que ir a buscar en la hoja de datos para ver en qué están configurados.
  5. Documenta que te importa. Deje en el hardware la configuración predeterminada que no está utilizando, pero establezca explícitamente las que confía. Esto puede alertar a algún futuro mantenedor sobre la importancia de estas configuraciones particulares.
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas