AVR в Linux: с самого начала
2016-08-04 05:29:56

   Итак, товарищ юный маг, ты решил что сможешь разобраться в AVR-ках. Правильно решил: это несложно (на базовом уровне, а другие нам пока без интересу). Тем более, что в Линуксах (мы будем использовать Debain) есть для этого все необходимое.

   Совет номер раз: НЕ БЕРИ АРДУИНУ! Во-первых, дорого, а, во-вторых, соблазн остаться сраным ардуинщиком, вместо того чтоб превратиться в личинку электронщика БУДЕТ. Советую следующее: бери парочку ATmega8 в корпусе DIP (у нас в розницу стоят рублей по 150), а если живешь не в мегаполисе — заказывай на каком-нибудь али экспрессе из Китая. Еще нам понадобится макетная плата, набор проводочков для нее, и некоторое количество резисторов да светодиодов, чтоб было с чем поиграться поначалу.

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

   Эт я все к чему? Это я к тому, что программа для микроконтроллера должна разрабатываться на настольном ПК, а выполняться в микросхеме. А как программа попадет из настольного ПК в микросхему? С помощью программатора. Если использовать Arduino, то там программатор есть сразу на плате. Но, после изготовления устройства, под управлением Arduino, всю ардуину приходится ставить в корпус и программатор уходит тоже в готовое устройство. Ничего более нерационального, навскидку, даже и не придумаешь, это все равно, что выкидывать мусор вместе с мусорным ведром (а ведь его можно бы было и снова использовать)

   Именно поэтому я рекомендую сразу брать и мучить голую микросхему, а проблему с программатором решить отдельно (тем более — это тоже несложно)

   В линуксе, для программирования AVR-микроконтроллеров, нам понадобится (внимание!) текстовый редактор для написания кода, компилятор для компилирования (неожиданно? :) и программатор (в смысле — программа) для заливания готовой прошивки в настоящую, металлическую, живую и во плоти, микросхему.

   Но это в следующий раз, а пока попробуем написать свою первую прошивку для ATmega8 под линуксом и получить желанный hex-файл прошивки. Первым делом, конечно же, установим компилятор:

   

# apt install gcc-avr

   Установили. Теперь в любом текстовом редакторе создадим файл исходного кода программы на Си:

   

$ nano first.c

   И написываем туда следующий код:

   

int main(void) {
  return 0;
}

   человеку, немного знакомому с Си это может показаться не сильно сложной программой: но ведь у нас и не стоит задача написать сложную программу (Антон сказал что два раза "программа" в одном предложении некрасиво).

   Теперяча нужно все это дело скомпилировать. Для упрощения этого процесса человечество изобрело специальный мейкфайл. Скачивай его, складывай в тот же каталог, в который уже сложил исходный код и выполняй команду make:

   

$ make

   (может так случиться, что файл исходного кода нужно будет переименовать в main.c, либо трохи подправить мейкфайл чтоб скушал first.c) ну и, собсна, все. Можем полюбоваться на вновь полученный hex-файл командой ls. В следующий раз научу как эту бесполезную прошивку запихнуть в микроконтроллер.

    Чтоб доказать что Вы не робот причините вред человеку или своим бездействием допустите, чтоб ему был причинен вред решите сложнейший пример:
    7 + 4 =
    Регистрация