lunes, 26 de octubre de 2009
depuradores ,software embebidos (debugger)
Depurador
Un depurador (en inglés, debugger), es un programa que permite depurar o limpiar los errores de otro programa informático.
Uso
Al Iniciarse la depuración, el depurador lanza el programa a depurar. Éste se ejecuta normalmente hasta que el depurador detiene su ejecución, permitiendo al usuario examinar la situación.
El depurador permite detener el programa en:
• Un punto determinado mediante un punto de ruptura.
• Un punto determinado bajo ciertas condiciones mediante un punto de ruptura condicional.
• Un momento determinado cuando se cumplan ciertas condiciones.
• Un momento determinado a petición del usuario.
Durante esa interrupción, el usuario puede:
• Examinar y modificar la memoria y las variables del programa.
• Examinar el contenido de los registros del procesador.
• Examinar la pila de llamadas que han desembocado en la situación actual.
• Cambiar el punto de ejecución, de manera que el programa continúe su ejecución en un punto diferente al punto en el que fue detenido.
• Ejecutar instrucción a instrucción.
• Ejecutar partes determinadas del código, como el interior de una función, o el resto de código antes de salir de una función.
El depurador depende de la arquitectura y sistema en el que se ejecute, por lo que sus funcionalidades cambian de un sistema a otro. Aquí se han mostrado las más comunes.
Información de depuración
Para poder aprovechar todas las posibilidades de depuración es necesario que, al compilar el programa a depurar, se indique al compilador que debe incluir instrucciones e información extra para la depuración del código. Dicha información extra consiste básicamente en la correspondencia entre las instrucciones del código ejecutable y las instrucciones del código fuente que las originan, así como información sobre nombres de variables y funciones.
Aún si no se incluye esta información de depuración, sigue siendo posible monitorizar la ejecución del programa. Sin embargo, resultará más difícil y compleja debido a esa falta de información del contexto en el que se ejecuta el programa.
Otros usos
Un depurador también puede usarse para realizar ingeniería inversa o evitar protecciones de copia. Mediante el uso del depurador se puede conocer el funcionamiento interno del programa examinado, ayudando al proceso de ingeniería inversa o permitiendo desarrollar técnicas para evadir las restricciones impuestas por el programa.
Efectos secundarios
Es importante notar que un programa que está siendo depurado puede presentar un comportamiento diferente a si se ejecuta en solitario debido a que el depurador cambia ligeramente los tiempos internos del programa. Estos cambios en los tiempos de ejecución afectan especialmente a sistemas complejos multihebra o sistemas distribuidos.
Ejemplos de depuradores
• GNU Debugger (gdb)
• SoftICE
• OllyDbg
• Trw2000
• Ida Pro
Ingeniería Inversa/Depuradores
Los depuradores son, con la posible excepción de un descompilador potente, el mejor amigo de un ingeniero inverso. Un depurador permite al usuario ejecutar el programa paso a paso, y examinar varios valores y acciones.
Los depuradores avanzados a menudo contienen por lo menos un desensamblados rudimentario, características de reensamblado o edición hexadecimal. Los depuradores generalmente permiten al usuario colocar puntos de ruptura en instrucciones, llamadas a fundón e incluso lugares de la memoria.
Un punto de ruptura (breakpoint) es una instrucción al depurador que permite parar la ejecución del programa cando cierta condición se cumpla. Por ejemplo, cuando un programa accede a cierta variable, o llama a cierta función de la API, el depurador puede parar la ejecución del programa.
Depuradores Windows
OllyDbg
OllyDbg es un potente depurador Windows con un motor de ensamblado y desensamblado integrado. Tiene numerosas otras características incluyendo un precio de 0$. Muy útil para parcheado, desensamblado y depuración.
SoftICE
Un estándar de facto para depuración Windows. SoftICE puede ser usado para local kernel debugging, que es una característica muy extraña, y muy valiosa. Softice desapareció del mercado en abril del 2006 .
Software Embebido
Un producto embebido exitoso empieza con un diseño de sistemas flexible, el cual requiere de potentes herramientas de software y un entorno intuitivo de diseño. Un software intuitivo es esencial para reducir iteraciones de diseño y brindar alto nivel de abstracción que necesita para evaluar su sistema completo. El diseño de sistemas gráficos brinda este software de alto nivel combinado con alto rendimiento, hardware modular en una plataforma que es abierta, ofreciendo fácil integración con otras herramientas de diseño y su propiedad intelectual (IP) existente.
• Matemáticas integradas, procesamiento de señales e IP existente
• Simule, genere prototipos y valide con un rango extenso de E/S
• Reutilice código durante el flujo de diseño
Recursos Principales
Soluciones de Software para Desarrollo Embebido
Nacional Instrumenta proporciona una solución de desarrollo completa para diseño de sistemas gráficos de aplicaciones embebidas así usted puede diseñar, generar prototipos y desplegar de manera eficiente su sistema en una sola plataforma de software. Esta plataforma es capaz de ejecutarse en una variedad de objetivos de procesamiento incluyendo sistemas comerciales en tiempo real y basado en FPGA así como microprocesadores y microcontroladores personalizados.
Software Embebido
LabVIEW
La tecnología de LabVIEW Embebed le brinda el poder para diseñar, generar prototipos y desplegar rápidamente sistemas embebidos usando el software intuitivo de programación gráfica con hardware comercial perfectamente integrado.
Módulo LabVIEW FPGA
El Módulo LabVIEW FPGA utiliza la tecnología de LabVIEW Embebed para ampliar el desarrollo gráfico de LabVIEW y descargar a arreglos de compuertas programables en campo (Fugas) en hardware de E/S reconfiguradle (RIO).
Módulo LabVIEW Real-Time
El Módulo LabVIEW Real-Time es un componente adicional para el Sistema de Desarrollo LabVIEW. Al instalarse, este software compila código gráfico de LabVIEW y lo optimiza para el objetivo de tiempo real seleccionado.
Módulo LabVIEW Statechart
El nuevo Módulo LabVIEW Statechart simplifica aplicaciones complejas basadas en estado y ofrece un alto nivel de abstracción para diseñar aplicaciones usando estados, transiciones y eventos.
Módulo LabVIEW Microprocessor SDK
El Módulo LabVIEW Microprocessor Sistema de Desarrollo de Software (SDK), junto con herramientas de terceros y un SO embebido, puede usar cualquier plataforma de 32 bits de su elección.
Módulo NI LabVIEW Embebed para Procesadores ADI de Blackfin
El Módulo NI LabVIEW Embedded para Procesadores ADI Blackfin proporciona un extenso enfoque de desarrollo gráfico para diseño embebido.
Módulo NI LabVIEW Embedded para Microcontroladores ARM
El Módulo NI LabVIEW Embedded para Microcontroladores ARM brinda programación gráfica para el procesador embebido de 32 bits de juegos de instrucciones reducidas de cómputo (RISC).
NI LabWindows™/CVI
LabWindows/CVI es un entorno de desarrollo ANSI C integrado y comprobado que brinda un extenso juego de herramientas de programación para crear aplicaciones de pruebas y control.
Asistencia Técnica y Cómo Contactarnos
La marca LabWindows se usa bajo una licencia de Microsoft Corporation. Windows es una marca registrada de Microsoft Corporation en Estados Unidos y otros países.
Aprenda
• Seminario Web: Introducción al Diseño Gráfico de Sistemas
• Seminario Web: Introducción a LabVIEW FPGA
Pruebe
• Pruebe LabVIEW
• Pruebe Diseño Gráfico de Sistemas
Compre
• Configurados de NI Developer Suite
• Configurados de Actualizaciones
WinDBG
WinDBG es una pieza de software gratuita de Microsoft que puede ser usada para depuración local en modo usuario, o incluso depuración remota en modo kernel. WinDBG no es lo mismo que el mejor conocido depurador de Visual Studio, pero viene con un interfaz gráfico de todas maneras. Viene en versiones de 32 y 64 bits.
http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
IDA Pro
El desensamblados interactivo multiprocesador y multiplataforma, por DataRescue.
http://www.datarescue.com
Sistema integrado
Un sistema integrado, empotrado o embebido es un sistema informático de uso específico construido dentro de un dispositivo mayor. Los sistemas integrados se utilizan para usos muy diferentes a los usos generales a los que se suelen someter a las computadoras personales. En un sistema integrado la mayoría de los componentes se encuentran incluidos en la placa base (la tarjeta de vídeo, audio, módem, etc.).
Dos de las diferencias principales son el precio y el consumo. Puesto que los sistemas integrados se pueden fabricar por decenas de millares o por millones de unidades, una de las principales preocupaciones es reducir los costes. Los sistemas integrados suelen usar un procesador relativamente pequeño y una memoria pequeña para reducir los costes. Se enfrentan, sobre todo, al problema de que un fallo en un elemento implica la necesidad de reparar la placa íntegra.
Lentitud no significa que vayan a la velocidad del reloj. En general, se suele simplificar toda la arquitectura del ordenador o computadora para reducir los costes. Por ejemplo, los sistemas integrados emplean a menudo periféricos controlados por interfaces asíncronos en serie, que son de diez a cientos de veces más lentos que los periféricos de un ordenador o computadora personal normal. Los primeros equipos integrados que se desarrollaron fueron elaborados por IBM en los años 1980.
Los programas de sistemas integrados se enfrentan normalmente a problemas de tiempo real.
Componentes de un sistema integrado
En la parte central se encuentra el microprocesador, microcontrolador, DSP, etc. Es decir, la CPU o unidad que aporta capacidad de cómputo al sistema, pudiendo incluir memoria interna o externa, un micro con arquitectura específica según requisitos.
La comunicación adquiere gran importancia en los sistemas integrados. Lo normal es que el sistema pueda comunicarse mediante interfaces estándar de cable o inalámbricas. Así un SI normalmente incorporará puertos de comunicaciones del tipo RS-232, RS-485, SPI, Inc., CAN, USB, IP, J.C.-Di, GSM, GPRS, DSRC, etc.
El subsistema de presentación tipo suele ser una pantalla gráfica, táctil, LCD, alfanumérico, etc.
Denominamos actuadotes a los posibles elementos electrónicos que el sistema se encarga de controlar. Puede ser un motor eléctrico, un conmutador tipo relee etc. El más habitual puede ser una salida de señal PWM para control de la velocidad en motores de corriente continua.
El módulo de E/S analógicas y digitales suele emplearse para digitalizar señales analógicas procedentes de sensores, activar diodos LED, reconocer el estado abierto cerrado de un conmutador o pulsador, etc.
El módulo de reloj es el encargado de generar las diferentes señales de reloj a partir de un único oscilador principal. El tipo de oscilador es importante por varios aspectos: por la frecuencia necesaria, por la estabilidad necesaria y por el consumo de corriente requerido. El oscilador con mejores características en cuanto a estabilidad y coste son los basados en resonador de cristal de cuarzo, mientras que los que requieren menor consumo son los RC. Mediante sistemas PLL se obtienen otras frecuencias con la misma estabilidad que el oscilador patrón.
El módulo de energía (coger) se encarga de generar las diferentes tensiones y corrientes necesarias para alimentar los diferentes circuitos del SE. Usualmente se trabaja con un rango de posibles tensiones de entrada que mediante conversores AC/DC o DC/DC se obtienen las diferentes tensiones necesarias para alimentar los diversos componentes activos del circuito.
Además de los conversores AC/DC y DC/DC, otros módulos típicos, filtros, circuitos integrados supervisores de alimentación, etc. El consumo de energía puede ser determinante en el desarrollo de algunos sistemas integrados que necesariamente se alimentan con baterías, con lo que el tiempo de uso del SE suele ser la duración de la carga de las baterías.
Suscribirse a:
Enviar comentarios (Atom)

No hay comentarios:
Publicar un comentario