lectura 1

Anuncio
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 1: Revisión de Presaberes
LECTURA 1
Diferencia entre microprocesador y microcontrolador
Hay varias diferencias entre un microcontrolador y un microprocesador, la primera
y más importante es la funcionalidad.
Para que un microprocesador sea funcional requiere conectarse a una memoria y
a dispositivos de entrada y salida (E/S).
Para aclarar esto piensen en la tarjeta principal de su computadora personal,
además de un buen microprocesador, requieren de memoria RAM y como ustedes
saben en la tarjeta principal (motherboard) tenemos un “súper” circuito integrado
llamado “chipset” que entre otras cosas se encarga de proporcionar las funciones
de entrada y salida, tales como el control de los puertos serial ,paralelo, USB,
IEEE-1394, Ethernet y de las ranuras ISA, PCI, AGP y más.
En cambio en un microcontrolador tenemos tanto las capacidades de
procesamiento, almacenamiento de datos e instrucciones (memoria) y de
comunicación con el entorno (E/S) dentro de un sólo chip ¡No requiere de otros
componentes para funcionar! ¡De hecho puede considerarse como una
microcomputadora en un sólo chip!
Obviamente esto tiene algunas desventajas, sobre todo derivadas del hecho de
que se trata de un sistema cerrado con características que no pueden modificarse,
de ahí que sea muy importante su selección.
Otra diferencia es la arquitectura (los bloques funcionales internos y la forma en
que se conectan), normalmente la de los microprocesadores es la tradicional de
Von Neumann, mientras que la de los microcontroladores es la Harvard y aunque
ya no hay arquitecturas “puramente” CISC o RISC ya que actualmente comparten
muchas características, la de los microcontroladores es RISC. No debemos de
olvidar que la arquitectura Harvard se distingue por tener una memoria para los
datos y otra para las instrucciones, cada una con propio bus y capacidad.
1
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 1: Revisión de Presaberes
LECTURA 2
LENGUAJES DE PROGRAMACION
Un lenguaje de programación" es un lenguaje diseñado para describir el conjunto
de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje
de programación es un modo práctico para que los seres humanos puedan dar
instrucciones a un equipo.
Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada
que ver con los lenguajes de programación; se los conoce como protocolos de
comunicación. Se trata de dos conceptos totalmente diferentes. Un lenguaje de
programación es muy estricto:
A CADA instrucción le corresponde UNA acción de procesador.
El lenguaje utilizado por el procesador se denomina lenguaje máquina. Se trata de
datos tal como llegan al procesador, que consisten en una serie de 0 y 1 (datos
binarios).
El lenguaje máquina, por lo tanto, no es comprensible para los seres humanos,
razón por la cual se han desarrollado lenguajes intermediarios comprensibles para
el hombre. El código escrito en este tipo de lenguaje se transforma en código
máquina para que el procesador pueda procesarlo.
El ensamblador o Assembler fue el primer lenguaje de programación utilizado. Es
muy similar al lenguaje máquina, pero los desarrolladores pueden comprenderlo.
No obstante, este lenguaje se parece tanto al lenguaje máquina que depende
estrictamente del tipo de procesador utilizado (cada tipo de procesador puede
tener su propio lenguaje máquina). Así, un programa desarrollado para un equipo
no puede ser portado a otro tipo de equipo. El término "portabilidad" describe la
capacidad de usar un programa de software en diferentes tipos de equipos. Para
poder utilizar un programa de software escrito en un código ensamblador en otro
tipo de equipo, ¡a veces será necesario volver a escribir todo el programa!
Por lo tanto, un lenguaje de programación tiene varias ventajas:
* es mucho más fácil de comprender que un lenguaje máquina.
* permite mayor portabilidad, es decir que puede adaptarse fácilmente para
ejecutarse en diferentes tipos de equipos.
2
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 1: Revisión de Presaberes
El ordenador sólo entiende un lenguaje conocido como código binario o código
máquina, consistente en ceros y unos. Es decir, sólo utiliza 0 y 1 para codificar
cualquier acción.
Los lenguajes más próximos a la arquitectura hardware se denominan lenguajes
de bajo nivel y los que se encuentran más cercanos a los programadores y
usuarios se denominan lenguajes de alto nivel.
Lenguajes de bajo nivel
Son lenguajes totalmente dependientes de la máquina, es decir que el programa
que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras
maquinas.
Al estar prácticamente diseñados a medida del hardware, aprovechan al máximo
las características del mismo.
Dentro de este grupo se encuentran:
* El lenguaje maquina: este lenguaje ordena a la máquina las operaciones
fundamentales para su funcionamiento. Consiste en la combinación de 0's y 1's
para formar las ordenes entendibles por el hardware de la maquina.
Este lenguaje es mucho más rápido que los lenguajes de alto nivel.
La desventaja es que son bastantes difíciles de manejar y usar, además de tener
códigos fuente enormes donde encontrar un fallo es casi imposible.
* El lenguaje ensamblador es un derivado del lenguaje maquina y está formado
por abreviaturas de letras y números llamadas mnemotécnicos. Con la aparición
de este lenguaje se crearon los programas traductores para poder pasar los
programas escritos en lenguaje ensamblador a lenguaje máquina. Como ventaja
con respecto al código máquina es que los códigos fuentes eran más cortos y los
programas creados ocupaban menos memoria. Las desventajas de este lenguaje
siguen siendo prácticamente las mismas que las del lenguaje ensamblador,
añadiendo la dificultad de tener que aprender un nuevo lenguaje difícil de probar y
mantener.
Lenguajes de alto nivel
Son aquellos que se encuentran más cercanos al lenguaje natural que al lenguaje
máquina.
Están dirigidos a solucionar problemas mediante el uso de EDD's.
3
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 1: Revisión de Presaberes
Nota: EDD's son las abreviaturas de Estructuras Dinamicas de Datos, algo muy
utilizado en todos los lenguajes de programación. Son estructuras que pueden
cambiar de tamaño durante la ejecución del programa. Nos permiten crear
estructuras de datos que se adapten a las necesidades reales de un programa.
Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo
que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes
migrar de una máquina a otra sin ningún tipo de problema.
Estos lenguajes permiten al programador olvidarse por completo del
funcionamiento interno de la maquina/s para la que están diseñando el programa.
Tan solo necesitan un traductor que entiendan el código fuente como las
características de la maquina.
Suelen usar tipos de datos para la programación y hay lenguajes de propósito
general (cualquier tipo de aplicación) y de propósito especifico (como FORTRAN
para trabajos científicos).
Lenguajes de Medio nivel
Se trata de un término no aceptado por todos, pero que seguramente habrás oído.
Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro
de estos lenguajes podría situarse C ya que puede acceder a los registros del
sistema, trabajar con direcciones de memoria, todas ellas características de
lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel.
Generaciones
La evolución de los lenguajes de programación se puede dividir en 5 etapas o
generaciones.
* Primera generación: lenguaje maquina.
* Segunda generación: se crearon los primeros lenguajes ensambladores.
* Tercera generación: se crean los primeros lenguajes de alto nivel. Ej. C, Pascal,
Cobol…
* Cuarta generación. Son los lenguajes capaces de generar código por si solos,
son los llamados RAD, con lo cuales se pueden realizar aplicaciones sin ser un
experto en el lenguaje. Aquí también se encuentran los lenguajes orientados a
4
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 1: Revisión de Presaberes
objetos, haciendo posible la reutilización d partes del código para otros programas.
Ej. Visual, Natural Adabes…
* Quinta generación: aquí se encuentran los lenguajes orientados a la inteligencia
artificial. Estos lenguajes todavía están poco desarrollados. Ej. LISP
LECTURA 3
LINUX
Linux es un sistema operativo, compatible Unix. Dos características muy
peculiares lo diferencian del resto de sistemas que podemos encontrar en el
mercado, la primera, es que es libre, esto significa que no tenemos que pagar
ningún tipo de licencia a ninguna casa desarrolladora de software por el uso del
mismo, la segunda, es que el sistema viene acompañado del código fuente.
El sistema lo forman el núcleo del sistema (kernel) más un gran número de
programas / bibliotecas que hacen posible su utilización. Muchos de estos
programas y bibliotecas han sido posibles gracias al proyecto GNU, por esto
mismo, muchos llaman a Linux, GNU/Linux, para resaltar que el sistema lo forman
tanto el núcleo como gran parte del software producido por el proyecto GNU.
Linux se distribuye bajo la GNU General Public License por lo tanto, el código
fuente tiene que estar siempre accesible y cualquier modificación ó trabajo
derivado tiene que tener esta licencia.
El sistema ha sido diseñado y programado por multitud de programadores
alrededor del mundo. El núcleo del sistema sigue en continuo desarrollo bajo la
coordinación de Linus Torvalds, la persona de la que partió la idea de este
proyecto, a principios de la década de los noventa. Hoy en día, grandes
compañías, como IBM, SUN, HP, Novell y RedHat, entre otras muchas, aportan a
Linux grandes ayudas tanto económicas como de código.
Día a día, más y más programas y aplicaciones están disponibles para este
sistema, y la calidad de los mismos aumenta de versión a versión. La gran
mayoría de los mismos vienen acompañados del código fuente y se distribuyen
generalmente bajo los términos de licencia de la GNU General Public License.
5
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 1: Revisión de Presaberes
Más y más casas de software comercial distribuyen sus productos para Linux y la
presencia del mismo en empresas aumenta constantemente por la excelente
relación calidad-precio que se consigue con Linux.
Las arquitecturas en las que en un principio se puede utilizar Linux son Intel 386-,
486-, Pentium, Pentium Pro, Pentium II/III/IV, IA-64, Amd 5x86, Amd64, Cyrix y
Motorola 68020,IBM S/390, zSeries, DEC Alpha, ARM, MIPS, PowerPC, SPARC y
UltraSPARC. Además no es difícil encontrar nuevos proyectos portando Linux a
nuevas arquitecturas.
6
Descargar