Перейти к содержанию
    

Разбиение задачи на процессы

Добрый день.

 

Впервые приступаю к использованию RTOS и сразу же возник вопрос системного плана - как разбить свою задачу на процессы?

Примеры к любой оси очень уж простые и не дают полного понимания подхода.

У меня же устройство будет довольно сложным:

1. Работа с Ethernet.

2. Работа с 3-мя UART.

3. Работа с USB, как Host, так и Device, т.е. OTG

4. Обслуживание TFT-индикатора с тачскрином

5. Обслуживание светодиодов

6. Обработка аналоговых входов

7. Обработка дискретных входов

8. Ну и до кучи внешняя по отношению к МК FLASH-память

 

В общем все, что есть в Luminary LM3S9B90 :rolleyes:

 

И как весь этот зоопарк организовать - даже не представляю :crying:

 

Может кто поможет советом. Буду очень признателен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Примеры к любой оси очень уж простые и не дают полного понимания подхода.

А вообще к "осям" есть не только "примеры", но и документация. Читать надо. Ну и думать потом СВОЕЙ головой. После чего можно отдельные нюансы обсуждать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

З.Ы Невольно вспоминается одна песня металлики...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Это не реально для хоть сколько-нибудь сложной задачи. Транспорты убьетесь писать и отлаживать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это не реально для хоть сколько-нибудь сложной задачи. Транспорты убьетесь писать и отлаживать.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Увы - сложные задачи одному человеку не под силу - тут нужен коллектив.

Вовсе не обязательно.

 

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

Одно дело разбить задачу на много простых, что, собственно, и является этапом решения, а другое - вводить по одному процессору на каждую подзадачу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как разбить свою задачу на процессы?

Подходы такие же, как при разбиении программы на модули, т.е. минимизация логических связей между автономными процессами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подходы такие же, как при разбиении программы на модули, т.е. минимизация логических связей между автономными процессами.

Ну по-крайней мере три первых пункта я бы вынес в отдельный процессор - не вяжутся они с RTOS. А всё остальное можно в ось. А 8-ой пункт это наверно USB флешка?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну по-крайней мере три первых пункта я бы вынес в отдельный процессор - не вяжутся они с RTOS.
Обосновать можете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вообще к "осям" есть не только "примеры", но и документация. Читать надо. Ну и думать потом СВОЕЙ головой. После чего можно отдельные нюансы обсуждать.

При всём уважении к Вам, я не собирался обсуждать нюансы, по крайней мере, не в этом посте :rolleyes: . Я только хотел услышать о методике решения подобных задач.

А по поводу документации... Возьмем руководство пользователя к типичной ОС:

- управление задачами, временем, памятью

- синхронизция процессов и межпроцессный обмен

- руководство по системному API

 

То есть описывается КАК это работает, но нет ни слова по интересующему меня вопросу.

 

А 8-ой пункт это наверно USB флешка?

Нет, имелось в виду пара-тройка микросхем FLASH на SPI

 

 

PS. Может перенести эту тему в раздел "для начинающих"? Не думаю, что я единственный у кого возникает подобный вопрос.

PPS. Кстати, мне так и не удалось найти полного руководство по любимой всеми uc/OS-II :wassat:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А по поводу документации... Возьмем руководство пользователя к типичной ОС:

Так возьмите НЕ типичное. Хотя и типичное, например, на FreeRTOS содержит раздел "Design Tips" не говоря уже uC/OS к которой в довесок идут горы мукалатуры..

Не думаю, что я единственный у кого возникает подобный вопрос.

Да,да ознакомьтесь с форумом.

Я только хотел услышать о методике решения подобных задач

Методика стара, как Мир -задачи, минимум на 50% решатся собственной головой, после чего задаются вопросы.

 

 

Обосновать можете?

Вы же понимаете, что не сможет :( ничего обосновать.. Хотя уровень "ответа" полностью соответствует уровню "вопроса"

- Петька - прибор!

- 50

- Что 50?

- А что прибор?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...Хотя и типичное, например, на FreeRTOS содержит раздел "Design Tips" ...

 

Огромное спасибо за наводку, раньше я этого раздела как-то не замечал. Даже стыдно :01:

 

И опять же, по поводу ucOS - во всех архивах, которые мне удалось нарыть на просторах Интернет, из документации были только файлы, описывающие характерные отличия конкретного порта, а полноценного User Guide я так и не увидел. Не сочтите за нахальство, но не могли бы Вы дать ссылку на такой документ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И опять же, по поводу ucOS - во всех архивах, которые мне удалось нарыть на просторах Интернет, из документации были только файлы, описывающие характерные отличия конкретного порта, а полноценного User Guide я так и не увидел. Не сочтите за нахальство, но не могли бы Вы дать ссылку на такой документ?

Могу предложить почитать книгу "uCOS, The Real-Time Kernel.pdf"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Могу предложить почитать книгу "uCOS, The Real-Time Kernel.pdf"

Спасибо, читаю. Я просто думал, что есть еще что-нибудь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я во FreeRTOS делал отдельно поток для Ethernet (uIP), для UART, и один поток для PIO - светодиоды, зуммер. При проектировании я считаю надо вначале на бумаге выделить модули программы, если между ними возможно синхронное взаимодействие - то в один процесс, если проще асинхронное - тогда в разные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...