|
Как сделать идеологически выдержанно, "в стиле РТОС" |
|
|
|
Dec 9 2016, 11:08
|
Местный
  
Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503

|
Дивайс состоит из двух узлов на STM32 связанных по SPI. Программа как для мастера так и для слейва пишется с использованием RTOS: мастер CortexM4/ChibiOS, слейв - CortexM0/nil(облегченный вариант ChibiOS). Слейв, в частности формирует слово состояния - набор битов, которое передается мастеру, а так же используется самой программой слейва. Причем биты могут использоваться в разных тредах(процессах). С точки зрения парадигмы RTOS они являются об'ектами синхронизации процессов. В этом случае они должны иметь тип BinarySemaphore с другой стороны для передачи слова состояния мастеру они(биты) должны быть упакованы в переменную типа uint16_t. Сейчас у меня используется union одно поле которого битовая структура, другое поле uint16_t. Покамест УМВР, но беспокоят возможные проблемы из за отхода от парадигмы RTOS. Напрашивается вариант: любое бращение к битам состояния защищать от коллизий доступа с помощью мютекса, но nil их не имеет, а использовать для слейва полную ChibiOs - тяжеловато будет, там и требования к скорости обработки повыше и процессор послабее. Что посоветуют знатоки?
Сообщение отредактировал nanorobot - Dec 9 2016, 12:07
|
|
|
|
|
 |
Ответов
|
Dec 9 2016, 16:07
|
Местный
  
Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503

|
Цитата(AlexandrY @ Dec 9 2016, 21:55)  Вообще не понял проблемы. Что такое здесь 'парадигма'? У меня на M0 вполне себе MQX крутится. Может вам на MQX перейти?  м.б. сформулировал неудачно, но тема себя исчерпала. Цитата(zltigo @ Dec 9 2016, 22:00)  Вообще-то не только о нем. Для предельно кастрированных платформ, где даже допотопного SWP нет, остается запрет прерывания. Мне, значит, не дано не понять  почему вызов вызов десятков-сотен команд содержащих запреты прерывания вместо просто запрета прерывания назван Вами "без предрасудков". О критических секциях - если если в некой операционке нет оформления критических секций, то это надо дописать, либо выкинуть такую "RTOS" нафиг. Процесс это НЕ семафор. Использование возможностей высокоприоритетного процесса, это нормально. указано что слейв-M0, далее все про слейв возможно стоит отказаться от всех сервисов РТОС, для синронизации использовать обычные переменные, запрещая , где требуется, прерывания не удалось найти места, где бы я утверждал что процесс это семафор.
Сообщение отредактировал nanorobot - Dec 9 2016, 16:13
|
|
|
|
|
Dec 9 2016, 17:24
|

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

|
Цитата(nanorobot @ Dec 9 2016, 18:07)  не удалось найти места, где бы я утверждал что процесс это семафор. Но тем не менее свалили их в одну кучу: Цитата Касательно бреда про семафоры: С небольшой поправкой, что упаковку значений бинарных семафоров в uint_16_t выполнять в процессе с максимальным приоритетом Цитата(nanorobot @ Dec 9 2016, 18:07)  возможно стоит отказаться от всех сервисов РТОС, для синронизации использовать обычные переменные, запрещая , где требуется, прерывания  Перестаньте противопоставлять средства предоставляемой какой то кастрированой RTOS всему спектру приемов программирования.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Dec 9 2016, 17:58
|
Местный
  
Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503

|
Цитата(zltigo @ Dec 9 2016, 23:24)  Но тем не менее свалили их в одну кучу: Что не так? Есть набор бинарных семафоров, значения которых требуется "упаковать" в переменную типа uint16_t. Эту самую упаковку я собираюсь выполнять в процессе(треде, задаче) обладающем наивысшим приоритетом. Ни логических, ни грамматических ошибок не допущено. Ну, возможно, запятую пропустил. Ну так я на Пулитцеровскую премию не претендую.  Будьте доброжелательнее, не упоминайте анусы всуе  Всего доброго.
|
|
|
|
Сообщений в этой теме
nanorobot Как сделать идеологически выдержанно, "в стиле РТОС" Dec 9 2016, 11:08 novikovfb Цитата(nanorobot @ Dec 9 2016, 14:08) Нап... Dec 9 2016, 11:33 nanorobot Цитата(novikovfb @ Dec 9 2016, 17:33) а ч... Dec 9 2016, 11:42  novikovfb Цитата(nanorobot @ Dec 9 2016, 14:42) Это... Dec 9 2016, 11:56   nanorobot Цитата(novikovfb @ Dec 9 2016, 17:56) Это... Dec 9 2016, 12:18 AHTOXA Цитата(nanorobot @ Dec 9 2016, 16:08) Нап... Dec 9 2016, 11:40 zltigo Цитата(AHTOXA @ Dec 9 2016, 13:40) Достат... Dec 9 2016, 13:27 nanorobot Цитата(zltigo @ Dec 9 2016, 19:27) Именно... Dec 9 2016, 15:14  zltigo Цитата(nanorobot @ Dec 9 2016, 17:14) Есл... Dec 9 2016, 16:00  jcxz Цитата(nanorobot @ Dec 9 2016, 18:14) Кас... Dec 13 2016, 21:52   zltigo Цитата(jcxz @ Dec 13 2016, 23:52) Вы отст... Dec 13 2016, 22:32   AlexandrY Цитата(jcxz @ Dec 13 2016, 23:52) Хотя в ... Dec 14 2016, 08:35    zltigo Цитата(AlexandrY @ Dec 14 2016, 10:35) Хо... Dec 14 2016, 09:46    jcxz Цитата(AlexandrY @ Dec 14 2016, 11:35) Та... Dec 19 2016, 14:18    AlexandrY Цитата(nanorobot @ Dec 9 2016, 19:58) Что... Dec 9 2016, 18:07     nanorobot Цитата(AlexandrY @ Dec 10 2016, 00:07) Та... Dec 9 2016, 18:14      AHTOXA Если отвлечься от вопроса, зачем мастеру знать сос... Dec 9 2016, 20:19       nanorobot Цитата(AHTOXA @ Dec 10 2016, 02:19) Если ... Dec 9 2016, 21:35        zltigo Цитата(nanorobot @ Dec 9 2016, 23:35) Тем... Dec 10 2016, 08:16         nanorobot Цитата(zltigo @ Dec 10 2016, 14:16) Плохо... Dec 10 2016, 09:30          AlexandrY Цитата(nanorobot @ Dec 10 2016, 11:30) Кр... Dec 10 2016, 20:28          zltigo Цитата(nanorobot @ Dec 10 2016, 11:30) По... Dec 10 2016, 21:03           AlexandrY Цитата(zltigo @ Dec 10 2016, 23:03) Это с... Dec 10 2016, 22:32            zltigo Цитата(AlexandrY @ Dec 11 2016, 00:32) Кс... Dec 11 2016, 08:22             AlexandrY Цитата(zltigo @ Dec 11 2016, 10:22) Посмо... Dec 11 2016, 10:02              zltigo Цитата(AlexandrY @ Dec 11 2016, 12:02) Но... Dec 11 2016, 11:50        sanny444 Цитата(nanorobot @ Dec 9 2016, 21:35) Все... Jul 13 2017, 06:55      AlexandrY Цитата(nanorobot @ Dec 9 2016, 20:14) Так... Dec 9 2016, 21:15    zltigo Цитата(nanorobot @ Dec 9 2016, 19:58) Что... Dec 9 2016, 20:33  AlexandrY Цитата(nanorobot @ Dec 9 2016, 18:07) м.б... Dec 9 2016, 17:25
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|