2013-10-24 5 views
0

Недавно я слышал о поддержке avr-gcc и avr-lib в Linux, которая может быть использована для разработки кода для микроконтроллера Atmel AVR (ATmega48/88/168, ATmega16/32). Я также понимаю, что Arduino также использует микроконтроллер Atmel AVR (я не уверен, какой).avr-gcc микроконтроллеры Atmel AVR на Linux/Windows Arduino IDE

Теперь различные производители разработали собственный продукт (используя Atmel AVR uc), где код должен быть разработан с использованием avr-gcc i.e. на платформе Linux. В том же смысле, что Windows IDE Arduino намного проще и легко кодируется.

Я смущен относительно того, какая платформа более перспективна - в чем преимущества обучения avr-gcc? Какая из них лучше использовать программу? Какое приложение мы можем разработать с помощью avr-gcc-компилятора?

ответ

2

Arduino был разработан таким образом, что вы можете использовать любую ОС, которую хотите написать свой код, это не повлияет на ваше окончательное приложение на Arduino. Linux, OS X, Windows, все равны относительно компиляции и загрузки с использованием Arduino IDE, поэтому вы можете выбрать тот, который вы предпочитаете. Например, я использую OS X и Linux ежедневно с одинаковыми результатами.

Это работает так, потому что инструменты, необходимые для компиляции кода и загрузки его на Arduino, присутствуют в приложении Arduino IDE. Вам не нужно устанавливать avr-gcc или что-то еще, кроме IDE. Это замечательно для новичков, потому что вы можете сразу закодировать свои приложения. Другая причина, по которой он работает настолько плавно, заключается в том, что Arduino uc сжигается с загрузчиком, который может принимать новый код из Arduino IDE через простой USB-кабель.

Если вы хотите запрограммировать свой собственный uc с помощью Arduino IDE, вам сначала нужно сжечь загрузчик, чтобы ваш чип работал как Arduino, но на самом деле это не Arduino. Вот это учебное пособие: http://arduino.cc/en/Tutorial/ArduinoISP

Перед использованием uc вам нужно проверить, доступен ли для этого uc загрузчик. Вы можете сделать это здесь: board.txt

Еще одна вещь, о которой следует помнить, заключается в том, что, когда ваш проект становится больше, использование Arduino IDE может быть болью в шее, и вы захотите использовать такие вещи, как Makefile и т. Д. ваш любимый редактор кода.

Итак, вкратце, операционная система не является важной частью сейчас. Но если вы создадите более сложные проекты с большим количеством инструментов, я поеду с Linux или OS X, потому что avr-gcc и co. действительно просты в использовании на этих пластинках (и более подробно описаны мной на мой взгляд).

EDIT:

Во-первых, я уточню некоторые понятия:

avr-gcc является компилятор. Это программное обеспечение, которое принимает ваш код и преобразует его во что-то полезное/исполняемое вашим микроконтроллером Arduino или любым чипом AVR. Он основан на gcc, известном компиляторе с открытым исходным кодом для C/C++. Поэтому, когда вы используете avr-gcc, вы используете только gcc с некоторыми конкретными реализациями.

Вы должны различать две вещи: разработку аппаратного обеспечения и разработку программного обеспечения. Аппаратное обеспечение в основном «делает ваш собственный Arduino с тем, что вам нужно». Программное обеспечение должно знать аппаратное обеспечение, которое должно быть написано, и делать то, что вам нужно. Это похоже на цыпленок или яичный парадокс, но на самом деле это не так: я бы сказал, что оборудование на первом месте.

Итак, если вы начинаете разработку аппаратного обеспечения, я бы посоветовал вам сначала купить Arduino, чтобы изучить концепции. Весь код Arduino является открытым исходным кодом, поэтому вы можете попытаться понять все.

Микросхемы AVR широко используются, поэтому, как только вы узнаете об этом, будет проще попробовать и использовать разные. И даже если вам нужно изменить другой бренд, основы будут одинаковыми, даже если вы не сможете использовать avr-gcc. Но, чтобы начать с чего-нибудь, иди за Ардуино! :)

Я написал документацию для своего проекта, где я объясняю все более подробно. Он предназначен для OS X и Linux, но он даст вам хорошее представление о том, что вам нужно сделать.

https://github.com/WeAreLeka/moti/blob/master/INSTALL.md

Надеется, что это помогает!

+0

Спасибо за подробный ответ. Можете ли вы также сообщить подробности моих сомнений - Если я изучу концепции программирования с использованием avr-gcc, то какой тип программы или какой тип приложения можно разработать? Я имею в виду, что avr-gcc используется только для программирования микроконтроллера Atmel AVR или я получаю пользу от обучения разработке приложений для других микроконтроллеров/устройств? Известен ли avr-gcc-компилятор с точки зрения развития в мире встроенных систем? Использование Arduino IDE Я понимаю, что могу программировать только Arduino? Могу ли я использовать его в программе любого другого целевого процессора AVR? – Prakash

+0

@Prakash эй! Мне жаль, что я взял почти год, чтобы ответить :(с помощью 'avr-gcc' вы можете разрабатывать программы для [следующих типов MCU] (http://www.nongnu.org/avr-libc/user-manual /using_tools.html). Вы не сможете скомпилировать свои программы для других целей, но как только вы будете знакомы с инструментами, будет легко перейти на что-то новое без одинаковых кривых обучения. Надеюсь, это поможет!:) – ladislas

1

Теоретически, ваш выбор компилятора не должен влиять на то, что вы действительно можете сделать с устройством. Один компилятор должен позволить вам получить доступ к тем же функциям устройства, что и другой. Они могут поддерживать несколько разные языковые функции, а библиотеки могут быть немного разными. Однако, если компилятор серьезно не разбит, вы всегда можете обойти эти различия.

В одной области, где вы находитесь , возможно, см. Материальное (хотя и небольшое) преимущество в размере и эффективности скомпилированного кода. Например, один компилятор может иметь лучшую оптимизацию, что может дать более сжатый вывод. Это означает, что вы можете сжать на устройство очень немного большую программу. Различия, вероятно, будут незначительными, так как большинство современных компиляторов довольно хороши, но этого может быть достаточно, чтобы быть полезным.

Помимо этого, вы действительно смотрите на практичность и личные предпочтения вашей инструментальной цепочки; например если ваш любимый редактор/IDE работает только в Windows или вам нужен хороший отладчик, который работает только на Linux и т. д.

Смежные вопросы