PDF de programación - Práctica 2: (Tema II-4) Driver sencillo en MaRTE OS

Imágen de pdf Práctica 2: (Tema II-4) Driver sencillo en MaRTE OS

Práctica 2: (Tema II-4) Driver sencillo en MaRTE OSgráfica de visualizaciones

Publicado el 14 de Enero del 2017
659 visualizaciones desde el 14 de Enero del 2017
22,0 KB
6 paginas
Creado hace 9a (07/05/2014)
Práctica 2: (Tema II-4) Driver sencillo en MaRTE OS

Práctica 2:

Driver sencillo en MaRTE OS



(Tema II-4)

• Objetivos:
• Instalar MaRTE OS (ya hecho en Prog. Concurrente)
• Practicar el uso del entorno de desarrollo de MaRTE OS en el

laboratorio (ya hecho en Prog. Concurrente)

• Practicar la instalación y el uso de drivers en MaRTE OS

Plataformas de Tiempo Real

© M. Aldea
Mayo-2014

1

Práctica 2: (Tema II-4) Driver sencillo en MaRTE OS

Laboratorio e Instalación de MaRTE OS
Acceso a los ordenadores del laboratorio:

- Elegir la última de las opciones de arranque:
Debian GNU/Linux, with Linux 2.6.32-5-686 (on /dev/sda6) DEC
- Usuario: Usuario de MaRTE OS y GNAT GPL de AdaCore
- Contraseña: marteos



Instalar MaRTE OS en el directorio del usuario:

- compilador GNAT y MaRTE OS en el directorio labCTR/
- instrucciones en el fichero INSTALL de MaRTE
- ¿Ya hecho en Programación Concurrente?

Compilar y ejecutar un programa:

mgcc -Wall programa.c

marte_exporta a.out
ejecuta en computador remoto

Plataformas de Tiempo Real

qemu-system-i386 -kernel a.out
ejecuta en emulador
2

© M. Aldea
Mayo-2014

Práctica 2: (Tema II-4) Driver sencillo en MaRTE OS

Instalación de un driver en MaRTE OS
Se pretende escribir e instalar un driver para un puerto de
comunicaciones

• se trata de un dispositivo simulado: ficheros
fake_com_port.c y fake_com_port.h
• Deberemos compilar estos ficheros junto con el driver



El dispositivo se controla mediante dos registros en el espacio de
direcciones de I/O:

• Registro de control: FAKE_COM_PORT_CONTROL_REG
(0x100)
• Registro de datos: FAKE_COM_PORT_DATA_REG (0x101)

Plataformas de Tiempo Real

© M. Aldea
Mayo-2014

3

Práctica 2: (Tema II-4) Driver sencillo en MaRTE OS

Interfaz del dispositivo simulado

(fake_com_port.h)



#define FAKE_COM_PORT_CONTROL_REG 0x100
#define FAKE_COM_PORT_DATA_REG 0x101
/*
* Depending on the value of port:
* FAKE_COM_PORT_CONTROL_REG: the communication port is
* initialized
* Any other value: no effect
*/extern void fake_com_port_outb(unsigned short port,
char val);
/*
* Depending on the value of port:
* FAKE_COM_PORT_DATA_REG: Returns the last byte received
* FAKE_COM_PORT_CONTROL_REG: returns 0x01 when there is
* new data available and 0x00 in other case
* Any other value: returns 0x00
*/extern char fake_com_port_inb(unsigned short port);

Plataformas de Tiempo Real

© M. Aldea
Mayo-2014

4

Práctica 2: (Tema II-4) Driver sencillo en MaRTE OS

Funcionalidad de los registros del puerto de

comunicaciones

Write any value on FAKE_COM_PORT_CONTROL_REG:

• the communication port is initialized



Read FAKE_COM_PORT_CONTROL_REG:
• 0x01 when there is new data available and 0x00 in other case
Read FAKE_COM_PORT_DATA_REG:

• Returns the last byte received

Plataformas de Tiempo Real

© M. Aldea
Mayo-2014

5

Práctica 2: (Tema II-4) Driver sencillo en MaRTE OS

Escribir un driver para el puerto de

comunicaciones anteriormente descrito



• create:

- retorna 0

• open:

- inicializa el dispositivo

• read: utiliza pooling para leer los datos que llegan al puerto

ssize_t driver_read (int fd, void *buffer, size_t bytes)

i=0
mientras i<bytes hacer

si hay dato disponible entonces

buffer[i] = dato leído del dispositivo
i++
fin si

fin mientras
retorna bytes

• remove, write y close: no es necesario definirlas

Plataformas de Tiempo Real

© M. Aldea
Mayo-2014

6
  • Links de descarga
http://lwp-l.com/pdf1138

Comentarios de: Práctica 2: (Tema II-4) Driver sencillo en MaRTE OS (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad