¿El uso típico del mundo real de los sistemas integrados requiere programarlos en los niveles de registro periférico?

Si está haciendo una actualización de la placa, es obtener un nuevo diseño de PCB que se ejecute por primera vez, tendrá que lidiar con el GPIO como mínimo, por lo que la respuesta breve es sí.

Si el producto ya se ha desarrollado y solo está haciendo mantenimiento, es menos probable, particularmente con un producto maduro, pero a veces un error lo hará cavar en los niveles de registro.

Existe la tendencia de que los fabricantes proporcionen marcos que oculten el material del nivel de registro, pero no confíen en ellos para evitar que necesite profundizar a veces y, a menudo, aún necesita una comprensión sólida de lo que sucede en el nivel de registro, incluso cuando trabaja a nivel de marco, ya que algunas cosas interactúan de manera inesperada si no ha leído sobre cosas. Por ejemplo, en el STM32, las interfaces I2S y SPI están utilizando la misma interfaz en diferentes modos, algo que puede no darse cuenta a primera vista .

La respuesta es definitivamente . No puede evitar la programación de dispositivos sin meterse con los registros. Esto es como un modelo de programación adaptado por la comunidad Embedded System. Ni siquiera se trata de eficiencia y velocidad, sino de eso se tratan los sistemas integrados y la programación de bajo nivel.

Ahora hay una tendencia de que el proveedor de chips le dará algunas bibliotecas para que comience, es decir, menos programación de registro de bajo nivel. Sin embargo, existe el riesgo de que si no comprende completamente estas bibliotecas, las utilizará incorrectamente. Hay un argumento candente sobre si uno debería usar bibliotecas o no. No importa qué lado sea más razonable, este patrón de programación durará otras décadas. Así que vive con él y encontrarás que no es tan difícil como parece ser.

Sí, la programación a nivel de registro es esencial si está apuntando a un procesador como un PIC o un ARM pequeño.

Los sistemas más potentes (p. Ej., STM32 M4) pueden comenzar a utilizar abstracciones a través de un sistema operativo en tiempo real (p. Ej., FreeRTOS) y avanzar aún más cuando encuentre computadoras de placa única (SBC) que normalmente ejecutan Linux, abstraen los registros por completo y reducen las E / S manipulación de línea para operaciones del sistema de archivos.

En términos generales, el enfoque en la optimización del tamaño del código a costa de la legibilidad es mayor cuando se trata de un PIC16 o ARM M0 y se desvanece una vez que está hasta el nivel ARM M3 / 4.

Sí, siempre estamos controlando todos los dispositivos conectados a la CPU y la placa base. Esto incluye registros de programación, puertos IO, instalaciones de CPU como configuración de memoria, DMA e interrupciones.

A menudo hay una compensación entre tamaño, rendimiento y legibilidad. Comienzo creando una rutina muy legible. La programación en C ayuda porque, al compilar, puede activar o desactivar niveles de optimización de velocidad y tamaño. Esto también puede tener problemas. Por lo tanto, dejo todas las optimizaciones desactivadas, hasta que todo lo demás no pueda llevarme a donde me dirijo. Si su programación en un ensamblador, la optimización de la velocidad, el tamaño y la legibilidad depende de usted. Por supuesto, los buenos comentarios siempre ayudarán a la legibilidad. Voy por el adagio:

Haz que funcione, luego hazlo mejor.

More Interesting

¿Cuáles son algunos temas muy importantes en los sistemas embebidos, que son interesantes y requieren un conocimiento previo de solo 'microprocesadores' y 'electrónica digital'?

¿Qué es el cargador de arranque y el código de inicio en el sistema integrado?

¿Qué cosas puedo hacer con un microcontrolador de plumas adafruit?

¿Cuál es la importancia de un diagrama de bloques en un sistema integrado?

¿Cuáles son los pros y los contras entre un sistema en un chip y los procesadores integrados?

¿Por qué los productos Crestron se basan en software embebido de Windows? Seguramente en estos días cualquier equipo que se respete usaría Linux (integrado o no).

¿El software de código abierto está sobrevalorado? Cual es la realidad ¿Las startups y otras empresas de sistemas integrados realmente usan código abierto en su proyecto?

¿Cuáles son algunos de los buenos institutos de capacitación de sistemas integrados en Lucknow?

¿Cuál es la función de los pines ICSP en el Arduino Uno?

¿Cuáles son las diferencias de detalle entre el microcontrolador ATmega 16 y 8051, cuál de estos dos es mejor?

¿Cuál es su opinión sobre la generación del procesador x86 (486)? ¿Se puede usar como un dispositivo IoT y competir en un microcontrolador de segmento pequeño?

Dado un sistema integrado que tiene múltiples CPU, ¿cómo podemos diseñar un sistema para la comunicación entre procesadores?

¿Cómo es hacer maestrías en sistemas embebidos en Alemania?

¿Cuál es la diferencia entre arduino y pic?

¿A qué instituto debería unirme MTech o i3indya para embebido (microcontrolador pic)?