Linux Embebido - DiSSE - Clase 2

October 6, 2017 | Author: Martin Marcos | Category: Computer File, Computer Hardware, Technology, Computing, Areas Of Computer Science
Share Embed Donate


Short Description

Descripción: Programación en bash para linux embebido sobre intel galileo....

Description

Hardware para Linux Embebido

BeagleBone Black

Raspberry Pi B+

Cubie Board

ODROID-XU3

1 Linux Embebido - CDIP.SE 04

Hardware para Linux Embebido

Galileo Gen I

Radxa ROCK

WRTnode 2 Linux Embebido - CDIP.SE 04

Comandos en Linux Embebido BUSY BOX

Es un programa que combina muchas utilidades estándares de Unix/Linux en un solo ejecutable. Posee varios comandos:

www.busybox.net



ls

Muestra el contenido de un directorio



touch

Cambia

fecha

y

hora

de

archivos

o

crea archivos vacíos ●

cp

Copia archivos y directorios



mv

Mueve (renombra) archivos



mkdir

Crea directorios



rm

Remueve archivos y directorios



chmod

Cambiar permisos de un archivo



less

Visor de archivos similar al more



echo

Escribe un archivo



cat

Lee un archivo



vi

Editor de archivos 3 Linux Embebido - CDIP.SE 04

Comandos en Linux Embebido BUSY BOX

www.busybox.net

Posee varios comandos: ●

echo

Simplemente envía al terminal los argumentos pasados



cat

Muestra en pantalla el contenido archivo



tail

Permite examinar el final de un archivo



head

Permite examinar el comienzo de un archivo



sort

Ordena una lista o un archivo



chmod

Cambia los permisos de un archivo o directorio



ln

Crea enlaces de archivos (“duros” y “blandos”)



ps

Lista los procesos que se están ejecutando



pgrep

Busca procesos especificados



pstree

Ver los procesos en formato de árbol



jobs

Control de tareas y p



fg

Envía los procesos a primer plano



bg

Envía los procesos a segundo plano

Para practicar: Máquina Virtual Online con BusyBox 4 Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido BUSY BOX

Como crear un Script para luego poder ejecutarlo 1) Conectarse por SSH a la placa

SSH www.busybox.net

2) Crear un archivo con el encabezado correspondiente #

echo "#!/bin/ash" > script.sh

3) Cambiar los permisos para permitir la ejecución #

chmod [permisos] script.sh

Permisos: 777 - Rwxrwxrwx 755 - Rwxr-xr-x

4) Ejecutamos el script #

./script.sh 5 Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido BUSY BOX

Como

editar

un

Script

1) Una vez conectado por por SSH a la placa SSH www.busybox.net

2) Instalaremos el editor “nano” que es simple de usar. Para ello actualizamos los repositorios #

opkg update

3) Completado esto, se procede a solicitar la instalación del editor #

opkg install nano

4) Para editar el script.sh creado anteriormente ejecutamos: #

nano script.sh 6 Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido BUSY BOX

Ejemplo 1: echo

y

cat

Archivo: ejemplo01_echo_cat.sh #!/bin/ash www.busybox.net

echo "Se muestra en pantalla esta línea"

$(echo "Contenido a colocar en" > archivo.txt)

echo "Se escribio el archivo..."

cat archivo.txt

7 Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido BUSY BOX

Ejemplo 2: for Archivo: ejemplo02_for.sh #!/bin/ash

www.busybox.net

echo "Comienzo del bucle"

for i in $(seq 0 5) do echo $(date -u) $(sleep 1s) done

echo "Fin del bucle"

8 Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido BUSY BOX

Ejemplo 3: if Archivo: ejemplo03_if.sh #!/bin/ash

www.busybox.net

local var1 var1="texto"

if [ "${var1}" = "texto" ] then echo "Dentro del if" fi

9 Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido BUSY BOX

Ejemplo 4: if Archivo: ejemplo04_if.sh #!/bin/ash

www.busybox.net

if [ -f /tmp/2015-10-09.txt ] then echo "El archivo existe." else echo "El archivo no existe." fi

10 Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido BUSY BOX

Ejemplo 5: while Archivo: ejemplo05_while.sh #!/bin/ash

www.busybox.net

while true do echo $(date -u) $(sleep 1s) done

11 Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido BUSY BOX

Ejemplo 6: while Archivo: ejemplo06_while.sh #!/bin/ash

www.busybox.net

local variable1 variable1="texto"

while true do $(sleep 1s) echo ${variable1} done

12 Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido BUSY BOX

Ejemplo 7: while Archivo: ejemplo07_while.sh #!/bin/ash

www.busybox.net

local hora hora=$(date) $(sleep 10)

while true do echo ${hora} hora=$(date) $(sleep 1s) done

13 Linux Embebido - CDIP.SE 04

Hardware Intel Galileo Gen I

● ● ● ● ● ● ● ● ● ●

Intel Quark SoC X1000 @ 400MHz DDR3 256MB 10/100 Mbit Ethernet PCI Express Micro SD USB 2.0 UART RS-232 8 MB Flash JTAG port

Arduino Shield Compatible ● ● ● ● ● ● ● ● ●

14 entradas/ salidas digitales (6 compatibles con PWM) 6 entradas analogicas Bus I2C Bus SPI ICSP (SPI) in-circuit serial programming (6 pines) UART (puerto serie) VIN (alimentación externa) Salida 5V, 3.3V y GND ( voltajes de referencia) Reset 14 Linux Embebido - CDIP.SE 04

Esquemático Intel Galileo Gen I

15 Linux Embebido - CDIP.SE 04

Configurando los periféricos

16 Linux Embebido - CDIP.SE 04

Configurando los periféricos

# Configuramos el GPIO 28 como entrada echo -n "28" > /sys/class/gpio/export echo -n "in" > /sys/class/gpio/gpio28/direction

# Configuramos el GPIO 3 como salida echo -n "3" > /sys/class/gpio/export echo -n "out" > /sys/class/gpio/gpio3/direction

# Configuramos el GPIO 17 como salida PWM echo -n "5" > /sys/class/pwm/pwmchip0/export echo -n "1" > /sys/class/pwm/pwmchip0/pwm5/enable echo -n "0" > /sys/class/pwm/pwmchip0/pwm5/duty_cycle echo -n "1000000" > /sys/class/pwm/pwmchip0/pwm5/period

# Configuramos el Conversor Analogico Digital 0 echo -n "37" > /sys/class/gpio/export echo -n "out" > /sys/class/gpio/gpio37/direction echo -n "0" > /sys/class/gpio/gpio37/value

17 Linux Embebido - CDIP.SE 04

Leer o escribir una salida/entrada

# Leer la entrada del GPIO 28 cat /sys/class/gpio/gpio28/value

# Escribimos la salida del GPIO 3 echo -n "0" > /sys/class/gpio/gpio3/value echo -n "1" > /sys/class/gpio/gpio3/value

# Off # On

# Configuramos el GPIO 17 como salida PWM echo -n "0" > /sys/class/pwm/pwmchip0/pwm5/duty_cycle echo -n "1000000" > /sys/class/pwm/pwmchip0/pwm5/period

# Leer la entrada del Conversor AD 0 cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw

18 Linux Embebido - CDIP.SE 04

Conversor Analogico Digital (DAC) Características importantes: ●

Resolución: ● ●



Resolución = Vmax / (L - 1) L niveles = 2 ^ N bits

Frec. de muestreo: ● f muestreo > 2 * f max de la señal

Ejemplos: Vmax

DAC 8 bits

L = 256

Resolución = 5V / (256 - 1) = 0,0196 V 0

DAC 10 bits

L = 1024

Resolución = 5V / (1024 - 1) = 0,0049 V

19 Linux Embebido - CDIP.SE 04

Modulación por Ancho de Pulso (PWM) Características importantes: ●



Periodo ( T ): ●

Periodo = 1 / frecuencia

Ciclo Útil ( Duty Cycle): ●

Tiempo en que se encuentra activo

Ejemplos:

20 Linux Embebido - CDIP.SE 04

Problemas 1)

Crear un programa que prenda un led cuando se presione algún pulsador. Nota: Usar GPIO3 para la salida del led

2)

Agregar al programa anterior el uso de un Buzzer, mediante la implementación del módulo PWM Nota: Usar en modo salida el D5 del Shield de expansión

3)

Reutilizando el código anterior, modificar el periodo o frecuencia del tono mediante el uso del conversor A/D. Nota: Usar el la entrada A0 del Shield de expansión

4)

Escribir en un documento los datos del GPIO28 (D4) y el conversor A/D (A0). Luego, hacer accesible vía Web, mediante el uso de un navegador. Nota: Usar el la entrada D4 y A0 del Shield de expansión. Además escribir dentro del la carpeta /www/pages/

Nota: Subir al claroline los 7 ejemplos y los 4 problemas, bajo el nombre de Tarea 2. 21 Linux Embebido - CDIP.SE 04

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF