Jump to content

    
Sign in to follow this  
one_man_show

uC/OS-II

Recommended Posts

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

Уважаемые коллеги, прошу поделиться по теме ссылками, доками и примерами

 

Вот исходная точка, где первичная информация по теме и бесплатные порты

http://www.ucos-ii.com/

Share this post


Link to post
Share on other sites

У нас на фирме uC/OS портировали на MSP430, M16C, ST10, ARM

Для AVR вот только использовали OS из Ethernut-а, да на PIC-и примеривали SALVO да не нашли практического смысла.

Share this post


Link to post
Share on other sites

Вот ряд ссылок, где были замечены наши коллеги в контексте указанной РТОС :biggrin:

IAR 4.11A uCOS-II CSpy support, Проблемы у установкой

uCOS-II LPC 2124 port, Порт для 2124 (из 2129)

RTOS uC / OS - II, ARM port

uC/OS-II вопрос?

Share this post


Link to post
Share on other sites

У меня вопросы к матерым uC/OS-программистам:

"Кто каким способом решает задачу организации потока STDIO?"

 

К примеру, можно отправлять/принимать сообщения из putch()/в в getch() из/в UART. При этом ресурс UART разделяется с помощью мютекса, естественно.

 

А вот для USB обмен по одному байту смотрится не очень привлекательно.

Организация же пакетного обмена требует подхода.

Например можно использовать sprintf и отправлять сообщение драйверу.

Или же реализовать механизм накопления информации в пакеты по признаку заполнения или <CR>, и только потом передавать сообщение драйверу USB.

 

"В uC/GUI есть что поизучать по существу первого вопроса?"

Каюсь, документацию на ГУИ не читал, потому что не имею.

Share this post


Link to post
Share on other sites

Я переопределял функции _read и _write, а putch и getch оставляю в покое.

Определял глобальную переменную определяющую физический канал для _read и _write.

_write выделяет память для передаваемого блока, копирует его туда и посылает в очередь для данного физического канала. Если очередь заполнена или памяти нет, то ожидание до некоторого предела после чего аборт. Физический канал обслуживаеться в отдельной задаче.

_read соответственно ждет mbox-а от задачи физического канала.

Таким образом printf одинаково работает как с TCP/IP так и с UART-ом.

Share this post


Link to post
Share on other sites

Использую уже несколько лет с ARM-процессором EP7312/7212 фирмы Cirrus Logic, на плате навернуто много разной периферии (многоканальные SPI-контроллеры, Ethernet, и т.п.).

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

В целом, простая и удобная ОС (конечно, в контексте решаемых задач).

Share this post


Link to post
Share on other sites

В поле зрения не попадался порт uC/OS-II v. 2.76 под Cygnal С8051F120 + Keil

Мне удалось оживить порт под C8051F020 , а под 120 - никак ( и дело не в сторожевом таймере и не в других именах регистров, управляющих таймером 0)

Помогите чем можете

--------------------------------

... нуже, люди, НЕ МОЛЧИТЕ !!!

--------------------------------

В общем разобрался. Заработало в живую. Просто в этом примере криво был заюзан системный таймер, а так этот порт уже живой и работает на С8051F120

port_to_C8051F020__8051__by_Junmin_Zheng.zip

Share this post


Link to post
Share on other sites

Я использую uC/OS 2.76 для ARM7TDMI - Philips'овский LPC2214 (OS + порт для арм + LwIP TCP/IP стек). Ничего так себе ось. Хотя мой начальник утверждает что Segger лучше - ядро весит меньше и задержки меньше. Для ARM920T пользую QNX - всё-таки операционка более полноценная и функциями богаче.

 

Кто-то проводил сравнения embedded OS? Поделитесь инфой пожалуйста - очень интересная тема.

Share this post


Link to post
Share on other sites
А не дадите пример? А то я щас тоже прикручиваю LwIP к uc/os-ii. Посмотреть интересно

так посмотрите что свободно в инете, или чем-то неустраивает?

LwIP uC/OS-II port

http://www.geocities.com/michaelanburaj/

http://geocities.com/michaelanburaj/downlo..._ucos_1.011.zip

Share this post


Link to post
Share on other sites
(OS + порт для арм + LwIP TCP/IP стек).

 

А не дадите пример? А то я щас тоже прикручиваю LwIP к uc/os-ii. Посмотреть интересно :)

 

Пример - исходники все выслать? :)

Действительно, если посмотреть по вышеприведенным ссылкам - должно хватить информации... Вот если что получаться не будет - могу помочь!

Share this post


Link to post
Share on other sites
Я использую uC/OS 2.76 для ARM7TDMI - Philips'овский LPC2214 (OS + порт для арм + LwIP TCP/IP стек). Ничего так себе ось. Хотя мой начальник утверждает что Segger лучше - ядро весит меньше и задержки меньше. Для ARM920T пользую QNX - всё-таки операционка более полноценная и функциями богаче.

 

 

Поднял uC/OS 2.76 на at91rm9200 (OS + порт + GUI для дисплея 320x240x18bit в режиме 16bpp), файловую систему и USB сейчас поднимает DIM. Теперь понадобилось прикрутить TCP/IP стек. Смотрю на все это и думаю, что хиловата uC/OS для таких задач. Стал смотреть на QNX, действительно более полноценная, TCP/IP встроен в ядро, ну и т.п. Но вот хотелось бы узнать у тех кто с QNX работает - как писать bsp. Чего - то на оффициальном сайте я документации про это не нашел. Ткните хоть, если я просмотрел. А еще неплохо бы маленький примерчик.

Share this post


Link to post
Share on other sites
Поднял  uC/OS 2.76 на at91rm9200 (OS + порт  + GUI для дисплея 320x240x18bit в режиме 16bpp), файловую систему и USB сейчас поднимает DIM. Теперь понадобилось прикрутить TCP/IP стек. Смотрю на все это и думаю, что хиловата uC/OS для таких задач. Стал смотреть на QNX, действительно более полноценная,  TCP/IP встроен в ядро, ну и т.п. Но вот хотелось бы узнать у тех кто с QNX работает - как писать bsp. Чего - то на оффициальном сайте я документации про это не нашел. Ткните хоть, если я просмотрел. А еще неплохо бы маленький примерчик.

 

bsp как писать есть на сайте - ищите Building Embedded Systems. Сам BSP состоит из IPL (initial program loader) - по сути инициализация железа и Startup - инициализация образа ОС, системных переменных... В любом случае, чтобы разобраться - надо с исходниками работать, а они есть только в Momentics PE, который стоит денег.

 

P.S. Сори за офф - тут вроде uC/OS обсуждается... нужно с вопросами по QNX в другую ветку перелезть :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this