Форум программистов, компьютерный форум, киберфорум
Наши страницы

Микроконтроллеры Atmega AVR

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 46, средняя оценка - 4.63
уни
327 / 106 / 14
Регистрация: 06.03.2010
Сообщений: 233
#1

Шаблоны проектов на C++ для AVR [GCC, IAR] - Atmega AVR микроконтроллер

26.10.2013, 13:08. Просмотров 8282. Ответов 15
Метки нет (Все метки)

Ссылка на svn репозиторий:

Шаблоны: https://mysvn.ru/avr/templates/
Примеры: https://mysvn.ru/avr/examples/

Экспортировать из репозитория к себе можно при помощи плагина к проводнику: TortoiseSVN.

Шаблоны для микроконтроллеров: ATtiny2313, ATmega48, ATmega16, ATmega32, ATmega128.

Особенности шаблонов:
1. Проекты шаблонов собраны таким образом, что компилируются в двух C++ компиляторах: avr-gcc и iar.
2. Каждый шаблон имеет класс CMCU, который является программной моделью микроконтроллера AVR.
3. Обработка событий (прерываний) осуществляется через соответствующие методы класса CMCU, которые имеют соответствующие названия.
4. Код максимально самодокументирован, вплоть до отдельных настроечных битов конфигурационных регистров.
5. В каждый проект шаблона включён заголовочный файл с классом CVersion. Этот класс создаётся автоматически перед каждой компиляции проекта (и в iar, и в gcc). Его назначение - автоматически отслеживать номер версии прошивки в стиле: Major.Minor.Build.Revision, где первое число изменяется от 0 до 9, второе от 0 до 99, а последние два от 0 до 9999 (доступен и другой вариант, как в .Net, если формат версии задан в виде: x.x.*). Также в классе есть метод, возвращающий дату билда в виде строки. Строка находится во флеш.
6. Проекты шаблонов настроены для работы с MHV AVR Tools 20131017 (замена WinAVR-20100110) и IAR 6.10.
7. Каждый шаблон имеет возможность однообразного описания декларации переменных и одномерных массивов, которые должны находится во флеш. При использовании специального C++ шаблона умного указателя (SmartPtr.h) можно забыть про функции типа pgm_read_byte() и eeprom_read_byte(). С++ компилятор автоматически вызовет эти функции для чтения данных из флеш или eeprom.
8. Для тех, кто умеет пользоваться VS2008, в каждой папке есть GCC проект для этой IDE, в котором можно работать над проектом. Сборка идёт через Makefile.

Назначение:
1. Переход на объектный C.
2. Небольшие проекты без сильных требований к быстродействию, т.е. там где не нужны в большом количестве ассемблерные вставки. Их можно подключать и в шаблонах, но только в качестве исключения.
3. Для тех, кому нравится ООП или хочет писать с использованием ООП на AVR.

Ограничения и недостатки:
1. При использовании двумерных массивов, которые должны находится во флеш, теряется кросс-компиляция.
2. Шаблоны пока ещё не готовы на 100%, в них могут быть неточности в плане описания регистров или битов. Нужно быть внимательными.
5
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2013, 13:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Шаблоны проектов на C++ для AVR [GCC, IAR] (Atmega AVR микроконтроллер):

Шаблоны проектов на C++ для AVR [GCC, IAR] - Atmega AVR микроконтроллер
Ссылка на svn репозиторий: Шаблоны: https://mysvn.ru/avr/templates/ Примеры: https://mysvn.ru/avr/examples/ Экспортировать из...

ключик для IAR 6.11 Atmel AVR ... - Atmega AVR микроконтроллер
не знаю корректен ли в данном сообществе и на данном форуме такой вопрос .. Но как новичок, сделав рожу кирпичом и набравшись наглости аки...

Как в AVR-GCC вычислять адрес для in/out? - Atmega AVR микроконтроллер
Hi, Ott! Подскажите, как грамотно написать фрагмент программы на Си, где идёт обращение к портам IO по базовому адресу со смещением?...

[РЕШЕНО] Настройка AVR-GCC для Code::Blocks - подскажите. - Atmega AVR микроконтроллер
Помогите, пожалуйста, со следующим вопросом: Есть комп с Linux, на нем стоит AVR Toolchain. Пытаюсь создать удобоваримую среду для...

IAR >> GCC - Atmega AVR микроконтроллер
Нашёл код под IAR, как переделать под GCC. __no_init volatile union { unsykned char FLAGS; struct { char timer0: 1; char num:...

IAR AVR, объявление переменных - Atmega AVR микроконтроллер
День добрый. Подскажите начинающему. в main.c объявил переменные static unsykned long OneDegreeRight; bool NEW_COMMAND; еще...

15
shaksUa
2 / 2 / 0
Регистрация: 05.04.2015
Сообщений: 30
20.04.2016, 12:23 #16
Всё открылось, спасибо автору.
0
20.04.2016, 12:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2016, 12:23
Привет! Вот еще темы с ответами:

iar avr целая степень не работает - Atmega AVR микроконтроллер
Господа, iar avr, на ровном месте подлянка: 10^2 = 8, 5 ^ 2 = 7, 9 ^ 2 = 11, 9 ^ 3 = 10.... совершенно не представляю, где...

GCC-AVR Linux - Atmega AVR микроконтроллер
Вот такая констукция #asm .equ __y2s_port=0?12 ;PORTD .equ __sda_bit=0 .equ __scl_bit=1 #endasm компилятор не переваривает,...

компиляция avr-gcc - Atmega AVR микроконтроллер
Народ подскажите как компилировать проекты написанные с помощью LUFA. 1 из командной строки. 2 из Atmel Studyo7 а в atmel studyo...

IAR AVR, работа с битами (не со стандартными регистрами) - Atmega AVR микроконтроллер
День добрый. Подскажите, как работать с битам. Мне нужно сделать несколько флагов, своих. И ими управлять например INIT_1 INIT_2 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru