реклама на сайте
подробности

 
 
> Queue и Mbox в uCOS-II., Вопросик по указателям
JeDay
сообщение Nov 3 2005, 16:15
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818



В ф-ю OSMboxPost() OSQPost() передается указатель на передаваемое сообщение. В исходниках ОС я не нашел копирования этого сообщения в промежуточные переменные. Получается когда я посылаю указатель на массив в очередь сообщений, я не могу потом этот массив изменять? Принцып передачи сообщений построен на указателях.

Подскажите как правильно передачу сообщений организовать.
Зараннее благодарен.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
JeDay
сообщение Nov 7 2005, 11:35
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818



Спасибо. Я знаю что есть OSMem. Правда еще не пробовал ими пользоваться.

У меня такой вопрос:
Если я объявил массив А локально(т.е. не через new и delete), посылаю в очередь сообщений, у которого найвысший приоритет, указатель на этот массив. Затем тут же перезаписываю массив А другими данными. После перепланировки другой поток получает сообщение(указатель на массив А) и вычитывает данные, которые уже изменены.

// Task 1 (Найвысший приоритет)
INT8U *A, err;
A = "Hello";
...
err = OSQPost(evQ, (void*)A);
A = "Bad";
//-------------------------------------------

// Task2
INT8U *msg, err;
...
msg = OSQPend(evQ, 0, &err);
//-------------------------------------------
Чему равно msg ? "Hello" или "Bad" ?
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Nov 7 2005, 11:46
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(JeDay @ Nov 7 2005, 16:35) *
// Task 1 (Найвысший приоритет)
INT8U *A, err;
A = "Hello";
...
err = OSQPost(evQ, (void*)A);
A = "Bad";
//-------------------------------------------

// Task2
INT8U *msg, err;
...
msg = OSQPend(evQ, 0, &err);
//-------------------------------------------
Чему равно msg ? "Hello" или "Bad" ?


"Bad" конечно.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 20:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016