23
Ing. Lionel Hendryk

Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Embed Size (px)

Citation preview

Page 1: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Ing. Lionel Hendryk

Page 2: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Sistemas EmbebidosSistemas EmbebidosUn sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas . Al contrario de lo que ocurre con los ordenadores de propósito general (como por ejemplo una computadora personal o PC) que están diseñados para cubrir un amplio rango de necesidades, los sistemas embebidos se diseñan para cubrir necesidades específicas. Por lo general los sistemas embebidos se pueden programar directamente en el lenguaje ensamblador del microcontrolador o microprocesador incorporado sobre el mismo, o también, utilizando los compiladores específicos, pueden utilizarse lenguajes como C o C++; en algunos casos, cuando el tiempo de respuesta de la aplicación no es un factor crítico, también pueden usarse lenguajes interpretados como JAVA.

.

CaracterísticasCaracterísticas

EjemplosEjemplos

Arquitectura similar a una computadora.

Características operativas mucho más simples y específicas.

Estrecha relación entre hardware y software.

.

Page 3: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas
Page 4: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Comparativa SE vs. PCComparativa SE vs. PC

Page 5: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas
Page 6: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Lenguajes de programaciónLenguajes de programación

*Lenguaje más cercano a los dispositivos físicos y al uP -> ASSEMBLER.*Control completo del sistema.*Lógica rudimentaria y carente de estructura, lo que hace muy dificultosa su documentación y normalización.*Relación excluyente con el uP lo que implica una difícil migración de soluciones a diferente hardware.

*Lenguaje más cercano al programador (C, C++, JAVA, BASIC, etc).

*Control parcial del sistema.

*Lógica estructurada, lo que hace permite fácilmente su documentación y normalización.

*La mayoría de los proc. son migrables a diferente hardware.

Page 7: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

ResumenResumen

Page 8: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas
Page 9: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Directivas del compilador - Directivas del compilador - SegmentosSegmentosLa organización de tipos de datos y código es importante cuando se necesita diseñar un SE (Hardware y Software).

Concepto Clásico de Memoria: Recurso Lineal.

Concepto Actual: Recurso compartido, escaso, virtual y de compleja manipulación.La sección implementa un modelo

lineal (al estilo clásico) y representa un componente mínimo que permite generar diferentes modelos de memoria, lineales y no lineales (paginados y/o segmentados).

Page 10: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Separa su organización lógica de la física utilizando segmentación

Porciones de memoria lineal que componen un sistema mayor. Seria normal llamar a las secciones , paginas.

Page 11: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Directivas del Compilador - Directivas del Compilador - SegmentosSegmentos

Haciendo una interpretación simplificada, podemos decir que la función de un compilador es interpretar un listado de instrucciones, escrito en un lenguaje determinado de programación, y generar una secuencia de códigos binarios ejecutables por el microprocesador.

La incorporación de definiciones de segmentos en los programas fuente, hace que el compilador genere distintas listas binarias, cada una de las cuales tiene asociado un nombre y mantiene un contador de direcciones como referencia de acumulación de elementos.

Page 12: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Directiva SEGMENTDirectiva SEGMENT

Page 13: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Directiva EXTRNDirectiva EXTRN

El contenido de _TEXT y _DATA define su tipo como segmentos de código y datos respectivamente, sin embargo el ensamblador no define que estossegmentos sean apuntados durante la ejecución del programa por los registros CS y DS.

Debemos notar que la asignación de valor al segmento de código, siempre implica una alteración del flujo del programa, por lo que no puede hacerse mediante una instrucción “MOV”.

Page 14: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Interface con lenguajes de Alto Interface con lenguajes de Alto NivelNivel

La mayoría de los compiladores de lenguajes de alto nivel generan como producto intermedio de la compilación, un programa en ASSEMBLER que luego es procesado por un ensamblador.

En la generación de este producto, el compilador realiza un gran número de definiciones respecto de la organización de la memoria, el manejo de las secciones o segmentos, las estructura de datos y el intercambio de parámetros en las llamadas a funciones, que es necesario conocer si pretendemos combinar módulos en ASSEMBLER con lenguajes de alto nivel.

Page 15: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Programa en C compiladoPrograma en C compilado

/* Define x como variable global */long x = 7338;

/* Encabeza la función principal de C */int main() {

long a ; /* Define a como variable local */

a = x + 1; /* Opera y asigna valor */

return 0; /* Termina el programa sin error */}

Page 16: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Linkeado del Modulo _DATALinkeado del Modulo _DATA

Page 17: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Linkeado del Modulo _TEXTLinkeado del Modulo _TEXT

Page 18: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

START UPSTART UP

Luego de conectada la alimentación, muchos elementos de hardware y software necesitan ser configurados para su correcto funcionamiento, razón por la cual marcaremos una diferencia entre la iniciación del sistema y su operaciónLuego del RESET cualquier microprocesador inicia la ejecución de instrucciones desde una dirección físicamente fija en la memoria, habitualmente con las interrupciones enmascaradas.

Una de las acciones prioritarias para habilitar la mayoría de las capacidades operativas del sistema es definir la pila. En la familia 80xxx esto implica asignarle valor a dos registros, el SP (puntero de pila) y el SS (segmento de pila), para que apunten a un rango de direcciones del mapa físico de memoria donde se encuentre RAM.

Como en la mayoría de los microprocesadores, la pila crece en el sentido de las direcciones decrecientes de memoria, este es otro ejemplo donde debemos diferenciar el concepto lógico, del físico, en el modelo de memoria.

Page 19: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

PilaPilaLa pila implementa un procedimiento secuencial de reserva de memoria, su organización es de tipo FIFO, pero admite acceso indexado sobre el espacio ocupado, utilizando un registro índice o base de pila BP.

Esta modalidad de implementación facilita la optimización del uso de la memoria, pero arrastra una dificultad relacionada con la imposibilidad de predecir exactamente cuanta memoria ocupará la pila.

Page 20: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Inicialización de la PilaInicialización de la Pila

Es necesario destacar una característica de la definición de la pila en la familia INTEL 80xxx. Debido al direccionamiento segmentado, para ubicar una dirección física de memoria es necesario darle valor a dos registros (segmento y desplazamiento), en el caso particular de los punteros de pila, esta es una situación de riesgo, ya que entre las dos asignaciones los punteros están inconsistentes.Para salvar este problema el microprocesador “fusiona” la instrucción siguiente a una asignación de SS e impide que cualquier interrupción (incluso la NMI) divida las instrucciones.

Page 21: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Vectores de InterrupciónVectores de Interrupción

La familia INTEL 80xxx obtiene la dirección de todas los servicios de interrupciones mediante una tabla de 256 vectores FAR (segmento y desplazamiento) ubicada al principio del mapa físico de direcciones.

¿ Donde ubicar los vectores, en ROM o en RAM ?

Page 22: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Inicialización de variablesInicialización de variables

Page 23: Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas

Esqueleto START UPEsqueleto START UP