Código AVR sobre OSX El Capitan

Atmel AVR

Actualmente es posible generar aplicaciones desarrolladas sobre Xcode, que es una herramienta de desarrollo en Objetive-C para Microcontroladores AVR en varias familias de microcontroladores, lo que permite disponer de un ambiente profesional de desarrollo sobre esta plataforma Unix.

Xcode usa por debajo el compilador avr-gcc y las bibliotecas avr, necesarias para generar binarios para esas plataformas, ahora veremos como implementar y preparar el camino para desarrollar una simple aplicación para una arquitectura determinada.

Lo primero que debemos realizar en nuestro Mac, es cargar del AppStore la aplicación de desarrollo Xcode en su última versión, para ello simplemente vamos a la AppStore y al instalamos, ahora es gratuita y en el momento de escribir esta guía se encuentra en la versión 7.2.1, la cual es la versión más reciente.

Motivación

En internet hay literalmente cientos de artículos que muestran una configuración muy básica para utilizar Xcode para generar programas C para AVR, que es un proyecto en C con un Makefile externo.

El problema es que con una configuración tan básica, también podría utilizarse el editor de textos favorito, con el Makefile, en vez de utilizar el Xcode, el problema que usted no consigue mucho con esto, a lo sumo un coloreado de la sintaxis del lenguaje pero no tiene las ventajas del autocompletado que le ayuda en su desarrollo.

Para resolver esto, la plantilla de proyecto X-AVR prepara una configuración de proyecto genérico que habilita a clang que le permite a Xcode para analizar e indexar el código de su proyecto. X-AVR también configura las siguientes variables:

  • HEADER_SEARCH_PATHS: Para que Xcode pueda indexar los encabezados e incluir las definiciones de las bibliotecas avr-libc de los puertos, registros, nombres, funciones, etc.. en las sugerencias del autocompletado.
  • GCC_PREPROCESSOR_DEFINITIONS: La macro MCU seleccionada se establece (por ejemplo AVR_ATmega328) para obtener un función de autocompletar precisa sobre los nombres de puerto y registros. La macro F_CPU, también se define (de lo contrario la indexación sería encontrar errores).

Además X-AVR a diferencia de muchas otras plantillas y Makefiles, toma todos los archivos .c y .h de su proyecto.

CrossPack AVR

Para desarrollar aplicaciones sobre OSX y utilizar las herramientas nativas para el desarrollo, debemos instalar una herramienta que se llama, CrossPack-AVR, la versión al momento de este artículo es del 16-Dic-2013, que puede parecer un poco antigua, pero funciona perfectamente sobre Yosemite y sobre El Capitan.

Bajamos la versión más reciente e instalamos con las herramientas normales de OSX, esto realizará la instalación del software y herramientas de compilación en los lugares predeterminados por el Sistema Operativo.

/usr/local/CrossPack-AVR/

Este directorio es el lugar en donde se depositan todas las herramientas de software que el sistema tiene, dejando dentro por ejemplo las bibliotecas, el compilador, linkeador, assembler, es decir en general todo lo necesario para generar binarios para estos núcleos de los procesadores AVR.

El compilador por su parte AVR-GCC, se le definen en su compilación una amplia gamma de procesadores de Atmel, que van desde microcontroladores de arquitectura RISC de 8 bits, muy pequeños, sólo de 8 pines, hasta procesadores de bastante potentes como los de arquitectura ARM.

Sin embargo nos concentraremos en este artículo en procesadores de 8 bits que tienen una gran cantidad de periféricos integrados en el mismo chip, tal como PWM, ADC, I/O digitales, puertas Seriales, I2C, TWI entre otras posibilidades, características que hacen muy potentes a este tipo de dispositivos y sobre todo lo que es más importante, son de bajo costo.

Instalando X-AVR

El X-AVR es una plantilla de Xcode para generar proyectos para AVR usando avr-gcc, es decir el compilador de lenguaje C multiplataforma, que permite generar binarios para diferentes arquitecturas AVR.

Para instalar X-AVR, debe ejecutar en su terminal y en un directorio de trabajo que defina, el comando siguiente:

$ git clone https://github.com/jawher/xavr
$ cd xavr
$ python setup.py

X-AVR es un script de Python que utiliza avr-gcc y avrdude, los que deben estar instalados en el sistema, herramientas que fueron instaladas con el CrossPack (previamente instalado). Este script de Python carga una plantilla llamada TemplateInfo.plist, esta plantilla se puede utilizar para generar proyectos para avr-gcc con Xcode mediante un Makefile para escribir y realizar binarios para un Microcontrolador AVR.

Esta plantilla no genera programas para la plataforma Arduino de Java que es un seudo lenguaje C, esto genera programas para el compilador AVR-GCC.

Instalación y Uso de X-AVR

Para instalar este script debe bajar el .ZIP o clonar el repositorio GIT para obtener la última versión, dejarlo en algún lugar de su Mac, después debe ejecutar el python setup.py, para instalar la plantilla y el setup en Xcode. Esto se debe ejecutar una sola vez o cuando actualice el avr-gcc.

Una vez que se ha instalado el X-AVR, usted deberá visualizar en la entrada de Xcode, la opción para generar un nuevo proyecto x-avr.

El asistente en la generación del nuevo programa, le permite seleccionar el tipo de MCU de AVR que usará, la frecuencia del reloj F_CPU y el tipo de programador que será utilizado.

Después que estos datos están ingresados, debe presionar Cmd-B para realizar la construcción del proyecto, debe saber que la primera vez fallará pero eso es normal (se requiere ejecutar una vez para generar los mapas de dependencias). La reconstrucción por una segunda vez pasará sin problemas.

Esto creará los siguientes archivos:

  • All: Realiza una generación limpia y carga el archivo hex a la cpu de destino definido en el proyecto por el parámetro MCU.
  • Build: Realiza una generación limpia del código.
  • Upload: Carga el archivo hex a la MCU de destino.
  • Clean: Borra los archivos generados en la construcción.
  • index: Es un archivo generado para la autocompletación de Xcode y se usa para trabajar.

Prerrequisitos de Instalación

AVR-GCC Es necesario disponer de algunas instalaciones nuevas y que si analiza son casi obvias y son las siguiente:

  • avr-gcc: Este es el compilador y debe estar instalado y con la variable PATH adecuada.
  • avrdude: Este es la aplicación para grabar el código en la memoria flash (de programa) de los AVR y debe estar instalado y con la variable PATH adecuada.

Estos prerrequisitos se satisfacen con la instalación del CrossPack-AVR, el cual deja todas estas herramientas y compiladores instalados en su OSX.

Otra opción de instalación es usar homebrew:

brew install avrdude
brew tap larsimmisch/avr
brew install avr-libc

Instalando el Script

Ahora procederemos a instalar el script que permite agregar el template de proyectos a Xcode y usar la plataforma completa de avr-gcc.

Bajando el Script

En un terminal de su OSX, deje ejecutar en su home (debe tener la cuenta de administrador y con permisos de administrador.

git clone https://github.com/jawher/xavr.git

Ejecutando el Script

una vez descargado debe ejecutar el comando:

$ cd xavr
$ python setup.py

Con esto tenemos instalado el seteo de Xcode y la plantilla para la generación de proyectos con esta herramienta de desarrollo.


Referencias:

informatica/unix_osx/avr/instalacion.txt · Última modificación: 2020/03/23 22:24 por 127.0.0.1
Recent changes RSS feed Creative Commons License Donate Minima Template by Wikidesign Driven by DokuWiki