|
Многозадачность на AVR, Возможно ли такое? |
|
|
|
Jul 3 2006, 15:11
|

Частый гость
 
Группа: Свой
Сообщений: 175
Регистрация: 26-01-06
Из: Sevastopol
Пользователь №: 13 664

|
Цитата(IgorKossak @ Jul 3 2006, 15:55)  Или возьмите готовую scmRTOS от нашего уважаемого dxp и не мучайтесь долго. Это для принудительного переключения задач (красиво, но ресурсоемко). Как альтернатива, jacos - при определенном внимании к программированию задач позволяет очень эффективно реализовать псевдопараллельное исполнение независимых задач и обмен данными между ними. Сам в свое время попробовал - очень понравилось. Очень подробное описание (на русском языке) с множеством примеров. Хороша именно отличной оптимизацией под ряд контроллеров (в т.ч. AVR, PIC, MSP430).
|
|
|
|
|
Jul 6 2006, 03:01
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Цитата(AVR @ Jul 6 2006, 03:27)  Цитата(osnwt @ Jul 3 2006, 19:11)  Как альтернатива, jacos - при определенном внимании к программированию задач позволяет очень эффективно реализовать псевдопараллельное исполнение независимых задач и обмен данными между ними. Сам в свое время попробовал - очень понравилось. Очень подробное описание (на русском языке) с множеством примеров. Хороша именно отличной оптимизацией под ряд контроллеров (в т.ч. AVR, PIC, MSP430). Спасибо за ссылку, очень хорошая штука, примеры хорошие - разобрался в первый же час, ресурсов мало (вроде) кушает. Если есть вермя и желание, не расскажете ли подробнее обо всем?) Примеры задач, запущенных под осью; траблы с программированием, сборкой проекта и прочее? Я думаю многим было бы интересно.
--------------------
Выбор.
|
|
|
|
|
Jul 6 2006, 20:35
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(haker_fox @ Jul 6 2006, 07:01)  Цитата(AVR @ Jul 6 2006, 03:27)  Спасибо за ссылку, очень хорошая штука, примеры хорошие - разобрался в первый же час, ресурсов мало (вроде) кушает.
Если есть вермя и желание, не расскажете ли подробнее обо всем?) Примеры задач, запущенных под осью; траблы с программированием, сборкой проекта и прочее? Я думаю многим было бы интересно. В принципе тут всё подробно расписано: http://jacos.narod.ru/load/jacos_v1070.zipТут и очень хорошее подробное описание, и примеры прилагаются. А для сборки проекта потреюутся библиотеки (под IAR): http://jacos.narod.ru/load/libr_v1070_avr_iar.zipТут куча библиотек, но для проекта потребуется только одна, а как выбрать нужную библиотеку расписано в справке в разделе "библиотеки". А из траблов программирования, то например что первое попалось на глаза это если компилировать с поддержкой функций-сервисов ОС в обработчиках прерываний, то программа почему-то вешается сразу. Также если разрешать работу USARTа и его прерывания в данном потоке, то в нём почему-то невозможно использовать функции OS_Stop_Task и OS_Delay, только OS_Cooperate работает, иначе программа вешается...
--------------------
|
|
|
|
|
Jul 6 2006, 21:30
|

Частый гость
 
Группа: Свой
Сообщений: 175
Регистрация: 26-01-06
Из: Sevastopol
Пользователь №: 13 664

|
Цитата(AVR @ Jul 6 2006, 23:35)  А из траблов программирования, то например что первое попалось на глаза это если компилировать с поддержкой функций-сервисов ОС в обработчиках прерываний, то программа почему-то вешается сразу. Напомню, что для поддержки сервисов в прерываниях нужно: - использовать соответствующую версию библиотеки (с буквой i); - разрешить нужные сервисы в явном виде в файле конфигурации; - использовать в прерываниях версии сервисов, для того предназначенных (с окончанием на I). Иначе будет что угодно, в том числе, и зависы. Вообще, если можно обойтись в прерывании без вызова сервисов (или вообще других функций, особенно определенных в других файлах), то лучше так и делать. Иначе мы получим сохранение множества регистров (так как в общем случае компилятор имеет право использовать половину регистров в других функциях). В моей ситуации, когда мне было важно отрабатывать относительно точное время для одной из задач по прерыванию таймера, я в прерывании просто взводил битовый флаг в регистровой переменной, а снаружи его проверял (в основном цикле планировщика) и уже оттуда вызывал сервис OS. Получалось, что я, практически, из прерывания стартовал внешнюю задачу (которая получала при этом наивысший приоритет по определению из документации), и ничего не терял (так как у нас допустима погрешность в пределах кванта времени - раньше мы все равно не можем гарантировать вызов задачи.
|
|
|
|
|
Jul 15 2006, 14:01
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672

|
Цитата(AVR @ Jul 15 2006, 09:26)  Нашел внизу страницы ссылку http://www.pumpkininc.com/Просмотрел описание предлагаемой там ОС и нашел разительное сходство с jacOS. Только стоит там она $750-1250, а jacOS бесплатно. Отсюда вопрос - кто с кого слизал?  Никто ни у кого! Таких систвм множество и все они друга на друга похожи.
--------------------
|
|
|
|
|
Jul 15 2006, 20:10
|
Участник

Группа: Новичок
Сообщений: 44
Регистрация: 2-05-06
Пользователь №: 16 710

|
Цитата(osnwt @ Jul 15 2006, 23:05)  В свое время на телесистемах обсуждался этот вопрос. Автор jacos и не скрывал, что начинал он с этой системы. Это? http://www.telesys.ru/wwwboards/mcontrol/7...ges/98942.shtmlОтправлено A.S. 04 сентября 2004 г. 15:07 "Могу просветить историю jacOS." "jacOS это переделанный jaRTOS. jaRTOSом пользовался стародавние времена на примитивной советской электронике MC1402. Сначала под DOS, потом ПЗУ. Спецом для меня все писалось моим другом aka Perec. А под PIC я пытался использовать глюкодром под названием Salvo. Был большой проект и ближе концу выяснилось, что Salvo работать не будет. Пока я ковырялся с Salvo, за два месяца jaRTOS был переделан в jacOS. Самой большой потерей стали двусвязанные списки, динамическое создание задач, событий и таймеров. Самым большим приобритением стали таймауты и бинарные семафоры (влияние Salvo). Тем что получилось я очень доволен, портировано на все, что использую. На злопыхателей-импотентов Perecу начхать, проект то некоммерческий. Мне тем более начхать. Есть несколько человек, которые пользуются, обмениваемся наработками, иногда пиво вместе пьем."Влияние salvo на jacos не отрицается.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|