Cuestiones
ayuda
option
Mi Daypo

TEST BORRADO, QUIZÁS LE INTERESEEstructura de Computadores

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del test:
Estructura de Computadores

Descripción:
Test tema 4 cuestionarios UMA

Autor:
Alex_ramet
(Otros tests del mismo autor)

Fecha de Creación:
16/11/2021

Categoría:
Informática

Número preguntas: 31
Comparte el test:
Facebook
Twitter
Whatsapp
Comparte el test:
Facebook
Twitter
Whatsapp
Últimos Comentarios
No hay ningún comentario sobre este test.
Temario:
Los puertos GPIO en la Raspberry Pi 2 se encuentran a partir de la dirección 3F 20 00 00 20 3F 00 00 20 20 00 00 3F 3F 00 00.
En cada uno de los puertos GPFSELi (GPFSEL0, GPFSEL1, ...), ¿cuántas señales de GPIO se pueden configurar?.
Para apagar un LED se escribe un 0 en el bit correspondiente del puerto GPCLR Verdadero Falso.
Para poner a 1 un bit en particular se puede hacer un AND lógico con una máscara que contenga un 1 en esa posición. Falso Verdadero.
La pulsación de uno de los dos botones modifica un bit en uno de los puertos GPLEV Verdadero Falso.
Para que suene una nota por el altavoz basta con enviar comandos de SET al bit correspondiente cada X segundos, siendo X la mitad del periodo de la onda equivalente a ese sonido Verdadero Falso.
Escribe un programa que encienda el primer led rojo de la placa de expansión (señal GPIO 9). Sabemos que, en el arranque, van a estar todos los leds apagados. Recuerda que ante la inexistencia de un SO al que retornar, tus programas deben terminar en un bucle infinito. El esqueleto de nuestro programa es el siguiente: .include "inter.inc" .text ldr r0, =GPBASE mov r1, XXX str r1, [r0, #GPFSEL0] @ Configura GPIO 9 mov r1, YYY str r1, [r0, #GPSET0] @ Enciende GPIO 9 infi: b infi El valor para XXX es un número de 32 bits de la forma #0b... con todos sus bits a 0 Y ningún bit a 1 Salvo el bit 27 que estará a 1 Salvo el bit 18 que estará a 1 Salvo el bit 9 que estará a 1.
Escribe un programa que encienda el primer led rojo de la placa de expansión (señal GPIO 9). Sabemos que, en el arranque, van a estar todos los leds apagados. Recuerda que ante la inexistencia de un SO al que retornar, tus programas deben terminar en un bucle infinito. El esqueleto de nuestro programa es el siguiente: .include "inter.inc" .text ldr r0, =GPBASE mov r1, XXX str r1, [r0, #GPFSEL0] @ Configura GPIO 9 mov r1, YYY str r1, [r0, #GPSET0] @ Enciende GPIO 9 infi: b infi El valor para YYY es un número de 32 bits de la forma #0b... con todos sus bits a 0 Salvo el bit 18 que estará a 1 Salvo el bit 9 que estará a 1 Salvo el bit 27 que estará a 1 Y ningún bit a 1.
Para escribir un 1 en un GPIO se pone un 1 en el bit asociado del puerto GPSET correspondiente Verdadero Falso.
Se le ha pedido a alumnos de la asignatura Estructura de Computadores que preparen un código que implemente la siguiente funcionalidad: al arrancar la RPi deberán encenderse los leds amarillo y rojo conectados al GPIO 17 y 10 respectivamente. Suponiendo que la definición de las constantes en el fichero "inter.inc" se realiza correctamente, y tal y como aparece en los ejemplos de clase: ¿cuál/es de los siguientes códigos es el correcto?. A -> .include "inter.inc" .text ldr r0, =GPBASE /* guia bits xx999888777666555444333222111000*/ ldr r1, =0b00000000001000000000000000000001 str r1, [r0, #GPFSEL1] /* guia bits 10987654321098765432109876543210*/ ldr r1, =0b00000000000000100000010000000000 str r1, [r0, #GPCLR0] bucle: b bucle B -> .include "inter.inc" .text ldr r0, =GPBASE /* guia bits xx999888777666555444333222111000*/ ldr r1, =0b00000000001000000000000000000001 str r1, [r0, #GPFSEL1] /* guia bits 10987654321098765432109876543210*/ ldr r1, =0b00000000000000100000010000000000 str r1, [r0, #GPSET0] bucle: b bucle C -> .include "inter.inc" .text ldr r0, =GPBASE /* guia bits xx999888777666555444333222111000*/ ldr r1, =0b00000000000000000000000000000001 str r1, [r0, #GPFSEL1] /* guia bits xx999888777666555444333222111000*/ ldr r1, =0b00000000001000000000000000000000 str r1, [r0, #GPFSEL1] /* guia bits 10987654321098765432109876543210*/ ldr r1, =0b00000000000000100000010000000000 str r1, [r0, #GPSET0] bucle: b bucle Código A Código B Código C.
Los puertos del procesador ARM están mapeados en memoria, por lo que para acceder a ellos se utilizan las mismas instrucciones con las que se accede a las variables en memoria (ldr, str). Verdadero Falso.
En E/S mapeada en memoria disponemos de dos tipos de instrucciones, unas para transferencias con la memoria y otras para transferencias con los periféricos. Verdadero Falso.
Empareja cada puerto asociado al GPIO de la RPI con su uso: Obtener cuál es el valor actual de los GPIO Poner a uno los GPIO especificados Poner a cero los GPIO especificados Configuración del modo de funcionamiento de los GPIO.
Completa un programa que apague el led amarllo conectado al GPIO11. Suponemos que la ejecución de un programa anterior ha dejado todos los leds encendidos.Todas las constantes que utilizamos para construir las direcciones de los puertos están definidas en el fichero "inter.inc" incluido por el programa. Recuerda que ante la inexistencia de un SO al que retornar, tus programas deben terminar en un bucle infinito. .include "inter.inc" .text ldr r0, =GPBASE mov r1, #Respuesta1 str r1, [r0, #Respuesta2] mov r1, #Respuesta3 str r1, [r0, #Respuesta4] infi: b infi #Respuesta1 -> 0b00001000 #Respuesta1 -> 0b100000000000 #Respuesta2 -> GPSEL1 #Respuesta2 -> GPCLR0 #Respuesta3 -> 0b00001000 #Respuesta3 -> 0b100000000000 #Respuesta4 -> GPSEL1 #Respuesta4 -> GPCLR0.
De acuerdo con el mapa de memoria proporcionado para nuestro sistema, la dirección de memoria a la que se deben apuntar los SP de los modos indicado es: Pila de FIQ Pila de IRQ Pila de programa (SVC).
El offset para el acceso a la tabla de vectores de interrupción/excepción en nuestro ARM es para la excepción indicada Reset IRQ IFQ.
Para inicializar la entrada correspondiente a una cierta excepción en la tabla de vectores de interrupción de nuestro procesador ARM hay que escribir en ella: Un número entero que identifica la excepción que se ha producido La dirección de la rutina manejadora que queremos utilizar para atenderla Una instrucción de salto incondicional a la dirección de rutina manejadora que queremos utilizar para atenderla Un valor booleano que indique si la excepción debe ser o no tratada.
Cuando empiezan a ejecutarse los programas propuesto en el tema 4, el procesador de nuestro RPI 2 se encuentran en el siguiente modo: FIQ Undef SVC User mode IRQ Abort.
Cuando empiezan a ejecutarse los programas propuesto en el tema 4, el procesador de nuestro RPI 2 sólo podrá encontrarse en alguno de los siguientes modos: FIQ IRQ SVC User mode Abort Undef.
Para la habilitación/deshabilitación global de las IRQ y FIQ en el ARM hay que escribir en los bits I y F que se localizan en su registro de estado. Falso Verdadero.
Cuándo se produce una interrupción en nuestro ARM, ¿qué parte del mecanismo de atención a la misma es responsabilidad del HW (CPU)? Salvaguardar el estado del procesador, es decir, los valores en CPSR y LR Inicializar la/s pila/s para los modos que vayan a utilizarla. Inicializar la tabla de vectores Dejar a PC apuntando a la posición adecuada de la tabla de vectores Salvaguardar/restaurar en/de pila los registros de propósito general que va a modificar la RTI.
Queremos cargar en el registro r1 el comando de control que me permite configurar GPIO22 y GPIO27 como salida, comado que enviaremos al puerto GPFSEL2. Señala cuál de las siguientes instrucciones no da error de compilación: mov r1, =b00000000001000000000000001000000 ldr r1, #b00000000001000000000000001000000 mov r1, #b00000000001000000000000001000000 ldr r1, =b00000000001000000000000001000000.
Para poder atender a una interrupción en nuestro ARM, ¿cuál de las siguientes acciones es responsabilidad del código del programa principal? Inicializar la/s pila/s para los modos que vayan a utilizarla. Notificar que la interrupción ha sido servida Salvaguardar/restaurar en/de pila los registros de propósito general que va a modificar la RTI Dejar a PC apuntando a la tabla de vectores Inicializar la tabla de vectores.
Cuándo se produce una interrupción en el ARM, ¿qué parte del mecanismo de atención a la misma es responsabilidad del código del manejador de la interrupción (RTI)? Restaurar CPSR y hacer PC=LR-4 Salvaguardar/restaurar en/de pila los registros de propósito general que va a modificar la RTI Inicializar la/s pila/s para los modos que vayan a utilizarla. Inicializar la tabla de vectores Notificar que el evento (interrupción) ya ha sido servido.
Empareja la acción especificada con el puerto/regisro que hay que acceder para ello: Hacer el Clear Evenet de la interrupción del GPIO 2 o 3 (pulsadores) Hacer el Clear Event de la interrupción del canal 1 o 3 del timer Habilitar localmente la interrupción de tipo IRQ de cualquier GPIO (i.e. pulsadores) Habilitar globalmente las interrupciones de tipo IRQ Determinar si la interrupción la ha causado el canal 1 o 3 del timer Configurar la interrupción con el flanco de bajada del GPIO 2 o 3 (pulsadores) Configurar la interrupción del canal 1 o 3 del timer Determinar si la interrupción la ha causado el GPIO 2 o 3 (pulsadores) Modificar el modo de trabajo del procesador Habilitar localmente la interrupción de tipo IRQ del canal 1 o 3 del timer.
Empareja de manera correcta: ADDNE r1, r1, #1 ADD r1, r1, #1 ADDEQ r1, r1, #1.
Queremos cargar en el registro r1 el comando de control que permite configurar GPIO22 y GPIO27 como salida, comando que enviaremos al puerto GPFSEL2. Señala cuál de las siguientes instrucciones no da error de compilación ldr r1, #b00000000001000000000000001000000 mov r1, #b00000000001000000000000001000000 mov r1, =b00000000001000000000000001000000 ldr r1, =b00000000001000000000000001000000.
¿Cuáles de los siguientes dispositivos utilizados en las prácticas eran accesible a través del GPIO de la RPi? Altavoz Timer Pulsadores LEDs.
¿Cuáles de las siguientes instrucciones dejarán actualizado el registro de estado cuando finalice su ejecución? ADD r0, r1, r2 CMP r3, #0 SUBs r3, r3, #0 SUB r0, r1, r2.
Para que suene una nota por altavoz basta con enviar comandos de SET al bit correspondiente cada X segundos, siendo X la mitad del periodo de la onda equivalente a ese sonido Verdadero Falso.
En un procesador autovectorizado , como el ARM que hemos programado: Cualquier excepción se trata cargando en el PC un mismo valor, la dirección de una rutina manejadora común que se tendrá que encargar de identificar cuál ha sido en concreto el evento que se ha producido para darle el servicio requerido En función de qué excepción se ha producido el PC se cargará con la dirección de un manejador específico de acuerdo con los valores inicializados en la Tabla de Vectores de Interrupción.
Denunciar test Consentimiento Condiciones de uso