OSA for AVR

Обсуждаем контроллеры компании Atmel.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Уважаемый tester выложил бета версию OSA for AVR

http://wiki.pic24.ru/doku.php/osa/avr

OSA - кооперативная RTOS для микроконтроллеров PIC и AVR (распространяется бесплатно с исходными текстами).
Реклама
Грызет канифоль
Аватара пользователя
Сообщения: 262
Зарегистрирован: Пт ноя 16, 2007 00:40:17
Откуда: Украина

Сообщение foxit »

dosikus писал(а):Уважаемый tester выложил бета версию OSA for AVR

http://wiki.pic24.ru/doku.php/osa/avr

OSA - кооперативная RTOS для микроконтроллеров PIC и AVR (распространяется бесплатно с исходными текстами).
Интересный проект.
Но почему-то не получилось скомпилировать пример.

Да и документацию для AVR не мешало бы довести до ума.
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 130
Зарегистрирован: Пн авг 24, 2009 10:41:16
Откуда: SPb

Сообщение testerplus »

foxit писал(а):Но почему-то не получилось скомпилировать пример.
Что именно не получилось? Проект создан правильно? Попробуйте собрать пример из папки osa\example
foxit писал(а):Да и документацию для AVR не мешало бы довести до ума.
Долгое время OSA работала только с ПИКами, поэтому местами в примерах применяются именно ПИКовские регистры и компиляторы. Но я просмотрел ее всю перед выкладкой, вроде бы сложностей не должно быть. Или я что-то важное упустил?
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 262
Зарегистрирован: Пт ноя 16, 2007 00:40:17
Откуда: Украина

Сообщение 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...
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Аватара пользователя
Сообщения: 130
Зарегистрирован: Пн авг 24, 2009 10:41:16
Откуда: SPb

Сообщение testerplus »

foxit писал(а):при компиляции выдает
Проверил, у меня собирается. AVR Studio 4.17, WinAVR 20090313, osa располаается в корне C:. Судя по первой строчке, он не может найти файл osa.h.

Проверьте пути (меню "poject/configutation options", вкладка "Include directories"). Должны быть прописаны два пути: "..\.." (путь к osa.c) и "." (путь к текущей папке).
Контактная информация:
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18678
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

я только вот никак не пойму: как кооперативная ОС может быть реального времени (RTOS)?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18678
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

да, вот еще что: обратил внимание на фразу в документации к ОС "данная статистика не учитывает тот факт, что некоторые компиляторы в результирующий код не включают не вызываемые функции (это относится к mikroC, CCS, IAR);" - это в информации о занимаемой памяти. так вот, к WinAVR (AVR-GCC) это тоже относится, только необходимо в опциях компилятора добавить -ffunction-sections, а в опциях компоновщика -Wl,-gc-sections

думается, что после этого табличка сравнения занимаемой памяти будет выглядеть не такой удручающей по сравнению с IAR.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 130
Зарегистрирован: Пн авг 24, 2009 10:41:16
Откуда: SPb

Сообщение testerplus »

ARV писал(а):думается, что после этого табличка сравнения занимаемой памяти будет выглядеть не такой удручающей по сравнению с IAR.
Цель этой таблички - не сравнение компиляторов. Это информация для пользователя, чтобы он оценивал, какой контроллер выбирать под свою задачу и под конкретный компилятор. Примечание написано для того, чтобы программист не удивлялся: "Как это? Добавил один вызов, а программа возросла на 100 байт!" (мне бы как раз ключик к IAR'у, чтобы он не выкидывал "лишние" функции, тогда картина будет более правильная).

Код и для IAR и для WinAVR еще будет подвергнут оптимизации (там есть, что ужимать). Так что и скоростные и "емкостные" характеристики будут со временем улучшены для обоих компиляторов.
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб

Сообщение AI_Disable »

Просветите, зачем нужна ОС для AVR? Как и где её использовать?
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение 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
Грызет канифоль
Аватара пользователя
Сообщения: 262
Зарегистрирован: Пт ноя 16, 2007 00:40:17
Откуда: Украина
Re:

Сообщение foxit »

testerplus писал(а):
foxit писал(а):при компиляции выдает
Проверил, у меня собирается. AVR Studio 4.17, WinAVR 20090313, osa располаается в корне C:. Судя по первой строчке, он не может найти файл osa.h.

Проверьте пути (меню "poject/configutation options", вкладка "Include directories"). Должны быть прописаны два пути: "..\.." (путь к osa.c) и "." (путь к текущей папке).

Выложи, пожалуйста, сюда проект.
Ну не компилируется и все :dont_know:
Встал на лапы
Аватара пользователя
Сообщения: 130
Зарегистрирован: Пн авг 24, 2009 10:41:16
Откуда: SPb

Сообщение testerplus »

foxit писал(а):
testerplus писал(а):Проверил, у меня собирается. AVR Studio 4.17, WinAVR 20090313, osa располаается в корне C:. Судя по первой строчке, он не может найти файл osa.h.

Проверьте пути (меню "poject/configutation options", вкладка "Include directories"). Должны быть прописаны два пути: "..\.." (путь к osa.c) и "." (путь к текущей папке).

Выложи, пожалуйста, сюда проект.
Ну не компилируется и все :dont_know:
Проект (правда, уже под 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 - запускаем сборку.
Вложения
winavr.rar
(34 КБ) 294 скачивания
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 262
Зарегистрирован: Пт ноя 16, 2007 00:40:17
Откуда: Украина

Сообщение foxit »

Спасибо. Все получилось.
Что такое Утилита конфигурирования проектов?
Для чего она и как ей пользоваться?
Встал на лапы
Аватара пользователя
Сообщения: 130
Зарегистрирован: Пн авг 24, 2009 10:41:16
Откуда: SPb

Сообщение testerplus »

foxit писал(а):Что такое Утилита конфигурирования проектов?
Для чего она и как ей пользоваться?
OSA изначально была спроектирована для малоресурсных контроллеров, при работе с которыми ведется борьба за каждый байт. Поэтому она сделана гибкой в настройке и позволяет отключать все ненужное (вернее - включать только нужное). Эта настройка для каждого проекта делается отдельно и хранится в файле (osacfg.h). В него прописываются константы, задающие режим работы ОС, набор используемых сервисов, разрядности системных данных и т.д. Таких констант больше тридцати. Чтобы не париться с оформлением osacfg.h и не запоминать все эти константы, сделана утилита osacfg_tool, которая позволяет редактировать файл osacfg.h в установкой галочек, циферок и т.д.

Пользоваться ей очень просто: устанавливаем ее на компьютер, запускаем и выбираем файл для редактирования.
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 262
Зарегистрирован: Пт ноя 16, 2007 00:40:17
Откуда: Украина

Сообщение foxit »

Даешь еще примеров для AVR!
Встал на лапы
Аватара пользователя
Сообщения: 130
Зарегистрирован: Пн авг 24, 2009 10:41:16
Откуда: SPb

Сообщение testerplus »

foxit писал(а):Даешь еще примеров для AVR!
Подкиньте идею, чтобы пример был:
1. Интересен, чтобы пользователи обратили внимание.
2. Уникален, чтобы мне его писать было не скучно.
3. Прост, чтобы любой новичок мог на коленке собрать.

А просто "пример ради примера" (вроде нажал кнопку -> на экране "hello!") тоскливо. Можете сами написать пример, а я размещу на сайте. Два условия: он должен быть рабочий и должен быть прилично оформлен.

(Кстати, рекомендую обновиться: в WinAVR обнаружена ошибка (особенность, если хотите), которая не позволяет использовать кооперативный планировщик. Единственный выход - отключение оптимизации; ошибку опишу чуть позже).
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 262
Зарегистрирован: Пт ноя 16, 2007 00:40:17
Откуда: Украина

Сообщение foxit »

надо подумать.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18678
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

testerplus писал(а):
foxit писал(а):Даешь еще примеров для AVR!
Подкиньте идею, чтобы пример был:
1. Интересен, чтобы пользователи обратили внимание.
2. Уникален, чтобы мне его писать было не скучно.
3. Прост, чтобы любой новичок мог на коленке собрать.
дело в том, что для "младших" AVR с объемом FLASH несколько килобайт любой проект достаточно легко делается и без ОС. а камушки с большим FLASH уже кусаются по цене и в монтаже новичков не радуют :) ОС для статических задач - штука достаточно сомнительная, хотя определенное удобство придает.

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

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

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

Мой уютный бложик... заходите!
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 130
Зарегистрирован: Пн авг 24, 2009 10:41:16
Откуда: SPb

Сообщение testerplus »

ARV писал(а):на мой вопрос о "реальности времени" никто так и не ответил
Скиньте мне свой е-мейл на testerplus собачка mail.ru, предлагаю полемику о терминологии, полезности/вреде РТОС (бывает и так, и так) и пр. перенести в мейл. Мы с Вами сходимся в понимании сути, но расходимся в понимании мотивации.

Я писал как-то статью об использовании OSA, во введении я изложил свою точку зрения на использование ОС в малоресурсных контроллерах.
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18678
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Ответить

Вернуться в «AVR»