Tengo un trabajo a tiempo completo como un ingeniero de firmware. He recientemente se ha dado una tarea de revisar GPIO configuraciones y cambiar la configuración según sea necesario. He encontrado un par de pines que fueron incorrectamente configurados de modo que, naturalmente, yo reconfigurado ellos, sin embargo me dijeron que yo lo hice en el orden equivocado. Aquí está lo que estoy hablando:
Antes:
GPIO1.dirección = ENTRADA;Después de:
GPIO1.dirección = SALIDA;
GPIO1.valor = 0;
Sin embargo, durante la revisión de código que me han dicho que tengo que cambiar el orden de inicialización a la siguiente:
GPIO1.valor = 0;
GPIO1.dirección = SALIDA;
En otras palabras, establecer el valor primero y, a continuación, establecer la dirección de los pines. También me han dicho que esta es la forma en que debe ser en los procesadores modernos, ya que utilizan dos registros, uno para entrada y otro para salida, sin embargo edad de los procesadores utilizan sólo un registro, de modo que el orden de las operaciones no importaría.
(Nota: Modern = ARM Cortex M3 y, encima, Edad = Intel 8051)
Pedí una explicación mejor en el trabajo, pero no pude conseguir una buena respuesta. Es por eso que decidí preguntar aquí.
Así que aquí están mis preguntas:
- ¿Por qué el orden de inicialización de la materia en los nuevos procesadores?
- ¿Por qué el orden de inicialización no importa en la edad de los procesadores?
- ¿Qué dos registros están hablando en los procesadores modernos?
- Lo único registro, están hablando de los viejos procesadores?
Si alguien pudiera proporcionar algún tipo de diagrama, que sería aún mejor.