Если кому интересно, подготовил описание ошибки: http://wiki.pic24.ru/doku.php/osa/articles/winavr_bugtesterplus писал(а):(Кстати, рекомендую обновиться: в WinAVR обнаружена ошибка (особенность, если хотите), которая не позволяет использовать кооперативный планировщик. Единственный выход - отключение оптимизации; ошибку опишу чуть позже).
OSA for AVR
- Реклама
Подкиньте идею, чтобы пример был:testerplus писал(а):foxit писал(а):Даешь еще примеров для AVR!
1. Интересен, чтобы пользователи обратили внимание.
2. Уникален, чтобы мне его писать было не скучно.
3. Прост, чтобы любой новичок мог на коленке собрать.
Есть на радиокоте статья FM STEREO тюнер с цифровым управлением [url]http://radiokot.ru/circuit/analog/receiv_transmit/12
авторы Dt-Andrew и ChipManiac
Ссылка на обсуждение на форуме [url]http://radiokot.ru/forum/viewtopic.php?f=25&t=19974
На мой взгляд очень интересный девайс.
Программа МК написана на Си.
Интересно увидеть реализацию с использованием Осы.
Думаю многим будет интересно:
проект легок в повторении
Родная и альтернативная программы дадут оценить использование Осы.
Посмотрел я исходники. Довольно громоздкая программа, я не располагаю временем, чтобы ее перевести на OSA. Хотя сама задача довольно красиво уложится в парадигму ОСРВ. Если у Вас самого будет желание заняться ее "портированием" под OSA, я окажу помощь.foxit писал(а):Есть на радиокоте статья FM STEREO тюнер с цифровым управлением http://radiokot.ru/circuit/analog/receiv_transmit/12
авторы Dt-Andrew и ChipManiac
вы лучше найдите время разобраться с проблемой OSA+Оптимизатор AVR-GCC, а то ценность порта на AVR практически нулевая из-за этого (без оптимизации WinAVR просто нереально использовать). Если проблема решится - я, скорее всего, стану примерять вашу осу на себяtesterplus писал(а): я не располагаю временем, чтобы ее перевести на OSA.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Сейчас готовлю письмо разработчикам, может они подскажут какой-то выход.ARV писал(а):вы лучше найдите время разобраться с проблемой OSA+Оптимизатор AVR-GCC
- Реклама
Однако же 
Проверил это дело в
WinAVR-20060421 (avr-gcc 3.4.6)
WinAVR-20071221 (avr-gcc 4.2.2)
WinAVR-20090313 (avr-gcc 4.3.2)
WinAVR-20100110 (avr-gcc 4.3.3)
Klen-20091202 (avr-gcc 4.4.0)
Klen-20100228 (avr-gcc 4.5.0)
Нет ошибки только в первых двух. Причём, если уж на то пошло, это не только ошибка, но и дурь - оптимизатор "пермудрил", на самом деле нужды заводить переменную на стеке и не было.
И в первых двух, возможно, в других условиях (когда действительно понадобится переменная на стеке) ошибка опять вылезет.
Ох что-то мне это всё не нравится...
Проверил это дело в
WinAVR-20060421 (avr-gcc 3.4.6)
WinAVR-20071221 (avr-gcc 4.2.2)
WinAVR-20090313 (avr-gcc 4.3.2)
WinAVR-20100110 (avr-gcc 4.3.3)
Klen-20091202 (avr-gcc 4.4.0)
Klen-20100228 (avr-gcc 4.5.0)
Нет ошибки только в первых двух. Причём, если уж на то пошло, это не только ошибка, но и дурь - оптимизатор "пермудрил", на самом деле нужды заводить переменную на стеке и не было.
И в первых двух, возможно, в других условиях (когда действительно понадобится переменная на стеке) ошибка опять вылезет.
Ох что-то мне это всё не нравится...
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Оказывается, в setjmp.h функция setjmp() и не помечена аттрибутом returns_twice
Но его добавление туда ни капли не помогает.
Паршиво...
Но его добавление туда ни капли не помогает.
Паршиво...
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Спасибо, что проверили на разных версиях. Про 20071221 мне уже писали, но Вы правильно заметили насчет того, что в другом случае переменная с стеке может появиться.avreal писал(а):Однако же
Проверил это дело в
WinAVR-20060421 (avr-gcc 3.4.6)
WinAVR-20071221 (avr-gcc 4.2.2)
WinAVR-20090313 (avr-gcc 4.3.2)
WinAVR-20100110 (avr-gcc 4.3.3)
Klen-20091202 (avr-gcc 4.4.0)
Klen-20100228 (avr-gcc 4.5.0)
Это тоже странно, ведь в документации (в описании атрибута returns_twice) особо отмечено, что именно эта функция является примером его применения. Может, она в самой библиотеке как-то помечена. Просто когда я подменял вызов setjmp на вызов своей функции по дизаассемблеру было видно, что ошибка проявляется только тогда, когда функция помечена атрибутом returns_twice.avreal писал(а):Оказывается, в setjmp.h функция setjmp() и не помечена аттрибутом returns_twice
Поддерживаю AVR в сомнениях в части RTOS. Сейчас реализую проект имеющий целый спектр разнородных задач. Изначально тоже думал использовать RTOS благо есть готовые примеры в том же журнале Радио, однако после тщательного анализа оказалось, что применение RTOS для имеющихся ресурсов у AVR нерациально т.к. она пожирает много ресурсов. В результате за счет использования различных прерываний и адаптивной настройки таймеров по внешним условиям удалось реализовать одновременные прием/передачу данных с аппаратного UART и с двух програмных портов + работа с SPI flash памятью. Проект выжимает практически все ресурсы из Mega164. Нетрудно понять, что для более сложного проекта нужно просто перейти на ARM7 соизмеримые по цене с тяжеловсными Mega формата TQFP64 и более.
Доводилось реализовывать проекты с потоковым приемом/передачей по UART и управлением объектом в реальном времени с использованием ПИ регулятора, также все было реализовано без особых усилий и танцев с бубном за счет аппаратных возможностей AVR.
ИМХО примение RTOS для AVR это демонстрация ВОЗМОЖНОСТИ, а не НЕОБХОМОСТЬ.
Доводилось реализовывать проекты с потоковым приемом/передачей по UART и управлением объектом в реальном времени с использованием ПИ регулятора, также все было реализовано без особых усилий и танцев с бубном за счет аппаратных возможностей AVR.
ИМХО примение RTOS для AVR это демонстрация ВОЗМОЖНОСТИ, а не НЕОБХОМОСТЬ.
Настоящий кот всегда либо голоден,
либо невыспался ...
либо невыспался ...
Нашел вариант решения проблемы. Теперь на WinAVR+OSA можно использовать любой уровень оптимизации (если еще какая гадость не вылезет)ARV писал(а):вы лучше найдите время разобраться с проблемой OSA+Оптимизатор AVR-GCC, а то ценность порта на AVR практически нулевая из-за этого (без оптимизации WinAVR просто нереально использовать).
Версия 100531
- Сообщения: 8
- Зарегистрирован: Вс апр 11, 2010 09:36:18
Написал RTOS для AVR на WinAVR.
Программировать с использованием RTOS значительно проще, хотя система,конечно, ресурсы контроллера кушает.
Работает с любыми Мегами
Если тема интересная выложу текст программы
Программировать с использованием RTOS значительно проще, хотя система,конечно, ресурсы контроллера кушает.
Работает с любыми Мегами
Если тема интересная выложу текст программы
о, еще одна ось нарисоваласьkontroller писал(а):Написал RTOS для AVR на WinAVR.
Программировать с использованием RTOS значительно проще, хотя система,конечно, ресурсы контроллера кушает.
Работает с любыми Мегами
Если тема интересная выложу текст программы
вы сначала расскажите что да как в вашей оси, мы тут послушаем, помозгуем
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Добавлю от себя:...вы сначала расскажите что да как в вашей оси, мы тут послушаем, помозгуем![]()
Особо интересны ее плюсы и минусы в сравнении с уже существующими RTOS. И что послужило толчком к написанию оной.
[color=#0000BF]"Какой тоской душа не сражена - быть твердым заставляют времена"© "Король Лир" У.Шекспир.[/color]
2 ARV и mr.Kirill: при всем уважении к вам, вы не правы в постановке вопроса. Не стоит забывать, что мотивация авторов подобных программ (библиотек) ограничивается жестом "пользуйтесь на здоровье!". Здесь не будет никакой конкурентной борьбы за пользователей, поэтому время на раскрутку тратится только тогда, когда оно есть и когда оно совпадает с желанием. Плохо документированным продуктом будут пользоваться меньше, чем хорошо документированным. Авторы это знают, но документировать или нет, а уж тем более - приводить доказательства преимуществ с подробным описанием всех свойств, это отсается на их усмотрение. Кому надо - сами сравнят и выберут, а если еще и звезды удачно выстроятся, то напишут очерк и выложат на всеобщее обозрение.
2 kontroller: Я бы с интересом заглянул в исходники. Если проект неудачный, то им просто не будут пользоваться, а если удачный, то кто-то и без описания займется (либо уже кинут клич по делу: "давай описание, а то там-то там-то не разобраться")
2 kontroller: Я бы с интересом заглянул в исходники. Если проект неудачный, то им просто не будут пользоваться, а если удачный, то кто-то и без описания займется (либо уже кинут клич по делу: "давай описание, а то там-то там-то не разобраться")
да нормальная постановка вопроса, имхо. одного факта наличия чего-либо недостаточно для привлечения интереса к нему. даже до уровня "а что это тут такое?" недостаточно. как минимум надо сказать что-то типа "эта ось запускается даже на тини2313!" или "в ее состав включены модули поддержки асинхронного приема/передачи по USART" - то есть хоть что-то, что заставит посмотреть. а так "я сделал" - ну и что?
если я скажу, что по утрам пою в душе - много найдется желающих услышать пение? а если я скажу, что пою дуэтом с Анной Семенович? имхо, во втором случае уж наверняка кто-нибудь заинтересуется (как минимум, фотку концерта попросит)
если я скажу, что по утрам пою в душе - много найдется желающих услышать пение? а если я скажу, что пою дуэтом с Анной Семенович? имхо, во втором случае уж наверняка кто-нибудь заинтересуется (как минимум, фотку концерта попросит)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Да нет, сам вопрос правильный и совершенно справедливый. Я говорил именно о постановке в форме требования (больше обращался к Вам, чем к mr.Kirill). Не выложит описание - его творение пройдет мимо; может, ему же хуже, а может, и все равно; а так, не вопросом, но требованием, можно отбить охоту продолжать работу над ОС (даже если он ее ведет совместно с Анной Семенович
).
чтоли и себе написать ОС? 
- Сообщения: 244
- Зарегистрирован: Ср сен 08, 2010 11:42:19
Нафига козе баян.. -иногда проще сделать самому вытесняющий планировщик, с минимально необходимым api, и не натягивать на себя чужой камзол с десятью рукавами...
Захотелось попробовать. Пойдет ли в связке Eclipse + WinAVR? И мне пока непонятно зачем нужны семафоры и флаги, нельзя ли пользоватся просто глобальными переменными (флагами)?
«И всё-таки она вертится!»


