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

 
 
> Как пишут под арм? Или с чего начать?, До этого всё были мелочи под AVR
Spider
сообщение May 1 2012, 12:24
Сообщение #1


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Всем привет!

Не бейте сильно, только. Вот хочу перейти на АРМ, имею пару отладочных платок (STM32 Дискавери и китайскую ourstm). В планах собрать консоль управления некой железкой в виде кнопочек и лампочек по USB и I/O, типа большого "джойстика". На AVR я бы сделал что-то вроде state-машины и обрабатывал состояния в цикле. Ну тут типа прогресс не стоит на месте, куча всяких RTOSов и прочее.
Посоветуйте как лучше поступить. Желательно получить ответ не как мне будет проще делать, а как кошернее и правильные. Дабы развиваться самому.
Заранее спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kan35
сообщение May 1 2012, 14:21
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



Ни один еще проект с арм-ами пока не делал без freertos, везде она облегчает жизнь. Очень советую применять ее.
А так же проекты-примеры из IAR, и с stm.com выручают.
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 2 2012, 03:12
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(kan35 @ May 1 2012, 20:21) *
Ни один еще проект с арм-ами пока не делал без freertos, везде она облегчает жизнь. Очень советую применять ее.

А вот интересно - вопрос любителям freertos - сколько она производительности проца съедает?
Она пытается вытеснять задачу по каждому прерыванию или только по сис. таймеру? Что если в системе есть высокочастотные прерывания?
На сколько тактов увеличивается время работы ISR-ов?

По своему опыту использования uCOS знаю, что она (в недоработанном своем виде wink.gif пытается вытеснить задачу по любому прерыванию и та же задача, но запущенная под ней, расходует примерно на 10% больше проиводительности, чем если бы была запущена без ОС.
Go to the top of the page
 
+Quote Post
gladov
сообщение May 2 2012, 04:30
Сообщение #4


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

Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687



Цитата(jcxz @ May 2 2012, 07:12) *
А вот интересно - вопрос любителям freertos - сколько она производительности проца съедает?
Она пытается вытеснять задачу по каждому прерыванию или только по сис. таймеру? Что если в системе есть высокочастотные прерывания?
На сколько тактов увеличивается время работы ISR-ов?

По своему опыту использования uCOS знаю, что она (в недоработанном своем виде wink.gif пытается вытеснить задачу по любому прерыванию и та же задача, но запущенная под ней, расходует примерно на 10% больше проиводительности, чем если бы была запущена без ОС.


Все сильно зависит от архитектуры процессора, порта ОС на эту архитектуру и, конечно, правильности применения данной ОС.
Насчет uCOS не согласен. Она будет пытаться перепланировать задачи при выходе из прерывания ТОЛЬКО в том случае, если в прерывании была вызвана функция C_ISR_ENTER(). Если необходимо 1000 раз выполнить прерывание без перепланирования и только на 1001-й передать управление другой задаче, так и вызовите C_ISR_ENTER() только на 1001 раз. Тогда и оверхеда не получите.
С Cortex'ами, например, еще проще. Там даже не надо системе говорить, что началось прерывание. В любой ПРАВИЛЬНО портированной ОС перепланировка будет вызвана при выходе из прерывания ТОЛЬКО в случае активации в этом прерывании каких-либо механизмов межпроцессного взаимодействия, таких как взведение семафоров, флагов, передача сообщений и т.п.
Так что при правильном использовании ОС оверхед минимален.
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 2 2012, 05:06
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(gladov @ May 2 2012, 10:30) *
Насчет uCOS не согласен. Она будет пытаться перепланировать задачи при выходе из прерывания ТОЛЬКО в том случае, если в прерывании была вызвана функция C_ISR_ENTER(). Если необходимо 1000 раз выполнить прерывание без перепланирования и только на 1001-й передать управление другой задаче, так и вызовите C_ISR_ENTER() только на 1001 раз. Тогда и оверхеда не получите.

Я точно C_ISR_ENTER() не вызываю и при этом пытается перепланировать каждый раз. Я это и по системному обработчику вижу как там сделано.
Цитата(gladov @ May 2 2012, 10:30) *
С Cortex'ами, например, еще проще. Там даже не надо системе говорить, что началось прерывание. В любой ПРАВИЛЬНО портированной ОС перепланировка будет вызвана при выходе из прерывания ТОЛЬКО в случае активации в этом прерывании каких-либо механизмов межпроцессного взаимодействия, таких как взведение семафоров, флагов, передача сообщений и т.п.

Полностью согласен.
Вот именно для того чтобы перепланировка вызывалась только когда я вызываю в своём обработчике системные функции ОС пришлось мне допиливать системный обрабочик ISR uCOS. Теперь он так и делает.
Версия uCOS 2.83

Впрочем вопрос был не про uCOS - в ней мне всё ясно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alexey Belyaev   Как пишут под арм? Или с чего начать?   May 1 2012, 12:24
- - kovigor   Цитата(Alexey Belyaev @ May 1 2012, 15:24...   May 1 2012, 12:39
- - Alexey Belyaev   Просто там куча параллельных задач, таких как упра...   May 1 2012, 13:20
|- - scifi   Цитата(Alexey Belyaev @ May 1 2012, 17:20...   May 1 2012, 17:58
- - zöner   ЦитатаКак пишут под арм? Или с чего начать?, До эт...   May 1 2012, 13:47
|- - _Pasha   Цитата(zöner @ May 1 2012, 16:47) Pr...   May 1 2012, 17:46
- - zöner   ЦитатаНи один еще проект с арм-ами пока не делал б...   May 1 2012, 15:41
|- - _Артём_   Цитата(zöner @ May 1 2012, 18:41) ск...   May 1 2012, 15:52
- - haker_fox   QUOTE (Alexey Belyaev @ May 1 2012, 20:24...   May 2 2012, 01:43
- - _Pasha   WinARM по-любому хорошая тема была. Жаль, что оно ...   May 2 2012, 02:50
- - _Pasha   Дык это же профайлером вычисляется всё.   May 2 2012, 03:20
|- - jcxz   Если-б у меня была эта ОС, я бы не спрашивал.   May 2 2012, 03:44
- - haker_fox   QUOTE (_Pasha @ May 2 2012, 11:50) WinARM...   May 2 2012, 05:23
- - Alexey Belyaev   Я ваще в шоке! Во развели то, но читаю и впит...   May 2 2012, 05:52
|- - haker_fox   QUOTE (Alexey Belyaev @ May 2 2012, 14:52...   May 2 2012, 07:57
- - zöner   зачем мучать трупы, есть же codesourcery   May 2 2012, 08:26


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

 


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


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