¿Suite de programación AVR de Linux / Mac?

9

He estado codificando y usando Arduinos desde hace bastante tiempo. Sin embargo, estoy listo para pasar a usar chips AVR sin el cargador de arranque arduino. Mi pregunta es ¿cuáles son los recursos para hacer esto?

Quiero usar linux / mac para que winavr esté fuera de la imagen al igual que avrstudio. Si no hay algo como lo que estoy buscando, me conformaré con una máquina virtual de Windows. Pero hasta que yo sepa a ciencia cierta. Lo que quiero es algún tipo de IDE que use avr-gcc.

Como beneficio adicional a esta pregunta, ¿alguien tiene buenos recursos para aprender C para avr? Específicamente, ¿cómo configurar Makefiles, etc. para los diferentes chips?

    
pregunta ril3y

10 respuestas

7

Estoy de acuerdo con zklapow pero también reviso la sección de proyectos en AVR Freaks. Así es como aprendí atrás en el día anterior a los arduinos. Además, es casi seguro que tendrá que leer la hoja de datos de su chip para hacer cualquier cosa útil. No hay funciones agradables que, por ejemplo, lean un pin analógico porque hay tantos parámetros que el entorno arduino te oculta. Déjame darte un ejemplo:

 int ledPin =  13;    // LED connected to digital pin 13
 // The setup() method runs once, when the sketch starts
 void setup()   {                
   // initialize the digital pin as an output:
   pinMode(ledPin, OUTPUT);     
 }
 // the loop() method runs over and over again,
 // as long as the Arduino has power
 void loop()                     
 {
   digitalWrite(ledPin, HIGH);   // set the LED on
   delay(1000);                  // wait for a second
   digitalWrite(ledPin, LOW);    // set the LED off
   delay(1000);                  // wait for a second
 }

es aproximadamente similar a la siguiente C (no probada):

int main(void) {
    // I just randomly picked pin 6 on PORTB, this may not be the same on an arduino
    DDRB = (1<<6); // set pin to output in data direction register
    int i; // have to do this outside the for loop because of C standard

    while(1) {
        PORTB |= (1<<6); // send pin 6 high and leave other pins in their current state
        for (i=0; i<10000; i++); // delay

        PORTB &= ~(1<<6); // send pin 6 low
        for (i=0; i<10000; i++); // delay
    }
}

Claro, hay funciones de retardo en algunas bibliotecas y puede haber funciones de salida en otras, pero acostúmbrate a escribir código como este. La única forma en que puedes saber lo que significa todo esto de PORTB y DDRB es leer la hoja de datos. Lamento seguir hablando sobre esto, pero no hay suficientes personas que se den cuenta de que la hoja de datos es una mina de oro para obtener información.

    
respondido por el penjuin
7

También debe consultar Eclipse para C / C ++ y el < a href="http://avr-eclipse.sourceforge.net/wiki/index.php/The%5FAVR%5FEclipse%5FPlugin"> AVR-Eclipse plugin. Funciona perfectamente para mí, especialmente con crosspack. Lo uso desde hace aproximadamente un año y me gusta mucho.

    
respondido por el Interactive Matter
4

También uso CrossPack de ObDev . Es un gran paquete de todas las herramientas necesarias para escribir el código AVR-GCC C. Son las mismas herramientas presentes en una instalación estándar de Arduino, así que a veces he usado las agallas del sistema de compilación Arduino para escribir código AVR-GCC.

Normalmente, cuando escribo el código C, el "IDE" que uso es un editor de texto, comandos de línea de comandos y Makefiles. Solo soy más eficiente de esa manera. Tengo una ventana abierta que es el editor de texto (emacs), otra ventana que es compilación y una tercera o cuarta que está haciendo un monitor serie o similar. Pero todo lo que se puede hacer en una sola ventana de línea de comandos, en cuyo caso los comandos tienen un aspecto similar al siguiente:

% emacs foo.c [edit file]
% make        [compile code]
% make flash  [upload to chip]
% screen /dev/tty.usbserial 9600  [talk to chip]
... and then repeat as needed...

Además, es posible que desee consultar SmileyMicros.com . Escribió un muy buen libro sobre la programación de introducción de AVR GCC basado en el tablero AVR Butterfly, antes de Arduino, y desde entonces ha actualizado sus ejemplos para incorporar Arduino. Es una buena comparación para ver cómo se realiza la programación de AVR C en un chip más complejo que el de Arduino.

    
respondido por el todbot
3

Si instala crosspack puede usar Xcode de Apple para mac, que es un gran IDE. Si quieres aprender c para AVR, echa un vistazo a tutorial forum Monstruos . También en cuanto a Linux, consulte esta pregunta .

    
respondido por el zklapow
3

Desde que usas Arduino, todo lo que necesitas ya está instalado. Compilo los bocetos de Arduino desde la línea de comandos usando un Makefile. Yo tambien compilo código sin el gestor de arranque Arduino.

El Makefile que uso para compilar el gestor de arranque Arduino para mis tableros está en enlace Podría modificarlo para compilar su programa en lugar de Archivo ATmegaBOOT_xx8.c

Mi Makefile se modifica del archivo que encontré en este sitio, enlace

Mientras respondía esta misma pregunta (ayer mismo) en twitter, encontré un makefile. en dorbotpdx. Consulte enlace

También hay un script de shell bien documentado en enlace

Probablemente usaría un Makefile en lugar de un script de shell. El compañero que hizo este guión ha hecho un excelente Trabajo de comentar el flujo. Es una mirada de trabajo solo para entender el flujo.

    
respondido por el jluciani
2

Encontré CodeLite (www.codelite.org) IDE agradable y completo; aún así, para programar los microchips AVR necesitas crear tu propio Makefile.

Puede probar BeRTOS Wizard , que creará un proyecto BeRTOS y Makefiles relacionados, que luego puede usar con CodeLite. Para flashear su objetivo, simplemente use "make flash" y listo. Trabajamos en Linux a diario, si tiene más preguntas, por favor publíquelas en la lista de correo. Descargo de responsabilidad: soy un desarrollador de BeRTOS.

Saludos cordiales, Luca

    
respondido por el Luca Ottaviano
2

Si tiene Macports instalado, simplemente puede ejecutar:

$ sudo port install avr-binutils avr-gcc avr-libc avrdude 

y deberías estar listo para ir.

    
respondido por el trondd
2

Si le pide a su sistema de paquetes que instale avr-libc, eso le dará todo lo que necesita. Yo uso emacs como mi IDE, porque, bueno, ver nombre de usuario.

Si quieres un makefile de plantilla, echa un vistazo a uno de mis proyectos en github, por ejemplo enlace

En ese repo avr-tmpl.mk es una biblioteca de archivos make (no escrita) para mí (no escrita por mí). Lo incluye desde su archivo make principal y solo tiene que definir qué chip tiene, la velocidad del reloj y sus archivos. Tengo una copia del mismo y la incluyo en todos los archivos make de mi proyecto.

"make program" llamará a avrdude para descargar el código. El archivo makefile también imprime el tamaño del código al final, para que sepa cuánto espacio le queda.

    
respondido por el Christopher Biggs
0

Programé mi 'viejo' Duemanilove 'como ISP con la ayuda de este artículo: enlace Funciona igual de bien ATtiny's: enlace

Fíjate, cuando utilices Arduino IDE 0022, necesitas actualizar el croquis de ArduinoISP a una versión más reciente. Debido a la prevención de spam, moví ese enlace a los comentarios a continuación.

Realicé la programación en un editor de texto (vi) y compilé utilizando avr-gcc como se describe en el artículo mit.edu que vinculé.

    
respondido por el jippie
0

Hey tío, todavía puedes usar avrstudio en ubuntu. Pensando cómo puedes hacer eso .....

La respuesta es simplemente instalar la aplicación de vino y ejecutar esos softwares de windows con vino.

Avr studio, proteus ... incluso los juegos de windows se pueden ejecutar en ubuntu con wine.

No es necesario que juegues con los makefiles bla bla (solo instala con vino y comienza).

Hay muchos sitios para comenzar con avr MCU como extremeelectronics, tutoriales AVR, etc. Simplemente haga una búsqueda en Google.

Le diré en detalle cómo instalar avrstudio 4 en vino, ya que avrstudio 5 y 6 no funcionan con él, pero puede usar Virtual Box en Linux para ejecutar incluso AVR Stud 5 y 6 con Windows en Virtual Box.

  1. Abra el centro de software de Ubuntu y escriba wine en la búsqueda y luego instálelo.

  2. Luego, obtenga la configuración para avrstudio4 y también necesita instalar win avr

    prueba estos enlaces para

a. avr studio 4 enlace

b. win avr enlace

3.Abra la carpeta donde se encuentra la configuración de AS (avr studio 4) y luego haga clic derecho y luego ábrala con "Windows Wine Program Loader" o "una aplicación de Wine".

4. Luego debe hacer clic en los siguientes botones como lo haría en Windows.

5. Luego vuelva a instalar win avr de manera similar con wine (vaya a la configuración win avr ...).

6.Descargue el indicador de menú clásico del centro de software de ubuntu. Lo conocerás en solo cinco minutos.

7.Desde el menú clásico - > vino - > Programas - > herramientas avr

el sexto paso es un paso adicional para que no tenga que meterse con dónde está la opción ejecutable avrstudio4 en la carpeta de vinos.

    
respondido por el Jasser

Lea otras preguntas en las etiquetas