Linux / Mac AVR Programming Suite?


11

Я кодирую и использую Arduinos уже довольно давно. Однако я готов перейти к использованию прямых чипов AVR без загрузчика Arduino. У меня вопрос, какие ресурсы для этого?

Я хочу использовать Linux / Mac, так что winavr вне изображения, как и avrstudio. Если нет такой вещи, как я, я согласен на виртуальную машину Windows. Но пока я точно не знаю. То, что я хочу, это какой-то тип IDE, который использует avr-gcc.

В качестве бонуса к этому вопросу есть ли у кого-нибудь хорошие ресурсы по изучению C для AVR? В частности, как настроить Makefiles и т. Д. Для различных чипов?

Ответы:


7

Я согласен с zklapow, но проверьте раздел проектов на AVR Freaks тоже. Вот как я узнал за день до Arduinos. Кроме того, вам почти наверняка придется прочитать таблицу данных для вашего чипа, чтобы сделать что-нибудь полезное. Нет хороших функций, которые, например, считывают аналоговый вывод, потому что есть так много параметров, которые окружение arduino скрывает от вас. Позвольте мне привести Вам пример:

 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
 }

примерно похож на следующий C (не тестировался):

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

Конечно, в некоторых библиотеках есть функции задержки, а в других могут быть функции вывода, но привыкните к написанию такого кода. Единственный способ узнать, что все это значит для PORTB и DDRB, - это прочитать таблицу данных. Прошу прощения, что не могу понять об этом, но мало кто понимает, что таблица данных является золотой жилой для информации.


Я бы сделал одно исправление в вашем коде: когда вы устанавливаете DDRB, вы должны использовать DDRB | = (1 << 6), чтобы не влиять на другие биты.
zklapow

Также доступна функция delay_ms (). Но в целом, в более сложных программах вы обычно не хотите сильно задерживать кодирование вашего приложения.
Давр

7

Вы также должны проверить Eclipse для C / C ++ и плагин AVR-Eclipse. У меня работает без нареканий, особенно с кросспаком. Я использую его около года, и мне действительно это нравится.


Получите плагин avr-eclipse, он прекрасно интегрируется с avrdude и avr-gcc, так что вы получите прекрасную IDE поверх хорошего бесплатного компилятора.
dren.dk

установка микроконтроллера Eclipse также станет хорошим шлюзом для использования микроконтроллеров ARM. Гораздо лучшая альтернатива, чем получение только AVR IDE.
lyncas

4

Я также использую ObDev CrossPack . Это отличный набор всех инструментов, необходимых для написания кода AVR-GCC. Это те же инструменты, что и в стандартной установке Arduino, поэтому иногда я использовал внутренности системы сборки Arduino для написания простого кода AVR-GCC.

Обычно, когда я пишу код на C, я использую «IDE» - это текстовый редактор, команды командной строки и файлы Makefile. Я просто более эффективен в этом смысле. У меня открыто одно окно - текстовый редактор (emacs), другое окно - компиляция, а третье или четвертое - последовательный монитор или аналогичный. Но все это можно сделать в одном окне командной строки, в этом случае команды выглядят примерно так:

% emacs foo.c [редактировать файл]
% make [код компиляции]
% make flash [загрузить на чип]
% screen /dev/tty.usbserial 9600 [поговорить с чипом]
... а затем повторите при необходимости ...

Кроме того, вы можете проверить SmileyMicros.com . Он написал действительно хорошую книгу о вводном AVR GCC программировании, основанном на плате AVR Butterfly, до Arduino, и с тех пор обновляет свои примеры для включения Arduino. Это хорошее сравнение, чтобы увидеть, как программирование AVR C выполняется на более сложной микросхеме, чем в Arduino.



3

Поскольку вы используете Arduino, все, что вам нужно, уже установлено. Я компилирую эскизы Arduino из командной строки, используя Makefile. Я также компилирую код без загрузчика Arduino.

Makefile, который я использую для компиляции загрузчика Arduino для моих плат, находится по адресу http://wiblocks.luciani.org/docs/app-notes/bootloader.html. Вы можете изменить его для компиляции своей программы, а не файла ATmegaBOOT_xx8.c.

Мой Makefile изменен из файла, который я нашел на этом сайте - http://mjo.tc/atelier/2009/02/arduino-cli.html

Отвечая на этот же вопрос (только вчера;) в твиттере, я наткнулся на make-файл на dorbotpdx. Смотрите http://dorkbotpdx.org/blog/ax/arduino_0017_makefile

На http://arkku.com/misc/arduino_make.sh также имеется хорошо документированный сценарий оболочки.

Я бы, вероятно, использовал Makefile, а не сценарий оболочки. Парень, который написал этот сценарий, отлично прокомментировал поток. Это просто работа, чтобы понять поток.


Я не смог заставить arduino_make.sh работать с OSX 10.6, потому что «awk -v» не работает должным образом в OSX, и он использует его везде.
терраса

Его вопрос был не об Arduino, а об использовании avr-gcc и avrdude в Linux
dren.dk

2

Я нашел IDE CodeLite (www.codelite.org) красивым и полнофункциональным; Тем не менее, для программирования микрочипов AVR вам нужно создать свой собственный Makefile.

Вы можете попробовать BeRTOS Wizard , который создаст проект BeRTOS и связанные Make-файлы, которые затем можно использовать с CodeLite. Чтобы прошить цель, просто используйте «make flash», и все готово. Мы работаем над Linux ежедневно, если у вас есть дополнительные вопросы, пожалуйста, разместите их в списке рассылки. Отказ от ответственности: я разработчик BeRTOS.

С наилучшими пожеланиями, Лука


Отказ от ответственности, CodeLite - отличный инструмент. Вам не нужно использовать 'make flash', если вы настраиваете CodeLite для работы с вашей системой сборки. Code :: Blocks имеет аналогичный потенциал.
Кевин Вермеер

2

Если у вас установлен Macports, вы можете просто запустить:

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

и ты должен быть готов к работе.


2

Если вы попросите систему пакетов установить avr-libc, это даст вам все, что вам нужно. Я использую emacs в качестве своей IDE, потому что, ну, смотрите имя пользователя.

Если вам нужен шаблонный make-файл, взгляните на один из моих проектов на github, например, https://github.com/unixbigot/pir-lite.

В этом репозитории avr-tmpl.mk является готовой библиотекой make-файлов (не написанной мной). Вы включаете его из своего основного make-файла, и вам нужно только определить, какой у вас чип, тактовую частоту и ваши файлы. У меня есть одна копия этого файла и я включаю его во все мои файлы проекта.

"make program" вызовет avrdude для загрузки кода. Makefile также печатает размер кода в конце, чтобы вы знали, сколько места у вас осталось.


0

Я запрограммировал свое «старое» Duemanilove как ISP с помощью этой статьи: http://arduino.cc/en/Tutorial/ArduinoISP. Он одинаково хорошо работает с ATtiny: http://hlt.media.mit.edu/? р = 1229

Напоминаем, что при использовании Arduino IDE 0022 вам необходимо обновить эскиз ArduinoISP до более новой версии из-за предотвращения спама, я переместил эту ссылку на комментарии ниже.

Я занимался программированием в текстовом редакторе (vi) и компилировал его с использованием avr-gcc, как описано в статье на mit.edu, которую я связал.


Предотвращение спама заставило меня упомянуть ссылку на недавний ArduinoISP в комментариях: code.google.com/p/mega-isp/downloads/…
jippie

0

Эй, чувак, ты все еще можешь использовать avrstudio в Ubuntu. Думая, как ты можешь это сделать .....

Ответ - просто установите приложение Wine и запустите эти программы для Windows вместе с Wine.

Avr studio, proteus ... даже игры windows можно запускать в убунту с вином.

Вам не нужно даже связываться с make-файлами, бла-бла (просто установите с вином и начните).

Есть много сайтов, с которых можно начать работу с avr MCU, таких как экстримэлектроника, учебные пособия по AVR и т. Д. Просто дайте поиск в Google.

Я подробно расскажу, как установить avrstudio 4 в Wine, так как avrstudio 5 и 6 не работают с ним, но вы можете использовать виртуальную коробку в linux для запуска даже avr stud 5 и 6 с окнами на виртуальной коробке.

  1. Откройте центр программного обеспечения Ubuntu, введите в поиске wine и установите его.

  2. Затем получите настройки для avrstudio4, а также вам нужно установить win avr

    попробуйте эти ссылки для

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

б. 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%2Ffiles% 2F & use_mirror = каз

3. Откройте папку, в которой находится установка для AS (avr studio 4), затем щелкните правой кнопкой мыши и откройте ее с помощью «загрузчика программ Windows Wine» или «приложения Wine».

4. Затем вам нужно нажать на следующие кнопки, как вы это сделали бы в Windows.

5. Затем снова установите win avr аналогично Wine (перейдите в настройку win avr ....).

6. Загрузите классический индикатор меню из центра приложений Ubuntu. Вы узнаете об этом всего за пять минут.

7. Из классического меню -> Wine -> Программы -> AVR Tools

Шестой шаг - это дополнительный шаг, так что вам не нужно возиться с тем, где находится опция исполняемого файла avrstudio4 в папке Wine.


Этот ответ был бы более полезным, если бы он содержал детали / ссылки о том, как запустить его под Wine. Последняя версия Atmel Studio основана на Microsoft Visual Studio, которая, на мой взгляд, не очень хорошо работает под Wine, но я могу ошибаться.
PeterJ

Я отредактировал ответ @PeterJ
Jasser
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.