Miércoles , enero 17 2018

Suscribete gratis a nuestro boletin semanal

VISIONA . DESARROLLADORES . CONECTADOS .

Suscribete nuestro boletin semanal

PATROCINADORES
.
Home / Diseño Digital / Qué técnica es la mejor para depurar MCUs Cortex M

Qué técnica es la mejor para depurar MCUs Cortex M

Los sistemas basados en una de las arquitecturas más populares del mercado tienen sus bemoles al momento de depurarlos. Aquí algunas técnicas practicadas por los ingenieros de pruebas.

(ElectronicosOnline.com Magazine / Oswaldo Barajas)

Considerada una de las arquitecturas electrónicas más ampliamente utilizadas en la industria para la fabricación de dispositivos, la tecnología Cortex M de ARM Holdings ha logrado posicionarse en los cuernos de la luna gracias a la gran diversidad de sectores industriales donde se implementa y por el potencial que tiene de convertirse en los cimientos para las futuras aplicaciones de bajo costo.

En términos generales, hablar de esta arquitectura requiere de un exhaustivo análisis para abordar todas las áreas que involucran su estructura, no obstante, y como lo aconseja nuestra línea editorial, analizaremos algunas de las técnicas de depuración que son aplicadas en el ciclo de desarrollo de sistemas embebidos utilizando ARM Cortex M.

Debido a la popularidad de este entorno, la cadena de suministro ha robustecido en los últimos años sus diferentes soluciones, creando una diversidad de herramientas y técnicas a elegir, pero en este documento abordaremos algunas opciones que han sido destacadas por especialistas de la industria como el ingeniero desarrollador Jacob Beningo.

El experto en sistemas embebidos hizo referencia a través de un artículo difundido en su sitio Web, que todas las técnicas de depuración actualmente implementadas por los equipos de ingeniería son admitidas y relativamente efectivas, ya que todas están dirigidas a cubrir ciertas necesidades del sistema como tal. En vista de esto, sugirió que las siguientes técnicas son de las más practicadas a nivel global por los ingenieros:

Técnica 1. Depuración por puntos de ruptura (Breakpoints).- Este método fue reconocido por Beningo como uno de los más implementados por los desarrolladores, aunque la calificó como poco efectiva en la práctica. El manejo de esta forma de depuración basada en puntos de ruptura está internamente ligada al monitoreo de los registros y los valores de las variables durante la ejecución del código.

"La depuración por ‘breakpoints’ es la técnica que veo como la más utilizada en comparación con cualquier otra. Esto resulta desalentador ya que la depuración por puntos de ruptura son ineficaces y generalmente producen resultados poco óptimos", mencionó Beningo.

El experto explicó que la razón por la cual la comunidad mantiene esta técnica como una de las más socorridas en la fase de validación y pruebas de sistemas embebidos, se debe principalmente a que es fácil de utilizar, su interpretación no es compleja, y los desarrolladores adoptan una postura optimismo ante la popularidad de esta técnica.

Pero la depuración por ‘Breakpoints’ tiene su lado obscuro. El ingeniero subrayó que el optimismo debe ser debidamente controlado por parte de los ingenieros al implementar este método, ya que también tiene el potencial de impactar el rendimiento de tiempo real de los sistemas, y de no aplicarse correctamente, puede absorber a los ingenieros hacia un "agujero negro" –como lo definió Beningo- donde se la pasarán buscando a ciegas dentro del mismo código.

Técnica 2. Graficación de Valores IDE .- La segunda técnica consiste en realizar una representación gráfica de los valores IDE registrados a nivel de memoria tales como variables. Posteriormente, el usuarios elije la ubicación de memoria y el valor refresca la tasa del sistema para proceder con la etapa de depuración.

El experto señaló que algunas IDEs ya integran recursos para monitorear los valores propios de la plataforma de desarrollo, aunque muchos ingenieros prefieren recurrir a un software externo para ejecutar esta tarea.

- PUBLICIDAD -
Newark element14
Todos los componentes electrónicos que siempre has querido.

Beningo explicó que el monitoreo de valores puede ser muy útil, pero esto es más eficaz si los datos que están siendo monitoreados se representan gráficamente. En este sentido, graficar los valores en tiempo real puede ser extremadamente provechoso para detectar cambios inesperados o verificar si una onda de forma en particular ha sido generada.

"Toma por ejemplo, un motor trifásico BLDC. Un desarrollador pudiera monitorear la corriente y el voltaje en cada pin del motor, los cuales requieren de ondas de forma muy específicas para ser generadas a fin de controlarlo. Trazar el voltaje y la corriente en cada pin o patilla puede permitir a un ingeniero visualizar lo que está ocurriendo en tiempo real", expuso el especialista.

La arquitectura ARM Cortex M es una de las populares de la industria electónica.

Técnica 3. Desvío de ‘printf’ a cable serial SWO.- Esta técnica está asociada principalmente a sistemas vinculados a las arquitecturas ARM Cortex M, M7, M9, M11, R4 y la serie A5, A8 y A9, ya que confiere elementos altamente útiles para tareas de depuración como el cable serial SWV y el SWO, que combinados permiten a los ingenieros acceder a una serie de recursos como la recuperación del contador del programa, al contador de eventos y al rastreo de datos, por mencionar algunos.

De acuerdo al ingeniero Jacob, muchos de los desarrolladores utilizan la función printf como parte de las maniobras de depuración en sistemas embebidos. En lugar de utilizar los pines seriales del microcontrolador, los ingenieros pueden utilizar SWO para desviar hacia el depurador la información que retorna el sistema tras ejecutar la función printf.

Aplicar el depurador en este modo con SWO se evita la necesidad de recurrir a una interface serial dedicada para el sistema, lo que suele ser beneficioso si se trabajan con UART o dispositivos USB porque se ahorra bastante tiempo y se consigue un buen nivel de eficiencia.

Lo anterior sucede debido a que la sobrecarga que originalmente se habría generado con otro medio de desahogo de datos ahora se descarga sobre el SWO y el hardware de depuración, y esto tiende a conservar importantes ciclos de reloj.

Rastreo de eventos RTOS.- Cuando se trabaja con sistemas operativos de tiempo real (RTOS) el analizar el comportamiento del sistema puede significar un verdadero reto, ya que cualquier perturbación puede interferir en el rendimiento de las pruebas, algo que no es deseado principalmente en las etapas críticas de verificación. Con todo, es indispensable visualizar qué sucede a nivel de código.

Colocar LEDs adicionales en una placa externa ha sido una de las soluciones para generar una interface visible del sistema, sin embargo, esto también puede resultar contraproducente ya que se vincula otra unidad al sistema en prueba, creando una carga que puede ser insignificante a criterio de los ingenieros pero que a nivel de código consume recursos del sistema.

El ingeniero Beningo destacó que actualmente diversas herramientas de depuración tanto gratuitas como comerciales que poseen módulos complementarios para ayudar a visualizar en tiempo real lo que sucede detrás de las pruebas de RTOS, pueden ayudar a robustecer los trabajos de los equipos de pruebas.

Algunos de estos instrumentos son: TraceX, SystemView y Tracelyzer, con los cuales se puede vigilar que el RTOS no se salga de la actividad que realiza, es decir, es ideal cuando se desea analizar si un proceso está activo o inactivo, cuando el sistema inicia o finaliza una tarea.

Estas son algunas de las técnicas que hoy por hoy son mayormente utilizadas en el desarrollo de sistemas embebidos, principalmente para tareas de depuración, aunque por supuesto, cada ingeniero puede contar sus propios esquemas que al igual resultan satisfactorios.

- PUBLICIDAD -
Newark element14
Todos los componentes electrónicos que siempre has querido.

Revisa también ...

Semáforo en rojo: ¿Cómo detectar ‘Bugs’ en vehículos autónomos?

Los coches que se manejan solos ya se observan circulando en muchas ciudades a nivel mundial, pero cualquier error aun no detectado podría poner en peligro la vida de los tripulantes. ¿Qué esfuerzos están haciendo las compañías para prevenir los riesgos?