Вы находитесь на странице: 1из 5

Gabriel Díaz SoC

Informe: Uso de periféricos y diseño de manejadores en


software
Para la práctica se desarrollaron rutinas del driver desde cero correspondientes a las rutinas
de cada uno de los periféricos que se trabajaron en los talleres anteriores.
- Creación de Componentes en Qsys
En este taller no se desarrollaron componentes, por tanto, los componentes del Qsys
son los de la siguiente figura:

El Qsys fue diseñado de acuerdo al enunciado del taller, no obstante, la memoria del
bloque onchip_mem fue de 393216 bytes, que es la máxima memoria interna de la
tarjeta DE2-115.

El pin planner fue el siguiente:


Gabriel Díaz SoC

En donde se conectan todos los 8 leds verdes, 10 leds rojos rojos, 10 switches, 4
botones y los 4 displays 7 segmentos.
- Desarrollo del software de prueba
• Entrada por JTAG UART
Para desarrollar la entrada por JTAG UART tenemos la función para que
cuando el botón 2 sea presionado la consola debe desplegar el mensaje “Type
new Interval:” como se muestra en la siguiente figura:
Gabriel Díaz SoC

Se crea la función jtaguart_disp_msg_v2, donde básicamente se cambia la


variable msg[] a “Type new Interval”. Esta función solo se activará cuando el
botón 2 se oprima, para la activación de este botón tenemos el siguiente código:

Cuando se entra en el ciclo del botón 2 se crean las variables que deben ser
digitadas en la consola para cambiar la frecuencia de velocidad de los leds
verdes. Para poder digitar los dígitos esta la función scanf en donde digitaremos
los tres dígitos para variar la frecuencia y en cmd.valuet queda registrado el
valor de la frecuencia de velocidad que queremos.
La función open es debido a que la función con control con teclado esta en
modo desbloqueado por eso si queremos pasar de una función a otra debemos
para este punto volver a bloquear el sistema, lo que significa que vuelve a estado
secuencial y que el sistema espera a que digitemos los 3 números para después
mostrarlos en la consola, los displays 7 segmentos y en la velocidad de
transición de los leds.
Gabriel Díaz SoC

Este es el código en el main para activar la función de entrada por jtag uart.
• Control con teclado
Para poder ingresar por teclado debemos usar la siguiente línea de código:

Esta función nos permitirá desbloquear la consola, es decir, que el sistema no se


pausara para esperar por un carácter, sino que cuando se oprima una tecla el
sistema realizara la función de la tecla ingresada. Por tanto, esta línea de código
nos dice que la consola esta desbloqueada.

Para obtener un carácter no se utilizarán los comandos getchar o scanf, ya que


son funciones que bloquean la consola. Para eso tenemos el parámetro read,
donde el parámetro se obtiene de la siguiente forma:

La variable cmd1 donde se almacenará todos los datos de la FIFO de la


jtag_uart, por tanto, BUF_SIZE es el tamaño de este carácter que es de 64 que
es el tamaño total de la FIFO.
Finalmente, el código que permite obtener controlar el sistema por teclado es el
siguiente:

Y para que todo el código quedara conjunto se asignó el botón 3 para activar la
función del control de teclado.
Gabriel Díaz SoC

Por tanto, la función sw_get_command_v1 quedo de la siguiente forma:

• Resultado experimental
En anexo de los videos.
- Conclusión
• El parámetro Open y Read nos permiten activar o desbloquear la consola,
permitiendo que no haya que esperar hasta que se digiten caracteres en consola.
• Una forma de entender el funcionamiento de la JTAG UART es incluir en un
solo código todos los puntos del taller y que los botones sean los que nos
muestren los puntos del taller, para este caso el botón 1 era el tutorial, el botón 2
era entrada por JTAG_UART y el botón 3 era control de teclado. Con estas
implementaciones se permite entender las funciones open y read.

Вам также может понравиться