Inicio Artículos Guía profesional de herramientas y técnicas de depuración para dispositivos IoT

Guía profesional de herramientas y técnicas de depuración para dispositivos IoT

El desarrollo de un sistema embebido, en el que el software y el hardware deben jugar bien juntos, se ha transformado en algo exageradamente complejo y desafiante, aun para lo que puede parecer los dispositivos más simples del Internet de las cosas (IoT). Tanto es de esta manera, que cuando algo va mal -como inevitablemente va a ocurrir- los tiempos de depuración no acostumbran a ser de unas pocas horas, sino pueden tardar semanas o bien meses. Estos retrasos agregan costos de desarrollo, impiden que un producto llegue al mercado a tiempo, retrasan los programas de fabricación y destrozan las cadenas de suministro y los planes de negocio.

La mejor forma de reducir el tiempo dedicado a la depuración y de sostener un proyecto en marcha es emplear una combinación de herramientas de depuración de hardware y de software libre de manera gratuita para conseguir información sobre el desempeño de un sistema y dónde se generan los inconvenientes. Por esta razón, tanto para los profesionales para los apasionados, contar con de las herramientas convenientes para el trabajo ayuda mucho a efectuarlo de forma veloz y adecuada.

En el presente artículo se examinan las herramientas de desarrollo y el software que pueden usarse para depurar y examinar el desempeño de un dispositivo IoT. Empleará una placa de desarrollo de STMicroelectronics como dispositivo IoT de ejemplo, y usará las herramientas y el software de SEGGER Microcontroller Systems para entender y depurar el sistema. Asimismo se discutirán múltiples consejos y trucos sobre de qué forma disminuir al mínimo el tiempo de depuración y dar un proyecto de IoT a tiempo.

El habitual dispositivo IoT a depurar

Los dispositivos IoT se han transformado en algo frecuente en prácticamente todos los campos, desde el hogar inteligente hasta el control de la supervisión industrial. Pese a la pluralidad de aplicaciones, hay múltiples componentes habituales que tendrá un dispositivo IoT. Entre ellos se incluyen:

Un microprocesador
Una radio para la conectividad
Sensores
Un desarrollador no quererá hacer virar su placa para explorar técnicas de depuración o bien para probar piezas de su código de aplicación. Es demasiado tiempo. En su sitio, es más prudente trabajar con una placa de desarrollo de bajo costo como la B-L4S5I-IOT01A Discovery Kit for IoT Node de STMicroelectronics. Tiene prácticamente todo cuanto se halla en un dispositivo propio de IoT (Figura 1).

herramientas para alumnos
Figura 1: El kit de descubrimiento de STMicroelectronics B-L4S5I-IOT01A para el nodo IoT incluye todos los componentes que suelen ser necesarios en un dispositivo IoT. (Fuente de la imagen: STMicroelectronics)

La placa incluye el STM32L4S5VIT6, un microcontrolador Arm® Cortex®-M4 que marcha a ciento veinte megahercios (MHz). Para esto cuenta con hasta dos megabytes (Mbytes) de flash y seiscientos cuarenta kilobytes (Kbytes) de RAM. Para los propósitos de este ejercicio, es esencial que la placa incluya Wi-Fi y una multitud de sensores que se pueden emplear para edificar de manera rápida un dispositivo de prueba de IoT.

Herramientas de hardware de depuración profesional

Prácticamente todas las placas de desarrollo vienen con una interfaz JTAG/SWD incorporada a fin de que los desarrolladores no deban salir a buscar su programador. En cambio, pueden trabajar con la placa de desarrollo solamente sacarla de la caja. Aunque esto es estupendo para la mercadotecnia, no lo es para la ingeniería real: los depuradores integrados acostumbran a ser versiones muy reducidas que tienen restricciones, como el número de puntos de interrupción libres y la velocidad de transmisión de la interfaz. Para los no iniciados, estas restricciones pueden no parecer un enorme inconveniente, mas tener puntos de interrupción ilimitados evita tener que activar y desactivar continuamente los puntos de interrupción, y se precisan velocidades de baudios veloces para el rastreo de aplicaciones (más sobre el rastreo en la sección de herramientas de software).

Hay múltiples herramientas libres que pueden administrar una experiencia de depuración profesional, mas las herramientas en sí son solo la mitad de la solución. Las herramientas han de estar apoyadas por un buen software. Un conjunto de herramientas que resalta tanto desde la perspectiva del hardware como del software es la serie J-Enlace de SEGGER. Esta serie cuenta con una versión de depurador para prácticamente cualquier clase de desarrollador, desde estudiantes y apasionados hasta profesionales obstinados.

Hay 2 modelos que la experiencia ha probado que son los más útiles para el desarrollador general: el J-Enlace Base y el J-Enlace Ultra+ (Figura dos). En lo que se refiere al factor de forma, las 2 unidades son idénticas, mas el J-Enlace Ultra+ ofrece al desarrollador una mayor velocidad de descarga a la RAM (tres Mbytes/s en frente de uno con cero Mbyte/s) y una mayor velocidad de la interfaz SWD (cien MHz en vez de treinta MHz). Las velocidades más veloces marcan la diferencia en el momento en que un desarrollador desea rastrear su aplicación para conseguir información sobre el desempeño, el comportamiento del RTOS y depurar su sistema.

herramientas alumnos
Figura 2: El SEGGER J-Link Ultra+ proporciona a los desarrolladores una experiencia de depuración mejorada a través de una interfaz de destino de 50 MHz. (Fuente de la imagen: SEGGER Microcontroller Systems)

Lo bueno del J-Link y de la placa de desarrollo B-L4S5I-IOT01A es que los dos pueden conectarse mediante un cable Tag-Connect TC2050-IC-NL y del clip de retención TC2050-CLIP-3PACK. Dejan conectar un depurador a la placa de desarrollo por medio de la «almohadilla de clavos» (Figura tres). Puede ser preciso amoldar el conector de veinte pines del J-Enlace al conector de diez pines del cable TC-dos mil cincuenta. Una alternativa que se puede emplear para ello es el adaptador de aguja de diez pines J-Enlace ochocientos seis.

Cuando el desarrollador tiene cerrada esta vía en el lado del hardware, puede usar las herramientas de software para examinar y depurar su aplicación.

caja de herramientas
Figura 3: En la placa de desarrollo B-L4S5I-IOT01A, el conjunto de cables Tag-Connect puede conectarse a través de una huella en la placa de PC (derecha). (Fuente de la imagen: STMicroelectronics)

Herramientas de software de depuración profesional

Hay bastantes herramientas de software que marchan bastante bien con las herramientas SEGGER J-Enlace, que sorprendentemente no son proporcionadas por SEGGER. Ahora, vamos a echar una ojeada a múltiples de estas herramientas gratis y vamos a ver de qué forma los desarrolladores pueden usar cada una de ellas para depurar su software.

El primero es J-Scope. J-Scope es una herramienta afín a un osciloscopio que muestra valores variables en el tiempo. Los desarrolladores pueden supervisar una sola variable o bien múltiples decenas de ellas. Tenga presente, no obstante, que conforme se controlan más variables, se pueden tomar menos muestras antes que el búfer de muestras se desborde y se pierdan los datos.

Las variables se eligen dando a J-Scope el fichero elf que sale del compilador. Esto da las localizaciones de memoria que se deben leer, y el desarrollador puede entonces establecer sus tasas de muestreo y monitorear de qué manera la(s) variable(s) cambia(n) con el tiempo. En la figura cuatro se puede ver un caso fácil de una traza de 3 variables.

herramientas de calidad
Figura 4: J-Scope puede utilizarse para monitorizar variables a través del J-Link mientras una aplicación se ejecuta en tiempo real. (Fuente de la imagen: SEGGER Microcontroller Systems)

El próximo es Ozono. Ozone es una interfaz de depuración y un analizador de desempeño. Los desarrolladores pueden cargar su fichero elf en la herramienta y efectuar la depuración a nivel de fuente. Pueden establecer puntos de interrupción y actualizar su código. Una característica singularmente útil para los desarrolladores es que asimismo pueden efectuar un seguimiento de las instrucciones (si su hardware lo acepta) y también identificar qué sentencias de código ensamblador y C se han ejecutado. Esto es singularmente útil para contrastar la cobertura de código de las pruebas de hardware en bucle (HiL).

herramientas de calidad
Figura 4: J-Scope puede utilizarse para monitorizar variables a través del J-Link mientras una aplicación se ejecuta en tiempo real. (Fuente de la imagen: SEGGER Microcontroller Systems)

Ozone asimismo puede asistir a los desarrolladores a examinar el desempeño de su sistema (Figura cinco) y visualizar las variables a lo largo del tiempo. Esto da capacidades como J-Scope mas de una forma más integrada. Aun puede emplearse para supervisar el consumo de energía y acompasar todos estos acontecimientos en un sitio.

herramientas digitales
Figura 5: Ozone puede utilizarse para rastrear variables a través del J-Link mientras una aplicación se ejecuta en tiempo real, además de la cobertura de código y la depuración consciente del RTOS. (Fuente de la imagen: SEGGER Microcontroller Systems)

Una tercera herramienta es SystemView. SystemView deja a los desarrolladores examinar el comportamiento en tiempo de ejecución de su sistema RTOS. La conmutación de labores se registra en un búfer de seguimiento y después se notifica a SystemView a través del depurador (Figura cinco). Ahora, SystemView muestra esta información de manera que el desarrollador pueda ver sus interruptores de contexto y medir el desempeño de su sistema. Asimismo es una forma estupenda de visualizar un sistema y hallar fallos y otros inconvenientes.

maquinas y herramientas
Figura 6: SystemView proporciona un enlace a un RTOS que permite a los desarrolladores medir el rendimiento de las tareas y visualizar lo que el RTOS está haciendo y cuándo lo está haciendo. (Fuente de la imagen: SEGGER Microcontroller Systems)

Consejos y trucos para depurar un sistema embebido

La depuración de un dispositivo IoT requiere que los desarrolladores dispongan de las herramientas convenientes tanto desde la perspectiva del hardware como del software. Las dos piezas han de estar en su sitio si los desarrolladores van a disminuir al mínimo el tiempo que pasan depurando. Para depurar de forma exitosa, hay múltiples «consejos y trucos» que los desarrolladores deben tomar en consideración, como por poner un ejemplo

Utilice un depurador profesional que maximice la velocidad de transmisión de la interfaz. La cantidad de datos útiles que se pueden conseguir de un sistema va a depender de la velocidad con la que se puedan percibir esos datos. Las velocidades más lentas dan sitio a una sesión de depuración más larga.
Configure el software de depuración al comienzo del ciclo de desarrollo. Los desarrolladores no deberían aguardar a tener un inconveniente para configurar sus herramientas de depuración.

Emplear herramientas de rastreo desde el principio del desarrollo. Esto dejará a los desarrolladores inspeccionar el desempeño de su sistema y entender de manera inmediata de qué forma le afectan los cambios de software.
Aproveche el rastreo de instrucciones o bien el muestreo de contadores de programa para entender la cobertura del código del sistema a lo largo de las pruebas. Los fallos van a existir en las ramas condicionales y en el código no probado.
Aproveche los protocolos de trasferencia veloz para conseguir datos fuera del chip, como las bibliotecas de trasferencia en tiempo real (RTT).
Los desarrolladores que prosigan estos «consejos y trucos» descubrirán que se ahorran mucho tiempo y desazones cuando procuran desarrollar un dispositivo IoT.

Conclusión

El software de los dispositivos IoT se ha vuelto complejo, mas eso no quiere decir que los desarrolladores profesionales o bien apasionados deban atascarse continuamente depurando sus sistemas. El empleo de herramientas y software de desarrollo profesional puede suministrar a los desarrolladores la información que precisan no solo para depurar un sistema, sino más bien para examinar y prosperar su desempeño. Al invertir en estas herramientas, los usuarios pueden reducir drásticamente el tiempo dedicado a la depuración y lograr que sus proyectos funcionen y salgan al mercado en un plazo razonable.

Artículo anteriorDigi-Key Electronics y Tomorrow Lab lanzan la nueva serie de videos “Potentially Genius”
Artículo siguienteRedes en vehículos ¿Ethernet, SERDES, o ambas? Bueno, es complicado