Вы находитесь на странице: 1из 45

SED - II

Tema 2
Herramientas de desarrollo

Julio Martos
Herramientas de desarrollo

Proyecto

q Una empresa de
servicios
energé1cos nos
encarga diseñar y
construir un
nuevo sistema de
ges1ón para un
edificio Zero
Energy.
Herramientas de desarrollo

Proyecto

El equipo a ges1onar estará compuesto por:


q Paneles solares fotovoltaicos y térmicos
q Caldera de biomasa
q Almacenamiento en baterías
q Almacenamiento en acumulador térmico
q Suelo/techo radiante
q Ven1lación
q Sombreado
Herramientas de desarrollo

Proyecto

El sistema deberá:
q Monitorizar las condiciones ambientales:
q Temperatura, humedad, iluminación, ocupación,..
q Externas e internas
q Monitorizar y ges1onar los sistemas
energé1cos:
q Estado, energía disponible,…
q Determinar necesidades de clima1zación
q Ac1var los elementos de clima1zación
Herramientas de desarrollo

Proyecto

1ª aproximación:
q Sistema “complejo”:
q Muchos elementos a monitorizar y ges1onar
q Múl1ples ubicaciones dispersas
q Fuertes restricciones: sa1sfacción del usuario y Zero Energy
q Muchas tecnologías en el sistema:
q Fotovoltaicas, térmicas, pasivas,..
q Necesario trabajo en equipo mul1disciplinar
q …….
Herramientas de desarrollo

Proyecto

¿Con qué lo hacemos? Disposi1vos inteligentes


q  Arquitectura propuesta:
q Estructura modular
q Red de nodos conectados por bus serie
q Nodo de ges1ón
q Nodos sensores-control
q Nodos de interfaz
Nodo Nodo Nodo Nodo
Ges3ón Sensor-Ctrl Sensor-Ctrl Interfaz
Herramientas de desarrollo

Proyecto

¿Con qué lo hacemos?


q  Arquitectura propuesta:
q Alterna1va de solución:
q Sistema embarcado:
q Hw simple (2-3 1pos de nodos)
q Flexibilidad
q Escalabilidad
Nodo Nodo Nodo Nodo
Ges3ón Sensor-Ctrl Sensor-Ctrl Interfaz
Herramientas de desarrollo

Proyecto

¿Cómo lo hacemos (desarrollamos)?:


q ¿Planificación del desarrollo?

Nodo Nodo Nodo Nodo


Ges3ón Sensor-Ctrl Sensor-Ctrl Interfaz
Herramientas de desarrollo

Índice

q Metodología de diseño
q Herramientas IDE (Entorno Desarrollo Integrado)
q Lenguajes
q Síntesis
q Depuración
q Herramientas IDE: ejemplos de uso en
aplicaciones basadas en microcontroladores
Herramientas de desarrollo

Metodología de diseño

q Fases de trabajo en diseño de un sistema empotrado


q Definición de los requerimientos del producto
q Definición de los requerimiento funcionales
q Selección del procesador
q Especificaciones Hw/Sw (par1ción)
q Evaluación del sistema
q Diseño Hw / Diseño Sw
q Integración
q Verificación

Ball, cap. 1
Herramientas de desarrollo

Metodología de diseño

Def. Producto
Par3ción Hw/Sw

Def. Funcionalidades
Diseño Hw Diseño Sw

Selecc. Procesador
OK? NO OK?
SÍ SÍ
Especificaciones Hw/Sw
Integración Hw/Sw

NO SÍ
Eval. Sist.? NO SÍ
Verific.?
Retornar Éxito

Ball, cap. 1
Herramientas de desarrollo

Metodología de diseño

Def. Producto
q Definición
requerimientos:
q Produce un Def. Funcionalidades
documento que
describe el Selecc. Procesador
producto que se
desea construir
Implica a: Especificaciones Hw/Sw

q Dpto. marke1ng
NO SÍ
q Dpto. I+D+i Eval. Sist.?
Herramientas de desarrollo

Metodología de diseño

q Desarrollo:
Par3ción Hw/Sw
q Posible división entre
especialistas en Hw/Sw
q U1lización de Diseño Hw Diseño Sw
herramientas adecuadas:
q Hw (captura esquemas,
simuladores, diseño PCB, OK? OK?
proto1pado, etc. ) NO
q Sw: SÍ SÍ
q Proyecto Integración Hw/Sw
q Codificación
q Simulación
q Kit evaluación/desarrollo NO SÍ
q Monitores Verific.?
Retornar Éxito
q Emulación
Herramientas de desarrollo

Herramientas IDE

q Entorno de Desarrollo Integrado


(Integrated Development Enviromment) (¿se ha u1lizado antes?)
q Sokware que integra la: (¿puntos comunes con otras asignaturas?)

q Gestión de proyecto
q Editor de ficheros fuente
q Compilador (ensamblador, C/C++, C#, ..)
q Enlazador
q Depuración:
q Simulación
q Monitor
q Emulación
q Descarga de código
Herramientas de desarrollo

Herramientas IDE
Herramientas de desarrollo

Herramientas IDE

q Fases de desarrollo:
q Crear proyecto: selección del
disposi1vo y configuración
q Edición ficheros fuente: C/C++ o
ensamblador
q Construir la aplicación
q Depuración y op1mización
q Descarga del código en “ROM”

Herramientas de desarrollo

Herramientas IDE

q Otros:
q MPLAB de Microchip q CubeSuite+ de Renesas
q CCS de Texas Instruments q Simplicity Studio de Silicon
q HI-TECH Labs
q IAR Embedded WB
q CodeWarrior de Freescale
q PSoC Creator de Cypress



Herramientas de desarrollo

Herramientas IDE

q Dos modos de trabajo:


q Síntesis: q Depuración:


Herramientas de desarrollo

Herramientas IDE

q Síntesis: (¿elementos comunes con otras asignaturas?)


Herramientas de desarrollo

Herramientas IDE

q Depuración (¿elementos comunes con otras asignaturas?)


Herramientas de desarrollo

Herramientas IDE

q A) Creación de un proyecto:


q Project -> New uVision Project
Herramientas de desarrollo

Herramientas IDE

q A) Creación de un proyecto:


q Project -> New uVision Project
Se ubica en una
carpeta y se le
nombra
Herramientas de desarrollo

Herramientas IDE

q A) Creación de un proyecto:


q Project -> New uVision Project

Se selecciona el
disposi1vo a
u1lizar en el
proyecto
Herramientas de desarrollo

Herramientas IDE

q B) Crear archivos para el proyecto:


q File -> New
q File -> Save As

Escribir el código
en el editor.
¡No está vinculado
al proyecto!
aún
Herramientas de desarrollo

Herramientas IDE

q B) Añadir archivos al proyecto:


Menú contextual sobre Source Group1
Herramientas de desarrollo

Herramientas IDE

q C) Síntesis:
q Project -> Build…
O
q Botón Build

Se realiza la
compilación,
enlazado y
código ejecutable
Herramientas de desarrollo

Herramientas IDE

q D) Depuración:
q Debug -> Start/Stop…
O
q Botón debug

Se cambia a modo
depuración:
q Simulación
q Hw

Herramientas de desarrollo

Herramientas IDE

q D) Depuración:
ejecución del
programa
visualizando los
cambios que se
realizan
Herramientas de desarrollo

Lenguaje C

q ¿Qué hacen?
#include <stdio.h>
int main(){
double x,y,z;
 
//Lectura de datos
printf("Escribe el primer número");
#include <stdio.h> scanf("%lf",&x);
int main(){ printf("Escribe el segundo número");
const int TAMANIO=15; scanf("%lf",&y);
int i,j; printf("Escribe el tercer número");
scanf("%lf",&z);
for(i=1;i<=15;i++){ if(x>y && x>z) { //El mayor es x
for(j=1;j<=15;j++){ if(y>z) printf("\t%lf\t%lf\t%lf", x, y, z);
printf("%4d",i*j); else printf("\t%lf\t%lf\t%lf", x, z, y);
} }
printf("\n"); else if (y>x && y>z) { //El mayor es y
} if (x>z) printf("\t%lf\t%lf\t%lf", y, x, z);
} else printf("\t%lf\t%lf\t%lf", y, z, x);
}
else { //El mayor es z
if (x>y) printf("\t%lf\t%lf\t%lf", z, x, y);
else printf("\t%lf\t%lf\t%lf", z, y, x);
}
}

Referencias a C:
hqp://fsande.webs.ull.es/talf/cursoc/index.htm
hqp://jorgesanchez.net/programacion/ejerciciosc/sencillos.html
Herramientas de desarrollo

Lenguaje C

q ¿Qué sabemos de C51? (¿elementos comunes con otras asignaturas?)


/*------------------------------------------------------------------
HELLO.C
Copyright 1995-2005 Keil Software, Inc.
--------------------------------------------------------------------*/
#include <REG52.H> /* special function register declarations */
/* for the intended 8051 derivative */
#include <stdio.h> /* prototype declarations for I/O functions */

#ifdef MONITOR51 /* Debugging with Monitor-51 needs */


char code reserve [3] _at_ 0x23; /* space for serial interrupt if */
#endif /* Stop Exection with Serial Intr. */
/* is enabled */
/*------------------------------------------------
The main C function. Program execution starts
here after stack initialization.
------------------------------------------------*/
Herramientas de desarrollo

Lenguaje C

q ¿Qué sabemos de C51?


void main (void) {
//Setup the serial port for 1200 baud at 16MHz.//
#ifndef MONITOR51
SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */
TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
TH1 = 221; /* TH1: reload value for 1200 baud @ 16MHz */
TR1 = 1; /* TR1: timer 1 run */
TI = 1; /* TI: set TI to send first char of UART */
#endif

// Note that an embedded program never exits (because


there is no operating system to return to). It
must loop and execute forever./ /
while (1) {
P1 ^= 0x01; /* Toggle P1.0 each time we print */
printf ("Hello World\n"); /* Print "Hello World" */
}
}
Herramientas de desarrollo

Lenguaje C

q ¿Es igual que el ANSI C?


q C51 cumple con el estándar ANSI de C
q Adaptado para generar código op1mizado para 8051
q Direc1vas para control de la compilación (#pragma)
q Incluye extensiones al lenguaje para sistemas embarcados:
q Áreas de memoria
q Modelos de memoria
q Tipos de memoria
q Tipos de datos (¿elementos diferenciales
q Variables “bit” con Informá1ca?)
q Registros de Funciones Especiales (SFR)
q Punteros
q Atributos de funciones

Ver Ayuda uVision, muy recomendable


Herramientas de desarrollo

Lenguaje C

q Algunas caracterís1cas del C51:


q Áreas de memoria: (dependen del disposi1vo y la capacidad de lectura/
escritura de los diferente espacios de memoria)
q Memoria de programa (code) (habitualmente de solo lectura)
q Memoria interna de datos (data, idata, bdata) (pequeño tamaño,
directamente accesible por el procesador, 1pos de datos bit, incluida en el chip)
q Memoria de datos externa (xdata, pdata) (externa al chip, tamaño de kB)
q Memoria SFR (sfr, sfr16, sbit) (funcionalidad específica para ges1ón periféricos)
q Memoria extendida en algunos disposi1vos (far, const far) (si supera 64 kB)

q  Nota: recordemos que los sistemas embarcados no son “ordenadores”, los


procesadores suelen ser de aplicación específica con caracterís1cas adaptadas al
control o procesado digital y con una implementación op1mizada para la aplicación
Herramientas de desarrollo

Lenguaje C

q Algunas caracterís1cas del C51:


q Modelos de memoria: (define la ubicación de los datos que no se han
definido explícitamente su localización )
q Small Model
q  U1liza la memoria interna de datos
q Compact Model
q  U1liza la memoria externa paginada
q Larg Model
q  U1liza memoria externa

q  Seleccionar uno u otro de estos modelos influye en la can1dad de datos que se


pueden tener, la capacidad de procesamiento y el Hw necesario.
Herramientas de desarrollo

Lenguaje C

q Tipos de datos: (¿qué se ha u1lizado en otras materias?)

q  Y, también, el 1po estándar void


Herramientas de desarrollo

Lenguaje C

q Tipos de datos: (¿qué se ha u1lizado en otras materias?)


q Recordemos que los 1pos de datos pueden llevar:
q Modificadores:
q signed (aplicable a char o int)
q unsigned (aplicable a char o int)
q short (aplicable a int)
q long (aplicable a int)
q Cualificadores:
q const (la variable no se puede cambiar de valor)
q vola3le (evitar errores por op1mización, puede cambiar por un disposi1vo)
q Almacenamiento:
q auto (modo por defecto)
q register (u1lizar un registro general)
q extern (la variable está definida en otro módulo sokware)
q sta3c (una variable man1ene el valor entre dos invocaciones de una función)

Herramientas de desarrollo

Lenguaje C

q Funciones en C51 (¿específico de microcontroladores?)


q Hay definidas una serie de extensiones al ANSI C:
q Interrupción:
q La función es invocada por una interrupción, no aparecerá la invocación en el
programa
q Banco de registros
q Se puede seleccionar que una función u1lice un banco de registros. Aceleración
en la conmutación de tareas.
q Modelo de memoria
q Seleccionar modelos de memoria para cada función
q Reentrante
q Implementación de recursividad
q “Alien”
q Interfaz con el compilador PL/M-51 de Intel
Herramientas de desarrollo

Lenguaje C

q Preprocesador en C51 (¿qué se ha u1lizado en otras materias?)


q Ficheros de cabecera
q Insertar ficheros .h (#include)
q Macros
q Código que se inserta en el código y se expande (no son funciones)
q Direc1vas
q Comandos al compilador, no generan código ejecutable
Herramientas de desarrollo

Lenguaje C

q Programación avanzada en C51


q Personalización
q Dispone de ficheros fuente para adaptar los programas al Hw
q Op1mización
q Generación de código más eficiente en tamaño y/o velocidad
q 10 niveles de op1mización general
q Interfaz con ensamblador
q Integración de ru1nas escritas en ensamblador
q Direccionamiento absoluto
q Especificar la dirección de las variables
Herramientas de desarrollo

Ejemplos

q Escribir un programa en C51 que con las variables:


•  a = 3
•  b = 7
•  c = 2,5
•  d = 1,2E5
q realicen las siguientes operaciones aritmé1cas :
§  x = a + b §  u = d/c
§  y = b/c §  v = (c-a) * b
§  z = a – b §  w = d*(c – b)

Nota: realizar la verificación mediante simulación


Herramientas de desarrollo

Ejemplos

q ¿De qué 1po se declarará cada variable?

q ¿Cuántos bytes ocuparán en memoria?

q ¿Cómo estará codificada la información?



Herramientas de desarrollo

Ejemplos

q Escribir un programa en C51 que implemente un reloj


de HH:MM:SS, en formato de 24 horas. Se u1lizarán
las variables Horas, Minutos y Segundos que deben
de estar en los rangos:
q Horas: 0 a 23
q Minutos: 0 a 59
q Segundos: 0 a 59


Nota: realizar la verificación mediante simulación
Herramientas de desarrollo

Referencias

q  Keil (hqp://www.keil.com) q IAR (hqp://www.iar.com)

q  Microchip (hqp://www.microchip.com)
q HI-TECH (hqp://www.htsok.com)
q  Texas Instruments (hqp://www.1.com)
q Arduino (hqp://www.arduino.cc)
q  NXP (hqps://www.nxp.com )

q  Cypress (hqp://www.cypress.com)

q  Renesas (hqp://www.renesas.eu)



Herramientas de desarrollo

Referencias

q  Ball, S.R. “Embedded mP Systems: Real World Design”, 3 Ed. Newnes


Elsevier Science, Burlington (MA), 2002.
q  Pont, M. “Embedded C”. ACM Press, Addison Wesley, 2001.
q  E. Sanchis: Coordinador, J. Martos, V. González, G. Torralba, “Sistemas
Electrónicos Digitales. Fundamentos y Diseño de Aplicaciones”. Servicio de
Publicaciones de la Universidad de Valencia. 2002.
q  Schultz, T. W. “C and the 8051”. Wood Island Prints, 2008.
q  “Geƒng Started. Crea1ng Applica1ons with uVision 4” Keil
(hqp://www.keil.com)


SED - II

Tema 2
Herramientas de desarrollo

Julio Martos

Вам также может понравиться