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.