Jump to content

    
Sign in to follow this  
pokk

Удобная модификация параметров структуры confing c зашитой

Recommended Posts

58 minutes ago, jcxz said:

Зачем ждать??? :wacko2: Клиент не должен ничего ждать.

Для атомарного доступа к переменной confing

59 minutes ago, jcxz said:

Клиентов может быть много. Клиенты работают без тормозов.

В том то и дело клиентов несколько может быть и они все  могут модифицировать confing

Share this post


Link to post
Share on other sites
21 минуту назад, pokk сказал:

В том то и дело клиентов несколько может быть и они все  могут модифицировать confing

И пускай. В чём проблема?

Share this post


Link to post
Share on other sites

Ну вы же сами все правильно написали

19 hours ago, jcxz said:

Видимо затем, что confing у автора - общая переменная, разделяемая разными процессами (задачами). А одновременный доступ к общим переменным из разных процессов чреват.  

Именно из за этого и хочу их разделить.

Share this post


Link to post
Share on other sites
6 часов назад, pokk сказал:

Именно из за этого и хочу их разделить.

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

Share this post


Link to post
Share on other sites
17 hours ago, pokk said:

Для атомарного доступа к переменной confing

В том то и дело клиентов несколько может быть и они все  могут модифицировать confing

Думаю для встроенного дивайса будет злом давать модифицировать конфиги одновременно многим клиентам. 
Надо давать подключаться только одному за раз.
Это будет проще всего, встроенные системы все же однопользовательские. 
 

Share this post


Link to post
Share on other sites
17 hours ago, jcxz said:

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

И как это происходит в предложенно вами третьем варианте ?

Share this post


Link to post
Share on other sites
7 часов назад, pokk сказал:

И как это происходит в предложенно вами третьем варианте ?

Вы пройдитесь по нему. По шагам. И подумайте. Там же всё расписано, понятней некуда.  :unknw:

Share this post


Link to post
Share on other sites
On 7/7/2020 at 7:24 AM, pokk said:

Задача такая, есть несколько обработчиков вызываемые через FREERTOS  из разных задач.

Вызывается из разных задач или от клиента вэб морды и иже? Если от задач (событий) - то это синхронизация. Если люди - это немного по другому можно решать..

 

(круглый)

Share this post


Link to post
Share on other sites
On 7/9/2020 at 6:18 PM, jcxz said:

Вы пройдитесь по нему. По шагам. И подумайте. Там же всё расписано, понятней некуда.  

 

On 7/7/2020 at 10:19 PM, jcxz said:

Клиент (пишущий данные в confing):

1. Модифицирует confing.

2. Устанавливает flag = 1.

3. Пингует сервер (посылает ему сообщение в мэйл-бокс).

Ну вот же на первом шаге, конфликт возникает если клиента другой клиент перебьет, в момент модификации confing. Под клиентом я понимаю задачу клиент freertos.

On 7/10/2020 at 4:19 AM, kolobok0 said:

Вызывается из разных задач или от клиента вэб морды и иже? Если от задач (событий) - то это синхронизация. Если люди - это немного по другому можно решать..

Да из задач, одна задача вызывается, когда пользователь  физически кнопку ок нажал в меню, а вторая задача вызывается, когда прилетел WEB запрос. Но это так частный случай, пока интересуюсь как в общем это разрулить. 

Share this post


Link to post
Share on other sites
2 часа назад, pokk сказал:

Ну вот же на первом шаге, конфликт возникает если клиента другой клиент перебьет, в момент модификации confing. Под клиентом я понимаю задачу клиент freertos.

Ну и пускай перебивает. В любом случае - кто-то из них последним выставит flag=1 и пошлёт уведомление задаче-серверу. А она после этого пошлёт всю структуру целиком куда-то (запишет куда-то). Т.е. - в любом случае в конце-концов будет выполнена операция SaveConfing() над всей структурой целиком атомарно.

Аналогичным образом работает механизм эксклюзивного доступа в Cortex-M (LDREX/STREX).

Проблемы могут возникнуть только в случае если возможна ситуация, когда эти клиентские процессы очень часто непрерывно модифицируют и модифицируют confing, без пауз. Но воде как в вашем случае это не страшно, так как пользователям не свойственно жать на кнопки с частотами в несколько кГц часами.

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