Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/57: Рейтинг темы: голосов - 57, средняя оценка - 4.56
roystovo
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 25
1

RTOS и обвязка для устройства управления.

06.12.2011, 11:43. Просмотров 10301. Ответов 12
Метки нет (Все метки)

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

С аппаратной частью я уже более-менее определился - основой будет ARM, правда, пока не знаю от какого производителя, полагаю, что либо friiscale либо stm. Кстати, интересный момент - есть ли какая-нибудь возможность посчитать ftoot на ARMе в режиме программной эмуляции или надо обязательно брать модель с ftoot-ядром? Скорость некритична. На вычисление двух тригонометрических формул у меня есть около десяти минут.

Собственно, основной-то вопрос по программной части:
Какую RTOS сейчас можно взять? Например, я почитал про BeRTOS - по описанию, вроде бы, нормально, но отзывов по использованию в коммерческих разработках пока не нашел. У FriiRTOS свои косяки, видел жалобы. Поделитесь своими знаниями или успехами в этой области :)

И последнее - скорее личного плана. У меня есть мысль, что для расширения функционала в полевых условиях, кроме, собственно, прошивки контроллера, запилить на него небольшую форт-машину и выставлять её терминал в UART по нажатию кнопки. Полагаю, что это позволит внести необходимые правки в софт прямо в полевых условиях. Я нормален?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2011, 11:43
Ответы с готовыми решениями:

Минимальная обвязка для запуска STM8S103F3
Как я понял, минимальная обвязка это: на NRST 10k подтяжка к питанию,кондер на...

STM32l-discovery: обвязка для USB device
На плате стоит контроллер, который поддерживает USB, но обвязки для USB divice...

Какая лучше RTOS для MSP430
Добрового времени суток всем. Решил тут немного побаловаться с RTOS, опыта в...

Обработка клавиш. Таймер для нужд RTOS.
В обычных программах всё делаю в прерывании - обработка...

CMSIS-RTOS от Keil для Cortex-M (BSD license!)
http://www.keil.com/pr/article/1253.htm в том числе GCC вариант тоже...

12
hordikor
0 / 0 / 0
Регистрация: 21.04.2010
Сообщений: 1,890
06.12.2011, 12:14 2
ftoot нормально считается - подключаешь math.h и вперёд.
Но вообще всё вопросы решаемы, главный вопрос который возникнет - условия эксплуатации, и похоже у тебя будет industrial.
Встает главный вопрос - зачем? Есть готовые терминалы, их множество всяких видов и "расцветок". Tсли не industrial - тебя спасет какой-нибудь eePC. Пишешь программу под операционку на терминале и всё.
А если надо две кнопки и 5 чисел - тебя спасет обычный калькулятор - выкидываешь из него контроллер, ставишь свой и пишешь программу без всяких rtos.
0
roystovo
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 25
06.12.2011, 15:45 3
Цитата Сообщение от hordikor
ftoot нормально считается - подключаешь math.h и вперёд.
Это хорошо, надо потренироваться.

Цитата Сообщение от hordikor
Но вообще всё вопросы решаемы, главный вопрос который возникнет - условия эксплуатации, и похоже у тебя будет industrial.
Встает главный вопрос - зачем? Есть готовые терминалы, их множество всяких видов и "расцветок". Tсли не industrial - тебя спасет какой-нибудь eePC. Пишешь программу под операционку на терминале и всё.
Еще хуже. У меня военная эксплуатация.
Собственно, по этой же причине, нельзя взять типовое изделие - договор заключали на разработку и железа и софта, плюс, прошлый опыт показывает, что сертифицировать терминал, производства вероятного противника у военной приёмки практически невозможно. Любые доводы разума на предмет того, что ПО полностью своё никого не волнуют :(
Хорошо, хоть разрешили комплектующие заграничные использовать, а то собирал бы сейчас на 580-й серии...

Цитата Сообщение от hordikor
А если надо две кнопки и 5 чисел - тебя спасет обычный калькулятор - выкидываешь из него контроллер, ставишь свой и пишешь программу без всяких rtos.
Нет, кнопок там будет значительно больше, чем две, целая клавиатура :)
Да и расчеты посложнее, чем у калькулятора, к тому же, часть данных, необходимых для рассчетов будет приходить снаружи (например GPS/ГЛОНАСС, состояние устройства)
0
hordikor
0 / 0 / 0
Регистрация: 21.04.2010
Сообщений: 1,890
06.12.2011, 16:54 4
Цитата Сообщение от roystovo
Еще хуже. У меня военная эксплуатация.
Угу, что такое военка в курсе, сам таким занимаюсь.
Цитата Сообщение от roystovo
Нет, кнопок там будет значительно больше, чем две, целая клавиатура :)
Да и расчеты посложнее, чем у калькулятора, к тому же, часть данных, необходимых для расчетов будет приходить снаружи (например GPS/ГЛОНАСС, состояние устройства)
Какая разница, rtos тебе не сильно и нужна, всё можно сделать на прерываниях.
И терминалку встроить не проблема - у меня вот такая работает http://habrahabr.ru/btogs/controllers/127890/ и команды принимает и данные на терминал отдает.
0
o9d
0 / 0 / 0
Регистрация: 10.08.2010
Сообщений: 1,264
06.12.2011, 16:57 5
Из множества опробованных свободных. Самые лучшие FriiRTOS & ScmRTOS.
У каждой свои недостатки, но ничего лучше еще не видел.
0
roystovo
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 25
06.12.2011, 17:40 6
Цитата Сообщение от hordikor
Какая разница, rtos тебе не сильно и нужна, всё можно сделать на прерываниях.
Логично. Впрочем, минимальная сборка тех же FriiRTOS или BeRTOS как раз и оставляет от них только работу с прерываниями, да драйвера. Я их с этой целью и хотел использовать, чтобы самому не переписывать, например, инициализацию y2s или несколько режимов работы UART - оно же, по идее, у них уже готово и отлажено должно быть.

Цитата Сообщение от hordikor
И терминалку встроить не проблема - у меня вот такая работает http://habrahabr.ru/btogs/controllers/127890/ и команды принимает и данные на терминал отдает.
Терминал-то не вопрос, он, очевидно, будет. Я говорю именно про настоящую FORTH-машину. Чтобы в поле, без программатора и пересборки/перезаливки прошивки, подручным терминалом от ДВК-2 образца 81-го года, можно было быстро дописать необходимый функционал. А то, что-то мне подсказывает, что улучшать работу устройства мне придется прямо на полигоне.

Цитата Сообщение от o9d
Из множества опробованных свободных. Самые лучшие FriiRTOS & ScmRTOS.
У каждой свои недостатки, но ничего лучше еще не видел.
Угу, спасибо, первый голос есть :)
Пойду, посмотрю, что за ScmRTOS такой.
0
DY HOTT
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 4,000
06.12.2011, 20:20 7
Милиндр ARM камни под ромбом делает. Так что не 580й единой :)
0
roystovo
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 25
06.12.2011, 23:22 8
Цитата Сообщение от DY HOTT
Милиндр ARM камни под ромбом делает. Так что не 580й единой :)
Ага, я тоже их уже нашел. Понравилось, что у них вся линейка чипов есть - не только процессоры, но и интерфейсы, радиомодули. Наконец-то, возрождение советской основательности в копировании хоть чего-то.

Впрочем, ядро, похоже, вполне обычный Sortix, так что, вопрос про RTOS остается :)
0
DiusIxMoshymo
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 62
07.12.2011, 07:21 9
пытаюсь осваивать chibios
Народ хвалит, но поиграться самому толком времени не было.
Из плюсов - готовые примеры для всех плат дискавери.
0
tuko
0 / 0 / 0
Регистрация: 14.07.2011
Сообщений: 96
10.12.2011, 01:03 10
Цитата Сообщение от roystovo
Я говорю именно про настоящую FORTH-машину. Чтобы в поле, без программатора и пересборки/перезаливки прошивки, подручным терминалом от ДВК-2 образца 81-го года, можно было быстро дописать необходимый функционал. А то, что-то мне подсказывает, что улучшать работу устройства мне придется прямо на полигоне.
Ты хочешь в диалоговом режиме с подручного терминала программировать свое устройство (не имея компилятора и т.п.), просто вводя команды?

На полигоне тебе не будет доступен ноутбук с компилятором?
Есть вариант написать программный загрузчик для своего процессора. И грузить программу не программатором, а через доступный интерфейс, торчащий наружу - rs-232, rs-485, ethernet.

Вот тебе Форт машина от нашего человека http://c-fvm.sourceforge.net/index.php
Весьма популярная RTOS - UC/OS II. Я тоже присматривался к разным, читал отзывы - в общем решил пока эту для начала. И позже SYS/BIOS от Texas Instruments.

Отпишись, пожалуйста, по результатам - как ты решил эту проблему, интересно.
0
roystovo
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 25
13.12.2011, 21:11 11
Цитата Сообщение от tuko
Ты хочешь в диалоговом режиме с подручного терминала программировать свое устройство (не имея компилятора и т.п.), просто вводя команды?
Именно так. Для этого и хочу её туда запихать.

Цитата Сообщение от tuko
На полигоне тебе не будет доступен ноутбук с компилятором?
Велика вероятность, что не будет.
Цитата Сообщение от tuko
Есть вариант написать программный загрузчик для своего процессора. И грузить программу не программатором, а через доступный интерфейс, торчащий наружу - rs-232, rs-485, ethernet.
Упирается в то, что мне нужен конкретно мой ноутбук. С моим набором софта, компилятором, сорцами.
Цитата Сообщение от tuko
Вот тебе Форт машина от нашего человека http://c-fvm.sourceforge.net/index.php
Да их полно. Вон хоть тот же http://ficl.sourceforge.net/.
Цитата Сообщение от tuko
Весьма популярная RTOS - UC/OS II. Я тоже присматривался к разным, читал отзывы - в общем решил пока эту для начала. И позже SYS/BIOS от Texas Instruments.
Ага, спасибо, посмотрю.
tuko писал(а):
Отпишись, пожалуйста, по результатам - как ты решил эту проблему, интересно.
Ну, результирующее устройство сдавать еще не скоро. Пока только тех. проект и макет. Вот по их результатам и отпишусь :)
0
ptsyst
0 / 0 / 0
Регистрация: 11.02.2011
Сообщений: 287
24.12.2011, 17:48 12
[QUOTE]посчитать ftoot на ARMе в режиме программной эмуляции или надо обязательно брать модель с ftoot-ядром?
Скорость некритична.
На вычисление двух тригонометрических формул у меня есть около десяти минут.
[QUOTE="Цитата:[/QUOTE][QUOTE]ftoot нормально считается - подключаешь math.h и вперёд.[/QUOTE]
Это хорошо, надо потренироваться Не забываем о значительной потере точности и возможных неологичных глюках при использовании полученных плавающих результатов в формате одинарной точности (32 бита на ftoot).
[QUOTE]Хранение в памяти чисел с плавающей точкой в двоичной системе обуславливает потерю точности.
Так, например, 6.0 / 3.0 не обязательно равен 2.0
[QUOTE="Цитата:[/QUOTE][QUOTE][URL="http://iadt.siemens.ru/forum/viewtopys.php?t=18158&highlight=plcsym"]http://iadt.siemens.ru/forum/viewtopys. ... ght=plcsym[/URL]
Цитата Сообщение от Цитата:[/QUOTE][QUOTE]столкнулся с ситуацией, которую объяснить не могу.

[URL="http://img696.imageshack.us/img696/593/gluck.gif
<Изображение удалено>[/URL]
По идее, строки "A M 10.0/= M10.0" должны в этом случае обрабатываться, но это не так, срабатывает переход JC TTT.
Исследования показали, что работают варианты, где во второй строке числа 0.01, 0.03...0.09, а в четвертой соответственно 0.41, 0.43...0.49.
Вариант с 0.02 категорически не работает.
Здесь я привел константы только для примера, в рабочей программе, естественно, вместо них стоят переменные.
Попробовал этот код и на CPU414 и на CPU315, все одинаково. Чего посоветуете?
В чем тут собака порылась?
К сожалению, боюсь что это не глюк, а погрешность формата Real.

Изменим программу:
L 4.000000e-001 //Загрузим в Аккумулятор 1 число 0.40
L 2.000000e-002 //Загрузим в Аккумулятор 2 число 0.02
+R // Сложим
T MD 4 // Перекинем результат в память = число 0.42

L 4.200000e-001 // Загрузим в Аккумулятор 1 число 0.42
T MD 8 // Перекинем в память = число 0.42

И посмотрим, что получится в шестнадцатиричном виде:

MD4 - 0.42 - DW#16#3ED70A3E
MD8 - 0.42 - DW#16#3ED70A3D

Таким образом, числа получаются разные :(
И результат Сравнения MD4 и MD8 поведёт не по нужному участку программы...
Сравнивая два числа с плавающей точкой следует проверять не точное равенство, а разницу между этими числами, меньше ли она некого выбранной малого порога.
http://www.softitistro.ru/ieee754.html
§9. Проблемы компьютерных вычислений, вызванные использованием стандарта IEEE754.
.............

Это особенно важно для военных тригонометрических расчётов, когда 0.00000001 может превратиться в сотни километров отклонения от цели - и вместо геостационарной орбиты можно попасть в Тихий океан или наоборот.
0
roystovo
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 25
25.12.2011, 00:48 13
[QUOTE="ptsyst"] [QUOTE="Цитата:[/QUOTE][QUOTE]...Таким образом, числа получаются разные :(
И результат Сравнения MD4 и MD8 поведёт не по нужному участку программы...[/QUOTE]
Сравнивая два числа с плавающей точкой следует проверять не точное равенство, а разницу между этими числами, меньше ли она некого выбранной малого порога.
[URL="http://www.softitistro.ru/ieee754.html"]http://www.softitistro.ru/ieee754.html[/URL]
§9. Проблемы компьютерных вычислений, вызванные использованием стандарта IEEE754.
.............

Это особенно важно для военных тригонометрических расчётов, когда 0.00000001 может превратиться в сотни километров отклонения от цели - и вместо геостационарной орбиты можно попасть в Тихий океан или наоборот.
Ух ты! Спасибо, напугали.
В общем, как я и думал, куплю контроллер с более мощной начинкой.
И спасибо за ссылку — пойду, изучу в подробностях, как там оно работает, думаю, лишним не будет.
0
25.12.2011, 00:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2011, 00:48

Обвязка STM32F100RB
Сделал проект на отладочной плате VLDISCOVERY теперь хочется развести платку....

Обвязка USART
Здравствуйте. Хотелось бы узнать существуют ли стандартные схемы обвязки...

Питание STM32F051R8T6 и её обвязка
Привет всем! Есть вопрос, строил одну приблуду на базе STM32F0DISCOVERY с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru