Antes de responder a esto, uno debe entender el concepto de IO en la organización de la computadora, es decir, la interacción entre la CPU y un dispositivo periférico. Un dispositivo periférico puede ser:
- Controlador de E / S en serie
- Controlador PCI
- GPU
- ADC
- Controlador de pantalla, etc.
La interacción entre la CPU y un periférico generalmente se puede realizar mediante dos métodos: IO mapeado en memoria y mapeado en puerto (también conocido como mapeado en puerto).
En el caso de E / S asignadas a memoria, el espacio de direcciones disponible para la CPU se asigna entre la memoria física y los dispositivos de E / S. Entonces, acceder a cualquiera de ellos es lo mismo que una operación de lectura / escritura de memoria. Elaboraré esto:
- ¿Cuál es el alcance del sistema embebido en inteligencia artificial?
- ¿Qué sitio es el mejor para practicar preguntas estándar de programación en C que podrían llevarme a involucrarme en el desarrollo de sistemas embebidos?
- ¿Qué instrucciones están escritas para los conductores y en qué idioma están programadas?
- Cómo ser un profesional independiente en el desarrollo de sistemas integrados
- ¿Por qué no se utilizan microcontroladores PIC en la industria? ¿Por qué todos van por PLC?
- Por lo general, estos dispositivos periféricos de E / S exponen un conjunto de registros de control y estado para que los controladores de software / sistema operativo interactúen con ellos. Por ejemplo: un controlador de teclado expondría los registros de estado para mostrar el código de escaneo o la coordenada de la tecla, así como los registros de control para establecer los parámetros de escaneo.
- El mapa de memoria de la CPU se dividiría en diferentes secciones, cada una correspondiente a un dispositivo periférico / memoria.
- El desarrollador puede revisar el mapa de memoria proporcionado por el proveedor de chipset o procesador, y comprender a qué región de memoria se asigna el periférico requerido.
- Después de obtener el mapa de memoria, el manual del desarrollador para el dispositivo periférico elaborará el conjunto de registros de control y estado expuestos. Con esta información, el desarrollador puede escribir o modificar el código del controlador con el mapa de memoria actualizado y el conjunto de registros. Por lo tanto, permite que el periférico funcione con el sistema operativo
Entonces, como puede ver, se requiere una comprensión del mapa de memoria para que el desarrollador principal de BSP (Board Support Package) escriba y muestre controladores que interactuarían con los dispositivos periféricos. En todos los dispositivos integrados, habrá una variedad de dispositivos conectados a la CPU, tanto internamente (como en SoC) como externamente (a través de PCI u otras interfaces seriales). Y en la mayoría de los casos, se emplea un método de control de mapeo de memoria, razón por la cual el mapa de memoria es importante en lo que respecta a un desarrollador integrado.
Para obtener más información sobre IO Concepts, consulte los siguientes enlaces:
- Programación de sistemas integrados: E / S mapeadas en memoria frente a E / S mapeadas en puerto
- E / S mapeadas en memoria