RTOS для PIC ?

Hi Andy !

Совсем недавно 28 Jan 04 10:42, Andy Mozzhevilov писал к Ruslan Mohniuc:

AM>>> Следующий шаг - освоение RTOS :) Тоже много чего облегчает. RM>> А с какого уровня уже имеет смысл смотреть на RTOS?

AM> Сложно сказать, нужно попробовать, чтобы понять. Я сейчас по AM> возможности стараюсь применять всегда. В общем случае, когда надо AM> обеспечить быстрое время реакции системы на асинхронное событие, при AM> этом не хочется заботиться от том, что например иногда в EEPROM может AM> заливаться файл настроек, и при AM> этом нужно ждать окончания записи и одновременно думать о AM> возможности возникновения таких событий.

А где-то такое счастье для пиков бывает? Переползать лишь ради обретения этого счастья на менее знакомые контроллеры пока не хочу.

А может, где в инете хорошие обзорные статьи про это порекомендуешь?

WBRgrds Ruslan

Reply to
Ruslan Mohniuc
Loading thread data ...

Hi Harry !

Совсем недавно 28 Jan 04 09:54, Harry Zhurov писал к Ruslan Mohniuc:

AM>>> Следующий шаг - освоение RTOS :) Тоже много чего облегчает. RM>> А с какого уровня уже имеет смысл смотреть на RTOS?

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

Да, вам всем хорошо с мегабайтами, а если у меня только PIC18F452 с его 16 килокоманд ПЗУ и полтора килобайта ОЗУ ? Ладно, лежит еще на полке 18F8720, у которого ПЗУ в 4 раза больше,а ОЗУ- в два.

Под них чего-то более-менее серьезное из RTOS где-то сделано? Куда смотреть?

WBRgrds Ruslan

Reply to
Ruslan Mohniuc

Hello, Ruslan!

Сpд Янв 28 2004, Ruslan Mohniuc писал к Harry Zhurov по поводу "RTOS для PIC ?." RM> Да, вам всем хорошо с мегабайтами, а если у меня только PIC18F452 с RM> его 16 килокоманд ПЗУ и полтора килобайта ОЗУ ? Ладно, лежит еще на RM> полке 18F8720, у которого ПЗУ в 4 раза больше,а ОЗУ- в два. Усе просто. У тебя есть 2 задачи? Поставь 2 пика! ;) Либо банально пиши стек задач. Либо пишешь каждую задачу как свод последовательно исполняемых процедур и оформляешь их входы в таблицу. Дальше в теле берешь ячейку позиции в таблице и вызываешь обработчик задачи, потом следующий обработчик, потом в цикл. Каждый обработчик вызывает функцию по номеру. Она что-то делает и в точке ожидания (или просто свободного времени) возвращается изменяя значение ячейки номера функции. Можно делать условные переходы по номерам функций. Сделать вложенные функции с ожиданием события, например: ждем какое-то время и переходим к функции такой-то или ждем нажатия клавиши и передаем код функции такой-то. Естественно каждая функция работает так, если события нет - просто делаем ret таким образом отдавая время другой задаче, если событие есть - выполняем условие. Вобщем ничего сложного. Либо как вариант делаем такой список только для одной нересурсоемкой задачи и крутим ее в прерываниях. а вторую крутим в основном цикле как обычно. В сложных случаях с помощью макросов делается многократное вложение. RM> Под них чего-то более-менее серьезное из RTOS где-то сделано? RM> Куда смотреть? Даже не знаю куда и зачем смотреть если все пишется самостоятельно и компактно. RM> Ruslan WBR! Maxim Polyanskiy.

Reply to
Maxim Polyanskiy

AM>> этом нужно ждать окончания записи и одновременно думать о AM>> возможности возникновения таких событий.

RM> А где-то такое счастье для пиков бывает?

Насколько я понимаю, для пиков есть принципиальная сложность по созданию вытесняющих RTOS, поскольку недоступен стек вызовов. Хотя вроде с выходом PIC18 что-то изменилось, и даже кто-то здесь пытался сделать для них RTOS.

RM> Переползать лишь ради обретения этого счастья на менее знакомые контроллеры RM> пока не хочу.

RM> А может, где в инете хорошие обзорные статьи про это порекомендуешь?

Ну статья по принципам работы RTOS - это книга по uCOS-II. Но все таки для 8-ми биток она в большинстве случаев тяжеловата.

Reply to
Andy Mozzhevilov

Hi Maxim !

Совсем недавно 29 Jan 04 00:42, Maxim Polyanskiy писал к Ruslan Mohniuc:

RM>> Да, вам всем хорошо с мегабайтами, а если у меня только PIC18F452 RM>> с его 16 килокоманд ПЗУ и полтора килобайта ОЗУ ? Ладно, лежит RM>> еще на полке 18F8720, у которого ПЗУ в 4 раза больше,а ОЗУ- в RM>> два. MP> Усе просто. У тебя есть 2 задачи? Поставь 2 пика! У меня есть знакомый проект, в котором сейчас добавляют 4-й ПИК. причем не F84.

MP> ;) Либо банально пиши стек задач. Либо пишешь каждую задачу как свод MP> последовательно исполняемых процедур и оформляешь их входы в таблицу.

Hу, я как правило действительно имею дело с многозадачностью и как-то с этим справляюсь. Суть чужой RTOS для меня в том, что она должна чудесным образом видоизменять мою программу так, чтобы я мог в нее добавить новый процесс, не меняя уже имеющиеся. Разумеется, при условии "есть куда добавлять". Ты же мне не предлагаешь писать многозадачную операционку на PC? А зачем мне в микроконтроллере корячиться? Вдруг чужой хватит?

RM>> Куда смотреть? MP> Даже не знаю куда и зачем смотреть если все пишется самостоятельно и MP> компактно.

Вероятно, тут все-таки у нас совсем разный подход. Я сейчас больше ремесленник, чем художник. Даны исходные условия, требуется работоспособный удовлетворяющий ТЗ результат. Для меня выгоднее, если я смогу быстрее справится с поставленной задачей. И все. Если с помощью каких-то чужих примочек я это сделаю быстрее- я обязательно хочу знать о таких примочках. Си- это одна из таких примочек. RTOS- может быть, еще одна. Далее идет аппаратный эмулятор. Вот тоже говорят, что облегчает жизнь при сложных задачах. Тоже интересно, но даже изучать вопрос сейчас не стану, не потяну все сразу, загружусь и зависну :) Уверен, что есть еще облегчающие жизнь ембиддера штуки, на которые я не обратил внимания. Hо я хочу начинать их применять, хоть понемногу.

WBRgrds Ruslan

Reply to
Ruslan Mohniuc

Wed, 28 Jan 2004 15:38:07 +0300 Ruslan Mohniuc wrote to Harry Zhurov:

RM> Совсем недавно 28 Jan 04 09:54, Harry Zhurov писал к Ruslan Mohniuc:

AM>>>> Следующий шаг - освоение RTOS :) Тоже много чего облегчает. RM>>> А с какого уровня уже имеет смысл смотреть на RTOS?

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

RM> Да, вам всем хорошо с мегабайтами, а если у меня только PIC18F452 с его 16 RM> килокоманд ПЗУ и полтора килобайта ОЗУ ?

С какими мегабайтами, ты чего? MSP430F149: 60 кбайт ПЗУ, 2 кбайт ОЗУ; ATmega16: 16 кбайт ПЗУ (8 килокоманд) и 1 кбайт ОЗУ. Реально ОС занимает около

1-1,5 кбайта кода, а ОЗУ - примерно 50 байт накладных на процесс (стеки процессов это, в основном) + данные процесса + пару десятков байт на ядро. Т.ч. на твоем 18-м пике все должно успешно работать, и тому есть реальное подтверждение - в этой эхе есть люди, кто использует вытесняющую ОС на 18-м пике. Если бы я с ними (18-ми) работал, я б тоже под них сделал.

RM> Ладно, лежит еще на полке 18F8720, у которого ПЗУ в 4 раза больше,а ОЗУ- в RM> два.

Да на фиг не надо столько - 16 килокоманд и 1.5 килобайта ОЗУ - вполне приличные ресурсы. Для вытесняющей ОС еще надо, чтобы со стеками проц работал нормально (а не как 16-й пик).

RM> Под них чего-то более-менее серьезное из RTOS где-то сделано? RM> Куда смотреть?

Если есть время и желание на эту тему, приходи ко мне на мыло.

Reply to
Harry Zhurov

Hello Ruslan.

28 Jan 04 15:38, Ruslan Mohniuc wrote to Harry Zhurov:

RM> Да, вам всем хорошо с мегабайтами, а если у меня только PIC18F452 с его 16 RM> килокоманд ПЗУ и полтора килобайта ОЗУ ?

этого достаточно для запyска даже вытесняющей ОС! поpтиpованные на PIC18 я не знаю.

Из коопеpативных и поpтиpованных на ПИК18 есть salvo, jacos

formatting link
, есть дока на pyсском. исходники платные (но недоpого, около 150 yе).

RM> Куда смотреть?

вытестяняющая - uCOS-II, очень хоpошая докyментация (на англ.), исходники можно найти. Есть ли поpт для ПИК18, надо см. на

formatting link

есть менее мощная, но более компактная и шyстpая scmRTOS, написанная скpомным Гаpии Жypовым на С++, но поpта для ПИК18 нет. Есть поpты для MSP430 и AVR, можно посмотpеть, что надо сделать для поpтиpования.

formatting link
Alexey

Reply to
Alexey Musin

Hi Ruslan, hope you are having a nice day!

28 Янв 04, Ruslan Mohniuc wrote to Harry Zhurov:

RM> Да, вам всем хорошо с мегабайтами, а если у меня только PIC18F452 с RM> его 16 килокоманд ПЗУ и полтора килобайта ОЗУ ? Ладно, лежит еще на RM> полке 18F8720, у которого ПЗУ в 4 раза больше,а ОЗУ- в два.

RM> Под них чего-то более-менее серьезное из RTOS где-то сделано? RM> Куда смотреть?

У меня есть uCOS-подобная реально работающая операционная система для PIC18, которая уже используется в реальных коммерческих приборах.

Если есть желание ее реально использовать - пиши на мыло. Пока она конечно заметно уступает uCOSу в наборе доступных сервисов, но это дело ближайшего будущего.

WBR, AVB

ICQ# 43835774 mailto: avb<at>dialup.etr.ru

Reply to
Alexey V Bugrov

Hi Alexey, hope you are having a nice day!

29 Янв 04, Alexey Musin wrote to Ruslan Mohniuc:

RM>> Куда смотреть? AM> вытестяняющая - uCOS-II, очень хоpошая докyментация (на англ.), AM> исходники можно найти. Есть ли поpт для ПИК18, надо см. на AM>

formatting link

Порт есть, но нерабочий. В нем есть серьезные ошибки в процедурах сохранения/восстановления контекста как минимум (это то, что бросилось в глаза при просмотре исходников).

WBR, AVB

ICQ# 43835774 mailto: avb<at>dialup.etr.ru

Reply to
Alexey V Bugrov

Hi Andy, hope you are having a nice day!

29 Янв 04, Andy Mozzhevilov wrote to Ruslan Mohniuc:

AM> Hасколько я понимаю, для пиков есть принципиальная сложность по AM> созданию вытесняющих RTOS, поскольку недоступен стек вызовов. AM> Хотя вроде с выходом PIC18 что-то изменилось, и даже кто-то здесь AM> пытался сделать для них RTOS.

Даже сделал. :) Вот только развивать ее пока руки не доходят. Hовые сервисы появляются только по мере того, как они требуются мне.

Пока умеет только вытесняющую многозадачность и синхронизацию задач по эвентам (упрощенные семафоры). Число задач ограничено только свободной памятью и может быть сосздано произвольное их кол-во во время исполнения (в отличии от uCOS нет органичения на максимальное число задач на этапе компиляции). Имеет 8 уровней приоритета, причем несколько задач могут работать на одном уровне приоритета по "рулеточному" механизму. В ближайшее время планируется сделать семафоры и очереди сообщений, но пока такой потребности не было.

WBR, AVB

ICQ# 43835774 mailto: avb<at>dialup.etr.ru

Reply to
Alexey V Bugrov

Hi Ruslan,

Wed Jan 28 2004 15:38, Ruslan Mohniuc wrote to Harry Zhurov:

RM>>> А с какого уровня уже имеет смысл смотреть на RTOS?

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

RM> Да, вам всем хорошо с мегабайтами, а если у меня только PIC18F452 с его RM> 16 килокоманд ПЗУ и полтора килобайта ОЗУ ? Ладно, лежит еще на полке RM> 18F8720, у которого ПЗУ в 4 раза больше,а ОЗУ- в два.

RM> Под них чего-то более-менее серьезное из RTOS где-то сделано? RM> Куда смотреть?

А тебе какую, вытесняющую или кооперативную?

Для PIC16 вытесняющую сделать нельзя, больно архитектура кривая. Но хоть кооперативную можно, все равно это намного лучше чем врукопашную функции переключать. Есть Salvo (коммерческая), есть бесплатная Jackos, и пр.

Для PIC18 уже можно и вытесняющую заюзать. Например, эту ГНУтую:

formatting link

Пока, Алексей

Reply to
Alex Kouznetsov

Maxim, ты ещё здесь сидишь?

Четверг Январь 29 2004 00:42, Maxim Polyanskiy wrote to Ruslan Mohniuc:

RM>> Да, вам всем хорошо с мегабайтами, а если у меня только PIC18F452 RM>> с его 16 килокоманд ПЗУ и полтора килобайта ОЗУ ? Ладно, лежит RM>> еще на полке 18F8720, у которого ПЗУ в 4 раза больше,а ОЗУ- в RM>> два. MP> Усе просто. У тебя есть 2 задачи? Поставь 2 пика! ;) Либо банально MP> пиши стек задач.

Проще. Во многих PIC'ах есть "регистровые странички". Которыми можно "щёлкать". Если задач две-три-четыре - получается вполне пристойный механизм переключения между задачами ;-)

Георгий

Reply to
George Shepelev

Hello, Ruslan!

Чет Янв 29 2004, Ruslan Mohniuc писал к Maxim Polyanskiy по поводу "RTOS для PIC ?." MP>> Усе просто. У тебя есть 2 задачи? Поставь 2 пика! RM> У меня есть знакомый проект, в котором сейчас добавляют 4-й ПИК. RM> причем не F84. Зачастую это очень хороший вариант. Я очень люблю раскладывать реалтаймовые задачи на всякие f819-е пики. Тем более что обычно они жрут 100% производительности и не реализуемы в пределах rtos. RM> Hу, я как правило действительно имею дело с многозадачностью и как-то RM> с этим справляюсь. Суть чужой RTOS для меня в том, что она должна RM> чудесным образом видоизменять мою программу так, чтобы я мог в нее RM> добавить новый процесс, не меняя уже имеющиеся. Разумеется, при RM> условии "есть куда добавлять". Ты же мне не предлагаешь писать RM> многозадачную операционку на PC? А зачем мне в микроконтроллере RM> корячиться? Вдруг чужой хватит? Hе - на pc конечно не предлагаю, тем более что это бред там чего-то писать такого плана. Hо вот на контроллерах я писал... Причем на 16-х пиках. RM> Уверен, что есть еще облегчающие жизнь ембиддера штуки, на RM> которые я не обратил внимания. Hо я хочу начинать их применять, хоть RM> понемногу. Я себе тоже слил посмотреть как люди пишут ;) RM> WBRgrds RM> Ruslan WBR! Maxim Polyanskiy.

Reply to
Maxim Polyanskiy

Maxim, ты ещё здесь сидишь?

Пятница Январь 30 2004 00:55, Maxim Polyanskiy wrote to Ruslan Mohniuc:

RM>> У меня есть знакомый проект, в котором сейчас добавляют 4-й ПИК. RM>> причем не F84. MP> Зачастую это очень хороший вариант. Я очень люблю раскладывать MP> реалтаймовые задачи на всякие f819-е пики.

А оно так и было задумано производителями этих контроллеров ;)

Между собой их по I2C связываешь?

Георгий

Reply to
George Shepelev

Hi Maxim !

Совсем недавно 30 Jan 04 00:55, Maxim Polyanskiy писал к Ruslan Mohniuc:

MP>>> Усе просто. У тебя есть 2 задачи? Поставь 2 пика! RM>> У меня есть знакомый проект, в котором сейчас добавляют 4-й ПИК. RM>> причем не F84. MP> Зачастую это очень хороший вариант. Я очень люблю раскладывать MP> реалтаймовые задачи на всякие f819-е пики. Тем более что обычно они MP> жрут 100% производительности и не реализуемы в пределах rtos. А передачу данных между ними тоже любишь организовывать? Когда каждому от другого что-то нужно, причем асинхронно?

RM>> Уверен, что есть еще облегчающие жизнь ембиддера штуки, на RM>> которые я не обратил внимания. Hо я хочу начинать их применять, RM>> хоть понемногу. MP> Я себе тоже слил посмотреть как люди пишут ;) Кстати, одной из таких сильно облегчающих жизнь штук является си. Слей, посмотри, как люди пишут.

WBRgrds Ruslan

Reply to
Ruslan Mohniuc

Hello, Ruslan!

Пят Янв 30 2004, Ruslan Mohniuc писал к Maxim Polyanskiy по поводу "RTOS для PIC ?." MP>> Зачастую это очень хороший вариант. Я очень люблю раскладывать MP>> реалтаймовые задачи на всякие f819-е пики. Тем более что обычно MP>> они жрут 100% производительности и не реализуемы в пределах rtos. RM> А передачу данных между ними тоже любишь организовывать? Когда каждому RM> от другого что-то нужно, причем асинхронно? Да причем по 1 проводу програмным медленным usart-ом. Hапример так - держим вывод в 0 - ведомый процессор сбрасывается в main. Дальше выставляем 1 и через период бита передаем ему задачу (делать то-то), параметры (если надо). А дальше он ее отрабатывает. Если нам надо сбросить задачу - банально ставим вывод в 0. Если задача получила какие-то результаты, она отдает их по usart, в прерываниях ведущего таких медленных uasrt-ов можно накатать вагон. Hапример у меня есть модуль анализатора телефонной линии на на819, может определять dtmf/r2, диалтон/busy анализировать состояние линии и набор номеров на паралельных телефонах совершенно не загружая основной проц. MP>> Я себе тоже слил посмотреть как люди пишут ;) RM> Кстати, одной из таких сильно облегчающих жизнь штук является си. RM> Слей, посмотри, как люди пишут. Посмотрел - ужас! Hе лучше я сам rtos напишу ;) Пока правда не надо это. Вот недавно видел как на телесистемах кто-то собирался в одной задаче клаву сканировать и результаты в другую передавать, и для этого ему надо rtos со всеми выткающими, боже как люди раньше жили. ;) RM> Ruslan WBR! Maxim Polyanskiy.

Reply to
Maxim Polyanskiy

Hello, George!

Пят Янв 30 2004, George Shepelev писал к Maxim Polyanskiy по поводу "RTOS для PIC ?." GS> А оно так и было задумано производителями этих контроллеров ;) GS> Между собой их по I2C связываешь? однопроводной usart. GS> Георгий WBR! Maxim Polyanskiy.

Reply to
Maxim Polyanskiy

Maxim, ты ещё здесь сидишь?

Суббота Январь 31 2004 00:03, Maxim Polyanskiy wrote to George Shepelev:

GS>> А оно так и было задумано производителями этих контроллеров ;) GS>> Между собой их по I2C связываешь? MP> однопроводной usart.

Обмен в одну сторону, или в обе?

Георгий

Reply to
George Shepelev

Hello, George!

Вcк Фев 01 2004, George Shepelev писал к Maxim Polyanskiy по поводу "RTOS для PIC ?." MP>> однопроводной usart. GS> Обмен в одну сторону, или в обе? Конечно в обе. Четкое разделение во времени. GS> Георгий WBR! Maxim Polyanskiy.

Reply to
Maxim Polyanskiy

Maxim, ты ещё здесь сидишь?

Понедельник Февраль 02 2004 08:18, Maxim Polyanskiy wrote to George Shepelev:

MP>>> однопроводной usart. GS>> Обмен в одну сторону, или в обе? MP> Конечно в обе. Четкое разделение во времени.

И что будет, если какой-то контроллер "не отпустит" шину?

Георгий

Reply to
George Shepelev

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.