lunes, 9 de mayo de 2016

Introducción a la programación en C y C++ con microlinux_vem 1.1

Programar en C y C++ con los compiladores TCC y GCC

Nunca fue tan sencillo entrar en el mundo de la programación usando dos de los lenguajes que más han influido en las últimas décadas en la creación de programas de aplicación y sistemas operativos. Puedes empezar ahora mismo descargándote microlinux_vem 1punto1 (que incluye un completo entorno de desarrollo) y hacerlo correr dentro de tu escritorio Windows (funciona bien en XP, Vista, 7, 8 o 10) gracias a la máquina virtual portable Qemu que le acompaña.


domingo, 8 de mayo de 2016

microlinux_vem 2 revisión 2. Programación de microcontroladores PIC y AVR

1 Presentación




Esta distribución (puedes descargar la imagen .ISO del CDROM y su virtualización con Qemu desde aquí) ofrece un entorno básico de trabajo orientado a la programación de microControladores de las familias AVR (Atmel) y PIC (Microchip) sobre GNU/Linux.


Desde una interfaz de consola el usuario será capaz de editar código, ensamblar/compilar, simular (AVR) y grabar el dispositivo de forma sencilla y rápida.


Puede ser de utilidad tanto a personas familiarizadas con las herramientas de desarrollo bajo Windows como aquellas otras que inician su andadura en el apasionante mundo de los Dispositivos Programables.


Es conveniente conocer el manejo de Linux en modo texto para moverse con soltura dentro de microLINUX_vem 2.0. Si deseas ayuda escribe:


#taller


Donde encontrarás un grupo de actividades destinada al aprendizaje de los fundamentos de Linux.


2 Necesidades Hardware para trabajar con ulvem2rev2



Tanto el tamaño de la distribución así como el formato de presentación (CD-ROM) imponen unos recursos mínimos del computador mayores que en la versión anterior.


Otro aspecto a considerar es el hardware adicional necesario para la programación de los icrocontroladores y su canal de conexión con el sistema.

Esto implica la necesidad de nuevos elementos del PC:


  • Lector de CD-ROM
  • Memoria RAM igual o superior a 16 Mbytes
  • Procesador 486 o superior
  • Disquetera (si la BIOS no puede iniciar el sistema desde la unidad de lectura óptica)
  • Teclado expandido QWERTY con la disposición de teclas en Español
  • Monitor 14 pulgadas o superior
  • Tarjeta gráfica EGA o superior
  • Puerto Serie (programador PIC, por ejemplo T-20se)
  • Puerto Paralelo (según el programador del AVR)
  • Programador + cable de conexión + microControlador AVR
  • Programador + cable de conexión + microControlador PIC


Opcionalmente es interesante contar con:


  • Disco duro (y S.O. con entorno gráfico, visor de imágenes y lector de ficheros ".pdf")
  • Puerto USB
  • Entrenador de PIC y/o AVR


3 Contenido Software

General



  • Comandos y utilidades del sistema: BusyBox versión v1.00-rc1
  • Editor de textos: Nano versión 1.2.5
  • Compilador de C: Tcc (Tiny C Compiler) versión 0.9.23
  • Disco de inicio para acceder al CD-ROM y arrancar microLINUX_vem 2.0 desde un disquete (orientado a equipos con BIOS antiguas) freeDOS versión 1.0
  • nano (Editor de textos)
  • make (Automatización de tareas de ensamblado/compilado)

Específico

PIC



  • Herramientas de desarrollo: Gputils versión 0.13.2
  • Compilador C (Hi-tech): Picl versión 8.05PL1
  • Programador vía serie: Picprog versión 1.7
  

AVR



  • Herramientas de desarrollo: Binutils versión 2.15
  • Compilador de C: Avr-gcc versión 3.4.3
  • Depurador: Avr-gdb versión 6.1
  • Simulador: Simulavr versión 0.1.2.2
  • Programador: Uisp versión 20050207


4 Programando en lenguaje ensamblador



El desarrollo de un programa en Ensamblador se compone de las siguientes etapas:


1º Especificación del problema
2º Diseño del diagrama de flujo
3º Escritura del programa en lenguaje ensamblador:


#nano <fichero_fuente.asm>


4º Ensamblado:


#ensamblapic <fichero_fuente.asm> (uControlador PIC) ó
#ensamblavr  <fichero_fuente.asm> (uControlador AVR)


5º Simulación y depuración:


#simuavr  <opciones> [fichero_binario.hex] (uControlador AVR)
#depuravr <opciones> (uControlador AVR)
 
Nota: Puedes obtener más información escribiendo, sin parámetros, las órdenes
siguientes.


#ensamblapic
#ensamblavr
#simuavr
#depuravr


5 Programando en lenguaje de alto nivel



El desarrollo de un programa en Lenguaje C se compone de las siguientes etapas:


1º Especificación del problema
2º Diseño del programa en pseudocódigo
3º Escritura del programa en lenguaje C:


#nano <fichero_fuente.c>


4º Compilado:


#compilapic <fichero_fuente.c> (uControlador PIC) ó
#compilavr  <fichero_fuente.c> (uControlador AVR)


5º Simulación y depuración:


#simuavr  <opciones> [fichero_binario.hex] (uControlador AVR)
#depuravr <opciones> (uControlador AVR)
 
Nota: Puedes obtener más información escribiendo, sin parámetros, las órdenes
siguientes.


#compilapic
#compilavr
#simuavr
#depuravr


6 Simulación y depuración de un programa

Simulador



Su función consiste en ejecutar un programa codificado para un microcontrolador
concreto con la intención de mostrar información de la memoria interna y
registros de este en tiempo de ejecución. También es posible ajustar
manualmente algunos parámetros como:


  • Contenido de un registro
  • Modificación del contador de programa
  • Valor de la memoria (sram, eeprom, flash)
  

Depurador



Encargado de mostrar los sucesos internos de un programa mientras se está
ejecutando ó bien presenta su estado interno en el momento en que se interrumpió
inesperadamente. Por tanto ayuda a localizar y corregir errores de un programa
durante la ejecución del mismo.


Las acciones más importantes pueden resumirse en:


  • Someter a un programa a ciertas condiciones
  • Examinar el estado interno del programa cuando se ha parado
  • Observar el estado de las variables durante la ejecución del programa
  • Cambiar cosas del programa con la intención de corregir los efectos de los fallos y continuar su análisis


Simulador y depurador trabajando unidos



Usando conjuntamente el depurador "avr_gdb" y el simulador "simulavr", es
posible ejecutar un programa sobre un determinado microcontrolador a través del
simulador mientras el depurador observa la ejecución del código y su repercusión
paso a paso sobre el dispositivo.


7 Almacenamiento del programa sobre el microcontrolador

Grabación de un dispositivo



El término "grabación" representa la acción de trasladar el fichero binario
(ejecutable) con extensión ".hex" obtenido en la fase de ensamblado (o
compilado) al interior del microcontrolador (uC) para su ejecución. La orden
correspondiente es:


#grabapic <ejecutable.hex> (En el PIC) ó  |
#grabavr  <ejecutable.hex> (En el AVR)     |  PC (ejecutable.hex) => uC
  

Opciones del programador



Las aplicaciones de grabación proporcionan otras funciones con las que es
posible el tratamiento del programa almacenado en el microcontrolador.


#leepic <fichero.hex> ó  |
#leeavr <fichero.hex>     | Programa del uC => PC (dentro de fichero.hex)


#borrapic <dispositivo> ó |
#borravr  <dispositivo>     | Quita el programa del uC

Proceso de programación



Siempre que el S.O. interactúa con el microcontrolador es necesario seguir un
protocolo de actuación encaminado a garantizar la ejecución satisfactoria del
grabado del chip:


1º Conectar el programador al puerto del computador con el cable adecuado.
2º Preparar el dispositivo para recibir el programa:


  • Hacer una copia de seguridad del programa actual (opcional)
  • Borrar el microcontrolador


3º Grabar el programa.
4º Verificar el correcto resultado de la operación.


Nota: Puedes obtener más información escribiendo, sin parámetros, las órdenes
siguientes.


#grabavr
#grabapic
#leeavr
#leepic
#borravr
#borrapic


8 Archivos fuentes incluidos en la distribución



Todos los ficheros fuente suministrados por microLINUX_vem 2.0 están
localizados en la siguiente jerarquía de directorios:


  /usr/fuentes/asm/avr              > Código ensamblador para el uC AVR (avr-as)
                             /pic              > Código ensamblador para el uC PIC (gpasm)
                             /c/ejercicios > Ejercicios de lenguaje C   (tcc)
                             /avr              > Código C para el uC AVR    (avr-gcc)
                             /pic              > Código C para el uC PIC    (picl)
Con ellos podrás utilizar las diferentes aplicaciones de esta distribución.


Nota: Para evitar los problemas asociados al permiso de escritura (el
directorio <usr> se toma directamente del CD-ROM), el usuario deberá colocar
los ficheros con los que trabaje en algún lugar del directorio <home>.

9 Equipamiento de 𝝻controladores utilizado

Programador PICs T20-SE





Entrenador para PICs 16F84





Entrenador para AVRs AT90S8515





9.1 Diseño y fabricación asistidos por computador (CAM / CAD). Esquemas de los entrenador

Grabador PICs


Entrenador PICs + Fuente de alimentación





Entrenador AVRs + Fuente de alimentación







martes, 22 de diciembre de 2015

Microlinux_vem 3, el salto al entorno gráfico


Desde este enlace podrás descargar el SO recién llegado a la familia microLinux_vem. Con él podrás seguir trabajando con la consola, tal y como venías haciendo en versiones anteriores, y, además, conocer los principios en los que se basa cualquier entorno gráfico de una distribución Linux.

Con un enfoque eminentemente práctico, se presentan las acciones que nos llevarán a personalizar su interfaz gráfica básica dentro de un entorno donde el intérprete de comandos es el principal intermediario entre el usuario y el Sistema Operativo.

Tras descargar el archivo, lo descomprimimos y pulsamos (doble click) sobre uLvem3 ó uLvem3_64bits, según las propiedades nuestro sistema (32 bits / 64 bits).

Algunas de sus carácterísticas más relevantes son:
  • 256 MBytes de memoria RAM
  • Máxima capacidad de almacenamiento: 2GBytes (sobre imagen de disco virtual dinámica)
  • Funciona desde equipo informático vitualizado (invitado) basado en la máquina virtual Qemu
  • Acceso a internet, si el equipo anfitrión está conectado a la red
  • Distribución Debian 3.0 (Woody) personalizada. Compatible 100% con sus paquetes
  • Área de intercambio con Windows (XP, Vista, 7, 8 y 10)
  • Portable. No requiere instalación y puede llevarse a cuaquier máquina equipada con Windows usando un pendrive de, como mínimo, 2GBytes
Podrás encontrar más información, y algún que otro ejercicio ;-), en el siguiente documento: