Страницы курса:

Уроки

Задания


index.htm
01.htm
02.htm
03.htm
04.htm
05.htm
06.htm
07.htm
08.htm
09.htm


z1.htm
z2.htm
z3.htm
z4.htm
z5.htm
z6.htm
z7.htm
z8.htm
z9.htm
z10.htm
z11.htm

New! - ФОРУМ!

Совет - умейте правильно находить информацию!


Добавить страницу в закладки:

- стр. 4 -

ПРОГРАММА  для  МК
ПО для микроконтроллеров

Компиляторы  и     Симуляторы 


Книги и учебники по электронике и микроконтроллерам  AVR

Это 4-я страница краткого курса.  вы уже должны представлять себе

  • 1) что такое МК AVR и в чем его особенности 

  • 2) как МК взаимодействует с электроникой подключенной к нему 

  • 3) как МК преобразует напряжения на его ножках  в  "1" или "0"

  • 4) что является посредником в общении программы с МК

  • 5) какие напряжения на своих выводах может создавать МК  AVR

  • 6) с чего нужно начать разработку эл. устройства

  • 7) какая документация по МК особенно полезна и необходима

  • 8) где найти книги и дополнительные материалы


Если вы читаете курс не первый раз и все равно не можете ответить на эти вопросы - наверно вам нужно остановится и попробовать найти ответы в прочитанной части курса либо в книгах.   

Иначе понимание дальнейшего материала курса может оказаться затруднительным. 

 

Итак ...

  • - вы определились с тем какое электронное устройство творите, 

  • - понимаете что оно должно делать, 

  • - нарисовали схему устройства физически способную выполнить вашу задумку ! - например слепили из кусочков взятых в ДШ, АпНоутах, опираясь на аналогичные проекты других электронщиков найденные в интернете и по советам других радио Губителей. 

Пора создавать программу которая, будучи загруженной (зашитой, прожженной) в МК, будет изменять физическое состояние его внутренностей и ножек делая записи в регистры МК и узнавать о физическом состоянии содержимого МК читая его регистры с целью выполнения задуманного вами.

Регистры...  регистры...  регистры... 

Короче - хотите что-то включить, выключить, поменять в МК - найдите в ДШ те регистры и биты которые за это отвечают 
и выясните что именно нужно записать в них ! 
и у вас все получится...

Особенно просто и правильно вы этого добьетесь с помощью мастера интерактивного создания кода программы. Про мастер начальной конфигурации МК написано ниже.

Программу для МК удобно создавать в специальных программах - называются они компиляторы. Если кроме компилятора в пакете есть отладчик-симулятор и/или программатор то это уже IDE (интегрированная среда разработки). 
  Компилятор позволяет написать программу для МК на универсальном языке программирования - одинаковом и для ПК и для различных МК
(кстати для МК требуется всего 3-5% всех возможностей языка программирования). 
  Текст программы набранный вами (или другими добрыми людьми) в компиляторе называют исходным кодом (или исходником или сырцом - англ: source code
Компилятор по вашей команде проверяет отсутствие ошибок в набранном исходнике и, если ошибок нет, преобразует исходник (компилирует его) в специальный файл обычно с расширением .hex  - его называют  "прошивка". 
  Прошивку с помощью программатора  (для AVR это например 5 проводков с параллельного порта ПК) помещают во FLASH память программ МК и при необходимости частично в его EEPROM.

Очень трудно написать программу сразу правильно и без ошибок поэтому - Важнейшим этапом разработки электронного устройства является отладка программы МК  (программа МК называется - firmware). Для отладки вы : 

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

И так до победного конца - т.е. до тех пор пока устройство заработает  так как вам нужно.

Не всегда допустимо включить устройство не зная наверняка правильно ли работает программа МК - в некоторых случаях могут произойти серьезные и дорогостоящие повреждения обвязки МК и другой аппаратуры.Иногда требуется проверить работу МК не имея его и 
вообще какой либо реально спаянной схемы и самого МК.  В этих случаях я рекомендую использовать специальные программы - Симуляторы. 
Симулятор приблизительно моделирует на ПК работу "прошитого" вашей программой МК и его обвязки - т.е. электронных компонентов окружающих МК по схеме устройства. Кроме того симуляторы позволяют вам: 

  • - останавливать программу когда нужно - в ручную и автоматически

  • - выполнять программу по шагам 

  • - видеть как именно происходит выполнение программы 

  • - наблюдать и изменять значения в регистрах МК 

  • - наблюдать текущие значения переменных 

  • - использовать виртуальные измерительные приборы с памятью 

  • - симулировать работу МК с обвязкой включающей различные электронные компоненты и устройства 

  • - виртуально обмениваться информацией с терминалом на ПК

  • - делать еще много полезного !

Теперь подробнее ... Компиляторы Си для AVR

Не пугайтесь! я не предлагаю вам изучить еще и язык Си - мы просто будем использовать несколько инструкций из него - как я говорил всего несколько процентов языка. Я сам начинал изучать и применять МК сразу на Си - и очень доволен результатом. Считаю, что : 

Для начинающих наиболее удобен в работе 

компилятор Си для AVR   CodeVisionAVR  ( или CVAVR) Вам нужно скачать и установить эту программу!  (демо-версия доступна с официального сайта  (< 4 Мб)) Полную версию можно найти на заглавной странице курса.  Компилятор содержит очень понятный и
очень мощный генератор начального кода программы по вашим потребностям в конфигурации периферии МК AVR - называется он :
CodeWizardAVR

 

 

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

     
 

Подробно и с картинками работу с КодВизадом - мастером начального кода CodeVisionAVR я описал в задаче 1

 
     

Обязательно читайте Help  к компилятору - по сути это одновременно и учебник  по Си для AVR и именно в нужном вам объеме ! Это относится и к другим используемым вами программам.  Читайте инструкцию и помощь ! Смотрите пробуйте изучайте ПРИМЕРЫ к программе ! 

Компилятор CodeVisionAVR  имеет и встроенный программный модуль  для прошивки МК  и конфигурирования фьюзов прямо в схеме Компания Atmel подсказывает как начать работать с этим компилятором Си для AVR:  AN AVR033  "Getting Started with the CodeVisionAVR C Compiler"

Это  АпНоуто Atmel - надеюсь вы уже скачали хотя бы их список ! Если нет то скачайте обязательно их перечень.Они ВСЕ нужны ВАМ !!! как справочник конкретно по AVR.

Для  полного цикла разработки устройства достаточно только одного компилятора CodeVisionAVR.  Однако, я рекомендую вам, скачать 
еще один компилятор: 
ICC AVR  от компании  Imagecraft 
Я использую и его генератор начального кода на Си - конфигуратор периферии AVR - в паре с CodeWizardAVR. Работая в паре, два мастера конфигурирования МК - идеально дополняют друг друга!  Например конфигурация Таймеров МК по моему лучше, понятней и наглядней сделана в мастере ICC.  Atmel - подсказывает как начать работать и с этим компилятором Си для AVR в Апликейшн Ноуте: AN AVR031 "Getting Started with ImageCraft C for AVR" 

     
 

В компиляторах есть отличные примеры программ на Си для наиболее часто встречающихся задач на МК 

в CodeVisionAVR примеры в папке - CVAVR\Examples 
в ICC примеры находятся в папке - ICC\examples.avr
Примеры - это исходные тексты программ на Си для управления периферией МК и интерфейса (общения) с популярными внешними устройствами. Исходники снабжены подробными комментариями! 

Комментарии это то что написано :
- после двух косых черточек
// - в одну строку !
- либо между 
/*  и  */ 
-  в одну или несколько строк 

Не забывайте и вы комментировать тексты ваших программ. Иначе, буквально через пару месяцев, вам будет очень затруднительно понять, что делает тот или иной кусок даже ВАШЕЙ программы!

 
     

Существуют и другие компиляторы. БЕСПЛАТНЫЙ   и  великолепный  WinAVR (размер 25 Mb) - по честному бесплатный пакет на основе
компилятора GCC - о нем очень хорошие отзывы.
Создает очень правильный и компактный код! Есть версия и под Linux. Есть вариант WinAVR в USB-флэшке. Этот компилятор хорошо интегрируется с симулятором VMLAB и фирменным симулятором Atmel - AVRstudio   (о симуляторах ниже и в самом низу страницы)  Вы ставите на ПК WinAVR  и забываете о нем!  Вся работа идет из симулятора VMLAB  - в нем есть пример такой интеграции, находится в папке: C:\VMLAB\WinAVRdemo 

Работать с самим WinAVR тоже очень просто.

Компиляция проекта в WinAVR

  • - запустите "пуск" -> "WinAVR" -> "Programmers NotePad"

  • - откройте демо проект   C:\WinAVR\examples\demo\demo.c

  • - затем меню "Tools" и "Make All"
    Проект откомпилируется и в папке C:\WinAVR\examples\demo\   появятся:

    • demo.hex - файл для прошивки в МК st

    • demo.lst - это листинг на ассемблере с привязкой к Си коду программы

    • demo.elf - файл содержит информацию для отладки программы в симуляторе. Например в PROTEUS.

Подробней о WinAVR читайте в низу этой страницы.

 

AtmanAVR   C/C++ Compiler AVRGCC  - он как и WinAVR основан на GCC но имеет отладчик и ГЛАВНОЕ для начинающего: прекрасный генератор начального кода ! 

Самый лучший и дорогой -  IAR  - требует несколько замысловатой настройки, не имеет множества примеров в инсталляции и не имеет генератора начального кода. Хотя компания IAR явно считает генератор полезным, так как продает его в виде отдельного программного продукта. Компилятор IAR генерирует самый  быстрый и компактный код. Demo версия на 30 дней - полностью рабочая без ограничений, нет только не нужных начинающему исходников включенных в пакет библиотек.  Вы можете скачать DEMO с сайта производителя - примерно 65 Мб. 

     
 

Примеры программ на Си подходят  с незначительными изменениями для любых компиляторов и для любых МК ! Так как язык Си машино не зависимый - т.е. программы мало зависят от того для какого процессора они написаны.

Огромное количество НУЖНЫХ исходников (примеры программ) для AVR на Си здесь - AVRLib  можно скачать все одним ZIP-архивом. 

 
     

 

Попробуйте поискать полезную инормацию в Гугле - ее там море !  Учитесь искать!

 

Средства отладки программ и устройств содержащих МК Симуляторы для AVR и электроники


Вы скачали компилятор Си для AVR CodeVisionAVR  и АпНоуты  инсталлировали его и получили  файл прошивку для МК. Естественно вы хотите узнать - будет ли прошивка, а значит ваша программа работать в МК так как вам нужно. Для этого удобно использовать специальные 
программы для ПК называемые симуляторами. 
Не имея МК, не покупая эл. компонентов и без пайки. Без риска спалить что либо Вы можете проверить работу не только программы загруженной в модель МК но и работу модели целого электронного устройства. Записать на диск результат его работы для последующего анализа, поиска недочетов.

В задачах-упражнениях курса я использую Бесплатный симулятор-эмулятор для AVR   -   VMLAB (скачайте и установите на ПК)

Несмотря на небольшой размер (около 4.2 Мб),  программа является самостоятельным средством разработки ПО на ассемблере для МК сразу двух производителей: ATMEL.com и ST.com.

Мультипроцессорность - это эмуляция двух МК в устройстве, у каждого своя прошивка и они работают не зависимо - это очень мощно если правильно этим воспользоваться! 

Юзер дефайн компонентс -
в общем если вам нужен какой либо электронный компонент отсутствующий в списке VMLAB, вы можете создать его сами! в соответствии с ДШ или по вашим потребностям - даже не существующий в природе!

 Я сделал упражнение - задачу 3 в которой очень подробно рассмотрел симуляцию программы на VMLAB с картинками. 

     
 

В поставку VMLAB включено множество примеров программ и прошивок для немедленной симуляции - эмуляции устройства с МК. Примеры находятся в папках:  Tutorial  и  AVR_demo Запустите их и освойтесь, поиграйте  с симулятором на досуге ...

 
     

Есть пример работы VMLAB с CodeVisionAVR.
откройте файл проекта 
C:\VMLAB\AVR_demo\codevisi.prj и по-симулируйте ! При симуляции вы увидите движение по исходному тексту программы на Си, и можете расставлять точки останова программы, наблюдать за изменениями значений в регистрах МК, посмотреть осциллограммы сигналов на ножках МК и многое другое ...  

Уже упоминал: пример работы VMLAB с WinAVR вы устанавливаете winavr в папку по умолчанию и больше ни когда не заглядываете в неё Вся работа от написания кода на Си до отладки выполняется из VMLAB - это очень удобно.  C:\VMLAB\WinAVRdemo\файлы.prj -захотите попробуете ... 

     
 

Совет !

Скачайте мою заготовку (Шаблон, "РЫБА" - всего 6 Кб) для быстрого старта в совместном использовании компилятора CodeVisionAVR и симулятора VMLAB с МК ATmega16

Распакуйте файлы из архива в папку: С:\VMLAB\WORK

Теперь откройте проект cv.prj в компиляторе CodeVisionAVR. Вы можете править текст программы  (исходник) и перекомпилировать его. Для эмуляции работы устройства откройте  в VMLAB проект vmlab.prj

Вы можете проверить работу программы на Си для МК ATmega16 мигающей светодиодами и посылающей сообщение через USART на монитор-терминал VMLAB.

Если добавить адаптер MK- rs232  то сообщения можно будет увидеть на экране ПК.

В общем качайте ! - это нужно ВАМ !

 
     


повторю :

На софт-эмуляторе симуляторе VMLAB мы будем проверять работу программы для разрабатываемого устройства.  

Файл-прошивку для МК (расширение  .hex) созданный в компиляторе будем прогонять в симуляторе МК с внешними компонентами и смотреть что работает, что нет, и как работает... 

При необходимости будем корректировать исходный текст программы на Си, опять компилировать, и так по кругу до достижения правильной 
работы устройства. Этот процесс называется - отладка программы или дебагинн - очистка от всякой нечисти - "тараканов" и "жучков"...
 

Скачав рекомендованные программы - установите 
их на диск С:\  в каталоги :  

CVAVR      ICCv7avr         VMLAB

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

     
 

Хелпы во всех рекомендуемых программах качественные  и подробные! НЕ забывайте их читать! 

 
     

Не обязательный для курса но   ВЕЛИКОЛЕПНЫЙ Пакет для разработки электронных устройств от схемы до печатной платы  PROTEUS Действительно супер ! 
Во первых PROTEUS может симулировать несколько МК  в одном устройстве, причем не только AVR но и PIC и Motorola и 8051 и даже ARM7 вперемешку ! 
Во вторых в поставку PROTEUS входит очень много моделей компонентов. 
В третьих
  вы можете симулировать любые электронные устройства и не содержащие МК и очень сложные и электро-механические системы - это очень полезно, 
Вам нужно проверить какую то идею или вариант реализации чего либо ? Вы можете не паять, не искать детали, запоминающий осциллограф и другие измерительные приборы, а Просто "соберите" вашу схему в PROTEUS и посмотрите как  она будет работать, каковы будут выходные параметры. PROTEUS - симулирует очень реалистично !  И главное наглядно видна работа устройства, напряжения и токи в нем.
В четвертых
  PROTEUS - по сути справочник электронных компонентов  Когда вы просматриваете библиотеки для добавления компонента на схему - вам сразу показываются его основные свойства и корпус компонента - какова его площадка на плате. Просто класс ! Для поиска компонента вам достаточно ввести в окно несколько символов из его марки или описания и затем выбрать из предложенных категорий.в пакет включены отличные примеры работы в  PROTEUS  примерно 60 устройств готовых к симуляции. Это : 

  • - дата логер на жесткий диск (есть модель IDE HDD ! ) 

  • - можно поиграть в шахматы с ATmega128 !!! (есть модель "точскрина" ) 

  • - есть пример работы с графическим LCD дисплеем 

  • - управление шаговым двигателем 

  • - управление электродвигателем

  • - управление servo

  • - радиочастотные схемы, трансформаторы, линии передачи.

  • - конечно кнопки, индикаторы, светодиоды, связь с ПК, разные датчики, память

  • - конечно есть виртуальные приборы.

  • - отладка интерфейсов UART  i2c  TWI  SPI

... Короче все примеры "весят" 16 Мб в распакованном виде !

Вы можете скачать DEMO версию (около 26 Мб) - она полностью рабочая !  Только одно ограничение - не позволяет вам сохранить результат вашей работы. Читайте Краткий Курс  Самоучитель    PROTEUS                     

     
 

А если нет модели нужного вам компонента ? Вот что я придумал -

Если вы не находите модели нужного вам компонента, то вы можете изобразить ее с помощью еще одного МК и возможно некоторых существующих компонентов. Дело в том что симуляторы не против не реально высокой частоты работы симулируемого МК - я пробовал 500 МГц в PROTEUS и все работает. Думаю вычислительная мощность МК в таком режиме позволит вам изобразить что угодно. Преимущество моего метода - Вам не нужно изучать методику и иметь инструментарий для создания моделей для VMLAB или PROTEUS стандартным способом. Вы лишь лишний раз поупражняетесь в программировании МК с которым работаете.  Кроме того теперь PROTEUS не работает с моделями созданными без специально полученного кода для создания модели !  А по моему  методу вы сможете делать модели и при желании продавать их не имея такой лицензии и законно!

Надеюсь вы попробуете такой финт ушами ...

 
     


Итог этой страницы курса :

Вам необходимы две программы - CVAVR  и  VMLAB для усвоения дальнейшего материала курса.
 

 

Попробуйте поискать полезную инормацию в Гугле - ее там море !  Учитесь искать!

Добавить страницу в закладки:

 

<- Назад                    Дальше ->  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Rating All.BY Rambler's Top100 МЕТА - Украина. Рейтинг сайтов


2009-2015 123avr.com