Author
trandien
View
216
Download
0
Embed Size (px)
Programacin de Sistemas
Mtro. en IA Jos Rafael Rojano [email protected]
http://www.uv.mx/rrojano
Elementos de un sistema embebido
Elementos de un sistema embebido
Desarrollo de Firmware
SOFTWARE
Lenguajes de Bajo y Alto Nivel.
UNIDAD CENTRAL DE PROCESO
MEMORIA
RELOJ
Desarrollo de Firmwaremove.w (A0)+,D0add.w (A0),D0cmp.w #10,D0bgt Print_Msg_Abra Print_Msg_BPrint_Msg_A:
01000100010100101010010010100100100100010111011101010101
Sumar dos valores y comparar si el
resultado es mayor o igual a 10
int suma;suma = A + B;if (suma >= 10)
printf (Mayor que);else
printf (Menor que);
Desarrollo de Firmware
Desarrollo de FirmwareCompiladores y Enlazadores.
Desarrollo de Firmware
Memoria 8-Bits
unsigned char X = 0x10;unsigned int A = 0x1200;unsigned long B = 0x8795EF11;
0x10$00400x120x00
$0041$0042
0x870x950xEF0x11
$0043$0044$0045$0046
Tipo de Dato Variable y Valor Ini.
Lenguaje C para Sistemas Embebidos.El Preprocesador.Variables y Tipos de Datos.
Modificadores: const, extern, volatile, static.Arreglos, estructuras de datos, punteros.
Desarrollo de FirmwareLenguaje C para Sistemas Embebidos.
Funciones en C (Subrutinas y Funciones). Eventos. Inicio Programa
Inicializacin
Bajo Consumo
EV. 1
EV. 2 EV. 3
EV. nEventos?
Evento (Interrupcin) Sin Eventos, esperando
Unidades de procesamiento
Microprocesadores, instrucciones, modos de direccionamiento
Caractersticas de la CPU para S.E:
Eficiencia, tamao de cdigo (sistemas no complejos): Sistemas tpicamente sin disco duro y/o diseos con poca cantidad de memoria RAM y ROM.CISC
Buena opcin, eficiencia en el tamao del cdigo.Una instruccin realiza varias operaciones.Memoria embebida dentro del mismo chip, ms costosa.
RISC: Optimizada para velocidad.CISC para la programacin, RISC interno.
MemoriaMemoria
InstruccinCISC
Unidad de Control
Decodificador y traductor
CISC -> RISC
Decodificador y traductor
CISC -> RISC
Decodificador instrucciones
RISC
Decodificador instrucciones
RISC
InstruccionesRISC
Caractersticas de la CPU para S.E:
Eficiencia, tamao de cdigo: Tcnicas de compresin de instrucciones.Eficiencia en tiempo de Ejecucin:
ROM
CPU
InstruccinDireccin
ROM
DECO
InstruccinDireccin
CPU
Esquema tradicional Compresin de instrucciones
Microprocesadores
Difieren de los procesadores tradicionales como: INTEL x86, AMD, AMD 64, entre otros.Son orientados a aplicaciones especficas.Eficiencia:
Bajo consumo de potencia: DPM y DVS.Cdigo pequeo: ISA optimizada.Mdulos: Apropiados para S.E.
Conversor A/D, D/A, TIMER, PWM, Serial.Avanzados: DRAM, DMA, LCD Grfico, Interrupciones.
Modelo de ProgramacinConjunto de elementos ofrecidos al usuario para la programacin.
15 0
31 01516
Registros de Datos D0-D7
78
31 01516
Registros de Direcciones A0-A6
31 01516
StackPointer USP y SSP A7. ColdFire es solo uno.
31 0Solo en el 68000
2324
Contador de Programa o PC
Registro de EstadoCCR
78
Ejem
plo
6800
0/C
oldF
ire
Modos de DireccionamientoConjunto de mecanismos para proveer de datos a las instrucciones
Ejemplo 68000/ColdFireM.D. Inmediato
Directo a Registro (Datos o Direcciones)INSTRUCCIN
OPERANDO
Memoria
E.A.INSTRUCCIN
REGISTRODATOS O
DIRECCIONES
E.A.
Directo a Memoria (Absoluto)
INSTRUCCIN
Memoria
OPERANDOE.A.
INSTRUCCIN REGISTRODIRECCIONESRegistro
Memoria
OPERANDOE.A.
Indirecto a Registro Direcciones
Lenguaje C para S.E.
Cdigo Fuente.Se escribe en un lenguaje de alto nivel: C.Ms cercano a los humanos, menos a la mquina.
Debe ser traducido a lenguaje de mquina.Los pasos son:
Revisin: Sintaxis y semntica.Traduccin lenguaje intermedio.Optimizaciones de alto nivel.Llevar a cdigo objeto: dependiente de la mquina.Optimizaciones de bajo nivel.Reunin con otros mdulos: Cdigo ejecutable.
Pasos del cdigo fuente al binarioCDIGO FUENTE REVISIN
REUNIR OBJETOS
EJECUTABLE
OPTIMIZAR ALTO NIVEL
CDIGO INTERMEDIO
OPTIMIZAR BAJO NIVEL
CDIGO OBJETO
ASMCDIGO MQUINA
El compiladorToma el cdigo fuente (.c y .h) y lo organiza de acuerdo a las directivas del preprocesador.Revisin de sintaxis y semntica.Traduccin a cdigo objeto con las respectivas optimizaciones.
Compiladores
Compiladores cruzadosCompilador tradicional
Se ejecuta en una arquitectura especfica (x86).Genera cdigo para esa misma arquitectura.Visual C++ (x86). Genera cdigo para x86.
Compilador cruzadoSe ejecuta en una arquitectura especfica (x86).Genera cdigo para otra arquitectura (m68k, arm).gcc-m68k-elf: Compilador de C que corre en x86 pero genera cdigo para un Motorola 68000.
Esquema de los compiladores
Compiladores cruzadosCompilador tradicional
Compilador cruzado
Cdigo Fuente Compilador
CPU: x86
Cdigo para x86
Cdigo Fuente Compilador
CPU: x86
Cdigo para HC08
Ligadores
Enlazador: LinkerVarios mdulos: varios archivos objeto.Resuelve las referencias externas.Rene todos (obj.) en un solo ejecutable.
Binario
Binario o ejecutable:
Mdulo 1*.c , .asm
Mdulo 2*.c, .asm
Mdulo n*.c, .asm Libreras
*.libCompilador Compilador Compilador
Mdulo 1*.o
Mdulo 2*.o
Mdulo n*.o
Otros*.lib
Enlazador
Ejecutable
Arquitectura ARM
Advanced Risc Machine
Acerca de la arquitectura ARM
Registros del ARM
Registros del ARM
Organizacin de los registros
ReferenciasLus Germn Garca Morales, Sistemas Embebidos notas de clase-, Universidad de Antioquia, Grupo de Microelectrnica y Control.ARM Manual de referencia de la arquitectura