Desarrolla en Zephyr con un entorno sencillo - Lauren Murphy, Intel
Tabla de contenido
- Introducción
- Configuración del entorno de desarrollo
- Variables de entorno de Linux
- Script de configuración de Zephyr
- Ambiente de Python
- Extensiones de Visual Studio Code
- Device Tree
- C/C++ IntelliSense
- Git Lens
- Python y Pylance
- Editor hexadecimal
- Temas y iconos
- Depuración con Visual Studio Code
- Uso de gdb
- Depuración visual
- Limitaciones en la depuración de hardware
- Pruebas y ejecución de CI
- Uso de Twister para pruebas
- Ejecución de controles de calidad
- Configuración de CI local
- Conclusiones
- Recursos y enlaces útiles
Desarrollo en un entorno de desarrollo para principiantes y recién llegados
¡Hola! Bienvenido a la conferencia sobre el entorno de desarrollo de Zephyr. En esta charla, vamos a explorar cómo configurar un entorno de desarrollo utilizando un entorno Linux y Visual Studio Code. No se necesita tener amplios conocimientos sobre Zephyr, simplemente necesitas entender Linux y un poco sobre Visual Studio Code.
Introducción
Antes de comenzar, quiero hacer una pequeña introducción. Mi nombre es Lauren y soy ingeniera de software en Intel. Durante el verano pasado, formé parte del equipo de desarrollo de Zephyr y he estado trabajando en el desarrollo de aplicaciones y en temas relacionados con el audio. Así que si tienes preguntas sobre esos temas, no dudes en preguntarme.
Configuración del entorno de desarrollo
Variables de entorno de Linux
Antes de comenzar con Zephyr, es importante asegurarse de tener correctamente configuradas las variables de entorno de Linux. Hay tres variables clave que debes configurar: ZEPHYR_BASE
, ZEPHYR_TOOLCHAIN_VARIANT
y ZEPHYR_SDK_INSTALL_DIR
. Estas variables apuntan a las rutas necesarias para compilar y ejecutar Zephyr en tu sistema. Si tienes algún problema con estas variables, te recomendaría que revises la documentación oficial de Zephyr o consultes los foros y grupos de usuarios en Discord.
Script de configuración de Zephyr
Un script útil para facilitar la configuración del entorno de desarrollo es el script de configuración de Zephyr. Este script te permite personalizar la configuración de Zephyr para adaptarla a tus necesidades. Puedes configurar valores como el modelo de placa, la cadena de herramientas y otras variables específicas. Además, te recomendaría que utilices la finalización de comandos, ya que te ayudará a trabajar de manera más eficiente.
Ambiente de Python
Es importante tener una versión de Python 3.6 o superior instalada en tu sistema. Recomiendo utilizar un entorno virtual para instalar las dependencias de Zephyr y evitar conflictos con otras versiones de Python instaladas en tu sistema. Esto se logra utilizando la opción --user
al instalar paquetes y creando un entorno virtual en la carpeta de tu proyecto.
Extensiones de Visual Studio Code
A continuación, te mostraré algunas extensiones útiles de Visual Studio Code que pueden mejorar tu flujo de trabajo de desarrollo con Zephyr.
Device Tree
La extensión Device Tree proporciona sugerencias automáticas y autocompletado para la edición de archivos de árbol de dispositivos. Esto es especialmente útil si trabajas con placas específicas y necesitas ajustar la configuración del hardware. También puedes consultar la documentación directamente desde la extensión y ver la definición de algunos elementos.
C/C++ IntelliSense
La extensión C/C++ IntelliSense es esencial para trabajar con código C y C++. Proporciona resaltado de sintaxis, sugerencias automáticas y autocompletado para funciones, variables y macros. También puedes depurar directamente desde Visual Studio Code utilizando el depurador GDB.
Git Lens
Si eres un colaborador de Zephyr y trabajas con Git, la extensión Git Lens es increíblemente útil. Proporciona información adicional en línea sobre quién modificó cada línea de código y cuándo se realizó la última modificación. También puedes ver fácilmente los cambios entre confirmaciones y acceder a otras funciones de Git directamente desde Visual Studio Code.
Python y Pylance
Si utilizas Python en tus proyectos de Zephyr, te recomendaría instalar las extensiones de Python y Pylance. Estas extensiones proporcionan herramientas para la depuración, resaltado de sintaxis y autocompletado de código. Si necesitas depurar scripts de compilación u otros scripts personalizados, estas extensiones te serán muy útiles.
Editor hexadecimal
A veces puede ser necesario inspeccionar archivos binarios o datos en formato hexadecimal. La extensión de editor hexadecimal de Visual Studio Code te permite abrir archivos en formato hexadecimal y visualizar su contenido de una manera fácil de entender. Esta extensión puede ser especialmente útil cuando estás trabajando con archivos binarios relacionados con el firmware de Zephyr.
Temas y iconos
Por último, pero no menos importante, personalizar el aspecto de tu entorno de desarrollo puede ser útil para mantener la motivación durante largas horas de trabajo. Existen diferentes temas y conjuntos de iconos disponibles para Visual Studio Code que puedes utilizar para personalizar la apariencia de tu editor. Algunos temas populares incluyen One Dark Pro y Material Theme, y puedes combinarlos con conjuntos de iconos como VS Code Icons.
Depuración con Visual Studio Code
Una de las características más poderosas de Visual Studio Code es su capacidad para depurar código en tiempo real. Esto puede ser extremadamente útil cuando estás trabajando en proyectos de Zephyr y necesitas identificar y resolver problemas de manera eficiente.
Uso de gdb
GDB es una herramienta de depuración muy poderosa que se puede integrar con Visual Studio Code para proporcionar un entorno de depuración completo. Puedes establecer puntos de interrupción, inspeccionar variables, seguir el flujo del programa y muchas otras funciones útiles.
Depuración visual
Visual Studio Code también proporciona una interfaz gráfica para la depuración, lo que facilita la identificación de problemas y la comprensión del flujo del programa. Puedes inspeccionar variables, ver la llamada de función actual y seguir el flujo del programa paso a paso.
Limitaciones en la depuración de hardware
Es importante tener en cuenta que la depuración de hardware puede presentar algunas limitaciones en Visual Studio Code. Por ejemplo, si estás depurando directamente en una placa de desarrollo, es posible que no puedas establecer puntos de interrupción o que la depuración en tiempo real no sea posible. Esto se debe a restricciones técnicas relacionadas con la comunicación entre el hardware y el entorno de desarrollo.
Pruebas y ejecución de CI
Antes de finalizar, me gustaría mencionar la importancia de las pruebas y la ejecución de CI (Integración Continua) en tus proyectos de Zephyr. Las pruebas son fundamentales para garantizar la calidad del software y la estabilidad del sistema. Zephyr proporciona una herramienta llamada Twister para realizar pruebas automatizadas y verificar el Correcto funcionamiento de tus aplicaciones.
Además, al contribuir al proyecto de Zephyr, es importante cumplir con los controles de calidad establecidos. Esto implica ejecutar verificaciones de estilo de código y revisar las guías de contribución. Asegúrate de seguir las recomendaciones de los mantenedores del proyecto y realizar las correcciones necesarias antes de enviar tu contribución.
En cuanto a la ejecución de CI, puede haber ocasiones en las que encuentres diferencias en el resultado de tus pruebas locales y las ejecutadas en el entorno de CI. Esto puede deberse a diferencias en el entorno de ejecución, como las versiones de las dependencias o las configuraciones específicas utilizadas en CI. Para asegurarte de que tus pruebas se ejecuten correctamente en el entorno de CI, te recomendaría revisar los flujos de trabajo de CI proporcionados y realizar pruebas locales utilizando la misma configuración.
Conclusiones
En esta charla, hemos explorado diferentes aspectos del desarrollo en un entorno de Zephyr. Desde la configuración del entorno de desarrollo hasta la depuración de código y la ejecución de pruebas, hemos cubierto los elementos clave para un desarrollo eficiente y de Alta calidad.
Recuerda que Zephyr es un proyecto en constante evolución y siempre hay nuevas características y mejoras en desarrollo. Te animo a que sigas investigando y aprendiendo más sobre Zephyr para aprovechar al máximo esta plataforma de desarrollo.
Recursos y enlaces útiles