Страница 1 из 2
OSA for AVR
Добавлено: Чт мар 11, 2010 19:46:40
dosikus
Уважаемый
tester выложил бета версию
OSA for AVR
http://wiki.pic24.ru/doku.php/osa/avr
OSA - кооперативная RTOS для микроконтроллеров PIC и AVR (распространяется бесплатно с исходными текстами).
Re: OSA for AVR
Добавлено: Пт мар 12, 2010 14:53:55
foxit
dosikus писал(а):Уважаемый
tester выложил бета версию
OSA for AVR
http://wiki.pic24.ru/doku.php/osa/avr
OSA - кооперативная RTOS для микроконтроллеров PIC и AVR (распространяется бесплатно с исходными текстами).
Интересный проект.
Но почему-то не получилось скомпилировать пример.
Да и документацию для AVR не мешало бы довести до ума.
Re: OSA for AVR
Добавлено: Пт мар 12, 2010 15:16:12
testerplus
foxit писал(а):Но почему-то не получилось скомпилировать пример.
Что именно не получилось? Проект создан
правильно? Попробуйте собрать пример из папки osa\example
foxit писал(а):Да и документацию для AVR не мешало бы довести до ума.
Долгое время OSA работала только с ПИКами, поэтому местами в примерах применяются именно ПИКовские регистры и компиляторы. Но я просмотрел ее всю перед выкладкой, вроде бы сложностей не должно быть. Или я что-то важное упустил?
Добавлено: Пт мар 12, 2010 15:20:52
foxit
при компиляции выдает
../lights_winavr.c:28:17: error: osa.h: No such file or directory
../lights_winavr.c: In function 'main':
../lights_winavr.c:154: warning: implicit declaration of function 'OS_Init'
../lights_winavr.c:156: warning: implicit declaration of function 'OS_Task_Create'
../lights_winavr.c:164: warning: implicit declaration of function 'OS_EI'
../lights_winavr.c:166: warning: implicit declaration of function 'OS_Run'
../lights_winavr.c: In function '__vector_4':
../lights_winavr.c:223: warning: implicit declaration of function 'OS_Timer'
../lights_winavr.c: In function 'Task_Rolling':
../lights_winavr.c:244: warning: implicit declaration of function 'OS_Delay'
../lights_winavr.c: In function 'Task_Button':
../lights_winavr.c:272: warning: implicit declaration of function 'OS_Cond_Wait'
make: *** [lights_winavr.o] Error 1
Build failed with 1 errors and 7 warnings...
Добавлено: Пт мар 12, 2010 15:27:33
testerplus
foxit писал(а):при компиляции выдает
Проверил, у меня собирается. AVR Studio 4.17, WinAVR 20090313, osa располаается в корне C:. Судя по первой строчке, он не может найти файл osa.h.
Проверьте пути (меню "poject/configutation options", вкладка "Include directories"). Должны быть прописаны два пути: "..\.." (путь к osa.c) и "." (путь к текущей папке).
Добавлено: Пт мар 12, 2010 15:45:44
ARV
я только вот никак не пойму: как кооперативная ОС может быть реального времени (RTOS)?
Добавлено: Пт мар 12, 2010 16:16:21
ARV
да, вот еще что: обратил внимание на фразу в документации к ОС "данная статистика не учитывает тот факт, что некоторые компиляторы в результирующий код не включают не вызываемые функции (это относится к mikroC, CCS, IAR);" - это в информации о занимаемой памяти. так вот, к WinAVR (AVR-GCC) это тоже относится, только необходимо в опциях компилятора добавить -ffunction-sections, а в опциях компоновщика -Wl,-gc-sections
думается, что после этого табличка сравнения занимаемой памяти будет выглядеть не такой удручающей по сравнению с IAR.
Добавлено: Пт мар 12, 2010 16:30:49
testerplus
ARV писал(а):думается, что после этого табличка сравнения занимаемой памяти будет выглядеть не такой удручающей по сравнению с IAR.
Цель этой таблички - не сравнение компиляторов. Это информация для пользователя, чтобы он оценивал, какой контроллер выбирать под свою задачу и под конкретный компилятор. Примечание написано для того, чтобы программист не удивлялся: "Как это? Добавил один вызов, а программа возросла на 100 байт!" (мне бы как раз ключик к IAR'у, чтобы он не выкидывал "лишние" функции, тогда картина будет более правильная).
Код и для IAR и для WinAVR еще будет подвергнут оптимизации (там есть, что ужимать). Так что и скоростные и "емкостные" характеристики будут со временем улучшены для обоих компиляторов.
Re: OSA for AVR
Добавлено: Сб мар 13, 2010 14:48:12
AI_Disable
Просветите, зачем нужна ОС для AVR? Как и где её использовать?
Re: OSA for AVR
Добавлено: Сб мар 13, 2010 15:00:38
dosikus
AI_Disable писал(а):Просветите, зачем нужна ОС для AVR? Как и где её использовать?
Здесь примеры для PIC
http://wiki.pic24.ru/doku.php/osa/ref/examples/intro
Думается легко перенесутся и на AVR .
Наверное и без обьяснений ясно , что без OSA такое состряпать затруднительно будет?
Программа генерирует 4-канальную мелодию, используя 8-разрядный ШИМ с частотой 78 КГц. Мелодия играется четырьмя инструментами: басс, скрипка и 2 гитары (конечно, названия условны, т.к. звуки не очень похожи на настоящие инструменты). Каждый канал может быть включен или выключен с помощью переключателей.
Ну или это - видео игра на VGA мониторе
http://wiki.pic24.ru/doku.php/osa/artic ... а_на_pic18
Re:
Добавлено: Сб мар 13, 2010 16:25:15
foxit
testerplus писал(а):foxit писал(а):при компиляции выдает
Проверил, у меня собирается. AVR Studio 4.17, WinAVR 20090313, osa располаается в корне C:. Судя по первой строчке, он не может найти файл osa.h.
Проверьте пути (меню "poject/configutation options", вкладка "Include directories"). Должны быть прописаны два пути: "..\.." (путь к osa.c) и "." (путь к текущей папке).
Выложи, пожалуйста, сюда проект.
Ну не компилируется и все

Re: Re:
Добавлено: Сб мар 13, 2010 20:46:25
testerplus
foxit писал(а):testerplus писал(а):Проверил, у меня собирается. AVR Studio 4.17, WinAVR 20090313, osa располаается в корне C:. Судя по первой строчке, он не может найти файл osa.h.
Проверьте пути (меню "poject/configutation options", вкладка "Include directories"). Должны быть прописаны два пути: "..\.." (путь к osa.c) и "." (путь к текущей папке).
Выложи, пожалуйста, сюда проект.
Ну не компилируется и все

Проект (правда, уже под avrstudio 4.18) прилагается (разархивировать в osa\example).
Если не получится, то сделаем так:
1. Из папки osa\example\winavr удаляем все, кроме lights_winavr.c и osacfg.h
2. Открываем AVR Studio
3. Project\New project
4. Project type: AVR GCC; Project name: lights_winavr; Initial file: lights_winavr.c; Location: c:\osa\example\winavr, давим Next
5. выбираем контроллер (в моих примерах AT90S4433), давим Finish
6. В project Manager правой кнопкой мышки на имени проекта и во вспываюещем меню выбрать "Add existing file", в открывшемся окне выбрать файл "c:\osa\osa.c" и нажать OK
7. Открыть Project\Configuration options, вкладку "include directories". Вводим два пути: c:\osa и c:\osa\example\winavr, давим OK
8. Жмем F7 - запускаем сборку.
Re: OSA for AVR
Добавлено: Вс мар 14, 2010 00:09:08
foxit
Спасибо. Все получилось.
Что такое Утилита конфигурирования проектов?
Для чего она и как ей пользоваться?
Re: OSA for AVR
Добавлено: Вс мар 14, 2010 00:58:36
testerplus
foxit писал(а):Что такое Утилита конфигурирования проектов?
Для чего она и как ей пользоваться?
OSA изначально была спроектирована для малоресурсных контроллеров, при работе с которыми ведется борьба за каждый байт. Поэтому она сделана гибкой в настройке и позволяет отключать все ненужное (вернее - включать только нужное). Эта настройка для каждого проекта делается отдельно и хранится в файле (
osacfg.h). В него прописываются константы, задающие режим работы ОС, набор используемых сервисов, разрядности системных данных и т.д. Таких констант больше тридцати. Чтобы не париться с оформлением osacfg.h и не запоминать все эти константы, сделана утилита
osacfg_tool, которая позволяет редактировать файл osacfg.h в установкой галочек, циферок и т.д.
Пользоваться ей очень просто: устанавливаем ее на компьютер, запускаем и выбираем файл для редактирования.
Re: OSA for AVR
Добавлено: Вс мар 14, 2010 15:49:57
foxit
Даешь еще примеров для AVR!
Re: OSA for AVR
Добавлено: Вс мар 14, 2010 18:32:24
testerplus
foxit писал(а):Даешь еще примеров для AVR!
Подкиньте идею, чтобы пример был:
1. Интересен, чтобы пользователи обратили внимание.
2. Уникален, чтобы мне его писать было не скучно.
3. Прост, чтобы любой новичок мог на коленке собрать.
А просто "пример ради примера" (вроде нажал кнопку -> на экране "hello!") тоскливо. Можете сами написать пример, а я размещу на сайте. Два условия: он должен быть рабочий и должен быть прилично оформлен.
(Кстати, рекомендую
обновиться: в WinAVR обнаружена ошибка (особенность, если хотите), которая не позволяет использовать кооперативный планировщик. Единственный выход - отключение оптимизации; ошибку опишу чуть позже).
Re: OSA for AVR
Добавлено: Пн мар 15, 2010 07:34:36
foxit
надо подумать.
Re: OSA for AVR
Добавлено: Пн мар 15, 2010 09:51:20
ARV
testerplus писал(а):foxit писал(а):Даешь еще примеров для AVR!
Подкиньте идею, чтобы пример был:
1. Интересен, чтобы пользователи обратили внимание.
2. Уникален, чтобы мне его писать было не скучно.
3. Прост, чтобы любой новичок мог на коленке собрать.
дело в том, что для "младших" AVR с объемом FLASH несколько килобайт любой проект достаточно легко делается и без ОС. а камушки с большим FLASH уже кусаются по цене и в монтаже новичков не радуют

ОС для статических задач - штука достаточно сомнительная, хотя определенное удобство придает.
на мой вопрос о "реальности времени" никто так и не ответил. я так понимаю, это передергивание в стиле а-ля-Microsoft: это у них вплоть до WindowsXP все ОС-ы назывались "многозадачными", хотя не то что реальным временем, а даже нормальной многозадачностью там пахло очень слабо...
чтобы сделать окончательный вывод об эффективности от применения ОС, надо решить какую-то проблему двумя способами - с ОС и без нее, а затем сравнить результат по скорострельности, объему кода и качеству исходного текста. первые два критерия важны всегда, причем для маленьких AVR второй важнее пожалуй, а третий выходит на первый план в проектах повышенной сложности для больших камней.
труд тестирования - нелегкий труд, кто возьмется ради интереса за него? рекомендую автору ОС собрать и опубликовать свои примеры (тот же клавишный синтезатор) без применения ОС и продемонстрировать миру результат. это будет вполне убедительно говорить или в пользу ОС, или против нее.
Re: OSA for AVR
Добавлено: Пн мар 15, 2010 10:48:19
testerplus
ARV писал(а):на мой вопрос о "реальности времени" никто так и не ответил
Скиньте мне свой е-мейл на testerplus собачка mail.ru, предлагаю полемику о терминологии, полезности/вреде РТОС (бывает и так, и так) и пр. перенести в мейл. Мы с Вами сходимся в понимании сути, но расходимся в понимании мотивации.
Я писал как-то
статью об использовании OSA, во введении я изложил свою точку зрения на использование ОС в малоресурсных контроллерах.
Re: OSA for AVR
Добавлено: Пн мар 15, 2010 10:53:54
ARV
я не стремлюсь к полемике

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