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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Особенности построения ПО c использованием RTOS, Взаимодействия между отдельными задачами, событиями ???
Asteo
сообщение May 17 2014, 03:49
Сообщение #16


Участник
*

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



Jekin, Спасибо! Почитаю про RL-FlashFS. Ранее с ней не сталкивался.

Сообщение отредактировал Asteo - May 17 2014, 05:28
Go to the top of the page
 
+Quote Post
kolobok0
сообщение May 17 2014, 03:53
Сообщение #17


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(AlexandrY @ May 16 2014, 13:13) *
...Поэтому автономных асинхронных друг к другу логгеров должно быть много. ...


цена таких логгеров? Просто типа закачать потом в эксель и красиво выдать кривую? Потому как для анализа глазками
шарахаться между файлами по временным срезам - вряд-ли удобное решение...Если из множество кэшей писателей захотите свести
к одному выводу в файл - то там ышо круче рассинхронизация начнёт наблюдаться... На любителя или медлунных систем типа хэйлохты мир
- имхо...

========

сам обычно использую асинхронный, быстрый интерфейс к формированию единого потока данных, далее можно более медленно
запись в файл. Если есть типизация данных, то вот в данном случае логи разные:
- запись контрольных точек и "голубых экранов"
- логгирование инфы состояния: датчики-флаги-бизнес логика
- запись данных критичных к выполнению: изменение стэков, захват буфферов и памяти и т.д..

рулится всё это из интерфейса и с самой флэшки, типа ай-най файлика...

Go to the top of the page
 
+Quote Post
Asteo
сообщение May 17 2014, 05:39
Сообщение #18


Участник
*

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



Вот здесь http://www.keil.com/support/man/docs/rlarm..._usingmcard.htm есть алгоритм настройки RL-FlashFS ,
но с использованием Configuration Wizard

Каким образом ее правильно настраивать и подключать к проекту без использования каких-либо "визардов"?
Или может вынести обсуждение в отдельную тему?
Go to the top of the page
 
+Quote Post
Jekin
сообщение May 17 2014, 05:51
Сообщение #19


Частый гость
**

Группа: Свой
Сообщений: 91
Регистрация: 9-09-07
Из: Минск
Пользователь №: 30 406



Цитата(Asteo @ May 17 2014, 08:39) *
Каким образом ее правильно настраивать и подключать к проекту без использования каких-либо "визардов"?
Или может вынести обсуждение в отдельную тему?

Настройка заключается в редактировании файла File_Config.c
Это делать можно и в ручную, но лучше использовать визард, чтобы корректно настройку произвести. Там снизу Вы можете видеть две закладочки: "text editor" и "configuration wizard"




А Вы какую версию Keil MDK используете? Просто в новой версии (5.x) принцип подключения библиотек немного поменялся.

Сообщение отредактировал Jekin - May 17 2014, 05:51
Go to the top of the page
 
+Quote Post
Asteo
сообщение May 17 2014, 06:00
Сообщение #20


Участник
*

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



Раньше использовал 4.73, сейчас перешел на 5.10.xx

Сообщение отредактировал Asteo - May 17 2014, 06:03
Go to the top of the page
 
+Quote Post
Jekin
сообщение May 17 2014, 06:09
Сообщение #21


Частый гость
**

Группа: Свой
Сообщений: 91
Регистрация: 9-09-07
Из: Минск
Пользователь №: 30 406



В новой версии Middleware подключается через "Manage Run-Time Environment":

http://www.keil.com/support/man/docs/uv4/u..._rtemanager.htm

Там же можно выбрать и другие необходимые драйвера.

Кстати, вот пример для демо-платы MCBSTM32E - использование FlashFS, с картой SD в том числе.
Прикрепленные файлы
Прикрепленный файл  Boards.rar ( 40.05 килобайт ) Кол-во скачиваний: 23
 
Go to the top of the page
 
+Quote Post
Asteo
сообщение May 17 2014, 06:52
Сообщение #22


Участник
*

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



Создал тему про Keil RL File System отдельно , дабы не было "Всего и сразу".
Go to the top of the page
 
+Quote Post
Asteo
сообщение May 19 2014, 03:19
Сообщение #23


Участник
*

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



Цитата(kolobok0 @ May 17 2014, 11:03) *
сам обычно использую асинхронный, быстрый интерфейс к формированию единого потока данных, далее можно более медленно
запись в файл.

можете более подробно объяснить основные принципы "формирования единого потока данных" , собственно то, над чем я "туплю" sm.gif

про "ini" файлик тоже объясните, если не сложно.

Go to the top of the page
 
+Quote Post
AlexandrY
сообщение May 19 2014, 04:02
Сообщение #24


Ally
******

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



Цитата(Jekin @ May 17 2014, 10:38) *
AlexandrY, на счет гибкости системы я с Вами согласен. Но функционал обрисова в первом посте топика.
Что касается жесткого реального времени для АЦП. Как правило, в GPS трекерах это не требуется. И дискретизации данных в 1 секунду вполне достаточно.


Функционал это что должен дивайс делать, а не какая периферия у микроконтроллера.

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

Вот такое описание функционала и даст только представление о критичности задач и соответственно о свойствах логеров.
Кстати все что перечислил требует жесткого реального времени.

Например в моем дивайсе активируются сразу больше десятка независимых логов:
-системный (следит за порядком включения-выключения задач и другими общими событиями)
-лог протокола PPP
-лог событий для отправляемых на сервер
-лог GSM протокола
-лог GPS протокола
-лог GPRS сессий
-лог зарядника
-лог поступающих сообщений по SMS
-лог TCP/IP протокола
-лог HTTP протокола и облачных сервисов
-логи сырых данных всех UART-ов
Все логи идут в свои файлы с метками времени с точностью до 1 мкс.

А вот для быстрой периферии типа АЦП или I/O сопроцессора реализуются еще синхронные логи.
Синхронные логи могут быть очень большими, до гигабайт.
Никакой Excel и даже Matlab их загрузить не может. Пишутся специальные утилиты обработчики таких файлов.
Синхронные логи специфичны для каждого применения поэтому конфигурируются, но ini файлы для этого слишком примитивны.
Конфигурирование выполняется JSON файлами. Конфигурируется частота дискретизации, какие сигналы будут записываться, тип данных, параметры фильтрации, конвертирующие функции.
Для синхронных логов нужна большая динамическая память для буферизации.

Go to the top of the page
 
+Quote Post
kolobok0
сообщение May 19 2014, 13:18
Сообщение #25


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Asteo @ May 19 2014, 11:29) *
...основные принципы "формирования единого потока данных"...про "ini" файлик тоже..


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

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

в момент подъёма софта, после подготовки флэши к работе, вы можете считать(или сформировать если нет) ini файл вашего устройства. тем самым упрощается
первый старт девайса. т.е. достаточно вставить в большого брата флэш, прописать ini файл (ну или запустить с пустой - девайс сам его создаст по умолчанию) -
параметры сети, необходимость писать логи, имя вэб сервера, IP адрес, необходимость запуска WiFi и т.д. и т.п. (формат ini файла прост: секция, имя поля=данные).
вставляее в свой девайс, он считывает первоначальные установки, по дате-времени файла принимает решение - это новые установки или он уже их считывал.
считывает если нужно, сохраняет в свою внутреннюю флэш(к примеру). всё. девайс готов к работе. актуально при запуске девайса при отсутствии органов
ввода-вывода инфы. например общающегося через WiFi.
Go to the top of the page
 
+Quote Post
Asteo
сообщение Jul 14 2014, 10:37
Сообщение #26


Участник
*

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



Доброго времени суток! В свободное время продолжаю работу над проектом.
По советам выше формирую единый поток данных, далее с помощью задачи принимающей очередь смотрю что за инфа и пишу в тот или иной файл.
Дошел до организации архитектуры приема-передачи.

Вопрос: каким образом организовывается передача данных в логгерах/трекерах с использованием RTOS???
расскажите в общих чертах про логику работы задачи(задач), отвечающей за передачу. Что она(они) должна уметь, что учитывать и тд.
Или ткните пальцем, где все это дело можно почитать.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Jul 17 2014, 09:50
Сообщение #27


Гуру
******

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



Цитата(Jekin @ May 17 2014, 07:28) *
В состав Keil MDK Pro входит многопоточная файловая система Keil FlashFS.
RAM диск в Keil FlashFS также поддерживается


Ух ты, и я не знал! Jekin огромное спасибо !
Пока не знал о FlashFS, успешно прикрутил к FreeRTOS файловую систему FatFS , два независимых потока для работы с двумя SD картами. Правда с извращениями, в момент создания файла может работать только один поток.
Судя по описанию, FlashFS на много мощнее. Такие вещи как функция дефрагментации диска мне с FlashFS и не снилась.
Кто использовал, скажите, эта FlashFS хорошая, безглючная и легко и с ней всё легко работать ? Или есть подводные камни ?
О FatFS я могу сказать только хорошее : всё просто, глюков не видил.


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


Частый гость
**

Группа: Участник
Сообщений: 101
Регистрация: 28-04-06
Пользователь №: 16 592



Коллеги, поскажите.
Есть вполне увесистый проект на stm32f207 + FREERTOS + Keil к которому нужно прикрутить SD-карту для чтения файлов конфигураций/ записи логов, т.е. особых требований к производительности нет. Единственное логи должны писаться с нескольких задач. Вопросы:

1.какую FS выбрать ?
-FatFS (есть опыт работы в суперлупе)
- Keil RL-FlashFS
- Super Lean FAT File System (есть на сайте FREERTOS)
- другое

2.соит ли заморачиваться с подключением по SDIO, либо оставить все на SPI ?

Go to the top of the page
 
+Quote Post

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

 


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


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