реклама на сайте
подробности

 
 
> uC/OS-II, Одна из популярных РТОС, все о ней
one_man_show
сообщение Feb 8 2005, 15:52
Сообщение #1


Помогу, чем смогу
******

Группа: Админы
Сообщений: 2 786
Регистрация: 28-05-04
Из: Москва
Пользователь №: 25



Здесь можно размещять инфу, касательно uC/OS-II. Ранее информация была разбросана по форумам, так как пользователей указанной РТОС оказалось достаточно много, предлагаю всё лить сюда.
Уважаемые коллеги, прошу поделиться по теме ссылками, доками и примерами

Вот исходная точка, где первичная информация по теме и бесплатные порты
http://www.ucos-ii.com/


--------------------
С уважением,
Ваган Саруханов
Проекты|Форум|Facebook|Linkedin
Go to the top of the page
 
+Quote Post
14 страниц V  « < 4 5 6 7 8 > »   
Start new topic
Ответов (75 - 89)
Michael Seleznev
сообщение Feb 2 2007, 16:45
Сообщение #76





Группа: Новичок
Сообщений: 1
Регистрация: 2-02-07
Пользователь №: 24 983



Здравствуйте!

Подскажите, пожалуйста, человеку который только знакомится с uC-OS, какими компиляторами можно собрать проект, использузщий эту ОС под ARM? В первую очередь интересует насколько подходит GCC.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Feb 5 2007, 19:22
Сообщение #77


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Michael Seleznev @ Feb 2 2007, 15:45) *
Здравствуйте!

Подскажите, пожалуйста, человеку который только знакомится с uC-OS, какими компиляторами можно собрать проект, использузщий эту ОС под ARM? В первую очередь интересует насколько подходит GCC.

Большинство портов этой ОС ориентированы под IAR и GCC.
Go to the top of the page
 
+Quote Post
Metallik
сообщение Feb 7 2007, 00:45
Сообщение #78





Группа: Новичок
Сообщений: 14
Регистрация: 6-02-07
Из: Тверь
Пользователь №: 25 128



Доброе время суток! Совсем недавно начал заниматься программированием МК, почти сразу (толком не разобравшись) подсел на uCOS: скачал ядро, порт для ARM, пару готовых проектов под IAR-ом, опираясь на них "собрал" ядро с портом, создал пару простеньких задач,- работает! Вот теперь хочется понять: а че я сделал? Пожалуйста, кто общался с данной ОС, подскажите:
1. Как корректно инициализировать таймер, необходимый для работы uCOS (по книге должен тикать с частотой 10- 100 Гц), не пойму взаимосвязь данных тиков операционки и, собственно, квареца-> Как точно определить время выполнения конкретной задачи?
2. Почему (в скачанных проектах) между OSInit() и OSStart люди создают одну задачу, а потом, уже из нее все остальные? По manual-у uCOS-а обязательно нужно создать ХОТЯ БЫ ОДНУ, но не одну единственную. Где тайный смысл?
3. В чем разница в использовании семафоров и динамическим управлением приоритетов?
Буду очень признателен за пояснения!
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Feb 7 2007, 07:09
Сообщение #79


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(Metallik @ Feb 7 2007, 02:45) *
Доброе время суток! Совсем недавно начал заниматься программированием МК, почти сразу (толком не разобравшись) подсел на uCOS: скачал ядро, порт для ARM, пару готовых проектов под IAR-ом, опираясь на них "собрал" ядро с портом, создал пару простеньких задач,- работает! Вот теперь хочется понять: а че я сделал? Пожалуйста, кто общался с данной ОС, подскажите:
1. Как корректно инициализировать таймер, необходимый для работы uCOS (по книге должен тикать с частотой 10- 100 Гц), не пойму взаимосвязь данных тиков операционки и, собственно, квареца->

Связь такая:
кварц задает тактовую uC. В зависимости от наличия PLL и его настроек эта тактовая "as is" или умноженная/поделенная на что-то поступает на тактирование ядра и периферии. Тактовая периферии тактирует аппаратный таймер, который вы настраиваете на генерацию периодичесикх прерываний с определенной частотой. Эти прерывания можно использовать для тиков ОС.
То есть алгоритм: определяете, какой период тиков ОС вам в вашей системе необходим, выбираете таймер и настраиваете его на этот период (конкретные значения, записанные в счетчики таймера будут зависеть от частоты кварца в конечном итоге), вызываете из прерывания таймера функцию тиков ОС
OSTimeTick()

Цитата
Как точно определить время выполнения конкретной задачи?

Вопрос не понятен. В контексте embedded имеет смысл говорить о % процессорного времени, который среднестатистически необходим для выполнения задаче. Это можно вроде сделать при помощи встроенной в uCOS статистики. А проще банально дергая ноги порта и наблюдая скопом.

Цитата
2. Почему (в скачанных проектах) между OSInit() и OSStart люди создают одну задачу, а потом, уже из нее все остальные? По manual-у uCOS-а обязательно нужно создать ХОТЯ БЫ ОДНУ, но не одну единственную. Где тайный смысл?

Тайный смысл здесь в том, что если хочется использовать задачу статистики, то нужно создать одну задачу, запустить ОС с ней и из нее вызвать OSStatInit()
Подробно об этом расписано в книге по uCOS.
Если задача статистики не нужна, то можно создавать скопом все задачи а потом запускать ОС.

Цитата
3. В чем разница в использовании семафоров и динамическим управлением приоритетов?

Да как бы 2 совершенно разных понятия.
Или это вопрос из серии "чем каша от пионера отличается?" smile.gif))


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
Metallik
сообщение Feb 7 2007, 23:05
Сообщение #80





Группа: Новичок
Сообщений: 14
Регистрация: 6-02-07
Из: Тверь
Пользователь №: 25 128



Спасибо большое! А про семафоры я для себя понял так: приоритеты - регулируем порядок следования задач, семафоры - регулируют порядок доступа задач к каким-либо данным (общим).
Go to the top of the page
 
+Quote Post
Alex B._
сообщение Feb 8 2007, 10:16
Сообщение #81


Знающий
****

Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274



>> приоритеты - регулируем порядок следования задач
Порядок следования задач - вообще такого понятия быть не должно.

>> семафоры - регулируют порядок доступа задач
>> к каким-либо данным (общим).
Это делают мютексы (в общем-то тоже семафоры, но со своими свойствами)

Вообще рекомендую книжку почитать - там про основные спрособы взаимодействия и синхронизации задач доступно расписано:
http://www.pic24.ru/upload/RTC.rar (10 MB)
Go to the top of the page
 
+Quote Post
Metallik
сообщение Feb 8 2007, 22:12
Сообщение #82





Группа: Новичок
Сообщений: 14
Регистрация: 6-02-07
Из: Тверь
Пользователь №: 25 128



Спасибо за ссылку! Буду изучать, может появятся более умные вопросы. twak.gif
Go to the top of the page
 
+Quote Post
Metallik
сообщение Feb 8 2007, 23:10
Сообщение #83





Группа: Новичок
Сообщений: 14
Регистрация: 6-02-07
Из: Тверь
Пользователь №: 25 128



Да, я наберусь наглости, и все-таки спрошу: А может есть у кого такая штука "uCOS-II-KA-CSpy"? Я нашел, но старая версия, работает только под IAR-ом 3.х, а под 4. - не хотит. Для "наглядности" не помешала бы! Может кто подскажет пути до'бычи данного чуда!? Или, может быть, способ модификации старой версии под IAR4.30?
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Feb 9 2007, 10:30
Сообщение #84


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Metallik @ Feb 8 2007, 22:10) *
Да, я наберусь наглости, и все-таки спрошу: А может есть у кого такая штука "uCOS-II-KA-CSpy"? Я нашел, но старая версия, работает только под IAR-ом 3.х, а под 4. - не хотит. Для "наглядности" не помешала бы! Может кто подскажет пути до'бычи данного чуда!? Или, может быть, способ модификации старой версии под IAR4.30?

Новые версии IAR EW уже содержат в себе этот плагин.
См. Project->Options...->Plugins->uC/OS-II
Go to the top of the page
 
+Quote Post
Metallik
сообщение Feb 10 2007, 00:19
Сообщение #85





Группа: Новичок
Сообщений: 14
Регистрация: 6-02-07
Из: Тверь
Пользователь №: 25 128



Хорошо, спасибо. Буду искать новый IAR. А вот 4.30 - в этом отношении попадает в раздел "старый". Возможно 4.40???, попробую.
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Feb 12 2007, 07:16
Сообщение #86


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(Metallik @ Feb 10 2007, 02:19) *
Хорошо, спасибо. Буду искать новый IAR. А вот 4.30 - в этом отношении попадает в раздел "старый".

Да, в нем этого плагина еще не было


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
Metallik
сообщение Feb 17 2007, 13:05
Сообщение #87





Группа: Новичок
Сообщений: 14
Регистрация: 6-02-07
Из: Тверь
Пользователь №: 25 128



Доброе время суток! Небходима косультация... Возможно кто-нибудь работал с микросишными GUями!? Мне удалось подцепить эти GUI к своему "приложению": по шаблону в примерах, вроде как, удалось написать свой "драйвер" к LCD - фунциклирует, - все стандартные средства (типа линию нарисовать, полигон, текст со своим шрифтом и т.д.) отрабатывают. Хотел задействовать Windows Manager (WM) с последующей возможностью размещения всяких Widget-ов. Пробовал создавать разные widget-ы (буквально, копируя, куски кода из примеров), а в ответ тишина, приложение виснет наглухо (уже в железе), причем пробовал как с Осью, так и без нее. Может кто-нибудь сталкивался с подобной проблемой? Поделитесь пожалуйста! Заранее благодарен!
Go to the top of the page
 
+Quote Post
pvp
сообщение Feb 22 2007, 18:34
Сообщение #88


Участник
*

Группа: Новичок
Сообщений: 18
Регистрация: 16-02-07
Пользователь №: 25 414



Свершилось!
Прикрутил uCOS-VIEW V1.10 к uCOS 2.83 на LPC-2148-E (платка от IAR/OLIMEX)!
Пришлось кой-чего дописать ручонками и усё заработало. УРА!
Go to the top of the page
 
+Quote Post
Metallik
сообщение Mar 17 2007, 18:26
Сообщение #89





Группа: Новичок
Сообщений: 14
Регистрация: 6-02-07
Из: Тверь
Пользователь №: 25 128



Доброе время суток! Многоуважаемые, кто-нибудь работал с менеджером таймеров в ucos-е? Сейчас я уперся в недостаток таймеров, решил разузнать что енто такое (timer manager?), сперва разузнав немного - обрадовался, но как далее выяснилось можно "создавать" таймеры с периодами, непревышающими перид тика самой операционки. Может я не прав? А операционка тикает 10-100 раз в сек (по мануалу, у меня 100), а мне нужны микросекунды!!! Подскажите, пожалуйста, как выйти из данной ситуации? И вообще может я могу периодически "отбирать" таймер у ОС? - ведь он мне требуется в критической секции кода, где я все равно запрещаю все прерывания средствами ОС (необходимы точные выдержки во времени). Буду признателен за любой совет!
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Mar 19 2007, 06:50
Сообщение #90


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(Metallik @ Mar 17 2007, 20:26) *
Доброе время суток! Многоуважаемые, кто-нибудь работал с менеджером таймеров в ucos-е? Сейчас я уперся в недостаток таймеров, решил разузнать что енто такое (timer manager?), сперва разузнав немного - обрадовался, но как далее выяснилось можно "создавать" таймеры с периодами, непревышающими перид тика самой операционки. Может я не прав? А операционка тикает 10-100 раз в сек (по мануалу, у меня 100), а мне нужны микросекунды!!! Подскажите, пожалуйста, как выйти из данной ситуации? И вообще может я могу периодически "отбирать" таймер у ОС? - ведь он мне требуется в критической секции кода, где я все равно запрещаю все прерывания средствами ОС (необходимы точные выдержки во времени). Буду признателен за любой совет!


Что-то я не помню менеджера таймеров, может в новых версиях ОС он появился, а у меня более старая.
Но, количество тиков ОС в секунду обусловлено в основном фактором загрузки процессора на обработку этих тиков. Если процессор быстрый, то количество тиков ОС в секунду можно и увеличить. Если взять к примеру ARM7 на 60МГц тактовой ядра, то можно вполне делать тики ОС с периодом 100 мкс, если это действительно необходимо. Можно попробовать даже 50 мкс, но нужно смотреть загрузку процессора. Если же вам нужны именно микросекунды, то тут необходимо использовать отдельный аппаратный таймер.
По поводу отбирания таймера у ОС. Так вы должны не отбирать таймер, а всего навсего периодически вызывать OSTimeTick(). Как вы это сделаете - ваше лично дело.
К примеру, вы можете запрограммировать таймер на 10 мкс, делать в прерывании все, что вам нужно, а дополнительно каждое 1000-е прерывание вызывать OSTimeTick().


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post

14 страниц V  « < 4 5 6 7 8 > » 
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 00:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01515 секунд с 7
ELECTRONIX ©2004-2016