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

 
 
> Несколько вопросов начинающего
MiklPolikov
сообщение Nov 16 2013, 13:09
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



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

Вопрос 1:
Есть задача, управляющая миганием светодиода. Мигать он может с разными частотами и разным цветом. Что бы он мигал задача всё время "крутится",
а частота мигания регулируется при помощи vTaskDelay.
Мигание светодиода должно зависеть от результатов выполнения других задач. Как правильнее всего реализовать передачу данных из нескольких разных задач в эту одну ?
Пришло в голову : сделать очередь, в которую все задачи управляющие миганием будут записывать данные по мере их появления. В задаче мигания проверять наличие в очереди непрочитанного элемента. И только если он есть читать, иначе задача заблокируется и светодиод перестанет мигать совсем.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
juvf
сообщение Jan 11 2014, 20:48
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



На сколько я понял.... ос использует приоритеты ниже 11, т.е. 15-11. Да же не ос, а в обработчика прерываний есть апи ос.
Например сработал твой rtc, в обработчике вызвал функционал ртос. Сработал какой нить уарт с прерыванием 11.
Прервал функционал ртос и вызвал другую апи. Обе апи из обоих оработчиков могут использовать одни и реже ресурсы. Поэтому ртос должна как-то это разрулить. Потом обработчик уарта был прерван прерыванием таймера с приоритетом 7. Ртос знает, что там нет вызова апи, и что не одна переменная ртосины не изменится, поэтому ртосу не надо защищаться от совместного использования ресурсов ос.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Jan 13 2014, 08:52
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Ещё один вопрос :
Почему в задачу vApplicationStackOverflowHook вместо указателя на название задачи стек которой переполнился передаётся 0 ?
Раньше работало, и я мог увидеть название задачи. Вопрос : что могло изменится ?
Заранее спасибо !
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
juvf
сообщение Jan 13 2014, 10:56
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(MiklPolikov @ Jan 13 2014, 14:52) *
Ещё один вопрос :
Почему в задачу vApplicationStackOverflowHook вместо указателя на название задачи стек которой переполнился передаётся 0 ?
Раньше работало, и я мог увидеть название задачи. Вопрос : что могло изменится ?
Заранее спасибо !

Не знаю. Смотри указатель xTaskHandle xTask в vApplicationStackOverflowHook на какую задачу указывает. Как создавал задачу? прописал ли имена задач, задал ли xTaskHandle?
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Jan 13 2014, 11:57
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(juvf @ Jan 13 2014, 14:56) *
Не знаю. Смотри указатель xTaskHandle xTask в vApplicationStackOverflowHook на какую задачу указывает. Как создавал задачу? прописал ли имена задач, задал ли xTaskHandle?

Разобрался. Это Keil не хочет показывать значение локальной переменной, если она определена но не используется. Раньше этой проблемы с pcTaskName почему-то не было.
Сделал глобальную переменную, которой присваиваю pcTaskName.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Feb 4 2014, 20:46
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Вопрос по организации алгоритма :

Допустим начала работать задача А(была создана, была разблокирована), и пока она работает должны заблокироваться задачи Б, С, Д. Когда задача А завершила работу, Б С Д должны разблокироваться. Как это принято делать так, что бы было наименее путано ? Сделать очередь из одного элемента, из которой задачи Б С Д читают этот элемент без удаления, а задача А его либо удаляет либо возвращает ?
Нет ли способа проверять внутри задачи Д чему равен хэндлер задачи А, так что бы когда он не NULL задача Д блокировалась бы, а когда снова стал NULL разблокировалась бы?


Спасибо.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
Timma
сообщение Feb 5 2014, 13:16
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 26-11-07
Пользователь №: 32 693



Цитата(MiklPolikov @ Feb 5 2014, 00:46) *
Вопрос по организации алгоритма :

Допустим начала работать задача А(была создана, была разблокирована), и пока она работает должны заблокироваться задачи Б, С, Д. Когда задача А завершила работу, Б С Д должны разблокироваться. Как это принято делать так, что бы было наименее путано ? Сделать очередь из одного элемента, из которой задачи Б С Д читают этот элемент без удаления, а задача А его либо удаляет либо возвращает ?
Нет ли способа проверять внутри задачи Д чему равен хэндлер задачи А, так что бы когда он не NULL задача Д блокировалась бы, а когда снова стал NULL разблокировалась бы?


Спасибо.

Может просто сделать приоритет А выше других?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MiklPolikov   Несколько вопросов начинающего   Nov 16 2013, 13:09
- - AlexMad   А нельзя просто, по результату полученного сообщен...   Nov 16 2013, 17:13
- - Lagman   Цитата(MiklPolikov @ Nov 16 2013, 17:09) ...   Nov 16 2013, 19:06
|- - MiklPolikov   Цитата(Lagman @ Nov 16 2013, 23:06) Можно...   Nov 16 2013, 19:16
|- - MiklPolikov   Вопрос 2 : Есть USB библиотека. К ней я обращаюсь...   Nov 16 2013, 21:35
|- - MiklPolikov   Вопрос 3: Почему 2 задачи работают, а если зап...   Nov 17 2013, 23:54
||- - MiklPolikov   Вопрос 4: Почему в файле FreeRtosConfig.h нету п...   Nov 18 2013, 02:02
|- - Lagman   Цитата(MiklPolikov @ Nov 17 2013, 01:35) ...   Nov 18 2013, 19:32
|- - MiklPolikov   Цитата(Lagman @ Nov 18 2013, 23:32) Можно...   Nov 18 2013, 20:41
|- - Lagman   Цитата(MiklPolikov @ Nov 19 2013, 00:41) ...   Nov 18 2013, 21:28
|- - MiklPolikov   6 ) Вопрос по структуре программы : Допустим есть...   Nov 21 2013, 11:47
|- - kolobok0   Цитата(MiklPolikov @ Nov 21 2013, 15:47) ...   Nov 21 2013, 16:49
|- - MiklPolikov   Ещё вопрос, №7 Правильно ли я понимаю, что люб...   Dec 9 2013, 03:15
|- - kolobok0   Цитата(MiklPolikov @ Dec 9 2013, 07:15) ....   Dec 9 2013, 22:23
|- - juvf   Цитата(MiklPolikov @ Dec 9 2013, 09:15) П...   Dec 11 2013, 04:28
|- - MiklPolikov   Объясните, как подружить FREERTOS и STM32F030 ? ...   Dec 21 2013, 17:32
|- - kolobok0   Цитата(MiklPolikov @ Dec 21 2013, 21:32) ...   Dec 21 2013, 22:16
|- - juvf   Цитата(MiklPolikov @ Dec 21 2013, 22:32) ...   Dec 22 2013, 07:10
|- - MiklPolikov   juvf , спасибо, получилось. Моя проблема была в то...   Dec 22 2013, 13:49
|- - MiklPolikov   Вопрос про удаление задач. Как это организовать пр...   Dec 23 2013, 10:38
|- - juvf   Цитата(MiklPolikov @ Dec 23 2013, 16:38) ...   Dec 23 2013, 11:00
|- - MiklPolikov   juvf, спасибо ! У меня ещё вопрос . В докумен...   Dec 23 2013, 16:00
- - juvf   не путай vTaskDelay и vTaskDelete. vTaskDelay - н...   Dec 23 2013, 17:33
|- - MiklPolikov   juvf, огромное спасибо !!! Наблюдения...   Dec 24 2013, 02:29
||- - juvf   Цитата(MiklPolikov @ Dec 24 2013, 07:29) ...   Dec 24 2013, 03:20
||- - MiklPolikov   Стало любопытно, каким образом память становится ф...   Jan 6 2014, 00:32
||- - juvf   Цитата(MiklPolikov @ Jan 6 2014, 05:32) С...   Jan 6 2014, 06:57
||- - MiklPolikov   Цитата(juvf @ Jan 6 2014, 10:57) Дружище....   Jan 6 2014, 08:12
||- - MiklPolikov   У меня новый вопрос. Правильно ли я отдаю симафор ...   Jan 6 2014, 14:44
||- - kolobok0   Цитата(MiklPolikov @ Jan 6 2014, 18:44) ....   Jan 6 2014, 17:55
|||- - MiklPolikov   Цитата(kolobok0 @ Jan 6 2014, 21:55) в ко...   Jan 6 2014, 21:06
|||- - kolobok0   Цитата(MiklPolikov @ Jan 7 2014, 01:06) К...   Jan 6 2014, 23:04
|||- - MiklPolikov   Цитата(kolobok0 @ Jan 7 2014, 03:04) вот ...   Jan 7 2014, 00:38
||- - juvf   Цитата(MiklPolikov @ Jan 6 2014, 20:44) К...   Jan 7 2014, 08:19
||- - MiklPolikov   Цитата(juvf @ Jan 7 2014, 12:19) Какой ка...   Jan 7 2014, 20:05
||- - juvf   Цитата(MiklPolikov @ Jan 8 2014, 02:05) Ч...   Jan 9 2014, 03:22
||- - MiklPolikov   juvf, огромное спасибо, сделал приоритет прерывани...   Jan 11 2014, 09:09
||- - Lagman   Цитата(MiklPolikov @ Jan 11 2014, 13:09) ...   Jan 11 2014, 11:55
||- - MiklPolikov   Цитата(Lagman @ Jan 11 2014, 15:55) В СТМ...   Jan 11 2014, 12:15
||- - Lagman   Цитата(MiklPolikov @ Jan 11 2014, 16:15) ...   Jan 11 2014, 12:27
|- - MiklPolikov   Цитата(juvf @ Dec 23 2013, 21:33) Про зач...   Jul 17 2014, 13:17
|- - juvf   Цитата(MiklPolikov @ Jul 17 2014, 19:17) ...   Jul 17 2014, 19:30
|- - DASM   Цитата(juvf @ Jul 17 2014, 23:30) Более т...   Jul 17 2014, 19:39
||- - juvf   Цитата(DASM @ Jul 18 2014, 01:39) Если на...   Jul 17 2014, 20:40
|- - MiklPolikov   Цитата(juvf @ Jul 17 2014, 23:30) ps если...   Jul 17 2014, 19:47
|- - juvf   Цитата(MiklPolikov @ Jul 18 2014, 01:47) ...   Jul 17 2014, 20:09
|- - MiklPolikov   Цитата(juvf @ Jul 18 2014, 00:09) хороший...   Jul 17 2014, 20:12
|- - juvf   для этого существуют эвэнты. в v8.0 наконецто их д...   Feb 5 2014, 02:25
|- - MiklPolikov   Ещё вопрос: Как я понял , для того что бы использ...   Feb 12 2014, 19:37
- - juvf   Я работал с флагами (эвентами) в др ртос. В ФрииРТ...   Feb 14 2014, 02:42
|- - MiklPolikov   Настроил как написал выше, и вроде бы всё хорошо. ...   Feb 14 2014, 07:21
|- - MiklPolikov   И ещё вопрос по флагам событий : Я верно понимаю, ...   Feb 15 2014, 10:02
|- - _Артём_   Цитата(MiklPolikov @ Feb 14 2014, 11:21) ...   Feb 15 2014, 14:19
|- - MiklPolikov   Ещё один вопрос, по архитектуре кода : Перевожу с...   Apr 24 2014, 14:41
|- - kolobok0   Цитата(MiklPolikov @ Apr 24 2014, 18:41) ...   Apr 24 2014, 18:54
|- - MiklPolikov   Цитата(kolobok0 @ Apr 24 2014, 22:54) в) ...   Apr 24 2014, 19:25
||- - kolobok0   Цитата(MiklPolikov @ Apr 24 2014, 23:25) ...   Apr 25 2014, 18:08
|- - juvf   Цитата(kolobok0 @ Apr 25 2014, 00:54) в) ...   Apr 26 2014, 04:18
|- - MiklPolikov   Ещё один вопрос: Требуется экономить потребляемый...   Apr 29 2014, 10:22
|- - kolobok0   Цитата(juvf @ Apr 26 2014, 08:18) ...Когд...   Apr 29 2014, 20:36
- - DASM   Б   Apr 24 2014, 16:08
- - Lagman   http://www.freertos.org/low-power-tickless-rtos.ht...   Apr 30 2014, 11:27
|- - MiklPolikov   Цитата(Lagman @ Apr 30 2014, 15:27) http:...   Apr 30 2014, 12:56
- - Lagman   Я сильно не вникал т.к. не использую режимы энерго...   Apr 30 2014, 18:08
|- - MiklPolikov   Может кто подскажет : Есть задача, которая создаёт...   May 4 2014, 18:54
|- - MiklPolikov   Разобрался, дело было в недостаточном стеке задачи...   May 6 2014, 16:53
- - juvf   2MiklPolikov по существу не скажу. такого опыта не...   May 7 2014, 07:43
|- - MiklPolikov   Цитата(juvf @ May 7 2014, 11:43) 2MiklPol...   May 7 2014, 12:13
|- - MiklPolikov   Коллеги, ещё один вопрос : Верно ли я понимаю, чт...   May 27 2014, 09:01
|- - juvf   Цитата(MiklPolikov @ May 27 2014, 19:11) ...   May 28 2014, 00:41
||- - MiklPolikov   juvf, спасибо ! Я всегда работал со временем д...   May 29 2014, 15:40
||- - Newegor   Цитата(MiklPolikov @ May 29 2014, 22:50) ...   May 30 2014, 02:50
||- - MiklPolikov   Цитата(Newegor @ May 30 2014, 11:00) А во...   May 30 2014, 04:13
||- - juvf   Цитата(MiklPolikov @ May 30 2014, 14:23) ...   May 30 2014, 05:59
|||- - MiklPolikov   Цитата(juvf @ May 30 2014, 14:09) нет, не...   May 30 2014, 06:43
|||- - Lagman   Цитата(MiklPolikov @ May 30 2014, 14:53) ...   May 30 2014, 07:18
|||- - juvf   Цитата(MiklPolikov @ May 30 2014, 16:53) ...   May 31 2014, 06:38
||- - AHTOXA   Цитата(MiklPolikov @ May 30 2014, 14:23) ...   May 31 2014, 08:25
||- - MiklPolikov   Цитата(AHTOXA @ May 31 2014, 16:35) Так н...   Jun 8 2014, 09:16
||- - MiklPolikov   Коллеги, доброго времени суток. Не могу до конца ...   Jul 12 2014, 00:58
||- - Xenia   Цитата(MiklPolikov @ Jul 12 2014, 04:58) ...   Jul 12 2014, 13:32
||- - juvf   Цитата(Xenia @ Jul 12 2014, 19:32) Судя п...   Jul 13 2014, 11:16
|- - msalov   Цитата(MiklPolikov @ May 27 2014, 16:11) ...   May 30 2014, 05:35
- - kostyan   2MiklPolikov, фриртос - это операционка с открытым...   May 7 2014, 12:04
- - juvf   я думаю что ос работает не так. есть две задачи. у...   May 30 2014, 00:37
- - Lagman   эта функция или прототип функции объявлен до вызов...   May 30 2014, 05:19
|- - MiklPolikov   Цитата(Lagman @ May 30 2014, 13:29) эта ф...   May 30 2014, 12:01
- - Lagman   %) Я знаю что это функция.   May 31 2014, 06:21
- - DASM   Читаю все это и волосы дыбом. Тем более что и рабо...   Jul 17 2014, 16:10
|- - MiklPolikov   Цитата(DASM @ Jul 17 2014, 20:10) Читаю в...   Jul 17 2014, 16:46
- - DASM   Если бы я знал «как надо» то не сидел бы тут… увы ...   Jul 17 2014, 17:13
- - Lagman   ключевые слова malloc, free и их реализация в порт...   Jul 17 2014, 19:11
- - DASM   Кому они ключевые ? Да хоть new, хоть malloc - сут...   Jul 17 2014, 19:26
- - Lagman   Цитата(DASM @ Jul 17 2014, 23:26) Кому он...   Jul 17 2014, 20:36
2 страниц V   1 2 >


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

 


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


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