Linux / Mac AVR Programming Suite?

11

Saya telah mengkode dan menggunakan Arduino untuk beberapa waktu sekarang. Namun saya siap naik menggunakan chip AVR langsung tanpa arduino bootloader. Pertanyaan saya adalah apa sumber daya untuk melakukan ini?

Saya ingin menggunakan linux / mac sehingga winavr keluar dari gambar seperti avrstudio. Jika tidak ada yang namanya setelah saya akan puas dengan mesin virtual windows. Tapi sampai saya tahu pasti. Yang saya inginkan adalah beberapa tipe IDE yang menggunakan avr-gcc.

Sebagai bonus untuk pertanyaan ini, adakah yang punya sumber daya bagus untuk belajar C for avr? Secara khusus cara mengkonfigurasi Makefiles dll untuk berbagai chip yang berbeda?

ril3y
sumber

Jawaban:

7

Saya setuju dengan zklapow tetapi periksa bagian proyek pada AVR Freaks juga. Begitulah cara saya belajar kembali pada hari sebelum arduinos. Juga, Anda hampir pasti harus membaca lembar data untuk chip Anda untuk menyelesaikan sesuatu yang bermanfaat. Tidak ada fungsi bagus yang, misalnya, membaca pin analog karena ada begitu banyak parameter yang disembunyikan oleh lingkungan arduino dari Anda. Biarkan saya memberi Anda sebuah contoh:

 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
 }

kira-kira mirip dengan C berikut (tidak diuji):

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
    }
}

Tentu, ada fungsi penundaan di beberapa perpustakaan dan mungkin ada fungsi keluaran di yang lain, tetapi biasakan menulis kode seperti ini. Satu-satunya cara Anda dapat mengetahui apa arti semua hal PORTB dan DDRB ini adalah dengan membaca lembar data. Saya minta maaf untuk membicarakan tentang hal ini tetapi tidak cukup banyak orang menyadari bahwa datasheet adalah tambang emas untuk informasi.

Jeremy
sumber
Saya akan melakukan satu koreksi pada kode Anda, ketika Anda mengatur DDRB Anda harus menggunakan DDRB | = (1 << 6) agar tidak mempengaruhi bit lainnya.
zklapow
Juga ada fungsi delay_ms () yang tersedia. Tetapi secara umum, dalam program yang lebih kompleks, Anda biasanya tidak ingin menjadi pengodean yang sulit ditunda ke dalam aplikasi Anda.
davr
7

Anda juga harus memeriksa Eclipse untuk C / C ++ dan plugin AVR-Eclipse. Bekerja dengan sempurna bagi saya, terutama dengan crosspack. Saya menggunakannya selama sekitar satu tahun sekarang dan saya sangat menyukainya.

Materi Interaktif
sumber
Dapatkan plugin avr-eclipse, itu terintegrasi dengan baik dengan avrdude dan avr-gcc sehingga Anda berakhir dengan IDE yang bagus di atas kompiler yang bagus dan gratis.
dren.dk
pengaturan mikrokontroler Eclipse akan menjadi gerbang yang baik untuk menggunakan mikrokontroler ARM juga. Alternatif yang jauh lebih baik daripada hanya mendapatkan AVR IDE.
lyncas
4

Saya menggunakan CrossPack ObDev juga. Ini adalah kumpulan besar dari semua alat yang diperlukan untuk menulis kode AVR-GCC C. Mereka alat yang sama hadir dalam instalasi Arduino standar, jadi kadang-kadang saya menggunakan nyali sistem build Arduino untuk menulis kode AVR-GCC biasa.

Biasanya ketika saya menulis kode C, "IDE" yang saya gunakan adalah editor teks, perintah baris perintah, dan Makefiles. Saya hanya lebih efisien dengan cara itu. Saya punya satu jendela yang terbuka itu editor teks (emacs), jendela lain yang kompilasi, dan yang ketiga atau keempat yang melakukan monitor serial atau serupa. Tetapi semua itu dapat dilakukan dalam satu jendela baris perintah, dalam hal ini perintahnya terlihat seperti:

% emacs foo.c [edit file]
% make [kompilasi kode]
% make flash [unggah ke chip]
% screen /dev/tty.usbserial 9600 [berbicara dengan chip]
... dan kemudian ulangi sesuai kebutuhan ...

Juga, Anda mungkin ingin memeriksa SmileyMicros.com . Dia menulis sebuah buku yang sangat bagus tentang pemrograman AVR GCC intro yang didasarkan pada papan Kupu-kupu AVR, sebelum Arduino, dan sejak itu memperbarui contohnya untuk menggabungkan Arduino. Ini perbandingan yang bagus untuk melihat bagaimana pemrograman AVR C dilakukan pada chip yang lebih kompleks daripada yang ada di Arduino.

todbot
sumber
3

Jika Anda menginstal crosspack, Anda dapat menggunakan Xcode Apple untuk mac, yang merupakan IDE yang bagus. Jika Anda ingin belajar c untuk AVR, periksa forum tutorial di AVR Freaks . Juga untuk linux lihat pertanyaan ini .

zklapow
sumber
3

Karena Anda telah menggunakan Arduino, semua yang Anda butuhkan sudah terpasang. Saya mengkompilasi sketsa Arduino dari baris perintah menggunakan Makefile. Saya juga mengkompilasi kode tanpa bootloader Arduino.

Makefile yang saya gunakan untuk mengkompilasi bootloader Arduino untuk papan saya ada di http://wiblocks.luciani.org/docs/app-notes/bootloader.html Anda bisa memodifikasinya untuk mengkompilasi program Anda daripada file ATmegaBOOT_xx8.c.

Makefile saya dimodifikasi dari file yang saya temukan di situs ini - http://mjo.tc/atelier/2009/02/arduino-cli.html

Saat menjawab pertanyaan yang sama (baru kemarin;) di twitter saya menemukan makefile di dorbotpdx. Lihat http://dorkbotpdx.org/blog/ax/arduino_0017_makefile

Ada juga skrip shell yang didokumentasikan dengan baik di http://arkku.com/misc/arduino_make.sh

Saya mungkin akan menggunakan Makefile daripada skrip shell. Orang yang melakukan skrip ini telah melakukan pekerjaan yang luar biasa untuk mengomentari alurnya. Ini bekerja hanya untuk memahami aliran.

jluciani
sumber
Saya tidak dapat membuat arduino_make.sh berfungsi dengan OSX 10.6 karena 'awk -v' tidak berfungsi seperti yang diharapkan pada OSX dan dia menggunakannya di mana-mana.
teras
Pertanyaannya bukan tentang Arduino, tetapi tentang penggunaan avr-gcc dan avrdude di Linux
dren.dk
2

Saya menemukan IDE CodeLite (www.codelite.org) bagus dan berfitur lengkap; namun, untuk memprogram AVR microchip, Anda perlu membuat Makefile Anda sendiri.

Anda dapat mencoba BeRTOS Wizard , yang akan membuat proyek BeRTOS dan Makefile terkait, yang kemudian dapat Anda gunakan dengan CodeLite. Untuk mem-flash target Anda, cukup gunakan "buat flash" dan Anda selesai. Kami bekerja di Linux setiap hari, jika Anda memiliki pertanyaan lebih lanjut, silakan posting mereka di milis. Penafian: Saya seorang pengembang BeRTOS.

Salam, Luca

Luca Ottaviano
sumber
Selain penafian, CodeLite adalah alat yang hebat. Anda tidak harus menggunakan 'make flash' jika Anda mengkonfigurasi CodeLite agar berfungsi dengan sistem build Anda. Kode :: Blok memiliki potensi yang serupa.
Kevin Vermeer
2

Jika Anda telah menginstal Macports, Anda cukup menjalankan:

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

dan Anda harus siap untuk pergi.

trondd
sumber
2

Jika Anda meminta sistem paket Anda untuk menginstal avr-libc, itu akan memberi Anda semua yang Anda butuhkan. Saya menggunakan emacs sebagai IDE saya, cos, well, lihat nama pengguna.

Jika Anda menginginkan makefile template, lihat salah satu proyek saya di github, mis. Https://github.com/unixbigot/pir-lite

Dalam repo itu avr-tmpl.mk adalah perpustakaan makefile yang tidak tersedia (tidak ditulis oleh saya). Anda memasukkannya dari makefile utama Anda dan Anda hanya perlu menentukan chip mana yang Anda miliki, kecepatan jam, dan file Anda. Saya memiliki satu salinannya dan memasukkannya dari semua makefile proyek saya.

"make program" akan memanggil avrdude untuk mengunduh kode. Makefile juga mencetak ukuran kode di akhir, sehingga Anda tahu berapa banyak ruang yang tersisa.

Christopher Biggs
sumber
0

Saya memprogram 'Duemanilove' lama saya sebagai ISP dengan bantuan artikel ini: http://arduino.cc/en/Tutorial/ArduinoISP Bekerja dengan baik dengan ATtiny: http://hlt.media.mit.edu/? p = 1229

Ingat, ketika menggunakan Arduino IDE 0022, Anda perlu memutakhirkan sketsa ArduinoISP ke versi yang lebih baru, karena pencegahan spam saya memindahkan tautan itu ke komentar di bawah.

Saya melakukan pemrograman dalam editor teks (vi) dan dikompilasi menggunakan avr-gcc seperti yang dijelaskan dalam artikel mit.edu yang saya tautkan.

jippie
sumber
pencegahan spam membuat saya menyebutkan tautan ke ArduinoISP baru-baru ini dari komentar:: code.google.com/p/mega-isp/downloads/…
jippie
0

Hei kawan kamu masih bisa menggunakan avrstudio di ubuntu. Berpikir bagaimana Anda bisa melakukan itu .....

Jawaban hanya menginstal aplikasi anggur dan menjalankan perangkat lunak windows dengan anggur.

Avr studio, proteus ... bahkan game windows dapat dijalankan di ubuntu dengan anggur.

Anda bahkan tidak perlu repot dengan makefiles blah bla. (Cukup instal dengan anggur dan mulai).

Ada banyak situs untuk memulai dengan AVU MCU seperti extremeelectronics, tutorial AVR dll. Hanya berikan pencarian google.

Saya akan memberi tahu secara rinci cara menginstal avrstudio 4 dalam anggur karena avrstudio 5 dan 6 tidak bekerja dengannya, tetapi Anda dapat menggunakan kotak virtual di linux untuk menjalankan bahkan avr stud 5 dan 6 dengan windows di kotak virtual.

  1. Buka pusat perangkat lunak Ubuntu dan ketik anggur dalam pencarian dan kemudian instal.

  2. Kemudian dapatkan pengaturan untuk avrstudio4 dan Anda juga perlu menginstal win avr

    coba tautan ini untuk

Sebuah. avr studio 4 http://mycomsats.com/blogs/download-atmel-avr-studio-4-free/

b. win avr http://sourceforge.net/projects/winavr/files/WinAVR/20100110/WinAVR-20100110-install.exe/download?use_mirror=kaz&r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fwinavr%2files% 2F & use_mirror = kaz

3. Buka folder tempat pengaturan untuk AS (avr studio 4) lalu klik kanan dan kemudian buka dengan "windows wine program loader" atau "a wine application".

4.Lalu Anda perlu mengklik tombol berikutnya seperti yang Anda lakukan di windows.

5. Lalu instal win win sama dengan anggur (masuk ke win win setup ....).

6. Unduh indikator menu klasik dari pusat perangkat lunak ubuntu. Anda akan mengetahuinya hanya dalam lima menit.

7.Dari menu klasik -> anggur -> Program -> alat avr

langkah keenam adalah langkah tambahan sehingga Anda tidak perlu mengacaukan di mana opsi yang dapat dieksekusi avrstudio4 ada di folder anggur.

Jasser
sumber
Jawaban ini akan lebih bermanfaat jika berisi detail / tautan bagaimana menjalankannya di bawah Wine. Atmel Studio terbaru didasarkan pada Microsoft Visual Studio yang saya percaya tidak berfungsi dengan baik di bawah Wine, tapi saya bisa saja salah.
PeterJ
Saya telah mengedit jawaban @PeterJ
Jasser