|
|
 |
Ответов
(1 - 14)
|
Nov 3 2006, 08:02
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(kichkine @ Nov 3 2006, 09:29)  Каковы по вашему мнению критерии перехода от "голой" программы к использованию RTOS? Всегда :-) Кроме вырожденных случаев экономии "последнего байта" и "последнего такта". Причем это тоже не факт, ибо за счет правильно посторенной системы можно и на объеме съэконогмить и наиболее безболезненно разделить недостающие ресурсы между страждующими. Вышенаписанное результат личного ~20-летнего движения от "сейчас сам быстренько напишу маленькую и шустую" к системным вещам. Естественно "движение" сопровождалось возрастающей сложностью программ и мощностью контроллеров. Цитата необходимость работы с tcp/ip :-) Ну а это к RTOS ни при чем. Обычно такая причина выдвигается теми, кто по жизни пишет очень небольшие простенькие программы и при необходимости поднять нечто более сложное готов "поступиться с принципами" и взять хоть RTOS, хоть что угодно, лишь-бы там "было то, что нужно". Собственно в такой подход и такая мотивация совершенно НОРМАЛЬНА, просто иногда на таком пути человеков заносит куда-нибудь в "другую канаву" типа - "Как поставить Linux на ARM7" :-(
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Nov 10 2006, 16:13
|
Участник

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

|
Цитата(kichkine @ Nov 3 2006, 09:29)  Каковы по вашему мнению критерии перехода от "голой" программы к использованию RTOS? Я вижу следующие: необходимость работы с tcp/ip и т.д. IPC (может легче что-то свое прикрутить?) Отсутствие свободного времени :-)) Ну некогда мне писать scheduler, file system и networking stack - надо аппликацию разрабатывать, за которую деньги и платят. Хотя вырожденные случаи, когда из дохлого надо выжать всё, тоже встречаются.
--------------------
Some days you eat the bear. Some days the bear eats you.
|
|
|
|
|
Nov 24 2006, 10:49
|
Группа: Новичок
Сообщений: 2
Регистрация: 11-09-06
Пользователь №: 20 269

|
Есть алтернатива и firmware и RTOS - real time kernel. К привмеру FreeRTOS (GNU,портирована на многие CPU), VDS kernel (для BlakFin, потдерживается analog device). Такия ядра, как правило, дают возмодность динамически выделять память, и синхронизировать tasks. Так, например VDS kernel можно сконфигурировать в 4k.
На мной взгляд, значительно упрощает процес разработки SW.
|
|
|
|
|
Nov 30 2006, 18:06
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

|
Цитата(IgorKossak @ Nov 29 2006, 00:15)  Цитата(Hardman @ Nov 24 2006, 18:13)  Применять или не применять RTOS прежде всего зависит от конкретной задачи...
Позволю себе заметить, что зачастую (пусть далеко не всегда, но в последнее время - особенно) привычки программиста и time-to-market играют более важную роль, нежели требования задачи. А кстати, что есть такое - требования задачи?  Кому-то задача ставила требования?  По-моему и в этом случае всё достаточно субьективно. Ой, извините пожалуйста! А вот у моей задачи такие требования: сделать БПФ для вектора длинной в 2048 точек, если новый отсчет сигнала появляется каждые 4000 тактов процессора. БПФ у меня получается минимум за 40000 тактов. Следовательно, пока у меня наберется полный вектор проходит 2048*4000= 8096000 тактов. Первое впечатление - я успеваю! Ведь мое БПФ делается всего за 40000 тактов. Впечатление второе: нет... не успеваю... Ведь пока я БПФ делаю (функция естественно библиотечная, переписать нельзя), кто-то должен принять 10 отсчетов входного сигнала. Значит, библиотечную ф-цию нужно как-то прервать, принять очередной отсчет и запустить снова с прерванного места? Не считаете ли Вы, что моя задача требует написания планировщика?
Сообщение отредактировал st256 - Nov 30 2006, 18:08
|
|
|
|
|
Nov 30 2006, 19:03
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

|
Цитата(khach @ Dec 1 2006, 00:48)  Цитата(st256 @ Nov 30 2006, 18:06)  Не считаете ли Вы, что моя задача требует написания планировщика?
Бога ради, принимайте по прерываниям или DMA. А вот если параллельно к этому надо еще и парсить IP пакеты, считать часы реального времени, писать лог во флешку, ждать нажатия клавиши пользователем и рисовать на экране результаты- вот тут RTOS просто незаменима. IP - это уже не real-time. Это раз. считать часы реального времени? Ну не знаю, вроде тоже не real-time, многие инструментальные оси имеют эту приблуду... хотя сильно настаивать не буду. писать лог во флешку, ждать нажатия клавиши пользователем и рисовать на экране результаты? Ну знаете, к real-time это имеет уже совсем отдаленное отношение. Другими словами - Real-Time Operating System (RTOS) для Ваших задач не нужна. Справится и банальный порт LINUX для ARM. Это из собственного опыта говорю. А вот, как без ртосины решить мою задачу, если к примеру, когда я принимал участие в разработке одного DSP мы для уменьшения площади кристалла и облегчения собственной жизни выкинули всякие DMA и т.п. посчитав, что это себя просто не оправдывает?
|
|
|
|
|
Dec 1 2006, 07:43
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

|
Цитата(Alex B._ @ Dec 1 2006, 01:09)  >> Не считаете ли Вы, что моя задача требует написания планировщика Речь идет не о _написании_ а об _использовании_ Написание планировщика вещь не сложная - пару недель всего вместе с отладкой. Использовать чужую ось (типа microC) - часто означает потерять теже пару недель, но для получения гораздо худшего результата. Цитата(Alex B._ @ Dec 1 2006, 01:09)  Отсчеты у вас что, не по прерываниям принимаются? Если у Вас real-time, то использовать прерывания и приоритеты строго не рекомендуется. Работают, обычно, по опросу - так надежнее.
|
|
|
|
|
Dec 1 2006, 15:50
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

|
Цитата(Alex B._ @ Dec 1 2006, 19:36)  real-time это абстрактное условие реакции на внешние события в заданный интервал времени. Не, это вовсе не обстрактное условие выполнения некой задачи в отведенное время. Хотя и с Вашим определением я почти согласен. Остается понять, что такое "реакция". Цитата(Alex B._ @ Dec 1 2006, 19:36)  Про прерывания и приоритеты - мне ваш анекдот очень понравилсо. Если это для Вас - анекдот, то для меня совершенно понятно, что к real-time Вы отношения не имели. Цитата(Alex B._ @ Dec 1 2006, 19:36)  >> Написание планировщика вещь не сложная - пару >> недель всего вместе с отладкой OS это не только шедуллер, но еще и сервисы синхронизации между задачами. Добавьте еще две недели на флаги, мьютексы, семафоры и API-функции.
|
|
|
|
|
Dec 1 2006, 16:42
|
Участник

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

|
Цитата(st256 @ Dec 1 2006, 14:50)  Цитата(Alex B._ @ Dec 1 2006, 19:36)  real-time это абстрактное условие реакции на внешние события в заданный интервал времени.
Не, это вовсе не обстрактное условие выполнения некой задачи в отведенное время. Хотя и с Вашим определением я почти согласен. Остается понять, что такое "реакция". Цитата(Alex B._ @ Dec 1 2006, 19:36)  Про прерывания и приоритеты - мне ваш анекдот очень понравилсо. Если это для Вас - анекдот, то для меня совершенно понятно, что к real-time Вы отношения не имели. Цитата(Alex B._ @ Dec 1 2006, 19:36)  >> Написание планировщика вещь не сложная - пару >> недель всего вместе с отладкой OS это не только шедуллер, но еще и сервисы синхронизации между задачами. Добавьте еще две недели на флаги, мьютексы, семафоры и API-функции. Если время выполнения задачи ограничено (имеется в виду астрономическое время) то это Real Time. Например, подсчёт зарплаты в конце месяца :-)) Почти всегда, наряду с hard real time CPU должен выполнять какие-нибудь совершенно не Real Time функции. И для этих целей off the shelf OS весьма хороша.
--------------------
Some days you eat the bear. Some days the bear eats you.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|