30.06.2013, 09:01
|
|
Гражданин KAZUS.RU
Регистрация: 05.10.2006
Сообщений: 628
Сказал спасибо: 21
Сказали Спасибо 165 раз(а) в 92 сообщении(ях)
|
Re: Шаблоны проектов на C++ для AVR [GCC, IAR]
Цитата:
|
при помощи плагина к проводнику
|
При импорте требует имя и пароль.
__________________
Быть,а не казаться.
|
|
|
|
02.07.2013, 05:37
|
|
Частый гость
Регистрация: 11.09.2011
Адрес: Екатеринбург
Сообщений: 29
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
|
Re: Шаблоны проектов на C++ для AVR [GCC, IAR]
Это странно. Сейчас повторить не могу, т.к. обновился у себя до 1.8 версии subversion, а сервер mysvn почему-то до сих пор на 1.7.x. Вообще же, если по http s можно смотреть исходники в браузере, то и скачать их анонимно тоже должно быть можно. Я специально включил анонимный доступ на чтение.
Вот новая демка: Демка проектов uSD и Tetris.
|
|
|
|
06.10.2013, 18:24
|
|
Частый гость
Регистрация: 11.09.2011
Адрес: Екатеринбург
Сообщений: 29
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
|
Re: Шаблоны проектов на C++ для AVR [GCC, IAR]
- добавлен шаблон проекта для ATtiny2313.
- дополнен формат версии при автоматическом формировании (два шаблона: x.x.x.x и x.x.* - по аналогии с .Net).
- добавлен пример tinycmd - простой командный интерпретатор на C++ для ATtiny2313. Только для демонстрации работы C++ проекта. Работает в Proteus через виртуальный нуль-модем.
- добавлен проект json - пример работы с данными в этом формате (простейший парсер).
- добавлен проект efs - (только GNU) простая файловая система для работы с EEPROM (взято из openplayer).
- мелкие доработки прошлых примеров.
На картинке ниже показан результат работы для проекта efs. Описание структуры файловой системы и используемых методов приведён в прилагаемом руководстве.
Код:
|
switch ( Key ) {
// Очищаем EEPROM до смешения 240.
case '0': {
for ( uint16_t n = 0; n ‹ 240; n++ ) eeprom_write_byte( ( uint8_t * ) n, 0 );
DrawMemory();
break;
}
// Создать файл.
case '1': {
CEFS::CreateFile( & afile, 0xCF, "Настройки" );
CEFS::WriteFile( & afile, ( uint8_t * ) "-123456-", 0, 8 );
DrawMemory();
break;
}
// Удалить файл.
case '2': {
CEFS::DeleteFile( & afile );
DrawMemory();
break;
}
} |
|
|
|
|
07.10.2013, 22:58
|
|
Гражданин KAZUS.RU
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: Шаблоны проектов на C++ для AVR [GCC, IAR]
Вячеслав, такой вопрос. Попробовал скомилировать ваш проект (tinycmd), но не вышло.
Output выглядит так:
Цитата:
|
1›------ Rebuild All started: Project: tinycmd, Configuration: Debug Win32 ------
1›Performing Makefile project actions
1›sed.exe: -e т√Ёрцхэшх #1, ёшьтюы 1: эхшчтхёЄэр* ъюьрэфр: `''
1›Project : error PRJ0019: A tool returned an error code from "Performing Makefile project actions"
|
Что это может быть? sed не той системы?
Команды Build all настройках такая:
Цитата:
|
make.exe build all 2›&1 | sed.exe -e 's/\(\w\+\):\([0-9]\+\):/\1(\2):/'
|
В Error list пишется следующее:
Цитата:
|
Error 1 error PRJ0019: A tool returned an error code from "Performing Makefile project actions" tinycmd tinycmd
|
И ещё вопрос, можно ли скомпилировать IAR AVR проект из Visual Studio?
Спасибо.
|
|
|
|
10.10.2013, 10:21
|
|
Частый гость
Регистрация: 11.09.2011
Адрес: Екатеринбург
Сообщений: 29
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
|
Re: Шаблоны проектов на C++ для AVR [GCC, IAR]
Доброго, что касается компиляции, то посмотрите переменную path (set path). Расположите путь до WinAVR первым, тогда всё должно браться откуда надо. Я использую последнюю версию WinAVR-20100110 и не пробовал пока новый набор, который из Atmel Studio. В идеале я вообще планирую перевести все проекты на компилятор 4.7, чтобы избавиться от умных указателей. Пока вот так.
Попробуйте скомпилировать из командной строки тоже. В readme.txt есть команды компиляции.
Я сам хочу компилировать IAR проекты из студии, там в Makefile есть чужой набросок для этого, но у меня пока не дошли руки изучить параметры для сборки под iar. Было бы гораздо удобнее иметь 4 конфигурации ( gnu + iar | Release + Debug) и делать всё в студии... но это пока только планы.
tinycmd постоянно меняется, я его дорабатываю, чтобы работа была правильной. Рекомендую использовать ZOC/Pro 5.07 для работы с этим проектом, т.к. там используются ESC-последовательности для работы с терминалом и dos-овская кодировка. Можно использовать и PuTTY, но там нестандартные цвета выбраны по умолчанию.
Последний раз редактировалось Вячеслав Мезенцев; 10.10.2013 в 10:24.
|
|
|
|
10.10.2013, 16:20
|
|
Гражданин KAZUS.RU
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: Шаблоны проектов на C++ для AVR [GCC, IAR]
Сообщение от Вячеслав Мезенцев
|
Доброго, что касается компиляции, то посмотрите переменную path (set path).
|
Path посмотрел:
Цитата:
|
PATH=C:\Program Files\Atmel\AVR Tools\AVR Toolchain\bin
|
Сообщение от Вячеслав Мезенцев
|
Расположите путь до WinAVR первым, тогда всё должно браться откуда надо.
|
Так и есть.
Сообщение от Вячеслав Мезенцев
|
В идеале я вообще планирую перевести все проекты на компилятор 4.7, чтобы избавиться от умных указателей. Пока вот так.
|
Это вы о __flash? Для С++ они не работают. Увы.
Сообщение от Вячеслав Мезенцев
|
Попробуйте скомпилировать из командной строки тоже. В readme.txt есть команды компиляции.
|
Компилируется.
Сообщение от Вячеслав Мезенцев
|
Я сам хочу компилировать IAR проекты из студии, там в Makefile есть чужой набросок для этого, но у меня пока не дошли руки изучить параметры для сборки под iar.
|
Ок, почитаю.
Сообщение от Вячеслав Мезенцев
|
Было бы гораздо удобнее иметь 4 конфигурации ( gnu + iar | Release + Debug) и делать всё в студии... но это пока только планы.
|
Достаточно двух, имхо - gnu + iar | Release. Debug не нужен.
|
|
|
|
10.10.2013, 18:25
|
|
Частый гость
Регистрация: 11.09.2011
Адрес: Екатеринбург
Сообщений: 29
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
|
Re: Шаблоны проектов на C++ для AVR [GCC, IAR]
Ну, это кому как. Debug разный может быть. Бывает отладка в железе, т.е. в реальном окружении, а бывает отладка в Proteus - облегчённый обвес. Частоты для них разные и скорости USART и т.д. Сейчас я ещё это не автоматизировал, приходится такие параметры исправлять вручную в зависимости от средств отладки. Смысл для меня в том, что студия может подсвечивать/тушить код препроцессора. Делая разные конфигурации и синхронизируя код и настройки можно видеть что включено, а что отключено. IAR'у до этого далеко, он вообще в плане редактора почти ноль.
Практически все мои проекты настроены на работу в Proteus, т.е. без реального железа. Это очень удобно. Когда всё более менее заработает в Proteus, тогда уже идёт в реальную отладку. Можно обратить внимание, что в каждом проекте есть .dsn-файл с проектом для Proteus;
Большинство ошибок я выявляю на этапе проверки в Proteus, а что-то специфическое - уже JTAG'ом. Практически все прошивки проверялись в работе и там, и там.
Жаль, что __flash не работает для C++, не знал. Умные указатели, к сожалению, покрывают только небольшую часть требований для работы с флеш. А я надеялся на идентичную работу в iar и gcc.
Последний раз редактировалось Вячеслав Мезенцев; 10.10.2013 в 18:33.
|
|
|
|
10.10.2013, 22:52
|
|
Гражданин KAZUS.RU
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: Шаблоны проектов на C++ для AVR [GCC, IAR]
Сообщение от Вячеслав Мезенцев
|
Ну, это кому как. Debug разный может быть. Бывает отладка в железе, т.е. в реальном окружении, а бывает отладка в Proteus - облегчённый обвес.
|
В этом вопросе - кому что нравится...
Я так ни разу этот протеус и не попробовал - jtag-а хватает.
Сообщение от Вячеслав Мезенцев
|
Смысл для меня в том, что студия может подсвечивать/тушить код препроцессора.
|
По идее фишка удобная, попробую на каком-нибудь своём проекте, настроенному по вашему варианту посмотреть как она код тушит.
Сообщение от Вячеслав Мезенцев
|
IAR'у до этого далеко, он вообще в плане редактора почти ноль.
|
Кто его знает, может он догонит и перегонит студию в этом вопросе: редактор IAR-а - это не только EWB, но есть ещё вариант Eclipce+IAR Eclipce plugin, а у эклипсы с маскировкой кода всё ничем не хуже чем у VS2008. AtmelStudio 6 в этом вопросе деградировала по сравнению с VS2008 - убрали из неё (или VisualAssisX такую настройку) и теперь она ничего не может замаскировать; функция outlining-а у неё также значительно ухудшена. Испортили хорошую вещь...
Сообщение от Вячеслав Мезенцев
|
Практически все мои проекты настроены на работу в Proteus, т.е. без реального железа. Это очень удобно.
|
По сишному коду шагать можно в нём?
P.S. Насчёт настроек проекта - заработало. Заменил в настройках проекта Build command line на такое:
[HTML]
make.exe build 2›&1 | sed.exe -e s/\(\w\+\):\([0-9]\+\):/\1(\2):/
[/HTML]
Дело было в символах "'"(одиночная кавычка) - почему-то sed их не переваривал.
Осталось IAR запустить как makefile....
|
|
|
|
10.10.2013, 23:53
|
|
Частый гость
Регистрация: 11.09.2011
Адрес: Екатеринбург
Сообщений: 29
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
|
Re: Шаблоны проектов на C++ для AVR [GCC, IAR]
iar-проект там так просто не собрать. Я знаю, что авторы скрипта сборки что-то там пытались написать, но насколько это успешно мне так до сих пор и не удалось узнать, т.е. я даже не пробовал. Ещё не известно какой давности этот Makefile и насколько он согласован и с какой версией iar cc.
Т.е. я планировал прочитать здоровую доку на процесс сборки и ключики, посмотреть как у меня это собирается в IAR и потом уже приступить к правке Makefile, но эта эпопея отложена до лучших времён. Я не такой дока в IAR'е.
Proteus поддерживает несколько форматов объектных файлов, поэтому он может шагать по листингу тех исходников, компиляция которых осуществлялась в один из таких форматов. Я уже точно не помню названия форматов, поэтому могу рассказать про среды разработки.
Я лично шагал по листингам полученным в:
- BASCOM AVR - да, да, удивительно, но в Proteus можно даже по бейсику пройтись, т.к. их компилятор даёт на выходе объектный файл, поддерживаемый Proteus;
- IAR 6.10 - C/C++ -проекты (формат, кажется, ubrof8 ), первый выходной файл делаем в hex, а второй - ubrof8.
- avr-gcc - С/С++ - проекты, elf-файлы.
Диззассемблирование там по умолчанию для любых проектов. Ещё одно замечание. Вместе с Proteus устанавливается плагин для AVR Studio 4.xx, который можно видеть при её загрузке. Так вот, можно использовать родной отладчик AVR Studio 4, который подключается к виртуальному железу Proteus. Будет то же самое как с JTAG'ом, только железо виртуальное. Я иногда пользуюсь таким вариантом тоже.
Для такой работы только нужны конкретные версии ПО: Proteus 7.7SP2 build 9089 (у меня такой) и AVR Studio 4.xx, на остальных не пробовал или вообще работать не будет. Для AtmelStudio нет плагинов таких, а Proteus старших версий может не подключится к 4-ке.
Eclipse+IAR Eclipce plugin - не пробовал, сомневаюсь, что это выглядит лучше, чем связка AVR Studio 4 + Proteus, показанные ниже на картинке. Вообще, я Eclipse только для Java использую, а всё остальное после студии (а я ещё даже на 2012 не видел) смотрится не очень.
Последняя картинка - это то, как я отлаживаю в Proteus проект tinycmd. Вот так это всё выглядит: Proteus, виртуальный нуль модем, ANSI терминал и непосредственно работа командного интерпретатора. На снимке я поставил точку останова на приём клавиши Backspace, Proteus её поймал и показал, что я в теле условия. Дальше могу шагать и смотреть как эта команда отрабатывается. На картинке загружена прошивка от IAR'а, что видно по приглашению в терминале. gcc работает аналогично, разве что занимает чуть больше, что связано с дополнительными расходами на умные указатели и вообще gcc всегда выдаёт кода побольше, чем iar.
Формат версии прошивки у tinycmd настроен по шаблону x.x.*, как у .Net, где последние две цифры - это дата и время сборки начиная с эпохи 01.01.2000 г. Поэтому версия выглядит странно для тех, кто не программировал под .Net.
Последний раз редактировалось Вячеслав Мезенцев; 11.10.2013 в 00:14.
|
|
|
|
11.10.2013, 14:29
|
|
Гражданин KAZUS.RU
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: Шаблоны проектов на C++ для AVR [GCC, IAR]
Сообщение от Вячеслав Мезенцев
|
iar-проект там так просто не собрать. Я знаю, что авторы скрипта сборки что-то там пытались написать, но насколько это успешно мне так до сих пор и не удалось узнать, т.е. я даже не пробовал. Ещё не известно какой давности этот Makefile и насколько он согласован и с какой версией iar cc.
|
Да, что-то не собирает, жаль.
Сообщение от Вячеслав Мезенцев
|
Вместе с Proteus устанавливается плагин для AVR Studio 4.xx, который можно видеть при её загрузке. Так вот, можно использовать родной отладчик AVR Studio 4, который подключается к виртуальному железу Proteus. Будет то же самое как с JTAG'ом, только железо виртуальное. Я иногда пользуюсь таким вариантом тоже.
|
Интересный вариант, можно будет попробовать.
Сообщение от Вячеслав Мезенцев
|
Eclipse+IAR Eclipce plugin - не пробовал, сомневаюсь, что это выглядит лучше, чем связка AVR Studio 4 + Proteus, показанные ниже на картинке.
|
Eclipse+IAR Eclipce plugin неправильно сравнивать с AVR Studio 4 + Proteus, потому что это разные вещи (и плагин у них под АРМ). Eclipse можно сравнивать с VS2008 - они редакторы без возможности отлаживать (под АВР).
Сообщение от Вячеслав Мезенцев
|
Вообще, я Eclipse только для Java использую, а всё остальное после студии (а я ещё даже на 2012 не видел) смотрится не очень.
|
Не соглашусь, Eclipse только VAX не хватает, в остальном оно и проще и лучше (настроить легче).
К тому у VS проблемы с разбором кода чаще проявляются:
например при макросе scmRTOS_CONTEXT_SWITCH_SCHEME равном 1 (и студии это известно) маскируется не тот участок кода который нужно. В эклипсе при этом всё правильно затеняется. Видимо не спроста в vs2010 эта опция пропала.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:47.
|
|