Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Ядро и система команд МК AVR с самого начала создавались в сотрудничестве с фирмой IAR Systems — производителем компиляторов для языков программирования C/C++. Поэтому структура контроллера максимально оптимизирована для того, чтобы можно было писать программы на языках высокого уровня. Так утверждает реклама, но верить подобным заявлениям стоит с некоторой оглядкой — все, конечно, зависит от компилятора и конкретной задачи. Ведь функция компилятора очень непростая: перевести строки на языке высокого уровня в команды контроллера, что для AVR, с его многочисленными ограничениями на использование команд, ничуть не проще, чем для "настоящих" микропроцессоров, и потери тут неизбежны — как с точки зрения компактности кода, так и времени его выполнения.

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

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

Такое подразделение пользователей, по сути, заложено в маркетинговой политике компании Atmel, которая ассемблер и сопутствующие средства распространяет бесплатно. В то же время профессиональное программное обеспечение почти все платное, и зачатую весьма дорогое. Фирма IAR Systems в настоящее время предлагает серию пакетов Embedded Workbench для более чем двадцати типов МК различных фирм (под девизом "различные архитектуры — одно решение"). Здесь все рассчитано на то, чтобы человек, владеющий языком С, с минимальными потерями времени смог "пересесть" на другой тип контроллера. В этом "монструозном" инструменте все здорово, кроме цены, которая измеряется в тысячах "американских президентов". Но это оправданно— рабочие инструменты должны быть качественными и потому дешевыми являться не могут. Стоят денег и средства отладки (аппаратные эмуляторы), на работу с которыми рассчитана сама по себе бесплатная AVR Studio — поэтому мы ее только немного коснемся далее, а так постараемся обойтись.

Стоит также упомянуть, что IAR Systems— не единственный разработчик компиляторов с языка С для AVR. Есть и не столь "навороченные" инструменты (например, ICC for AVR от фирмы ImageCraft, CodeVisionAVR от HP Infotech), но в любом случае реальная цена их начинается от сотен евро. Для полноты картины нужно упомянуть и бесплатный WinAVR (AVRGCC, winavr.sourceforge.net), который создан на основе компилятора GNU GCC и, соответственно, распространяется по лицензии GPL (с исходными кодами), обладающий всеми недостатками и достоинствами "свободных" продуктов, на чем мы здесь не будем останавливаться. Этот продукт также поддерживается AVR Studio. Для желающих попрактиковаться на С укажем на отличную библиотеку типовых модулей для AVR, расположенную по адресу http://hubbard.engr.scu.edu/embedded/avr/avrHb.

Способы и средства программирования AVR
Слово "программирование" в отношении МК имеет двоякий смысл. Во-первых, это собственно процесс написания программы — как и для любых других устройств, содержащих процессор, от холодильников до персональных компьютеров или узлов управления космическими аппаратами. Во-вторых, этим термином также называют процесс загрузки программы во flash-память программ (и не только в МК — например, занесение данных в энергонезависимую память также часто именуют "программированием памяти"). Чтобы не путаться, мы будем подразумевать под "программированием" МК именно запись программ в память (ее еще называют "прошивкой"), а подготовительный этап так и будем называть — "создание программы". Что же требуется для создания программы, кроме знания ассемблера?



     
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru