[an error occurred while processing this directive] [an error occurred while processing this directive]
А как ты хотел?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Andy Mozzhevilov 24 августа 2001 г. 07:34
В ответ на: :( отправлено Romario 23 августа 2001 г. 22:30

Чудес ведь не бывает. Если у тебя переменная локальная, то ты конечно можешь передать указатель на нее другой задаче, но нужно быть точно уверенным, что когда другая задача его получит он еще не будет изменен первой. Насчет глобатьной переменной, тоже не факт. Точно так же задача может пользоваться и глобатьной переменной, указатель на которую ты послал.
Вообще, mbox и queue рассчитаны на работу с динамически выделяемой памятью:

1. Задача 1 запрашивает у диспетчера памяти блок в ОЗУ, на что возвращается указатель на него.
2. Задача 1 заполняет полученный блок своими данными.
3. Задача 1 передает через mbox(queue) этот указатель задаче 2.

4. Задача 2 получает указатель, делает с данными внутри блока свои действия и передает указатель на блок диспетчеру памяти для освобождения ОЗУ.

Насчет флагов, я еще не читал. Апп.ноту по ним уже распечатал, но поке руки не дошли изучить.



Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru