Está en la página 1de 35

Microcontroladores

Software al Hardware
Computadores
Contenido

• Características y aplicaciones de un
computador.
• Hardware y Software del PC.
• Lenguajes de programación y traductores.
• Descripción del desarrollo y ejecución de
un programa.
Para hoy:

Computadores
Descripción general, aplicaciones y programación.

Hardware y Software
Descripción general y componentes del Hardware.

Programación y lenguajes
Definición, tipos de lenguajes y tipos de
traductores.
Desarrollo y ejecución
Descripción del desarrollo y ejecución de un
programa.
Los computadores
• Computador
– Sistema Electrónico Digital.
– Capacidad: Procesar Datos.
– Instrucciones → Programa.
– Microelectrónica.
• Conformación.

SOFTWAR HARDWAR
E E
Los computadores
• Características principales:
– CPU + Memoria + Dispositivos E/S.
– Programable…
– Tiene la capacidad de emular otras máquinas…
– Multitarea.

CPU
Periféricos Periféricos
Entrada Salida
Memoria
Órdenes y Resultados
Datos Procesamiento
Los computadores
• Aplicaciones de un Computador.
– Solución de problemas complejos.
– Animación.
– Comunicación:
• Protocolos
• Redes de Computadores
• Internet
– Desarrollo de nuevos programas.
– Diversión.
– Trabajo rutinario.
Los computadores
• Programación, diferentes usuarios
– Aplicaciones: Lenguajes de Alto Nivel.
A = 15; B = 10;
if (A >= B) printf (“A mayor o …”);
else if (A == B) printf (“A igual que…”);
– Manipulación y Control de Hardware: Bajo Nivel.

LDA $1000
ADD $1001 0100010001…
BEQ D1,D0 1010100100…
bgt `Print_Msg_A …
beq Print_Msg_B

Continuamos con:

Computadores
Descripción general, aplicaciones y programación.

Hardware y Software
Descripción general y componentes del Hardware.

Programación y lenguajes
Definición, tipos de lenguajes y tipos de
traductores.
Desarrollo y ejecución
Descripción del desarrollo y ejecución de un
programa.
Hardware y Software
Computador, hacemos una analogía con una orquesta
– Instrumentos.
– Músicos.
– Director de orquesta.

SOFTWARE HARDWARE
Instrumentos

S.O.
Software del
sistema
Hardware y Software
• Software
– Aplicación: Programas de usuario.
• Ofimáticos, navegadores,
– Sistema: Controla y gestiona el hardware.
• Sistema Operativo
• Nivel Medio:
– Lenguajes de Programación.
• Cercanos al hombre. Alto Nivel, Java.
• Cercanos a la máquina. Bajo Nivel, Ensamblador.
• Nivel intermedio. Lenguaje C.
Hardware y Software
• Sin sistema operativo, no es fácil garantizar la
ejecución de los programas:
– Programas desarrollados por terceros.
– Gestión del Hardware.
– Imparcialidad en el acceso al Hardware.

SOFTWARE DE APLICACIÓN
Cálculo
Video Sonido Texto Internet
s

HARDWARE
Hardware y Software
Con sistema operativo

SOFTWARE DE APLICACIÓN

Informació
Multimedia Control Cálculos
n

SOFTWARE DE SISTEMA ó SISTEMA OPERATIVO

Kernel Herramientas

HARDWARE
Hardware y Software
• Componentes de un Computador: Hardware
• Los cuatro componentes principales de un computador:
– Unidad Central de Proceso.
• Control + Direcciones.
– Memoria. MEMORIA
– Entradas/Salidas. INSTRUCCIONES/DATOS

– Bus de Comunicación. INSTRUCCIONES DATOS

CONTROL
C
P REGISTRO
S
U
ALU

ENTRADA
SALIDAS
S
Continuamos con

Computadores
Descripción general, aplicaciones y programación.

Hardware y Software
Descripción general y componentes del Hardware.

Programación y lenguajes
Definición, tipos de lenguajes y tipos de
traductores.
Desarrollo y ejecución
Descripción del desarrollo y ejecución de un
programa.
Programación

❑ Un Programa de Computador es básicamente, una


secuencia de comandos o instrucciones representando
un algoritmo que debe ser ejecutado por la máquina.
❑ Normalmente los programadores usan Lenguajes de
Programación de Alto Nivel (LAN), como Pascal, C, C+
+, JAVA, etc.
❑ Los lenguajes de los procesadores corresponden a un
nivel de abstracción muy bajo, y se conocen como
“Lenguajes de Bajo Nivel (LBN)”
❑ Por esta razón es necesario un proceso de traducción.
Programación
Diferentes Niveles de Abstracción: El problema de
traducir un programa
Lenguaje natural

Lenguaje de alto nivel (C++)

Lenguaje de bajo nivel (assembler)

Lenguaje de máquina

procesador
Programación
• Diferentes formas de hacer las cosas.
• Buscar la manera más eficiente de hacerla.
• No siempre necesitamos de un Sistema Operativo.
– No se requieren todas las características de un computador.
– Aplicaciones muy particulares.
– Gestión del hardware por parte de la misma aplicación.
– Elementos requeridos.
• Programación del Computador.
Programación
• CREAR un programa de computador.
• Colección de instrucciones para ser ejecutadas por la
CPU.
• Herramienta:
– Lenguaje de Programación.
– Lenguaje de Máquina.
• Ejecución:
– Traducción a Lenguaje de Máquina.
– Interpretación.
Programación
• Y las Instrucciones, ¿qué son?
– Un computador no es autónomo.
– Requiere de una serie de peticiones.
– Órdenes que un procesador puede entender y ejecutar.
– Están reunidas en los programas, instrucciones.
– Los programas se desarrollan normalmente con
Lenguajes de Alto Nivel.
– Necesidad de hardware.
Programación
• Lenguaje de Máquina
– Las CPUs solo entienden ‘0’ y ‘1’.
– Alfabeto de la CPU: Dos números ‘0’ y ‘1’.
• ¿Será suficiente?: Nuestro alfabeto tiene 26 letras.
• ¿Cómo utiliza la CPU el ‘0’ y el ‘1’?
– Código de Máquina.
• Códigos que son interpretados por la CPU.
• Un programa: Colección de ‘0’s y ‘1’s.
• Forman propiamente instrucciones y datos.
• Propio de la arquitectura de la CPU.
Programación
• Lenguaje Ensamblador
– Representación del código de máquina.
– Legible por las personas.
– Cercano a la máquina.
– Propio de la arquitectura de la CPU.
• Lenguaje para el 68000 de Motorola.
• Lenguaje para los INTEL x86.
• Lenguaje para los MCUs HC08 de Freescale.
• Lenguaje para el ARM.
Programación
• Lenguajes de Alto Nivel
– Cercano al lenguaje natural de los humanos.
– Una instrucción de alto nivel representa varias instrucciones de
máquina.
– Portable, independencia de la máquina.
– Tipos:
• Lenguaje C, a veces denominado de “Medio Nivel”.
• Lenguaje JAVA, Basic, Fortran, Pascal, Otros.
– Incluyen un traductor para llevar el código original a uno que
pueda entender la máquina: Compilador.
Traductores
• Los programas implementados tanto en LANs como en
LBN requieren ser traducidos a lenguaje de máquina del
procesador.
• El proceso de traducción de un lenguaje de alto nivel
(LAN) a lenguaje de máquina es realizado por
compiladores o interpretadores.
• El proceso de traducción de un lenguaje ensamblador para
lenguaje de máquina es realizado por traductores,
denominados Montadores (o Assemblers).
Traductores
• Compiladores.
– La compilación consiste en tomar los ficheros fuente que
conforman un programa y, línea por línea, traducir cada
instrucción de alto nivel por varias instrucciones en código
máquina que realicen lo que la instrucción de alto nivel
expresa.
– Crea en un fichero que contiene una estructura interna
que un determinado OS es capaz de entender, se obtiene
un fichero binario ejecutable, o, "un ejecutable".
Traductores
• Interpretes
– Es muy diferente a compilación, pero su resultado debería
ser similar: la ejecución de un programa.
– El intérprete intenta realizar "al vuelo" lo que se expresa
en los ficheros fuente.
– El intérprete contiene en su interior miles de porciones de
código máquina, que combinándolas adecuadamente
pueden realizar las mismas tareas que expresa una orden
escrita en el lenguaje de alto nivel.
– No general un ejecutable.
Compiladores vs Interpretes
Traductores Resumen
• Hay tres tipos de traductores:
– Ensambladores, Compiladores e Interpretadores

Código fuente Código


Assembler ejecución
(Assembler) Objeto

Código fuente Código


Compilador ejecución
(LAN) Objeto

Código fuente
Interpretador ejecución
(LAN o Assembly)
Continuamos con

Computadores
Descripción general, aplicaciones y programación.

Hardware y Software
Descripción general y componentes del Hardware.

Programación y lenguajes
Definición, tipos de lenguajes y tipos de
traductores.
Desarrollo y ejecución
Descripción del desarrollo y ejecución de un
programa.
Desarrollo
• Un programa simple.
– Lenguaje de Alto Nivel.
• Compilación.
– Lenguaje ensamblador.
• Ensamblado.
– Ejecución por parte de la CPU.
– Uso de los periféricos para la ejecución.
• ¿Necesidad
de conocer los
componentes de un computador?
Desarrollo
1. Programación

CÓDIGO FUENTE CÓDIGO FUENTE


Alto Nivel Abs. Bajo Nivel Abs.

COMPILADOR ENSAMBLADOR

CÓDIGO
MÁQUINA

EJECUTABLE
Desarrollo
2. Ejecución
EJECUTABLE LOADER

PERIFÉRICOS

CPU MEMORIA

PERIFÉRICOS

RESULTADOS
Hoy vimos:

Computadores
Descripción general, aplicaciones y programación
programación.

Hardware y Software
Descripción general y componentes del Hardware.

Programación y lenguajes
Definición, tipos de lenguajes y tipos de
traductores.
Desarrollo y ejecución
Descripción del desarrollo y ejecución de un
programa.
Lecturas propuestas
• "Computer Organization and Design: The Hardware/Software
Interface", John L. Hennessy and David A. Paterson. Morgan
Kaufmann Publisher.
– Chapter 1: Computer Abstraction and Technology.
• “Hardware and Computer Organization” The Software Perspective.
Arnold S. Berger.
– Chapter 1: Introduction and Overview of Hardware Architecture.
• “Computer Design and Architecture” Third Edition. Sajjan G. Shiva.
– Introduction: Computer System Organization.
Próxima clase:

Computadores
Descripción general y funciones del Hardware.

CPU y Memoria
Descripción de la CPU, jerarquía y conformación de la
memoria.

Arquitectura de PC
Descripción y tipos de arquitecturas.

Microprocesador
Descripción, ejecución de instrucciones y componentes
principales.
Microcontroladores

■ Del Software al
Hardware

También podría gustarte