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

 
 
> Особенности построения ПО c использованием RTOS, Взаимодействия между отдельными задачами, событиями ???
Asteo
сообщение May 13 2014, 13:41
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 7-04-14
Пользователь №: 81 265



Доброго времени суток!


По немногу разбираюсь с freeRTOS. До этого использовал архитектуру: "Суперцикл+прерывания".

Интересуют особенности построения архитектуры ПО с ее использованием.
Т.е. "Как наиболее грамотно и рационально произвести взаимодействия между отдельными задачами, событиями ".

В учебных целях (а в случае успеха и "сугубо индивидуальных меркантильных планах автора " wink.gif ) было решено разработать проект GPS трекера для автомобиля.

В кратце:

Планируется использовать несколько цифровых и аналоговых GPIO.
Повесить датчики на стандартные интерфейсы(I2С,SPI,UART,1-Wire).
Использовать несколько каналов АЦП и т.д.
Для ведения "event log" планирую какую нибудь внутреннюю память (FSMC или SPI Serial Flash -- еще не определился),
а также microSD-card.
С помощью GSM модуля данные будут передаваться на сервер.
В качестве отладочных стендов использую STM32f103RET6 от "Terraelectronica", SIM68v и sim900 от SimCom.

Идею обрисовал , теперь ближе к делу.

Поставил RTOS, прикрутил задачу взаимодействия с GPS , установил FatFs от Чана (SDIO) , пишу лог NMEA сообщений на microSD.
Но это сейчас все в одной задаче. Чтобы было видно, что RTOS не завис, параллельная задача мигает диодом .

Дальше необходимо организовать сбор данных с других ресурсов --- GPIO,АЦП, I2C .
И вот тут у меня как у начинающего и возник вопрос ---Как с помощью freeRTOS наиболее рационально и целесообразно осуществить сбор данных с разных ресурсов микроконтроллера и осуществить их запись по протоколу в память?(Передачу по GSM пока не трогаем, хотя и подразумеваем что она будет осуществляться в дальнейшем.)

А хочу я от вас я хочу ответы по типу:


1) Высокоприоритетные задачи обработки периферии с использованием соответствующих прерываний собирают данные. Используя механизмы семафоров и очередей передают их низкоприоритетной задаче, которая собрав все необходимые данные пишет их на SD карту.

2)Высокоприоритетные задачи обрабатывают данные и каждая пишет свой собственный лог в буффер во flash памяти(возможно даже дублирует). Низкоприоритетная задача читает все эти логи и пишет на SD card.

3) Ваш способ + обоснование "Почему так". biggrin.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Asteo
сообщение May 13 2014, 14:20
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 7-04-14
Пользователь №: 81 265



Спасибо,прочел, специально написал, что часть работы уже сделана.

Вопрос мой связан с организацией лога от разных задач наиболее оптимально, используя RTOS.
И адресован людям, которые что-то подобное делали реально.

Сообщение отредактировал Asteo - May 13 2014, 14:22
Go to the top of the page
 
+Quote Post
iosifk
сообщение May 13 2014, 14:23
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Asteo @ May 13 2014, 18:20) *
Спасибо,прочел, ...

Так напишите письмо с благодарностью к Курницу и его об этом и спросите, он то точно в теме...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Asteo
сообщение May 13 2014, 14:35
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 7-04-14
Пользователь №: 81 265



Цитата(iosifk @ May 13 2014, 17:23) *
Так напишите письмо с благодарностью к Курницу и его об этом и спросите, он то точно в теме...


Послушайте, уважаемый.
Я понимаю, что повышение собственной важности, посредством издевок над новичками,
является элементом самоутверждения у некоторых индивидуумов.

Если вы не желаете помочь,так хотя-бы не мешайте.
или я вас чем-то обидел? Обоснуйте

Сообщение отредактировал Asteo - May 13 2014, 14:37
Go to the top of the page
 
+Quote Post
iosifk
сообщение May 13 2014, 14:50
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Asteo @ May 13 2014, 18:35) *
Я понимаю, что повышение собственной важности, посредством издевок над новичками,
является элементом самоутверждения у некоторых индивидуумов.

Если вы не желаете помочь,так хотя-бы не мешайте.
или я вас чем-то обидел? Обоснуйте

Совсем все мне странно... Где здесь "посредством издевок над новичками"??? Я уж не пишу про "является элементом... и т.д."... Молодой человек, о чем Вы? Мне это уже давно не нужно...
А если по делу, то вот так:
Когда мне пишут читатели, то я всегда отвечаю на их письма. И делаю это довольно давно.
Да, что Вы не читатель журнала КиТ - это мне понятно...
А вот то, что Вы в поисковике не нашли статей Курница - вот это меня сильно удивило... Соответственно я Вам об этом и написал.
И в чем проблема написать хорошему автору и у него спросить совета???


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Asteo
сообщение May 13 2014, 15:15
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 7-04-14
Пользователь №: 81 265



Цитата(iosifk @ May 13 2014, 17:50) *
Совсем все мне странно... Где здесь "посредством издевок над новичками"??? Я уж не пишу про "является элементом... и т.д."... Молодой человек, о чем Вы? Мне это уже давно не нужно...
А если по делу, то вот так:
Когда мне пишут читатели, то я всегда отвечаю на их письма. И делаю это довольно давно.
Да, что Вы не читатель журнала КиТ - это мне понятно...
А вот то, что Вы в поисковике не нашли статей Курница - вот это меня сильно удивило... Соответственно я Вам об этом и написал.
И в чем проблема написать хорошему автору и у него спросить совета???


Статьи я прочел в первую очередь. Потом взялся за практику.
На ваш совет почитать их, поблагодарил.

Дошел до определенного момента, задал вопрос сообществу.

Опыта общения на форумах у меня мало, признаю--не удается кратко и лаконично задавать правильные вопросы.

Если у вас не было глупых намерений, извините ради Бога. Мне ваша манера показалась "поверхностной".
Прошу личное в этой теме больше не обсуждать. Здесь все взрослые люди, не только вы.



Цитата(AlexandrY @ May 13 2014, 17:36) *
Если файловая система однозадачная, то придется дописывать задачу менеджер очередей для файловой системы.

Я использовал многозадачную файловую систему, и там любая задача могла свободно вести свой лог.


Я использую FatFs от Elm Chan'a. Она кстати является каковой? Для меня это вопрос более познавательный, нежели насущный.
Поскольку в своем проекте я планирую использовать один файл суммарного лога.
А логи задач планирую вести без использования файловых систем.
Предварительно создав несколько буферов (FIFO или Кольцевых) во внешней Flash.
Опять-же, если это целесообразно, и нет более изящного способа.

Сообщение отредактировал Asteo - May 13 2014, 15:15
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение May 15 2014, 19:09
Сообщение #7


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Asteo @ May 13 2014, 18:15) *
Я использую FatFs от Elm Chan'a. Она кстати является каковой?


Хороший вопрос. biggrin.gif
По идее на него вам надо было ответить еще до того как портировать FatFS


Кольцевые буферы во FLASH это скорее всего будет изобретение велосипеда.
Придется все равно решать проблему одновременного доступа нескольких задач к FLASH, получить при этом проблемы с неопределенностью времени доступа.
В результате будет непредсказуемое взаимовлияние одних задач на другие.

В этом плане удобны многопоточные FS на RAM.

Кстати в MQX уже есть файловая система для Flash/NAND. Они гораздо более детерминированы в плане времени операций чем FS на SD картах.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Asteo   Особенности построения ПО c использованием RTOS   May 13 2014, 13:41
- - iosifk   Цитата(Asteo @ May 13 2014, 17:41) На са...   May 13 2014, 14:03
|- - AlexandrY   Цитата(Asteo @ May 13 2014, 17:20) Спасиб...   May 13 2014, 14:36
- - Jekin   При использовании RTOS первый путь наиболее рацион...   May 13 2014, 14:36
- - Jekin   Цитата(AlexandrY @ May 15 2014, 22:09) Ко...   May 16 2014, 08:35
|- - AlexandrY   Цитата(Jekin @ May 16 2014, 11:35) Asteo ...   May 16 2014, 09:13
|- - Asteo   Цитата(AlexandrY @ May 16 2014, 12:13) Чт...   May 17 2014, 03:02
|- - kolobok0   Цитата(AlexandrY @ May 16 2014, 13:13) .....   May 17 2014, 03:53
- - Rst7   Moderator: Господа, а особенно juvf, давайте без ...   May 17 2014, 02:06
- - Jekin   AlexandrY, на счет гибкости системы я с Вами согла...   May 17 2014, 03:28
|- - Asteo   Jekin, Спасибо! Почитаю про RL-FlashFS. Ранее ...   May 17 2014, 03:49
|- - AlexandrY   Цитата(Jekin @ May 17 2014, 10:38) Alexan...   May 19 2014, 04:02
|- - MiklPolikov   Цитата(Jekin @ May 17 2014, 07:28) В сост...   Jul 17 2014, 09:50
- - Asteo   Вот здесь http://www.keil.com/support/man/docs/rla...   May 17 2014, 05:39
|- - Jekin   Цитата(Asteo @ May 17 2014, 08:39) Каким ...   May 17 2014, 05:51
- - Asteo   Раньше использовал 4.73, сейчас перешел на 5.10.xx   May 17 2014, 06:00
|- - Jekin   В новой версии Middleware подключается через ...   May 17 2014, 06:09
- - Asteo   Создал тему про Keil RL File System отдельно , даб...   May 17 2014, 06:52
- - Asteo   Цитата(kolobok0 @ May 17 2014, 11:03) сам...   May 19 2014, 03:19
|- - kolobok0   Цитата(Asteo @ May 19 2014, 11:29) ...осн...   May 19 2014, 13:18
- - Asteo   Доброго времени суток! В свободное время прод...   Jul 14 2014, 10:37
- - grv   Коллеги, поскажите. Есть вполне увесистый проект н...   Oct 4 2015, 12:20


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

 


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


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