miércoles, 29 de febrero de 2012

Tarea 1 "C - Ensamblador"

Ensamblador

El lenguaje Ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador.
Muchos dispositivos programables (como los microcontroladores) aun cuentan con el Ensamblador como la única manera de ser manipulados.


Programa de C a Ensamblador
El programa que realice se trata de imprimir de forma inversa el arreglo que se escriba.
Lee 5 números y los imprime de manera inversa
Ej: 1 2 3 4 5  - 5 4 3 2 1

Código del programa en C:

Se compila y ejecuta:





Programa en Ensamblador:

Ahora hay que compilar y generar el archivo .s y ejecutar el programa:



Otras partes del código:
  • movl: realiza operaciones lógicas
  • %eax: se encarga de poner la dirección del string también en la pila (ejemplo: instrucción push)
  • %ecx: invoca una rutina externa que imprima el string (ejemplo: instrucción call)
  • .cfi_startproc: comienzo de cada función
  • ret: termina el programa


  • Código Optimizado:
    Se eliminaron varias lineas como el nombre del archivo y otras que realizaban control de función.




    Bibliografía:
    http://www.cs.virginia.edu/~evans/cs216/guides/x86.html

    lunes, 20 de febrero de 2012

    Microcontroladores

    Los microcontroladores están presentes en cualquier lado en el que nos encontremos, se pueden encontrar controlando el funcionamiento de los ratones, teclados, teléfonos, microondas , televisores, etc.
    Un microcontrolador es un circuito integrado de alta escala de integración que incorpora la mayor parte de los elementos que configuran un controlador.


    Un microcontrolador dispone normalmente de los siguientes componentes:
    • Procesador o UCP (Unidad Central de Proceso).
    • Memoria RAM para Contener los datos.
    • Memoria para el programa tipo ROM/PROM/EPROM.
    • Líneas de E/S para comunicarse con el exterior.
    • Diversos módulos para el control de periféricos (temporizadores, Puertas Serie y Paralelo, CAD: Conversores Analógico/Digital, CDA: Conversores Digital/Analógico, etc.).
    • Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema.
    Actualmente se ha incrementado el número de productos que contengan un microcrontrolador ya que aumenta su funcionalidad, tamaño, costo ademas que mejora su fiabilidad.


    Los controladores se pueden comunicar entre ellos mediante un procesador central para crear uno más potente para poder realizar acciones como una PC.


    Los primeros microcontroladores estaban hechos bajo la arquitectura clásica de von Neumann actualmente se utiliza la arquitectura Harvard. La arquitectura de von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a través de un sistema de buses único (direcciones, datos y control).

    La arquitectura Harvard dispone de dos memorias independientes una, que contiene sólo instrucciones y otra, sólo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas memorias.




    Bibliografía:
    http://www.unicrom.com/Tut_PICs1.asp

    Computadora vs Smartphone


    Un “Smartphone” es un dispositivo que permite hacer llamadas telefónicas, pero también añade características como programas para incrementar el procesamiento de datos y conectividad. También cuentan con un teclado QWERTY en miniatura, una pantalla táctil (lo más común) o simplemente el sistema operativo móvil que posee, diferenciando su uso mediante una exclusiva disposición de los menús, teclas, atajos, etc.

    Ventajas:
    -Portabilidad los puedes llevar a cualquier lado ya que cuentan con una batería de buena duración, además que su peso es muy ligero a comparación de una computadora.
    -Servicios permite realizar llamadas, localización GPS, agenda, entre otras.
    -Conectividad permiten conectarse a diferentes conexiones como 3g,4, wifi, bluetooth, gps.
    -Aplicaciones existen muchas aplicaciones para los dispositivos móviles.

    Desventajas:
    -Compatibilidad actualmente hay varios sistemas operativos y esto hace que algunas aplicaciones no sean compatibles en ciertos celulares, además que se van actualizando los celulares.
    -Costo un celular de gama alta llega a costar más que una computadora.
    -Resistencia los celulares actuales son muy frágiles hechos con unos materiales poco resistentes, y con una caída se puede estrellar la pantalla, cámara o alguna parte del teléfono.

    A continuación se muestra la comparación entre un smartphone (Iphone 4s) y una computadora (MacBook Pro 15):



    Iphone 4S


    MacBook Pro 15


    Procesador

     Procesador ARM Cortex A9 Doble núcleo a ~800MHz
    Procesador Intel Core i7 quad-core de o 2.4 GHz con caché L3 compartido de 6 MB.
    Procesador gráfico

    PowerVR SGX543MP2
    Procesador gráfico AMD Radeon HD 6750M con 512 MB de memoria GDDR5 en la configuración 2.2 GHz
    RAM



    512 MB ​​


    4 GB DDR3 SDRAM de 1333 MHz.
    Dimensiones

     115,2 mm x 58,6 mm x 9,3 mm.
    Alto: 2.41 cm (0.95 pulgadas)
    Ancho: 36.4 cm (14.35 pulgadas)
    Fondo: 24.9 cm (9.82 pulgadas)
    Memoria


    Serial ATA de 500 GB; 5400 rpm
    16GB, 32GB y 64 GB
    Cámara

    8MP (3264x2448 píxeles
    1.3MP
    Batería



    Tipo: Polímero de Litio
    Capacidad: 1420 Amperios hora
    Duración:
    - 300 horas en espera
    - 8 horas de conversación en 3G
    - 14 horas de conversación en 2G
    - Navegando en 3G por 6 horas
    - 9 horas navegando en       Wi-Fi
    Tipo: Li-ion
    Capacidad: 5400mAh Voltaje: 10.8V
    Duración: Hasta 7 hrs.

    Podemos notar que la computadora tiene mucho mejores características que el smartphone pero poco a poco los smartphone están avanzando mucho y puede llegar el punto en el que se pueda comparar un celular con una computadora. Aunque un smartphone puede resultar mas eficaz ya que tiene mas portabilidad y versatilidad.




    lunes, 6 de febrero de 2012

    Laboratorio Cómputo integrado

    Cómputo integrado

    Justificación de proyecto

    Hoy en día teniendo un ordenador (y una buena conexión) podemos sustituir muchos aparatos en casa, y es que los tiempos de televisión, radio, teléfono e internet por separado y con dispositivos específicos han cambiado y ahora podemos acceder a todas las funciones desde un mismo sitio. Al igual que las computadoras los teléfonos han sustituido diferentes tipos de aparatos.
    El proyecto que realizare será una aplicación que controle un carro control remoto “RC” vía WIFI o Bluetooth.

    La funcionalidad que tendrá la aplicación teléfono será:
    • Mover el RC (Acelerar, Reversa).
    • Encender luces y/o sonido en caso de que el RC lo disponga.
    • Se agregará otra funcionalidad a la aplicación, dependiendo de las funciones del RC.



    Herramientas a utilizar:
    • Android
    • Eclipse (IDE para Android)
    Aplicaciones similares:

    BlueDrone


    Como su nombre lo indica, todo funciona a través de Bluetooth con los disparos que se llama desde una aplicación en su teléfono Android. Controles en la pantalla proporcionan la capacidad de estrangular y gire, o puede utilizar el acelerómetro del teléfono para dirigir. El único inconveniente importante es limitado de 30 pies de variedad gracias a la conectividad Bluetooth anterior, pero ofrece un control rápido y preciso del avión no tripulado de R / C.


    BEEWI


    El teléfono inteligente se convierte en el último dispositivo de control remoto a través de movimiento intuitivo o interfaces de pantalla táctil de control para conducir el coche con Bluetooth BEEWI. Esta aplicación permite:
    • Conducir un coche con mando a distancia con su teléfono a través de Bluetooth!
    • Conduce con los controles del acelerómetro o la pantalla táctil!
    • Rápido y divertido vehículo de control remoto!
    • Fácil de conectar y configurar.

    Laboratorio Dispositivos Móviles

    Proyecto Dispositivos Móviles