|
Несколько вопросов начинающего |
|
|
|
 |
Ответов
|
Feb 14 2014, 07:21
|

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

|
Настроил как написал выше, и вроде бы всё хорошо. Ещё один вопрос, мучает уже давно : Почему в примерах в объявлениях семафоров , мьютиксов и т.п. нет директивы volatile, и почему без неё работает когда семафор выдаётся в прерывании ? Заранее спасибо за объяснение ! Код /*volatile*/ xSemaphoreHandle x_RTC_Second_Change; //разве тут не нужен volatile ?
//.....
xSemaphoreGiveFromISR(x_RTC_Second_Change,&xHigherPriorityTaskWoken);
--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
|
|
|
|
|
Apr 24 2014, 14:41
|

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

|
Ещё один вопрос, по архитектуре кода :
Перевожу свои старые коды без ОС на FreeRTOS. К примеру есть функция, инициализирующая SD карту, в ней в каких-то циклах ожидание чего-то. Как теперь с этим поступить наиболее правильно ? а) Вставить в функцию команды переключения контекста. Функция будет вызываться в задаче, но выполняться будет не быстро, т.к. функция чего-то ждёт внутри себя. С одной стороны контекст будет переключатся, т.е. система в целом работать правильно, но с другой та задача, которая функцию вызвала, будет останавливаться на этой функции на большое время, что на мой взгляд криво. б) Сделать из функции отдельную задачу. Создавать её когда надо проинициализировать карту, когда инициализация прошла удалять, а о том что инициализация прошла узнавать через эвенты или симафоры.
Заранее спасибо.
--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
|
|
|
|
|
Apr 26 2014, 04:18
|

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

|
Цитата(kolobok0 @ Apr 25 2014, 00:54)  в) всю работу с карточкой убрать в нитку. обслуживать запросы можно и синхронно и асинхронно - в зависимости от дальнейшей надобности. на сколько я понял вопрос в другом. Какая разница что в какой нитке? Допустим есть отдельняя нитка в которой ведется работа с SD Картой. есть функция, инициализирующая SD карту, в ней в каких-то циклах ожидание чего-то. Как теперь с этим поступить наиболее правильно? Когда идет инициализация, то процессор простаивает. как правильно организовать работу, чтобы во время ожиданий процессор не простаивал? если сделать так while(waitForSdCard); то процессор будет стоять в этом месте (ну если конечно более приоритетные задачи не прервыт эту задачу). самое простое сделать ожидание через vTaskDelay(); Код for(int i = 0; i<100; i++) { if(waitForSdCard) { //дождались... дальше пишем код } vTaskDelay(10); } //сюда попадем, если недождались. исключение Если то событие, которое ожидаем, может сегенрировать прерыванеи, то можно сделать двоичный симафор (или эвэнт). из прерывания выдавать симафор. тогда Цитата if(xSemaphoreTake(smSdCardReady, 1000) == pdPASS)//ждём симафор { //дождались... дальше пишем код
} else { //сюда попадем, если недождались. исключение }
|
|
|
|
Сообщений в этой теме
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 На сколько я понял.... ос использует приоритеты ни... Jan 11 2014, 20:48 MiklPolikov Ещё один вопрос :
Почему в задачу vApplicationStac... Jan 13 2014, 08:52  juvf Цитата(MiklPolikov @ Jan 13 2014, 14:52) ... Jan 13 2014, 10:56   MiklPolikov Цитата(juvf @ Jan 13 2014, 14:56) Не знаю... Jan 13 2014, 11:57    MiklPolikov Вопрос по организации алгоритма :
Допустим начала... Feb 4 2014, 20:46     juvf для этого существуют эвэнты. в v8.0 наконецто их д... Feb 5 2014, 02:25     Timma Цитата(MiklPolikov @ Feb 5 2014, 00:46) В... Feb 5 2014, 13:16      MiklPolikov Ещё вопрос:
Как я понял , для того что бы использ... Feb 12 2014, 19:37  MiklPolikov И ещё вопрос по флагам событий :
Я верно понимаю, ... Feb 15 2014, 10:02     MiklPolikov Цитата(kolobok0 @ Apr 24 2014, 22:54) в) ... Apr 24 2014, 19:25      kolobok0 Цитата(MiklPolikov @ Apr 24 2014, 23:25) ... Apr 25 2014, 18:08      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 страниц
1 2 >
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|